├── .github ├── ISSUES_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── README.md ├── client ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt ├── src.zip ├── src │ ├── App.js │ ├── components │ │ ├── Cart.js │ │ ├── CartItem.js │ │ ├── Checkout.js │ │ ├── Footer.js │ │ ├── Login.js │ │ ├── MainStore.js │ │ ├── NavBar.js │ │ ├── OrderDetails.js │ │ ├── Register.js │ │ ├── Store.js │ │ ├── StoreItem.js │ │ ├── StoreItemModal.js │ │ ├── Success.js │ │ ├── __test__ │ │ │ ├── Checkout.test.js │ │ │ └── Login.test.js │ │ ├── assets │ │ │ └── cool-background.svg │ │ ├── css │ │ │ ├── Checkout.css │ │ │ ├── Footer.css │ │ │ ├── Login.css │ │ │ ├── OrderDetails.css │ │ │ ├── Register.css │ │ │ ├── Store.css │ │ │ ├── StoreItem.css │ │ │ └── Success.css │ │ └── tests │ │ │ └── lambdatest.js │ ├── context │ │ └── CartContext.js │ ├── hooks │ │ ├── useAlan.js │ │ └── useLocalStorage.js │ ├── index.js │ ├── items.json │ └── util │ │ ├── axios.js │ │ └── formatCurrency.js └── yarn.lock └── server ├── .gitignore ├── config └── default.json ├── controllers ├── authcontroller.js └── ordercontroller.js ├── models ├── Orders.js └── Users.js ├── package-lock.json ├── package.json ├── request.rest ├── routes ├── auth.js └── orders.js └── server.js /.github/ISSUES_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Short description explaining the high-level reason for the new issue. 2 | 3 | ## Current behavior 4 | 5 | 6 | ## Expected behavior 7 | 8 | 9 | ## Steps to replicate behavior (include URLs) 10 | 11 | 1. 12 | 13 | 14 | ## Screenshots 15 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | [Short description explaining the high-level reason for the pull request] 2 | 3 | ## Additions 4 | 5 | - 6 | 7 | ## Removals 8 | 9 | - 10 | 11 | ## Changes 12 | 13 | - 14 | 15 | ## Testing 16 | 17 | 1. 18 | 19 | ## Screenshots 20 | 21 | 22 | ## Notes 23 | 24 | - 25 | 26 | ## Todos 27 | 28 | - 29 | 30 | ## Checklist 31 | 32 | - [ ] PR has an informative and human-readable title 33 | - [ ] Changes are limited to a single goal (no scope creep) 34 | - [ ] Code can be automatically merged (no conflicts) 35 | - [ ] Code follows the standards laid out in the [development playbook](https://github.com/cfpb/development) 36 | - [ ] Passes all existing automated tests 37 | - [ ] Any _change_ in functionality is tested 38 | - [ ] New functions are documented (with a description, list of inputs, and expected output) 39 | - [ ] Placeholder code is flagged / future todos are captured in comments 40 | - [ ] Visually tested in supported browsers and devices (see checklist below :point_down:) 41 | - [ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG) 42 | - [ ] Reviewers requested with the [Reviewers tool](https://help.github.com/articles/requesting-a-pull-request-review/) :arrow_right: 43 | 44 | ## Testing checklist 45 | 46 | ### Browsers 47 | 48 | - [ ] Chrome 49 | - [ ] Firefox 50 | - [ ] Safari 51 | - [ ] Internet Explorer 8, 9, 10, and 11 52 | - [ ] Edge 53 | - [ ] iOS Safari 54 | - [ ] Chrome for Android 55 | 56 | ### Accessibility 57 | 58 | - [ ] Keyboard friendly 59 | - [ ] Screen reader friendly 60 | 61 | ### Other 62 | 63 | - [ ] Is useable without CSS 64 | - [ ] Is useable without JS 65 | - [ ] Flexible from small to large screens 66 | - [ ] No linting errors or warnings 67 | - [ ] JavaScript tests are passing 68 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | 3 | The following is the code of conduct with reference to CFPB Code Of Conduct so a special recognition 4 | for the community for the guidance and sources to prepare this. Please follow the guidelines properly 5 | and maintain the decorum of the workspace here. 6 | 7 | ## Scope 8 | 9 | We are trying to build a string community of developers who want to enter the open source 10 | community with utost smooth and great onboarding experience. The people of seniority should 11 | help out newcomers to kickstart their journey in open source contribution so this guidelines 12 | are aimed to do so. 13 | 14 | 15 | 16 | ## Unacceptable behavior 17 | 18 | To help understand the kinds of behaviors that are illegal or run counter to the culture we seek to 19 | foster, we've listed some actions below that violate federal law and CFPB policy. We've also included 20 | steps to take if you encounter behavior that runs contrary to this policy. 21 | 22 | The CFPB Policy Statement on Equal Employment Opportunity and Workplace Harassment forbids 23 | discrimination or harassment based on: 24 | 25 | - Race 26 | - Color 27 | - Religion 28 | - Sex (including pregnancy, sexual orientation, transgender status, gender identity or expression, gender non-conformity, or sex stereotyping of any kind) 29 | - National origin 30 | - Disability 31 | - Age (40 years or older) 32 | - Genetic information 33 | - Parental status 34 | - Political affiliation 35 | - Marital status 36 | - Uniformed status 37 | - Membership in a labor organization or union activities 38 | - Prior equal employment opportunity (EEO) or whistleblower activity 39 | - Any other factor unrelated to your merit 40 | 41 | The policy also forbids harassing conduct, which includes unwelcome conduct based on any (or a combination of) protected traits or characteristics. Such conduct may take the form of any of the following: 42 | 43 | - Offensive jokes, comments, objects, or pictures 44 | - Questions about a person’s identity (e.g., disability status, gender identity, sexual orientation, national origin, etc.) 45 | - Undue attention 46 | - Ridicule or mockery 47 | - Insults or put-downs 48 | - Touching/physical contact 49 | - Slurs or epithets 50 | - Threats or other forms of intimidation 51 | - Physical or sexual assault 52 | 53 | ## Reporting Violations 54 | 55 | If you feel that someone violated the guidelines in Code Of Conduct or Contributing guidelines, 56 | please do mail me at [berashamik115@gmail.com.](mailto:berashamik115@gmail.com) 57 | 58 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Guidance on how to contribute 2 | 3 | If you are are first timer I recommend reading from [here](#your-first-contribution). 4 | 5 | Else you can read the first three paragraphs and start contributing. 6 | 7 | The following is a personal project and shall not be used for any personal business or as such 8 | use case without asking the maintainer and so. 9 | There are two primary ways to help: 10 | - Using the issue tracker, and 11 | - Changing the code-base. 12 | 13 | ## Using the issue tracker 14 | 15 | Use the issue tracker to suggest feature requests, report bugs, and ask questions. 16 | This is also a great way to connect with the developers of the project as well 17 | as others who are interested in this solution. 18 | 19 | Use the issue tracker to find ways to contribute. Find a bug or a feature, mention in 20 | the issue that you will take on that effort, then follow the _Changing the code-base_ 21 | guidance below. 22 | 23 | ## Changing the code-base 24 | Generally speaking, you should fork this repository, make changes in your own fork, and then submit a pull request. 25 | All new code should have associated unit tests that validate implemented features and the presence or lack of defects. 26 | Additionally, the code should follow any stylistic and architectural guidelines prescribed by the project. 27 | In the absence of such guidelines, mimic the styles and patterns in the existing code-base. 28 | 29 | 30 | ## General Instructions 31 | 32 | - Please follow all the Code of Conduct rules. 33 | - Document your changes in the code properly with comments. 34 | - Mention how your change has impacted the project's working and how benefical it was. 35 | - That's it folks dont want to restrict to endless possibilities. 36 | 37 | # Your First Contribution 38 | 39 | Is this your first time contributing to an open source project? If yes, Welcome!!✨🎉💃🏾 Here is a [great tutorial](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github) on how to contribute to an open source project. 40 | 41 | At the point you are ready to take on the world of open source contribution!!. 42 | 43 | You must have seen a bug or problem you can fix, this is when you open a new issue for that problem. Let's do it together. 44 | 45 | ## Steps to open a new issue 46 | 47 | - **Step 1:** Navigate to the issues naviagtion button. See below 👇 48 | 49 | ![issue1](https://user-images.githubusercontent.com/64892076/193137011-1aa60920-4b2c-491e-994e-34940e9dbe6c.png) 50 | 51 | - **Step 2:** Scan through the currently opened issues to see if your issue(s) has been listed earlier. See below 👇 52 | 53 | ![image](https://user-images.githubusercontent.com/64892076/193137122-601202a5-6d81-47ab-b02a-a546deba4746.png) 54 | 55 | - **Step 3:** If your issue hasn't been listed yet, click on the New issue button at the top right corner to add your new issue. See below 👇 56 | 57 | ![image2](https://user-images.githubusercontent.com/64892076/193137251-7151b83f-ada7-47d3-ad95-25d42264bf79.png) 58 | 59 | - **Step 4:** Time to add your amazing issue. You add the title and a brief description of the issue. For further explanation, images can be added as well. See below 👇 60 | 61 | ![issues4](https://user-images.githubusercontent.com/63567230/186288817-9c257618-005b-4ced-993b-318f51121137.JPG) 62 | 63 | - **Step 5:** Submit the issue. See below 👇 64 | 65 | ![issues5](https://user-images.githubusercontent.com/63567230/186289012-575123a1-68a7-4fcd-a71a-9051a8ca11ff.JPG) 66 | 67 | 68 | Hurray, you just made added your first issue. The managers of amazon clone will now review your issue and you will either get assigned to the issue, have it closed or a comment will be dropped for you. 69 | 70 | You have been assigned an issue 🥂 and are confused 😵 about where to go from here, follow this guide below to make your changes and pull request 🍾. 71 | 72 | ## Getting Started 73 | 74 | Fork the amazon clone repository. See below 👇 75 | 76 | ![fork](https://user-images.githubusercontent.com/64892076/193138056-aabdefb3-92ed-49d0-a4d7-9f99c0de3ccf.png) 77 | 78 | Clone the repository you forked above. See below 👇 79 | 80 | ![clone](https://user-images.githubusercontent.com/64892076/193138197-dc7a3298-08e2-40b7-922d-42b7b69f432b.png) 81 | 82 | Using the command below, you can clone the repo. 83 | 84 | ``` 85 | git clone https://github.com/Kanika637/amazon-clone.git 86 | ``` 87 | 88 | Navigate to the cloned directory and then to client folder using command line. See below 👇 89 | 90 | ``` 91 | cd Ai-based-Ecommerce-web-app 92 | cd client 93 | ``` 94 | 95 | Install all the dependencies. See below 👇 96 | 97 | ``` 98 | npm i 99 | ``` 100 | 101 | Go to server file file and install all dependencies. See below 👇 102 | ``` 103 | cd server 104 | npm i 105 | ``` 106 | Then run the server using the command given below. See below 👇 107 | 108 | ``` 109 | node server.js 110 | ``` 111 | Or 112 | Install nodemon and then run the server using nodemon like this 👇 113 | ``` 114 | npm i nodemon 115 | nodemon server.js 116 | ``` 117 | 118 | Then open the project in any IDE of your choice. 119 | 120 | Then go to client and go the src, then to utils, and then to axios.js.Then, change the base url as 'http://localhost:9000/', See below 👇 121 | ```js 122 | const instance = axios.create({ 123 | baseURL: 'http://localhost:9000/', 124 | }) 125 | ``` 126 | 127 | Then you are set to work with my project 🎉 128 | 129 | 130 | I have made a dummy test account for to login :- 131 | Username - test, 132 | Password - 1234 133 | 134 | 135 | Make a new branch. See below 👇 136 | 137 | ![branch](https://user-images.githubusercontent.com/63567230/186289255-21b7b9c5-49f8-458a-a941-f558b8744dd0.JPG) 138 | 139 | ``` 140 | 141 | git checkout -b "Your Branch Name" 142 | ``` 143 | 144 | A good branch name would begin with the issue ticket and the assigned issue. See below 👇 145 | 146 | ``` 147 | // #343 is the issu ticket number and make a request is the assigned issue na 148 | 149 | git checkout -b "#343-make a request" 150 | ``` 151 | 152 | You are all set!! 🍾🎉. You can now make your changes locally. Once you are done making all your changes, you can now push code and make a pull request. 153 | 154 | ## Steps to making a pull request 155 | 156 | You have to switch to the main branch and make sure it's up to date with the amazon's clone main branch. To do so, use the following commands below. 157 | 158 | ``` 159 | git remote add upstream https://github.com/shazm12/Ai-based-Ecommerce-web-app.git 160 | git checkout main 161 | git pull upstream main 162 | ``` 163 | 164 | You can now update your branch from your local copy of main, and push it!. See how below. 👇 165 | 166 | ``` 167 | git checkout #343-make a request 168 | git rebase main 169 | git push --set-upstream origin #343-make a request 170 | ``` 171 | 172 | Hurray!!, we are done with the hard part. Head to github to make the pull request Github will check for conflicts and if non is found, you can make the pull request and the mainteners of amazon clone will review your pull request to have it merged or make a comment on it. 173 | 174 | # Code review process 175 | 176 | The maintainer of Ai-based Ecommerce Web App looks at Pull Requests on a regular basis and carries out merging or comments on the requests. You can close a pull request if it isn't showing any activity after two weeks. 177 | 178 | ## Commit messages 179 | 180 | Ai-based Ecommerce Web App has certain conventions that should be adopted when contributing. 181 | 182 | ### Commit message conventions. 183 | 184 | - Commit test files with `test: ...` prefix 185 | - Commit bug fixes with `fix: ...` prefix 186 | - Commit new features with `feat: ...` prefix 187 | - Commit changes to `package.json`, `.gitignore` and other meta files with `chore(filenamewithoutext): ...` 188 | - Commit changes to README files or comments with `docs: ...` 189 | - Cody style changes with `style: standard` 190 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ai-based-Ecommerce-web-app 2 | 3 | [![npm version](https://img.shields.io/npm/v/if-node-version.svg)](https://www.npmjs.com/package/if-node-version) 4 | [![Build Status](https://travis-ci.org/mysticatea/if-node-version.svg?branch=master)](https://travis-ci.org/mysticatea/if-node-version) 5 | [![Status](https://img.shields.io/badge/status-active-success.svg)]() 6 | [![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE) 7 | [![GitHub last commit](https://img.shields.io/github/last-commit/shazm12/Ai-based-Ecommerce-web-app?style=social&logo=git)](https://github.com/shazm12/Ai-based-Ecommerce-web-app) 8 | 9 | So I have built an AI-based Shopping system that uses a chatbot to perform all operations from adding, removing items to proceeding to checkout. This will be a web application with a backend server as well. This project is an attempt to provide the advantages of online shopping to customers of a real shop. It helps to buy the products in the shop anywhere through the internet by using the website. The customer will be provided the service of online shopping and home delivery by using this website application. This system can be implemented in any shop in the locality or to multinational branded shops having retail outlet chains. 10 | 11 | The web app was made using React, Node, Express, MongoDB and Alan.ai which is platform to build chatbots and integrate with your web and native apps. I recommend you to go through the [docs](https://alan.app/docs/) before getting started to work on my project. 12 | 13 | 14 | # Preview and Working of the Web App ⚒️ 15 | 16 | ## Preview of the Web App 17 | [web-app-preview.webm](https://user-images.githubusercontent.com/64892076/193142474-2c9bca1c-56ae-4895-9f8b-95b6e53c4f6a.webm) 18 | 19 | 20 | ## Level 1 DFD Diagram to understand the architecture of the Project 21 | ![level1dfd](https://user-images.githubusercontent.com/64892076/142622747-9260fa0d-486b-4e02-9d4f-852585c49eef.png) 22 | 23 | 24 | 25 | ## Release History 26 | 27 | We had some previous releases too that we did not initially commit to the repo. 28 | 29 | * 0.1.0 30 | * CHANGE: Update docs (module code remains unchanged) 31 | * 0.1.1 32 | * CHANGE: Made `Alan Ai Listeners for different voice commands` 33 | * ADD: Add `getItems(), openCart(), CloseCart()` 34 | * 0.1.2 35 | * FIX: Multiple Listeners when calling `Alan AI listener module` 36 | * 0.1.3 37 | * CHANGE:Made `server.js` 38 | * ADD: `Mongo DB, Node config` 39 | * 0.1.4 40 | * CHANGE:Made `User.js,Model.js,Authcontroller.js,Ordercontroller.js` 41 | * ADD: `User Schema, Order Schema, Login(), Register(), MakeOrder()` 42 | * 0.2.0 43 | * The first proper release 44 | * CHANGE: Add `OrderDetails(),CancelOrder()` 45 | * 0.2.1 46 | * Work in progress 47 | 48 | ## Development setup 49 | Developement setup is pretty simple, first you just need to install all dependencies which is already given in package.json file and then kust run the web app with the commands given below. 50 | 51 | - For Client - 52 | 53 | ```sh 54 | cd client 55 | npm install 56 | npm start 57 | ``` 58 | - For server - 59 | ```sh 60 | cd server 61 | npm install 62 | npm start 63 | ``` 64 | 65 | Make sure in client/src/utils and then in axios.js make the baseURL as url of the Node's Localhost server. 66 | 67 | I have made a dummy test account for to login - 68 | Username - test 69 | Password - 1234 70 | 71 | For more in depth setup details go to [Contribution Guidelines.](CONTRIBUTING.md) 72 | 73 | # Some important point to go through (MUST READ) 74 | 75 | 1. Most of the issues I will be posting will be related to the client or the frontend side at first. 76 | 2. I will be deploying the final web app with all the commited changes in the end to see how much we have improved the web app from its initial version. 77 | 78 | 79 | 80 | 81 | # Maintainer 82 | 83 | - Shamik Bera [@shazm12](https://github.com/shazm12) [email](mailto:shamik.bera2019@vitstudent.ac.in) 84 | 85 | 86 | 87 | # Contrubtion Guildines 88 | 1. Join the [discord](https://discord.gg/mq97kSm6) server for queries and more info. 89 | 2. To contrubute to the project by issuing some bug and even by fixing it or suggest some changes for improving the project but before 90 | that do not forget to read the guidelines here - [Contribution Guidelines.](CONTRIBUTING.md) 91 | 92 | -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /client/README.md: -------------------------------------------------------------------------------- 1 | # Getting Started with Create React App 2 | 3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 4 | 5 | ## Available Scripts 6 | 7 | In the project directory, you can run: 8 | 9 | ### `npm start` 10 | 11 | Runs the app in the development mode.\ 12 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 13 | 14 | The page will reload if you make edits.\ 15 | You will also see any lint errors in the console. 16 | 17 | ### `npm test` 18 | 19 | Launches the test runner in the interactive watch mode.\ 20 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 21 | 22 | ### `npm run build` 23 | 24 | Builds the app for production to the `build` folder.\ 25 | It correctly bundles React in production mode and optimizes the build for the best performance. 26 | 27 | The build is minified and the filenames include the hashes.\ 28 | Your app is ready to be deployed! 29 | 30 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 31 | 32 | ### `npm run eject` 33 | 34 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!** 35 | 36 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. 37 | 38 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. 39 | 40 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. 41 | 42 | ## Learn More 43 | 44 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 45 | 46 | To learn React, check out the [React documentation](https://reactjs.org/). 47 | 48 | ### Code Splitting 49 | 50 | This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) 51 | 52 | ### Analyzing the Bundle Size 53 | 54 | This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) 55 | 56 | ### Making a Progressive Web App 57 | 58 | This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) 59 | 60 | ### Advanced Configuration 61 | 62 | This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) 63 | 64 | ### Deployment 65 | 66 | This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) 67 | 68 | ### `npm run build` fails to minify 69 | 70 | This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) 71 | -------------------------------------------------------------------------------- /client/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "alan-react", 3 | "version": "0.1.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@alan-ai/alan-sdk-web": { 8 | "version": "1.8.28", 9 | "resolved": "https://registry.npmjs.org/@alan-ai/alan-sdk-web/-/alan-sdk-web-1.8.28.tgz", 10 | "integrity": "sha512-LvVPw+2LH+dqRhMFl0fUuLTpULQWtnY5DS3avcJEw9Y8xl5NPHzpB2VFrFAI9YCme6kai6Tf2jgnshEeC7aliw==" 11 | }, 12 | "@babel/code-frame": { 13 | "version": "7.10.4", 14 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 15 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 16 | "requires": { 17 | "@babel/highlight": "^7.10.4" 18 | } 19 | }, 20 | "@babel/helper-validator-identifier": { 21 | "version": "7.10.4", 22 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 23 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" 24 | }, 25 | "@babel/highlight": { 26 | "version": "7.10.4", 27 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 28 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 29 | "requires": { 30 | "@babel/helper-validator-identifier": "^7.10.4", 31 | "chalk": "^2.0.0", 32 | "js-tokens": "^4.0.0" 33 | } 34 | }, 35 | "@babel/runtime": { 36 | "version": "7.15.3", 37 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz", 38 | "integrity": "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==", 39 | "requires": { 40 | "regenerator-runtime": "^0.13.4" 41 | } 42 | }, 43 | "@babel/runtime-corejs3": { 44 | "version": "7.12.5", 45 | "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", 46 | "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", 47 | "requires": { 48 | "core-js-pure": "^3.0.0", 49 | "regenerator-runtime": "^0.13.4" 50 | } 51 | }, 52 | "@emotion/hash": { 53 | "version": "0.8.0", 54 | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", 55 | "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" 56 | }, 57 | "@fullhuman/postcss-purgecss": { 58 | "version": "3.0.0", 59 | "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.0.0.tgz", 60 | "integrity": "sha512-cvuOgMwIVlfgWcUMqg5p33NbGUxLwMrKtDKkm3QRfOo4PRVNR6+y/xd9OyXTVZiB1bIpKNJ0ZObYPWD3DRQDtw==", 61 | "dev": true, 62 | "requires": { 63 | "postcss": "7.0.32", 64 | "purgecss": "^3.0.0" 65 | }, 66 | "dependencies": { 67 | "postcss": { 68 | "version": "7.0.32", 69 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", 70 | "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", 71 | "dev": true, 72 | "requires": { 73 | "chalk": "^2.4.2", 74 | "source-map": "^0.6.1", 75 | "supports-color": "^6.1.0" 76 | } 77 | }, 78 | "source-map": { 79 | "version": "0.6.1", 80 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 81 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 82 | "dev": true 83 | }, 84 | "supports-color": { 85 | "version": "6.1.0", 86 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 87 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 88 | "dev": true, 89 | "requires": { 90 | "has-flag": "^3.0.0" 91 | } 92 | } 93 | } 94 | }, 95 | "@jest/types": { 96 | "version": "26.6.2", 97 | "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", 98 | "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", 99 | "requires": { 100 | "@types/istanbul-lib-coverage": "^2.0.0", 101 | "@types/istanbul-reports": "^3.0.0", 102 | "@types/node": "*", 103 | "@types/yargs": "^15.0.0", 104 | "chalk": "^4.0.0" 105 | }, 106 | "dependencies": { 107 | "ansi-styles": { 108 | "version": "4.3.0", 109 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 110 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 111 | "requires": { 112 | "color-convert": "^2.0.1" 113 | } 114 | }, 115 | "chalk": { 116 | "version": "4.1.0", 117 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 118 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 119 | "requires": { 120 | "ansi-styles": "^4.1.0", 121 | "supports-color": "^7.1.0" 122 | } 123 | }, 124 | "color-convert": { 125 | "version": "2.0.1", 126 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 127 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 128 | "requires": { 129 | "color-name": "~1.1.4" 130 | } 131 | }, 132 | "color-name": { 133 | "version": "1.1.4", 134 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 135 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 136 | }, 137 | "has-flag": { 138 | "version": "4.0.0", 139 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 140 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 141 | }, 142 | "supports-color": { 143 | "version": "7.2.0", 144 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 145 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 146 | "requires": { 147 | "has-flag": "^4.0.0" 148 | } 149 | } 150 | } 151 | }, 152 | "@material-ui/core": { 153 | "version": "4.12.3", 154 | "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.3.tgz", 155 | "integrity": "sha512-sdpgI/PL56QVsEJldwEe4FFaFTLUqN+rd7sSZiRCdx2E/C7z5yK0y/khAWVBH24tXwto7I1hCzNWfJGZIYJKnw==", 156 | "requires": { 157 | "@babel/runtime": "^7.4.4", 158 | "@material-ui/styles": "^4.11.4", 159 | "@material-ui/system": "^4.12.1", 160 | "@material-ui/types": "5.1.0", 161 | "@material-ui/utils": "^4.11.2", 162 | "@types/react-transition-group": "^4.2.0", 163 | "clsx": "^1.0.4", 164 | "hoist-non-react-statics": "^3.3.2", 165 | "popper.js": "1.16.1-lts", 166 | "prop-types": "^15.7.2", 167 | "react-is": "^16.8.0 || ^17.0.0", 168 | "react-transition-group": "^4.4.0" 169 | } 170 | }, 171 | "@material-ui/icons": { 172 | "version": "4.11.2", 173 | "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz", 174 | "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==", 175 | "requires": { 176 | "@babel/runtime": "^7.4.4" 177 | } 178 | }, 179 | "@material-ui/styles": { 180 | "version": "4.11.4", 181 | "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", 182 | "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", 183 | "requires": { 184 | "@babel/runtime": "^7.4.4", 185 | "@emotion/hash": "^0.8.0", 186 | "@material-ui/types": "5.1.0", 187 | "@material-ui/utils": "^4.11.2", 188 | "clsx": "^1.0.4", 189 | "csstype": "^2.5.2", 190 | "hoist-non-react-statics": "^3.3.2", 191 | "jss": "^10.5.1", 192 | "jss-plugin-camel-case": "^10.5.1", 193 | "jss-plugin-default-unit": "^10.5.1", 194 | "jss-plugin-global": "^10.5.1", 195 | "jss-plugin-nested": "^10.5.1", 196 | "jss-plugin-props-sort": "^10.5.1", 197 | "jss-plugin-rule-value-function": "^10.5.1", 198 | "jss-plugin-vendor-prefixer": "^10.5.1", 199 | "prop-types": "^15.7.2" 200 | } 201 | }, 202 | "@material-ui/system": { 203 | "version": "4.12.1", 204 | "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.1.tgz", 205 | "integrity": "sha512-lUdzs4q9kEXZGhbN7BptyiS1rLNHe6kG9o8Y307HCvF4sQxbCgpL2qi+gUk+yI8a2DNk48gISEQxoxpgph0xIw==", 206 | "requires": { 207 | "@babel/runtime": "^7.4.4", 208 | "@material-ui/utils": "^4.11.2", 209 | "csstype": "^2.5.2", 210 | "prop-types": "^15.7.2" 211 | } 212 | }, 213 | "@material-ui/types": { 214 | "version": "5.1.0", 215 | "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", 216 | "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==" 217 | }, 218 | "@material-ui/utils": { 219 | "version": "4.11.2", 220 | "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", 221 | "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", 222 | "requires": { 223 | "@babel/runtime": "^7.4.4", 224 | "prop-types": "^15.7.2", 225 | "react-is": "^16.8.0 || ^17.0.0" 226 | } 227 | }, 228 | "@testing-library/dom": { 229 | "version": "7.28.0", 230 | "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.28.0.tgz", 231 | "integrity": "sha512-jY9wE3eF/fjrxUCC1VTCnMWE/g+aCP582Df4H6H9wQYY0yLglyevTO7TET9pgg0w9Yzm8n7ck0Hxzi18pN5+4w==", 232 | "requires": { 233 | "@babel/code-frame": "^7.10.4", 234 | "@babel/runtime": "^7.12.5", 235 | "@types/aria-query": "^4.2.0", 236 | "aria-query": "^4.2.2", 237 | "chalk": "^4.1.0", 238 | "dom-accessibility-api": "^0.5.4", 239 | "lz-string": "^1.4.4", 240 | "pretty-format": "^26.6.2" 241 | }, 242 | "dependencies": { 243 | "ansi-styles": { 244 | "version": "4.3.0", 245 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 246 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 247 | "requires": { 248 | "color-convert": "^2.0.1" 249 | } 250 | }, 251 | "chalk": { 252 | "version": "4.1.0", 253 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 254 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 255 | "requires": { 256 | "ansi-styles": "^4.1.0", 257 | "supports-color": "^7.1.0" 258 | } 259 | }, 260 | "color-convert": { 261 | "version": "2.0.1", 262 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 263 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 264 | "requires": { 265 | "color-name": "~1.1.4" 266 | } 267 | }, 268 | "color-name": { 269 | "version": "1.1.4", 270 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 271 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 272 | }, 273 | "has-flag": { 274 | "version": "4.0.0", 275 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 276 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 277 | }, 278 | "supports-color": { 279 | "version": "7.2.0", 280 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 281 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 282 | "requires": { 283 | "has-flag": "^4.0.0" 284 | } 285 | } 286 | } 287 | }, 288 | "@testing-library/jest-dom": { 289 | "version": "5.11.6", 290 | "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.6.tgz", 291 | "integrity": "sha512-cVZyUNRWwUKI0++yepYpYX7uhrP398I+tGz4zOlLVlUYnZS+Svuxv4fwLeCIy7TnBYKXUaOlQr3vopxL8ZfEnA==", 292 | "requires": { 293 | "@babel/runtime": "^7.9.2", 294 | "@types/testing-library__jest-dom": "^5.9.1", 295 | "aria-query": "^4.2.2", 296 | "chalk": "^3.0.0", 297 | "css": "^3.0.0", 298 | "css.escape": "^1.5.1", 299 | "lodash": "^4.17.15", 300 | "redent": "^3.0.0" 301 | }, 302 | "dependencies": { 303 | "ansi-styles": { 304 | "version": "4.3.0", 305 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 306 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 307 | "requires": { 308 | "color-convert": "^2.0.1" 309 | } 310 | }, 311 | "chalk": { 312 | "version": "3.0.0", 313 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 314 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 315 | "requires": { 316 | "ansi-styles": "^4.1.0", 317 | "supports-color": "^7.1.0" 318 | } 319 | }, 320 | "color-convert": { 321 | "version": "2.0.1", 322 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 323 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 324 | "requires": { 325 | "color-name": "~1.1.4" 326 | } 327 | }, 328 | "color-name": { 329 | "version": "1.1.4", 330 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 331 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 332 | }, 333 | "css": { 334 | "version": "3.0.0", 335 | "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", 336 | "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", 337 | "requires": { 338 | "inherits": "^2.0.4", 339 | "source-map": "^0.6.1", 340 | "source-map-resolve": "^0.6.0" 341 | } 342 | }, 343 | "has-flag": { 344 | "version": "4.0.0", 345 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 346 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 347 | }, 348 | "source-map": { 349 | "version": "0.6.1", 350 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 351 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 352 | }, 353 | "source-map-resolve": { 354 | "version": "0.6.0", 355 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", 356 | "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", 357 | "requires": { 358 | "atob": "^2.1.2", 359 | "decode-uri-component": "^0.2.0" 360 | } 361 | }, 362 | "supports-color": { 363 | "version": "7.2.0", 364 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 365 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 366 | "requires": { 367 | "has-flag": "^4.0.0" 368 | } 369 | } 370 | } 371 | }, 372 | "@testing-library/react": { 373 | "version": "11.2.1", 374 | "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.1.tgz", 375 | "integrity": "sha512-/rKucr9p/mhMongaeTXwgIRfDnsAUu6LbfN+moNUn2oU0Kw5a7inN5vGvPWv7Ef0YndpERAfODjeseUIlhzRHw==", 376 | "requires": { 377 | "@babel/runtime": "^7.12.5", 378 | "@testing-library/dom": "^7.27.1" 379 | } 380 | }, 381 | "@testing-library/user-event": { 382 | "version": "12.2.2", 383 | "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.2.2.tgz", 384 | "integrity": "sha512-mTYL9LrwiSeyorStUOMuRGQDn1ca40tIhuv//o/K3lY8wBEp+9Im90MFVx5i3u7zCPmavn3uWZs/10chsbI8Tg==", 385 | "requires": { 386 | "@babel/runtime": "^7.10.2" 387 | } 388 | }, 389 | "@types/aria-query": { 390 | "version": "4.2.0", 391 | "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.0.tgz", 392 | "integrity": "sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A==" 393 | }, 394 | "@types/cookie": { 395 | "version": "0.3.3", 396 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz", 397 | "integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==" 398 | }, 399 | "@types/istanbul-lib-coverage": { 400 | "version": "2.0.3", 401 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", 402 | "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" 403 | }, 404 | "@types/istanbul-lib-report": { 405 | "version": "3.0.0", 406 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", 407 | "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", 408 | "requires": { 409 | "@types/istanbul-lib-coverage": "*" 410 | } 411 | }, 412 | "@types/istanbul-reports": { 413 | "version": "3.0.0", 414 | "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", 415 | "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", 416 | "requires": { 417 | "@types/istanbul-lib-report": "*" 418 | } 419 | }, 420 | "@types/jest": { 421 | "version": "26.0.15", 422 | "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", 423 | "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", 424 | "requires": { 425 | "jest-diff": "^26.0.0", 426 | "pretty-format": "^26.0.0" 427 | } 428 | }, 429 | "@types/node": { 430 | "version": "14.14.9", 431 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.9.tgz", 432 | "integrity": "sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw==" 433 | }, 434 | "@types/prop-types": { 435 | "version": "15.7.4", 436 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", 437 | "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" 438 | }, 439 | "@types/react": { 440 | "version": "17.0.19", 441 | "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.19.tgz", 442 | "integrity": "sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A==", 443 | "requires": { 444 | "@types/prop-types": "*", 445 | "@types/scheduler": "*", 446 | "csstype": "^3.0.2" 447 | }, 448 | "dependencies": { 449 | "csstype": { 450 | "version": "3.0.8", 451 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", 452 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" 453 | } 454 | } 455 | }, 456 | "@types/react-transition-group": { 457 | "version": "4.4.2", 458 | "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.2.tgz", 459 | "integrity": "sha512-KibDWL6nshuOJ0fu8ll7QnV/LVTo3PzQ9aCPnRUYPfX7eZohHwLIdNHj7pftanREzHNP4/nJa8oeM73uSiavMQ==", 460 | "requires": { 461 | "@types/react": "*" 462 | } 463 | }, 464 | "@types/scheduler": { 465 | "version": "0.16.2", 466 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 467 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" 468 | }, 469 | "@types/testing-library__jest-dom": { 470 | "version": "5.9.5", 471 | "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz", 472 | "integrity": "sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ==", 473 | "requires": { 474 | "@types/jest": "*" 475 | } 476 | }, 477 | "@types/yargs": { 478 | "version": "15.0.10", 479 | "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", 480 | "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", 481 | "requires": { 482 | "@types/yargs-parser": "*" 483 | } 484 | }, 485 | "@types/yargs-parser": { 486 | "version": "15.0.0", 487 | "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", 488 | "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" 489 | }, 490 | "acorn": { 491 | "version": "7.4.1", 492 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 493 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 494 | "dev": true 495 | }, 496 | "acorn-node": { 497 | "version": "1.8.2", 498 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", 499 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", 500 | "dev": true, 501 | "requires": { 502 | "acorn": "^7.0.0", 503 | "acorn-walk": "^7.0.0", 504 | "xtend": "^4.0.2" 505 | } 506 | }, 507 | "acorn-walk": { 508 | "version": "7.2.0", 509 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 510 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 511 | "dev": true 512 | }, 513 | "ansi-regex": { 514 | "version": "5.0.0", 515 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 516 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 517 | }, 518 | "ansi-styles": { 519 | "version": "3.2.1", 520 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 521 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 522 | "requires": { 523 | "color-convert": "^1.9.0" 524 | } 525 | }, 526 | "aria-query": { 527 | "version": "4.2.2", 528 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", 529 | "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", 530 | "requires": { 531 | "@babel/runtime": "^7.10.2", 532 | "@babel/runtime-corejs3": "^7.10.2" 533 | } 534 | }, 535 | "asynckit": { 536 | "version": "0.4.0", 537 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 538 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 539 | }, 540 | "at-least-node": { 541 | "version": "1.0.0", 542 | "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", 543 | "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", 544 | "dev": true 545 | }, 546 | "atob": { 547 | "version": "2.1.2", 548 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", 549 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" 550 | }, 551 | "autoprefixer": { 552 | "version": "10.0.2", 553 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.0.2.tgz", 554 | "integrity": "sha512-okBmu9OMdt6DNEcZmnl0IYVv8Xl/xYWRSnc2OJ9UJEOt1u30opG1B8aLsViqKryBaYv1SKB4f85fOGZs5zYxHQ==", 555 | "dev": true, 556 | "requires": { 557 | "browserslist": "^4.14.7", 558 | "caniuse-lite": "^1.0.30001157", 559 | "colorette": "^1.2.1", 560 | "normalize-range": "^0.1.2", 561 | "num2fraction": "^1.2.2", 562 | "postcss-value-parser": "^4.1.0" 563 | } 564 | }, 565 | "axios": { 566 | "version": "0.27.2", 567 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", 568 | "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", 569 | "requires": { 570 | "follow-redirects": "^1.14.9", 571 | "form-data": "^4.0.0" 572 | }, 573 | "dependencies": { 574 | "follow-redirects": { 575 | "version": "1.15.2", 576 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", 577 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" 578 | }, 579 | "form-data": { 580 | "version": "4.0.0", 581 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 582 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 583 | "requires": { 584 | "asynckit": "^0.4.0", 585 | "combined-stream": "^1.0.8", 586 | "mime-types": "^2.1.12" 587 | } 588 | } 589 | } 590 | }, 591 | "balanced-match": { 592 | "version": "1.0.0", 593 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 594 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 595 | "dev": true 596 | }, 597 | "brace-expansion": { 598 | "version": "1.1.11", 599 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 600 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 601 | "dev": true, 602 | "requires": { 603 | "balanced-match": "^1.0.0", 604 | "concat-map": "0.0.1" 605 | } 606 | }, 607 | "browserslist": { 608 | "version": "4.14.7", 609 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", 610 | "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", 611 | "dev": true, 612 | "requires": { 613 | "caniuse-lite": "^1.0.30001157", 614 | "colorette": "^1.2.1", 615 | "electron-to-chromium": "^1.3.591", 616 | "escalade": "^3.1.1", 617 | "node-releases": "^1.1.66" 618 | } 619 | }, 620 | "bytes": { 621 | "version": "3.0.0", 622 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 623 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", 624 | "dev": true 625 | }, 626 | "camelcase-css": { 627 | "version": "2.0.1", 628 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 629 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 630 | "dev": true 631 | }, 632 | "caniuse-lite": { 633 | "version": "1.0.30001159", 634 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz", 635 | "integrity": "sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA==", 636 | "dev": true 637 | }, 638 | "chalk": { 639 | "version": "2.4.2", 640 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 641 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 642 | "requires": { 643 | "ansi-styles": "^3.2.1", 644 | "escape-string-regexp": "^1.0.5", 645 | "supports-color": "^5.3.0" 646 | } 647 | }, 648 | "classnames": { 649 | "version": "2.2.6", 650 | "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", 651 | "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" 652 | }, 653 | "clsx": { 654 | "version": "1.1.1", 655 | "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", 656 | "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" 657 | }, 658 | "color": { 659 | "version": "3.1.3", 660 | "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", 661 | "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", 662 | "dev": true, 663 | "requires": { 664 | "color-convert": "^1.9.1", 665 | "color-string": "^1.5.4" 666 | } 667 | }, 668 | "color-convert": { 669 | "version": "1.9.3", 670 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 671 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 672 | "requires": { 673 | "color-name": "1.1.3" 674 | } 675 | }, 676 | "color-name": { 677 | "version": "1.1.3", 678 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 679 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 680 | }, 681 | "color-string": { 682 | "version": "1.5.4", 683 | "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", 684 | "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", 685 | "dev": true, 686 | "requires": { 687 | "color-name": "^1.0.0", 688 | "simple-swizzle": "^0.2.2" 689 | } 690 | }, 691 | "colorette": { 692 | "version": "1.2.1", 693 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", 694 | "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", 695 | "dev": true 696 | }, 697 | "combined-stream": { 698 | "version": "1.0.8", 699 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 700 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 701 | "requires": { 702 | "delayed-stream": "~1.0.0" 703 | } 704 | }, 705 | "concat-map": { 706 | "version": "0.0.1", 707 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 708 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 709 | "dev": true 710 | }, 711 | "cookie": { 712 | "version": "0.4.2", 713 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", 714 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" 715 | }, 716 | "core-js-pure": { 717 | "version": "3.7.0", 718 | "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.7.0.tgz", 719 | "integrity": "sha512-EZD2ckZysv8MMt4J6HSvS9K2GdtlZtdBncKAmF9lr2n0c9dJUaUN88PSTjvgwCgQPWKTkERXITgS6JJRAnljtg==" 720 | }, 721 | "css-unit-converter": { 722 | "version": "1.1.2", 723 | "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", 724 | "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", 725 | "dev": true 726 | }, 727 | "css-vendor": { 728 | "version": "2.0.8", 729 | "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", 730 | "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", 731 | "requires": { 732 | "@babel/runtime": "^7.8.3", 733 | "is-in-browser": "^1.0.2" 734 | } 735 | }, 736 | "css.escape": { 737 | "version": "1.5.1", 738 | "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", 739 | "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" 740 | }, 741 | "cssesc": { 742 | "version": "3.0.0", 743 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 744 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 745 | "dev": true 746 | }, 747 | "csstype": { 748 | "version": "2.6.17", 749 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz", 750 | "integrity": "sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A==" 751 | }, 752 | "decode-uri-component": { 753 | "version": "0.2.0", 754 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 755 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" 756 | }, 757 | "defined": { 758 | "version": "1.0.0", 759 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 760 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 761 | "dev": true 762 | }, 763 | "delayed-stream": { 764 | "version": "1.0.0", 765 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 766 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 767 | }, 768 | "detective": { 769 | "version": "5.2.0", 770 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", 771 | "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", 772 | "dev": true, 773 | "requires": { 774 | "acorn-node": "^1.6.1", 775 | "defined": "^1.0.0", 776 | "minimist": "^1.1.1" 777 | } 778 | }, 779 | "didyoumean": { 780 | "version": "1.2.1", 781 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz", 782 | "integrity": "sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=", 783 | "dev": true 784 | }, 785 | "diff-sequences": { 786 | "version": "26.6.2", 787 | "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", 788 | "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" 789 | }, 790 | "dom-accessibility-api": { 791 | "version": "0.5.4", 792 | "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz", 793 | "integrity": "sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ==" 794 | }, 795 | "dom-helpers": { 796 | "version": "5.2.1", 797 | "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", 798 | "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", 799 | "requires": { 800 | "@babel/runtime": "^7.8.7", 801 | "csstype": "^3.0.2" 802 | }, 803 | "dependencies": { 804 | "csstype": { 805 | "version": "3.0.8", 806 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", 807 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" 808 | } 809 | } 810 | }, 811 | "electron-to-chromium": { 812 | "version": "1.3.602", 813 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.602.tgz", 814 | "integrity": "sha512-+JbC10U8vpKAqAtrEqORdzaWewRgEj5DY+QQNyP/dxDTshPqqgpjrvt6smewKS/5F3vT5prYgg7/VTxb5FROjw==", 815 | "dev": true 816 | }, 817 | "escalade": { 818 | "version": "3.1.1", 819 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 820 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 821 | "dev": true 822 | }, 823 | "escape-string-regexp": { 824 | "version": "1.0.5", 825 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 826 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 827 | }, 828 | "exenv": { 829 | "version": "1.2.2", 830 | "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", 831 | "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" 832 | }, 833 | "fs-extra": { 834 | "version": "9.0.1", 835 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", 836 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", 837 | "dev": true, 838 | "requires": { 839 | "at-least-node": "^1.0.0", 840 | "graceful-fs": "^4.2.0", 841 | "jsonfile": "^6.0.1", 842 | "universalify": "^1.0.0" 843 | } 844 | }, 845 | "fs.realpath": { 846 | "version": "1.0.0", 847 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 848 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 849 | "dev": true 850 | }, 851 | "function-bind": { 852 | "version": "1.1.1", 853 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 854 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 855 | "dev": true 856 | }, 857 | "glob": { 858 | "version": "7.1.6", 859 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 860 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 861 | "dev": true, 862 | "requires": { 863 | "fs.realpath": "^1.0.0", 864 | "inflight": "^1.0.4", 865 | "inherits": "2", 866 | "minimatch": "^3.0.4", 867 | "once": "^1.3.0", 868 | "path-is-absolute": "^1.0.0" 869 | } 870 | }, 871 | "graceful-fs": { 872 | "version": "4.2.4", 873 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", 874 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", 875 | "dev": true 876 | }, 877 | "has": { 878 | "version": "1.0.3", 879 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 880 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 881 | "dev": true, 882 | "requires": { 883 | "function-bind": "^1.1.1" 884 | } 885 | }, 886 | "has-flag": { 887 | "version": "3.0.0", 888 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 889 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 890 | }, 891 | "history": { 892 | "version": "4.10.1", 893 | "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", 894 | "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", 895 | "requires": { 896 | "@babel/runtime": "^7.1.2", 897 | "loose-envify": "^1.2.0", 898 | "resolve-pathname": "^3.0.0", 899 | "tiny-invariant": "^1.0.2", 900 | "tiny-warning": "^1.0.0", 901 | "value-equal": "^1.0.1" 902 | } 903 | }, 904 | "hoist-non-react-statics": { 905 | "version": "3.3.2", 906 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", 907 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", 908 | "requires": { 909 | "react-is": "^16.7.0" 910 | } 911 | }, 912 | "html-tags": { 913 | "version": "3.1.0", 914 | "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", 915 | "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", 916 | "dev": true 917 | }, 918 | "hyphenate-style-name": { 919 | "version": "1.0.4", 920 | "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", 921 | "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" 922 | }, 923 | "indent-string": { 924 | "version": "4.0.0", 925 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 926 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" 927 | }, 928 | "indexes-of": { 929 | "version": "1.0.1", 930 | "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", 931 | "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", 932 | "dev": true 933 | }, 934 | "inflight": { 935 | "version": "1.0.6", 936 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 937 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 938 | "dev": true, 939 | "requires": { 940 | "once": "^1.3.0", 941 | "wrappy": "1" 942 | } 943 | }, 944 | "inherits": { 945 | "version": "2.0.4", 946 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 947 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 948 | }, 949 | "is-core-module": { 950 | "version": "2.1.0", 951 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", 952 | "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", 953 | "dev": true, 954 | "requires": { 955 | "has": "^1.0.3" 956 | } 957 | }, 958 | "is-in-browser": { 959 | "version": "1.1.3", 960 | "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", 961 | "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" 962 | }, 963 | "isarray": { 964 | "version": "1.0.0", 965 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 966 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 967 | "dev": true 968 | }, 969 | "jest-diff": { 970 | "version": "26.6.2", 971 | "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", 972 | "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", 973 | "requires": { 974 | "chalk": "^4.0.0", 975 | "diff-sequences": "^26.6.2", 976 | "jest-get-type": "^26.3.0", 977 | "pretty-format": "^26.6.2" 978 | }, 979 | "dependencies": { 980 | "ansi-styles": { 981 | "version": "4.3.0", 982 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 983 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 984 | "requires": { 985 | "color-convert": "^2.0.1" 986 | } 987 | }, 988 | "chalk": { 989 | "version": "4.1.0", 990 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 991 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 992 | "requires": { 993 | "ansi-styles": "^4.1.0", 994 | "supports-color": "^7.1.0" 995 | } 996 | }, 997 | "color-convert": { 998 | "version": "2.0.1", 999 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1000 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1001 | "requires": { 1002 | "color-name": "~1.1.4" 1003 | } 1004 | }, 1005 | "color-name": { 1006 | "version": "1.1.4", 1007 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1008 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 1009 | }, 1010 | "has-flag": { 1011 | "version": "4.0.0", 1012 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1013 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 1014 | }, 1015 | "supports-color": { 1016 | "version": "7.2.0", 1017 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1018 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1019 | "requires": { 1020 | "has-flag": "^4.0.0" 1021 | } 1022 | } 1023 | } 1024 | }, 1025 | "jest-get-type": { 1026 | "version": "26.3.0", 1027 | "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", 1028 | "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" 1029 | }, 1030 | "js-tokens": { 1031 | "version": "4.0.0", 1032 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1033 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1034 | }, 1035 | "jsonfile": { 1036 | "version": "6.1.0", 1037 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 1038 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 1039 | "dev": true, 1040 | "requires": { 1041 | "graceful-fs": "^4.1.6", 1042 | "universalify": "^2.0.0" 1043 | }, 1044 | "dependencies": { 1045 | "universalify": { 1046 | "version": "2.0.0", 1047 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 1048 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", 1049 | "dev": true 1050 | } 1051 | } 1052 | }, 1053 | "jss": { 1054 | "version": "10.7.1", 1055 | "resolved": "https://registry.npmjs.org/jss/-/jss-10.7.1.tgz", 1056 | "integrity": "sha512-5QN8JSVZR6cxpZNeGfzIjqPEP+ZJwJJfZbXmeABNdxiExyO+eJJDy6WDtqTf8SDKnbL5kZllEpAP71E/Lt7PXg==", 1057 | "requires": { 1058 | "@babel/runtime": "^7.3.1", 1059 | "csstype": "^3.0.2", 1060 | "is-in-browser": "^1.1.3", 1061 | "tiny-warning": "^1.0.2" 1062 | }, 1063 | "dependencies": { 1064 | "csstype": { 1065 | "version": "3.0.8", 1066 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", 1067 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" 1068 | } 1069 | } 1070 | }, 1071 | "jss-plugin-camel-case": { 1072 | "version": "10.7.1", 1073 | "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.7.1.tgz", 1074 | "integrity": "sha512-+ioIyWvmAfgDCWXsQcW1NMnLBvRinOVFkSYJUgewQ6TynOcSj5F1bSU23B7z0p1iqK0PPHIU62xY1iNJD33WGA==", 1075 | "requires": { 1076 | "@babel/runtime": "^7.3.1", 1077 | "hyphenate-style-name": "^1.0.3", 1078 | "jss": "10.7.1" 1079 | } 1080 | }, 1081 | "jss-plugin-default-unit": { 1082 | "version": "10.7.1", 1083 | "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.7.1.tgz", 1084 | "integrity": "sha512-tW+dfYVNARBQb/ONzBwd8uyImigyzMiAEDai+AbH5rcHg5h3TtqhAkxx06iuZiT/dZUiFdSKlbe3q9jZGAPIwA==", 1085 | "requires": { 1086 | "@babel/runtime": "^7.3.1", 1087 | "jss": "10.7.1" 1088 | } 1089 | }, 1090 | "jss-plugin-global": { 1091 | "version": "10.7.1", 1092 | "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.7.1.tgz", 1093 | "integrity": "sha512-FbxCnu44IkK/bw8X3CwZKmcAnJqjAb9LujlAc/aP0bMSdVa3/MugKQRyeQSu00uGL44feJJDoeXXiHOakBr/Zw==", 1094 | "requires": { 1095 | "@babel/runtime": "^7.3.1", 1096 | "jss": "10.7.1" 1097 | } 1098 | }, 1099 | "jss-plugin-nested": { 1100 | "version": "10.7.1", 1101 | "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.7.1.tgz", 1102 | "integrity": "sha512-RNbICk7FlYKaJyv9tkMl7s6FFfeLA3ubNIFKvPqaWtADK0KUaPsPXVYBkAu4x1ItgsWx67xvReMrkcKA0jSXfA==", 1103 | "requires": { 1104 | "@babel/runtime": "^7.3.1", 1105 | "jss": "10.7.1", 1106 | "tiny-warning": "^1.0.2" 1107 | } 1108 | }, 1109 | "jss-plugin-props-sort": { 1110 | "version": "10.7.1", 1111 | "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.7.1.tgz", 1112 | "integrity": "sha512-eyd5FhA+J0QrpqXxO7YNF/HMSXXl4pB0EmUdY4vSJI4QG22F59vQ6AHtP6fSwhmBdQ98Qd9gjfO+RMxcE39P1A==", 1113 | "requires": { 1114 | "@babel/runtime": "^7.3.1", 1115 | "jss": "10.7.1" 1116 | } 1117 | }, 1118 | "jss-plugin-rule-value-function": { 1119 | "version": "10.7.1", 1120 | "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.7.1.tgz", 1121 | "integrity": "sha512-fGAAImlbaHD3fXAHI3ooX6aRESOl5iBt3LjpVjxs9II5u9tzam7pqFUmgTcrip9VpRqYHn8J3gA7kCtm8xKwHg==", 1122 | "requires": { 1123 | "@babel/runtime": "^7.3.1", 1124 | "jss": "10.7.1", 1125 | "tiny-warning": "^1.0.2" 1126 | } 1127 | }, 1128 | "jss-plugin-vendor-prefixer": { 1129 | "version": "10.7.1", 1130 | "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.7.1.tgz", 1131 | "integrity": "sha512-1UHFmBn7hZNsHXTkLLOL8abRl8vi+D1EVzWD4WmLFj55vawHZfnH1oEz6TUf5Y61XHv0smdHabdXds6BgOXe3A==", 1132 | "requires": { 1133 | "@babel/runtime": "^7.3.1", 1134 | "css-vendor": "^2.0.8", 1135 | "jss": "10.7.1" 1136 | } 1137 | }, 1138 | "line-column": { 1139 | "version": "1.0.2", 1140 | "resolved": "https://registry.npmjs.org/line-column/-/line-column-1.0.2.tgz", 1141 | "integrity": "sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI=", 1142 | "dev": true, 1143 | "requires": { 1144 | "isarray": "^1.0.0", 1145 | "isobject": "^2.0.0" 1146 | }, 1147 | "dependencies": { 1148 | "isobject": { 1149 | "version": "2.1.0", 1150 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 1151 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 1152 | "dev": true, 1153 | "requires": { 1154 | "isarray": "1.0.0" 1155 | } 1156 | } 1157 | } 1158 | }, 1159 | "lodash": { 1160 | "version": "4.17.20", 1161 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", 1162 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" 1163 | }, 1164 | "lodash.toarray": { 1165 | "version": "4.4.0", 1166 | "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", 1167 | "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", 1168 | "dev": true 1169 | }, 1170 | "loose-envify": { 1171 | "version": "1.4.0", 1172 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1173 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1174 | "requires": { 1175 | "js-tokens": "^3.0.0 || ^4.0.0" 1176 | } 1177 | }, 1178 | "lz-string": { 1179 | "version": "1.4.4", 1180 | "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", 1181 | "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" 1182 | }, 1183 | "mime-db": { 1184 | "version": "1.44.0", 1185 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 1186 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" 1187 | }, 1188 | "mime-types": { 1189 | "version": "2.1.27", 1190 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 1191 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 1192 | "requires": { 1193 | "mime-db": "1.44.0" 1194 | } 1195 | }, 1196 | "min-indent": { 1197 | "version": "1.0.1", 1198 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 1199 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" 1200 | }, 1201 | "mini-create-react-context": { 1202 | "version": "0.4.1", 1203 | "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", 1204 | "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", 1205 | "requires": { 1206 | "@babel/runtime": "^7.12.1", 1207 | "tiny-warning": "^1.0.3" 1208 | } 1209 | }, 1210 | "minimatch": { 1211 | "version": "3.0.4", 1212 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1213 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1214 | "dev": true, 1215 | "requires": { 1216 | "brace-expansion": "^1.1.7" 1217 | } 1218 | }, 1219 | "minimist": { 1220 | "version": "1.2.5", 1221 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1222 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 1223 | "dev": true 1224 | }, 1225 | "modern-normalize": { 1226 | "version": "1.0.0", 1227 | "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.0.0.tgz", 1228 | "integrity": "sha512-1lM+BMLGuDfsdwf3rsgBSrxJwAZHFIrQ8YR61xIqdHo0uNKI9M52wNpHSrliZATJp51On6JD0AfRxd4YGSU0lw==", 1229 | "dev": true 1230 | }, 1231 | "nanoid": { 1232 | "version": "3.1.16", 1233 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.16.tgz", 1234 | "integrity": "sha512-+AK8MN0WHji40lj8AEuwLOvLSbWYApQpre/aFJZD71r43wVRLrOYS4FmJOPQYon1TqB462RzrrxlfA74XRES8w==", 1235 | "dev": true 1236 | }, 1237 | "node-emoji": { 1238 | "version": "1.10.0", 1239 | "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", 1240 | "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", 1241 | "dev": true, 1242 | "requires": { 1243 | "lodash.toarray": "^4.4.0" 1244 | } 1245 | }, 1246 | "node-releases": { 1247 | "version": "1.1.67", 1248 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", 1249 | "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", 1250 | "dev": true 1251 | }, 1252 | "normalize-range": { 1253 | "version": "0.1.2", 1254 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 1255 | "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", 1256 | "dev": true 1257 | }, 1258 | "num2fraction": { 1259 | "version": "1.2.2", 1260 | "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", 1261 | "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", 1262 | "dev": true 1263 | }, 1264 | "object-assign": { 1265 | "version": "4.1.1", 1266 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1267 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 1268 | }, 1269 | "object-hash": { 1270 | "version": "2.0.3", 1271 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", 1272 | "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==", 1273 | "dev": true 1274 | }, 1275 | "once": { 1276 | "version": "1.4.0", 1277 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1278 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1279 | "dev": true, 1280 | "requires": { 1281 | "wrappy": "1" 1282 | } 1283 | }, 1284 | "particles.js": { 1285 | "version": "2.0.0", 1286 | "resolved": "https://registry.npmjs.org/particles.js/-/particles.js-2.0.0.tgz", 1287 | "integrity": "sha1-IThsQyjWx/lngKIB6W7t/AnHNvY=" 1288 | }, 1289 | "path-is-absolute": { 1290 | "version": "1.0.1", 1291 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1292 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1293 | "dev": true 1294 | }, 1295 | "path-parse": { 1296 | "version": "1.0.6", 1297 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1298 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1299 | "dev": true 1300 | }, 1301 | "popper.js": { 1302 | "version": "1.16.1-lts", 1303 | "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", 1304 | "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" 1305 | }, 1306 | "postcss": { 1307 | "version": "8.1.8", 1308 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.1.8.tgz", 1309 | "integrity": "sha512-hO6jFWBy0QnBBRaw+s0F4hVPKGDICec/nLNEG1D4qqw9/LBzWMkTjckqqELXAo0J42jN8GFZXtgQfezEaoG9gQ==", 1310 | "dev": true, 1311 | "requires": { 1312 | "colorette": "^1.2.1", 1313 | "line-column": "^1.0.2", 1314 | "nanoid": "^3.1.16", 1315 | "source-map": "^0.6.1" 1316 | }, 1317 | "dependencies": { 1318 | "source-map": { 1319 | "version": "0.6.1", 1320 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1321 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1322 | "dev": true 1323 | } 1324 | } 1325 | }, 1326 | "postcss-functions": { 1327 | "version": "3.0.0", 1328 | "resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz", 1329 | "integrity": "sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=", 1330 | "dev": true, 1331 | "requires": { 1332 | "glob": "^7.1.2", 1333 | "object-assign": "^4.1.1", 1334 | "postcss": "^6.0.9", 1335 | "postcss-value-parser": "^3.3.0" 1336 | }, 1337 | "dependencies": { 1338 | "postcss": { 1339 | "version": "6.0.23", 1340 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", 1341 | "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", 1342 | "dev": true, 1343 | "requires": { 1344 | "chalk": "^2.4.1", 1345 | "source-map": "^0.6.1", 1346 | "supports-color": "^5.4.0" 1347 | } 1348 | }, 1349 | "postcss-value-parser": { 1350 | "version": "3.3.1", 1351 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", 1352 | "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", 1353 | "dev": true 1354 | }, 1355 | "source-map": { 1356 | "version": "0.6.1", 1357 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1358 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1359 | "dev": true 1360 | } 1361 | } 1362 | }, 1363 | "postcss-js": { 1364 | "version": "3.0.3", 1365 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz", 1366 | "integrity": "sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==", 1367 | "dev": true, 1368 | "requires": { 1369 | "camelcase-css": "^2.0.1", 1370 | "postcss": "^8.1.6" 1371 | } 1372 | }, 1373 | "postcss-nested": { 1374 | "version": "5.0.1", 1375 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.1.tgz", 1376 | "integrity": "sha512-ZHNSAoHrMtbEzjq+Qs4R0gHijpXc6F1YUv4TGmGaz7rtfMvVJBbu5hMOH+CrhEaljQpEmx5N/P8i1pXTkbVAmg==", 1377 | "dev": true, 1378 | "requires": { 1379 | "postcss-selector-parser": "^6.0.4" 1380 | } 1381 | }, 1382 | "postcss-selector-parser": { 1383 | "version": "6.0.4", 1384 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", 1385 | "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", 1386 | "dev": true, 1387 | "requires": { 1388 | "cssesc": "^3.0.0", 1389 | "indexes-of": "^1.0.1", 1390 | "uniq": "^1.0.1", 1391 | "util-deprecate": "^1.0.2" 1392 | } 1393 | }, 1394 | "postcss-value-parser": { 1395 | "version": "4.1.0", 1396 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", 1397 | "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", 1398 | "dev": true 1399 | }, 1400 | "pretty-format": { 1401 | "version": "26.6.2", 1402 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", 1403 | "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", 1404 | "requires": { 1405 | "@jest/types": "^26.6.2", 1406 | "ansi-regex": "^5.0.0", 1407 | "ansi-styles": "^4.0.0", 1408 | "react-is": "^17.0.1" 1409 | }, 1410 | "dependencies": { 1411 | "ansi-styles": { 1412 | "version": "4.3.0", 1413 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1414 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1415 | "requires": { 1416 | "color-convert": "^2.0.1" 1417 | } 1418 | }, 1419 | "color-convert": { 1420 | "version": "2.0.1", 1421 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1422 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1423 | "requires": { 1424 | "color-name": "~1.1.4" 1425 | } 1426 | }, 1427 | "color-name": { 1428 | "version": "1.1.4", 1429 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1430 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 1431 | }, 1432 | "react-is": { 1433 | "version": "17.0.1", 1434 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", 1435 | "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" 1436 | } 1437 | } 1438 | }, 1439 | "pretty-hrtime": { 1440 | "version": "1.0.3", 1441 | "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", 1442 | "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", 1443 | "dev": true 1444 | }, 1445 | "prop-types": { 1446 | "version": "15.7.2", 1447 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", 1448 | "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", 1449 | "requires": { 1450 | "loose-envify": "^1.4.0", 1451 | "object-assign": "^4.1.1", 1452 | "react-is": "^16.8.1" 1453 | } 1454 | }, 1455 | "purgecss": { 1456 | "version": "3.0.0", 1457 | "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-3.0.0.tgz", 1458 | "integrity": "sha512-t3FGCwyX9XWV3ffvnAXTw6Y3Z9kNlcgm14VImNK66xKi5sdqxSA2I0SFYxtmZbAKuIZVckPdazw5iKL/oY/2TA==", 1459 | "dev": true, 1460 | "requires": { 1461 | "commander": "^6.0.0", 1462 | "glob": "^7.0.0", 1463 | "postcss": "7.0.32", 1464 | "postcss-selector-parser": "^6.0.2" 1465 | }, 1466 | "dependencies": { 1467 | "commander": { 1468 | "version": "6.2.0", 1469 | "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", 1470 | "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", 1471 | "dev": true 1472 | }, 1473 | "postcss": { 1474 | "version": "7.0.32", 1475 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", 1476 | "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", 1477 | "dev": true, 1478 | "requires": { 1479 | "chalk": "^2.4.2", 1480 | "source-map": "^0.6.1", 1481 | "supports-color": "^6.1.0" 1482 | } 1483 | }, 1484 | "source-map": { 1485 | "version": "0.6.1", 1486 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1487 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1488 | "dev": true 1489 | }, 1490 | "supports-color": { 1491 | "version": "6.1.0", 1492 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 1493 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 1494 | "dev": true, 1495 | "requires": { 1496 | "has-flag": "^3.0.0" 1497 | } 1498 | } 1499 | } 1500 | }, 1501 | "react": { 1502 | "version": "17.0.1", 1503 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", 1504 | "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", 1505 | "requires": { 1506 | "loose-envify": "^1.1.0", 1507 | "object-assign": "^4.1.1" 1508 | } 1509 | }, 1510 | "react-dom": { 1511 | "version": "17.0.1", 1512 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", 1513 | "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", 1514 | "requires": { 1515 | "loose-envify": "^1.1.0", 1516 | "object-assign": "^4.1.1", 1517 | "scheduler": "^0.20.1" 1518 | } 1519 | }, 1520 | "react-is": { 1521 | "version": "16.13.1", 1522 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 1523 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 1524 | }, 1525 | "react-lifecycles-compat": { 1526 | "version": "3.0.4", 1527 | "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", 1528 | "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" 1529 | }, 1530 | "react-modal": { 1531 | "version": "3.11.2", 1532 | "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.11.2.tgz", 1533 | "integrity": "sha512-o8gvvCOFaG1T7W6JUvsYjRjMVToLZgLIsi5kdhFIQCtHxDkA47LznX62j+l6YQkpXDbvQegsDyxe/+JJsFQN7w==", 1534 | "requires": { 1535 | "exenv": "^1.2.0", 1536 | "prop-types": "^15.5.10", 1537 | "react-lifecycles-compat": "^3.0.0", 1538 | "warning": "^4.0.3" 1539 | } 1540 | }, 1541 | "react-router": { 1542 | "version": "5.2.1", 1543 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.1.tgz", 1544 | "integrity": "sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==", 1545 | "requires": { 1546 | "@babel/runtime": "^7.12.13", 1547 | "history": "^4.9.0", 1548 | "hoist-non-react-statics": "^3.1.0", 1549 | "loose-envify": "^1.3.1", 1550 | "mini-create-react-context": "^0.4.0", 1551 | "path-to-regexp": "^1.7.0", 1552 | "prop-types": "^15.6.2", 1553 | "react-is": "^16.6.0", 1554 | "tiny-invariant": "^1.0.2", 1555 | "tiny-warning": "^1.0.0" 1556 | }, 1557 | "dependencies": { 1558 | "isarray": { 1559 | "version": "0.0.1", 1560 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1561 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" 1562 | }, 1563 | "path-to-regexp": { 1564 | "version": "1.8.0", 1565 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", 1566 | "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", 1567 | "requires": { 1568 | "isarray": "0.0.1" 1569 | } 1570 | } 1571 | } 1572 | }, 1573 | "react-router-dom": { 1574 | "version": "5.2.1", 1575 | "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.1.tgz", 1576 | "integrity": "sha512-xhFFkBGVcIVPbWM2KEYzED+nuHQPmulVa7sqIs3ESxzYd1pYg8N8rxPnQ4T2o1zu/2QeDUWcaqST131SO1LR3w==", 1577 | "requires": { 1578 | "@babel/runtime": "^7.12.13", 1579 | "history": "^4.9.0", 1580 | "loose-envify": "^1.3.1", 1581 | "prop-types": "^15.6.2", 1582 | "react-router": "5.2.1", 1583 | "tiny-invariant": "^1.0.2", 1584 | "tiny-warning": "^1.0.0" 1585 | } 1586 | }, 1587 | "react-transition-group": { 1588 | "version": "4.4.2", 1589 | "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", 1590 | "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", 1591 | "requires": { 1592 | "@babel/runtime": "^7.5.5", 1593 | "dom-helpers": "^5.0.1", 1594 | "loose-envify": "^1.4.0", 1595 | "prop-types": "^15.6.2" 1596 | } 1597 | }, 1598 | "redent": { 1599 | "version": "3.0.0", 1600 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", 1601 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", 1602 | "requires": { 1603 | "indent-string": "^4.0.0", 1604 | "strip-indent": "^3.0.0" 1605 | } 1606 | }, 1607 | "reduce-css-calc": { 1608 | "version": "2.1.7", 1609 | "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz", 1610 | "integrity": "sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==", 1611 | "dev": true, 1612 | "requires": { 1613 | "css-unit-converter": "^1.1.1", 1614 | "postcss-value-parser": "^3.3.0" 1615 | }, 1616 | "dependencies": { 1617 | "postcss-value-parser": { 1618 | "version": "3.3.1", 1619 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", 1620 | "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", 1621 | "dev": true 1622 | } 1623 | } 1624 | }, 1625 | "regenerator-runtime": { 1626 | "version": "0.13.7", 1627 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", 1628 | "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" 1629 | }, 1630 | "resolve-pathname": { 1631 | "version": "3.0.0", 1632 | "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", 1633 | "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" 1634 | }, 1635 | "scheduler": { 1636 | "version": "0.20.1", 1637 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", 1638 | "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", 1639 | "requires": { 1640 | "loose-envify": "^1.1.0", 1641 | "object-assign": "^4.1.1" 1642 | } 1643 | }, 1644 | "simple-swizzle": { 1645 | "version": "0.2.2", 1646 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 1647 | "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", 1648 | "dev": true, 1649 | "requires": { 1650 | "is-arrayish": "^0.3.1" 1651 | }, 1652 | "dependencies": { 1653 | "is-arrayish": { 1654 | "version": "0.3.2", 1655 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 1656 | "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 1657 | "dev": true 1658 | } 1659 | } 1660 | }, 1661 | "strip-indent": { 1662 | "version": "3.0.0", 1663 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 1664 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 1665 | "requires": { 1666 | "min-indent": "^1.0.0" 1667 | } 1668 | }, 1669 | "supports-color": { 1670 | "version": "5.5.0", 1671 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1672 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1673 | "requires": { 1674 | "has-flag": "^3.0.0" 1675 | } 1676 | }, 1677 | "tailwindcss": { 1678 | "version": "2.0.1", 1679 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.0.1.tgz", 1680 | "integrity": "sha512-57G3jdcVBWTPkHCNSAfDAo1Qp2Nkr4H6WnLD0luNFh1td+KwQp9FOVcqj0SYBH6qwVQJawzT+0/zLxzKmyznGw==", 1681 | "dev": true, 1682 | "requires": { 1683 | "@fullhuman/postcss-purgecss": "^3.0.0", 1684 | "bytes": "^3.0.0", 1685 | "chalk": "^4.1.0", 1686 | "color": "^3.1.3", 1687 | "detective": "^5.2.0", 1688 | "didyoumean": "^1.2.1", 1689 | "fs-extra": "^9.0.1", 1690 | "html-tags": "^3.1.0", 1691 | "lodash": "^4.17.20", 1692 | "modern-normalize": "^1.0.0", 1693 | "node-emoji": "^1.8.1", 1694 | "object-hash": "^2.0.3", 1695 | "postcss-functions": "^3", 1696 | "postcss-js": "^3.0.3", 1697 | "postcss-nested": "^5.0.1", 1698 | "postcss-selector-parser": "^6.0.4", 1699 | "postcss-value-parser": "^4.1.0", 1700 | "pretty-hrtime": "^1.0.3", 1701 | "reduce-css-calc": "^2.1.6", 1702 | "resolve": "^1.19.0" 1703 | }, 1704 | "dependencies": { 1705 | "ansi-styles": { 1706 | "version": "4.3.0", 1707 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1708 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1709 | "dev": true, 1710 | "requires": { 1711 | "color-convert": "^2.0.1" 1712 | } 1713 | }, 1714 | "chalk": { 1715 | "version": "4.1.0", 1716 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 1717 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 1718 | "dev": true, 1719 | "requires": { 1720 | "ansi-styles": "^4.1.0", 1721 | "supports-color": "^7.1.0" 1722 | } 1723 | }, 1724 | "color-convert": { 1725 | "version": "2.0.1", 1726 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1727 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1728 | "dev": true, 1729 | "requires": { 1730 | "color-name": "~1.1.4" 1731 | } 1732 | }, 1733 | "color-name": { 1734 | "version": "1.1.4", 1735 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1736 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1737 | "dev": true 1738 | }, 1739 | "has-flag": { 1740 | "version": "4.0.0", 1741 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1742 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1743 | "dev": true 1744 | }, 1745 | "resolve": { 1746 | "version": "1.19.0", 1747 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", 1748 | "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", 1749 | "dev": true, 1750 | "requires": { 1751 | "is-core-module": "^2.1.0", 1752 | "path-parse": "^1.0.6" 1753 | } 1754 | }, 1755 | "supports-color": { 1756 | "version": "7.2.0", 1757 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1758 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1759 | "dev": true, 1760 | "requires": { 1761 | "has-flag": "^4.0.0" 1762 | } 1763 | } 1764 | } 1765 | }, 1766 | "tiny-invariant": { 1767 | "version": "1.1.0", 1768 | "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", 1769 | "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" 1770 | }, 1771 | "tiny-warning": { 1772 | "version": "1.0.3", 1773 | "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", 1774 | "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" 1775 | }, 1776 | "uniq": { 1777 | "version": "1.0.1", 1778 | "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", 1779 | "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", 1780 | "dev": true 1781 | }, 1782 | "universal-cookie": { 1783 | "version": "4.0.4", 1784 | "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-4.0.4.tgz", 1785 | "integrity": "sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw==", 1786 | "requires": { 1787 | "@types/cookie": "^0.3.3", 1788 | "cookie": "^0.4.0" 1789 | } 1790 | }, 1791 | "universalify": { 1792 | "version": "1.0.0", 1793 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", 1794 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", 1795 | "dev": true 1796 | }, 1797 | "util-deprecate": { 1798 | "version": "1.0.2", 1799 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1800 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1801 | "dev": true 1802 | }, 1803 | "value-equal": { 1804 | "version": "1.0.1", 1805 | "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", 1806 | "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" 1807 | }, 1808 | "warning": { 1809 | "version": "4.0.3", 1810 | "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", 1811 | "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", 1812 | "requires": { 1813 | "loose-envify": "^1.0.0" 1814 | } 1815 | }, 1816 | "web-vitals": { 1817 | "version": "0.2.4", 1818 | "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz", 1819 | "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==" 1820 | }, 1821 | "wrappy": { 1822 | "version": "1.0.2", 1823 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1824 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1825 | "dev": true 1826 | }, 1827 | "xtend": { 1828 | "version": "4.0.2", 1829 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1830 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 1831 | "dev": true 1832 | } 1833 | } 1834 | } 1835 | -------------------------------------------------------------------------------- /client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "alan-react", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@alan-ai/alan-sdk-web": "^1.8.28", 7 | "@material-ui/core": "^4.12.3", 8 | "@material-ui/icons": "^4.11.2", 9 | "@testing-library/jest-dom": "^5.11.6", 10 | "@testing-library/react": "^11.2.1", 11 | "@testing-library/user-event": "^12.2.2", 12 | "axios": "^0.27.2", 13 | "classnames": "^2.2.6", 14 | "particles.js": "^2.0.0", 15 | "react": "^17.0.1", 16 | "react-dom": "^17.0.1", 17 | "react-modal": "^3.11.2", 18 | "react-particles-js": "^3.5.3", 19 | "react-router-dom": "^5.2.1", 20 | "react-scripts": "^4.0.3", 21 | "tsparticles": "^1.34.0", 22 | "universal-cookie": "^4.0.4", 23 | "web-vitals": "^0.2.4" 24 | }, 25 | "scripts": { 26 | "start": "react-scripts start", 27 | "build": "react-scripts build", 28 | "test": "react-scripts test", 29 | "eject": "react-scripts eject" 30 | }, 31 | "eslintConfig": { 32 | "extends": [ 33 | "react-app", 34 | "react-app/jest" 35 | ] 36 | }, 37 | "browserslist": { 38 | "production": [ 39 | ">0.2%", 40 | "not dead", 41 | "not op_mini all" 42 | ], 43 | "development": [ 44 | "last 1 chrome version", 45 | "last 1 firefox version", 46 | "last 1 safari version" 47 | ] 48 | }, 49 | "devDependencies": { 50 | "autoprefixer": "^10.0.2", 51 | "postcss": "^8.1.8", 52 | "tailwindcss": "^2.0.1" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shazm12/Ai-based-Ecommerce-web-app/c34e02ca7a6d84ce21154947fe02b82b10da88fe/client/public/favicon.ico -------------------------------------------------------------------------------- /client/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 14 | 18 | 19 | 28 | React App 29 | 30 | 31 | 32 |
33 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shazm12/Ai-based-Ecommerce-web-app/c34e02ca7a6d84ce21154947fe02b82b10da88fe/client/public/logo192.png -------------------------------------------------------------------------------- /client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shazm12/Ai-based-Ecommerce-web-app/c34e02ca7a6d84ce21154947fe02b82b10da88fe/client/public/logo512.png -------------------------------------------------------------------------------- /client/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /client/src.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shazm12/Ai-based-Ecommerce-web-app/c34e02ca7a6d84ce21154947fe02b82b10da88fe/client/src.zip -------------------------------------------------------------------------------- /client/src/App.js: -------------------------------------------------------------------------------- 1 | 2 | import MainStore from "./components/MainStore" 3 | import Login from './components/Login' 4 | import Register from './components/Register' 5 | import Success from './components/Success' 6 | import { BrowserRouter as Router,Switch,Route } from 'react-router-dom' 7 | 8 | import Checkout from './components/Checkout' 9 | import OrderDetails from "./components/OrderDetails" 10 | 11 | function App() { 12 | 13 | return ( 14 | <> 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | ) 45 | } 46 | 47 | export default App 48 | -------------------------------------------------------------------------------- /client/src/components/Cart.js: -------------------------------------------------------------------------------- 1 | import CartItem from "./CartItem" 2 | import classnames from "classnames" 3 | import formatCurrency from "../util/formatCurrency" 4 | import { useCart } from "../context/CartContext" 5 | import { useHistory } from 'react-router-dom'; 6 | 7 | 8 | 9 | export default function Cart() { 10 | const { 11 | cart, 12 | showCartItems, 13 | setShowCartItems, 14 | showCart, 15 | checkout 16 | } = useCart() 17 | 18 | const history = useHistory(); 19 | const totalCents = cart.reduce((sum, entry) => { 20 | return sum + entry.item.priceCents * entry.quantity 21 | }, 0) 22 | 23 | return ( 24 |
25 |
36 |
40 |
41 | {cart.map(entry => ( 42 | 43 | ))} 44 |
45 |
46 | Total 47 | 48 | {formatCurrency(totalCents / 100)} 49 | 50 |
51 | 61 |
62 |
63 | 84 |
85 | ) 86 | } 87 | -------------------------------------------------------------------------------- /client/src/components/CartItem.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import formatCurrency from "../util/formatCurrency" 3 | import { useCart } from "../context/CartContext" 4 | 5 | export default function CartItem({ entry }) { 6 | const { removeFromCart } = useCart() 7 | 8 | function removeItem() { 9 | removeFromCart(entry.itemId) 10 | } 11 | 12 | return ( 13 |
14 |
15 | ecommerce 20 | 26 |
27 |
28 |
29 |

30 | {entry.item.name} 31 |

32 | {entry.quantity > 1 && ( 33 | 34 | x{entry.quantity} 35 | 36 | )} 37 |
38 |
39 | {formatCurrency((entry.item.priceCents * entry.quantity) / 100)} 40 |
41 |
42 |
43 | ) 44 | } 45 | -------------------------------------------------------------------------------- /client/src/components/Checkout.js: -------------------------------------------------------------------------------- 1 | import React, { useState,useEffect } from 'react' 2 | import './css/Checkout.css' 3 | import Cookies from 'universal-cookie' 4 | import axios from '../util/axios' 5 | import formatCurrency from "../util/formatCurrency" 6 | import { useCart } from "../context/CartContext" 7 | import storeItems from "../items.json" 8 | import Footer from './Footer' 9 | import { useHistory } from 'react-router-dom'; 10 | 11 | 12 | 13 | 14 | 15 | 16 | function Checkout() { 17 | 18 | 19 | 20 | const cookies = new Cookies(); 21 | const username = cookies.get('username'); 22 | const totalamt = cookies.get('totalamt'); 23 | let cartitems; 24 | if(cookies.get('cartitems')) { 25 | cartitems = cookies.get('cartitems')[0]; 26 | } else { 27 | cartitems = ' '; 28 | } 29 | 30 | const history = useHistory(); 31 | console.log(cartitems); 32 | const finalcartitems = cartitems.map((item,idx) => { 33 | 34 | var info = { 35 | "item_id": item.itemId-1, 36 | "itemname" : storeItems[item.itemId -1].name, 37 | "quantity" : item.quantity 38 | } 39 | 40 | return info; 41 | }) 42 | console.log(finalcartitems); 43 | 44 | const { 45 | cart, 46 | showCartItems, 47 | setShowCartItems, 48 | showCart, 49 | checkout 50 | } = useCart() 51 | 52 | 53 | const [phoneno, setPhoneNo ] = useState(""); 54 | const [address, setAddress ] = useState(""); 55 | const [email, setEmail ] = useState(""); 56 | const [error,setError] = useState(false); 57 | 58 | 59 | 60 | 61 | const userdt = async() => { 62 | 63 | await axios.post('/api/auth/userdetail', { 64 | username: username 65 | }) 66 | .then(user => { 67 | 68 | console.log(user); 69 | setPhoneNo(user.data.user.phoneno) 70 | setAddress(user.data.user.address) 71 | setEmail(user.data.user.email) 72 | 73 | }) 74 | } 75 | 76 | const submit = async (e) => { 77 | 78 | e.preventDefault(); 79 | await axios.post('api/order/neworder', { 80 | username : username, 81 | email: email, 82 | cart: finalcartitems, 83 | address: address, 84 | totalamt: totalamt 85 | }) 86 | .then(msg => { 87 | if(msg.data.success) { 88 | history.push("/success") 89 | 90 | } 91 | }) 92 | .catch((error) => { 93 | 94 | setError(true) 95 | 96 | }) 97 | 98 | 99 | 100 | 101 | } 102 | 103 | useEffect(() => { 104 | userdt(); 105 | return null; 106 | }, []) 107 | 108 | 109 | 110 | 111 | return ( 112 | <> 113 | 114 | {error ? (

Please Try Again!

):(

)} 115 | 116 |
117 |
118 |
119 |

Checkout

120 |
121 |
122 |

Phone No: {phoneno}

123 |

Billing Address: {address}

124 |

Email: {email}

125 | 126 | 127 |
128 |
129 |

Your items

130 | {console.log(cartitems)} 131 | {cartitems.map((item,i) => { 132 | console.log(storeItems[(item.itemId)-1].name,item.quantity); 133 | 134 | return

{storeItems[item.itemId -1].name} X {item.quantity}

135 | 136 | })} 137 |

Total : {totalamt}

138 |
139 | 140 |
141 |
142 |