├── .github
└── FUNDING.yml
├── .gitignore
├── README.md
├── package.json
├── public
├── favicon.ico
├── index.html
├── logo192.png
├── logo512.png
├── manifest.json
└── robots.txt
├── server
├── .gitignore
├── db.js
├── index.js
├── models
│ └── user.js
├── package.json
├── routers
│ └── user.js
└── yarn.lock
├── src
├── components
│ ├── FirstStep.js
│ ├── Header.js
│ ├── Login.js
│ ├── Progress.js
│ ├── SecondStep.js
│ └── ThirdStep.js
├── index.js
├── router
│ └── AppRouter.js
├── styles.scss
└── utils
│ └── constants.js
└── yarn.lock
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | custom: https://www.buymeacoffee.com/myogeshchavan97
2 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Steps to run this project
2 |
3 | Follow [this article](https://levelup.gitconnected.com/how-to-install-mongodb-database-on-local-environment-19a8a76f1b92?source=friends_link&sk=416b443bad1f86b292e4b72602cf5c9b) to install and start the MongoDB database on your local machine.
4 |
5 | To run the project first start the MongoDB server as explained above and then execute the following commands in sequence from the `multi-step-form-using-mern` folder.
6 |
7 | 1. yarn install
8 | 2. yarn build
9 | 3. cd server
10 | 4. yarn install
11 | 5. yarn start
12 |
13 | and access your application on http://localhost:3030/
14 |
15 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
16 |
17 | # Getting Started with Create React App
18 |
19 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
20 |
21 | ## Available Scripts
22 |
23 | In the project directory, you can run:
24 |
25 | ### `yarn start`
26 |
27 | Runs the app in the development mode.\
28 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
29 |
30 | The page will reload if you make edits.\
31 | You will also see any lint errors in the console.
32 |
33 | ### `yarn test`
34 |
35 | Launches the test runner in the interactive watch mode.\
36 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
37 |
38 | ### `yarn build`
39 |
40 | Builds the app for production to the `build` folder.\
41 | It correctly bundles React in production mode and optimizes the build for the best performance.
42 |
43 | The build is minified and the filenames include the hashes.\
44 | Your app is ready to be deployed!
45 |
46 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
47 |
48 | ### `yarn eject`
49 |
50 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!**
51 |
52 | 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.
53 |
54 | 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.
55 |
56 | 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.
57 |
58 | ## Learn More
59 |
60 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
61 |
62 | To learn React, check out the [React documentation](https://reactjs.org/).
63 |
64 | ### Code Splitting
65 |
66 | 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)
67 |
68 | ### Analyzing the Bundle Size
69 |
70 | 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)
71 |
72 | ### Making a Progressive Web App
73 |
74 | 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)
75 |
76 | ### Advanced Configuration
77 |
78 | 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)
79 |
80 | ### Deployment
81 |
82 | This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
83 |
84 | ### `yarn build` fails to minify
85 |
86 | 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)
87 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "multi-step-form-using-mern",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@testing-library/jest-dom": "^5.11.4",
7 | "@testing-library/react": "^11.1.0",
8 | "@testing-library/user-event": "^12.1.10",
9 | "axios": "0.21.1",
10 | "bootstrap": "4.6.0",
11 | "country-state-city": "2.0.0",
12 | "framer-motion": "3.7.0",
13 | "node-sass": "4.14.1",
14 | "react": "^17.0.1",
15 | "react-bootstrap": "1.5.0",
16 | "react-dom": "^17.0.1",
17 | "react-hook-form": "6.15.4",
18 | "react-router-dom": "5.2.0",
19 | "react-scripts": "4.0.3",
20 | "sweetalert2": "10.15.5",
21 | "web-vitals": "^1.0.1"
22 | },
23 | "scripts": {
24 | "start": "react-scripts start",
25 | "build": "react-scripts build",
26 | "test": "react-scripts test",
27 | "eject": "react-scripts eject"
28 | },
29 | "eslintConfig": {
30 | "extends": [
31 | "react-app",
32 | "react-app/jest"
33 | ]
34 | },
35 | "browserslist": {
36 | "production": [
37 | ">0.2%",
38 | "not dead",
39 | "not op_mini all"
40 | ],
41 | "development": [
42 | "last 1 chrome version",
43 | "last 1 firefox version",
44 | "last 1 safari version"
45 | ]
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myogeshchavan97/multi-step-form-using-mern/49789377aeddd578cccb59cde568eea28ec411ae/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
27 | Multi Step Registration
28 |
29 |
30 | You need to enable JavaScript to run this app.
31 |
32 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myogeshchavan97/multi-step-form-using-mern/49789377aeddd578cccb59cde568eea28ec411ae/public/logo192.png
--------------------------------------------------------------------------------
/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myogeshchavan97/multi-step-form-using-mern/49789377aeddd578cccb59cde568eea28ec411ae/public/logo512.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/server/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/server/db.js:
--------------------------------------------------------------------------------
1 | const mongoose = require('mongoose');
2 |
3 | mongoose.connect('mongodb://127.0.0.1:27017/form-user', {
4 | useNewUrlParser: true,
5 | useCreateIndex: true,
6 | useUnifiedTopology: true
7 | });
8 |
--------------------------------------------------------------------------------
/server/index.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const express = require('express');
3 | const userRouter = require('./routers/user');
4 | require('./db');
5 |
6 | const app = express();
7 | const PORT = process.env.PORT || 3030;
8 |
9 | app.use(express.static(path.join(__dirname, '..', 'build')));
10 | app.use(express.json());
11 | app.use(userRouter);
12 |
13 | app.get('/', (req, res) => {
14 | res.send('This is from index.js file ');
15 | });
16 |
17 | app.use((req, res, next) => {
18 | res.sendFile(path.join(__dirname, '..', 'build', 'index.html'));
19 | });
20 |
21 | app.listen(PORT, () => {
22 | console.log(`server started on port ${PORT}`);
23 | });
24 |
--------------------------------------------------------------------------------
/server/models/user.js:
--------------------------------------------------------------------------------
1 | const mongoose = require('mongoose');
2 |
3 | const userSchema = mongoose.Schema(
4 | {
5 | first_name: {
6 | type: String,
7 | required: true,
8 | trim: true
9 | },
10 | last_name: {
11 | type: String,
12 | required: true,
13 | trim: true
14 | },
15 | user_email: {
16 | type: String,
17 | required: true,
18 | trim: true,
19 | validate(value) {
20 | if (!value.match(/^[^@ ]+@[^@ ]+\.[^@ .]{2,}$/)) {
21 | throw new Error('Email is not valid.');
22 | }
23 | }
24 | },
25 | user_password: {
26 | type: String,
27 | required: true,
28 | trim: true,
29 | minlength: 6
30 | },
31 | country: {
32 | type: String,
33 | required: true,
34 | trim: true
35 | },
36 | state: {
37 | type: String,
38 | trim: true
39 | },
40 | city: {
41 | type: String,
42 | trim: true
43 | }
44 | },
45 | {
46 | timestamps: true
47 | }
48 | );
49 |
50 | const User = mongoose.model('User', userSchema);
51 |
52 | module.exports = User;
53 |
--------------------------------------------------------------------------------
/server/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "server",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "license": "MIT",
6 | "scripts": {
7 | "start": "nodemon index.js"
8 | },
9 | "dependencies": {
10 | "bcryptjs": "2.4.3",
11 | "cors": "2.8.5",
12 | "express": "4.17.1",
13 | "mongoose": "5.11.18",
14 | "nodemon": "2.0.7"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/server/routers/user.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const User = require('../models/user');
3 | const bcrypt = require('bcryptjs');
4 | const router = express.Router();
5 |
6 | router.post('/register', async (req, res) => {
7 | const { user_email, user_password } = req.body;
8 |
9 | let user = await User.findOne({ user_email });
10 | if (user) {
11 | return res.status(400).send('User with the provided email already exist.');
12 | }
13 |
14 | try {
15 | user = new User(req.body);
16 | user.user_password = await bcrypt.hash(user_password, 8);
17 |
18 | await user.save();
19 | res.status(201).send();
20 | } catch (e) {
21 | res.status(500).send('Something went wrong. Try again later.');
22 | }
23 | });
24 |
25 | router.post('/login', async (req, res) => {
26 | try {
27 | const user = await User.findOne({ user_email: req.body.user_email });
28 | if (!user) {
29 | return res.status(400).send('User with provided email does not exist.');
30 | }
31 |
32 | const isMatch = await bcrypt.compare(
33 | req.body.user_password,
34 | user.user_password
35 | );
36 |
37 | if (!isMatch) {
38 | return res.status(400).send('Invalid credentials.');
39 | }
40 | const { user_password, ...rest } = user.toObject();
41 |
42 | return res.send(rest);
43 | } catch (error) {
44 | return res.status(500).send('Something went wrong. Try again later.');
45 | }
46 | });
47 |
48 | module.exports = router;
49 |
--------------------------------------------------------------------------------
/server/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@sindresorhus/is@^0.14.0":
6 | version "0.14.0"
7 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
8 | integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
9 |
10 | "@szmarczak/http-timer@^1.1.2":
11 | version "1.1.2"
12 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
13 | integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==
14 | dependencies:
15 | defer-to-connect "^1.0.1"
16 |
17 | "@types/bson@*":
18 | version "4.0.3"
19 | resolved "https://registry.yarnpkg.com/@types/bson/-/bson-4.0.3.tgz#30889d2ffde6262abbe38659364c631454999fbf"
20 | integrity sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==
21 | dependencies:
22 | "@types/node" "*"
23 |
24 | "@types/mongodb@^3.5.27":
25 | version "3.6.8"
26 | resolved "https://registry.yarnpkg.com/@types/mongodb/-/mongodb-3.6.8.tgz#f80f0a3022c44d8db659a936434403ca3f4661df"
27 | integrity sha512-8qNbL5/GFrljXc/QijcuQcUMYZ1iWNcqnJ6tneROwbfU0LsAjQ9bmq3aHi5lWXM4cyBPd2F/n9INAk/pZZttHw==
28 | dependencies:
29 | "@types/bson" "*"
30 | "@types/node" "*"
31 |
32 | "@types/node@*":
33 | version "14.14.31"
34 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055"
35 | integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==
36 |
37 | abbrev@1:
38 | version "1.1.1"
39 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
40 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
41 |
42 | accepts@~1.3.7:
43 | version "1.3.7"
44 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
45 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
46 | dependencies:
47 | mime-types "~2.1.24"
48 | negotiator "0.6.2"
49 |
50 | ansi-align@^3.0.0:
51 | version "3.0.0"
52 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
53 | integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==
54 | dependencies:
55 | string-width "^3.0.0"
56 |
57 | ansi-regex@^4.1.0:
58 | version "4.1.0"
59 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
60 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
61 |
62 | ansi-regex@^5.0.0:
63 | version "5.0.0"
64 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
65 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
66 |
67 | ansi-styles@^4.1.0:
68 | version "4.3.0"
69 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
70 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
71 | dependencies:
72 | color-convert "^2.0.1"
73 |
74 | anymatch@~3.1.1:
75 | version "3.1.1"
76 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
77 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
78 | dependencies:
79 | normalize-path "^3.0.0"
80 | picomatch "^2.0.4"
81 |
82 | array-flatten@1.1.1:
83 | version "1.1.1"
84 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
85 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
86 |
87 | balanced-match@^1.0.0:
88 | version "1.0.0"
89 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
90 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
91 |
92 | bcryptjs@2.4.3:
93 | version "2.4.3"
94 | resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb"
95 | integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=
96 |
97 | binary-extensions@^2.0.0:
98 | version "2.2.0"
99 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
100 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
101 |
102 | bl@^2.2.1:
103 | version "2.2.1"
104 | resolved "https://registry.yarnpkg.com/bl/-/bl-2.2.1.tgz#8c11a7b730655c5d56898cdc871224f40fd901d5"
105 | integrity sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==
106 | dependencies:
107 | readable-stream "^2.3.5"
108 | safe-buffer "^5.1.1"
109 |
110 | bluebird@3.5.1:
111 | version "3.5.1"
112 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
113 | integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==
114 |
115 | body-parser@1.19.0:
116 | version "1.19.0"
117 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
118 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
119 | dependencies:
120 | bytes "3.1.0"
121 | content-type "~1.0.4"
122 | debug "2.6.9"
123 | depd "~1.1.2"
124 | http-errors "1.7.2"
125 | iconv-lite "0.4.24"
126 | on-finished "~2.3.0"
127 | qs "6.7.0"
128 | raw-body "2.4.0"
129 | type-is "~1.6.17"
130 |
131 | boxen@^4.2.0:
132 | version "4.2.0"
133 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64"
134 | integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==
135 | dependencies:
136 | ansi-align "^3.0.0"
137 | camelcase "^5.3.1"
138 | chalk "^3.0.0"
139 | cli-boxes "^2.2.0"
140 | string-width "^4.1.0"
141 | term-size "^2.1.0"
142 | type-fest "^0.8.1"
143 | widest-line "^3.1.0"
144 |
145 | brace-expansion@^1.1.7:
146 | version "1.1.11"
147 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
148 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
149 | dependencies:
150 | balanced-match "^1.0.0"
151 | concat-map "0.0.1"
152 |
153 | braces@~3.0.2:
154 | version "3.0.2"
155 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
156 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
157 | dependencies:
158 | fill-range "^7.0.1"
159 |
160 | bson@^1.1.4:
161 | version "1.1.5"
162 | resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.5.tgz#2aaae98fcdf6750c0848b0cba1ddec3c73060a34"
163 | integrity sha512-kDuEzldR21lHciPQAIulLs1LZlCXdLziXI6Mb/TDkwXhb//UORJNPXgcRs2CuO4H0DcMkpfT3/ySsP3unoZjBg==
164 |
165 | bytes@3.1.0:
166 | version "3.1.0"
167 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
168 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
169 |
170 | cacheable-request@^6.0.0:
171 | version "6.1.0"
172 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
173 | integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==
174 | dependencies:
175 | clone-response "^1.0.2"
176 | get-stream "^5.1.0"
177 | http-cache-semantics "^4.0.0"
178 | keyv "^3.0.0"
179 | lowercase-keys "^2.0.0"
180 | normalize-url "^4.1.0"
181 | responselike "^1.0.2"
182 |
183 | camelcase@^5.3.1:
184 | version "5.3.1"
185 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
186 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
187 |
188 | chalk@^3.0.0:
189 | version "3.0.0"
190 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
191 | integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
192 | dependencies:
193 | ansi-styles "^4.1.0"
194 | supports-color "^7.1.0"
195 |
196 | chokidar@^3.2.2:
197 | version "3.5.1"
198 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
199 | integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
200 | dependencies:
201 | anymatch "~3.1.1"
202 | braces "~3.0.2"
203 | glob-parent "~5.1.0"
204 | is-binary-path "~2.1.0"
205 | is-glob "~4.0.1"
206 | normalize-path "~3.0.0"
207 | readdirp "~3.5.0"
208 | optionalDependencies:
209 | fsevents "~2.3.1"
210 |
211 | ci-info@^2.0.0:
212 | version "2.0.0"
213 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
214 | integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
215 |
216 | cli-boxes@^2.2.0:
217 | version "2.2.1"
218 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
219 | integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
220 |
221 | clone-response@^1.0.2:
222 | version "1.0.2"
223 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
224 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
225 | dependencies:
226 | mimic-response "^1.0.0"
227 |
228 | color-convert@^2.0.1:
229 | version "2.0.1"
230 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
231 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
232 | dependencies:
233 | color-name "~1.1.4"
234 |
235 | color-name@~1.1.4:
236 | version "1.1.4"
237 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
238 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
239 |
240 | concat-map@0.0.1:
241 | version "0.0.1"
242 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
243 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
244 |
245 | configstore@^5.0.1:
246 | version "5.0.1"
247 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
248 | integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==
249 | dependencies:
250 | dot-prop "^5.2.0"
251 | graceful-fs "^4.1.2"
252 | make-dir "^3.0.0"
253 | unique-string "^2.0.0"
254 | write-file-atomic "^3.0.0"
255 | xdg-basedir "^4.0.0"
256 |
257 | content-disposition@0.5.3:
258 | version "0.5.3"
259 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
260 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
261 | dependencies:
262 | safe-buffer "5.1.2"
263 |
264 | content-type@~1.0.4:
265 | version "1.0.4"
266 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
267 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
268 |
269 | cookie-signature@1.0.6:
270 | version "1.0.6"
271 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
272 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
273 |
274 | cookie@0.4.0:
275 | version "0.4.0"
276 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
277 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
278 |
279 | core-util-is@~1.0.0:
280 | version "1.0.2"
281 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
282 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
283 |
284 | cors@2.8.5:
285 | version "2.8.5"
286 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
287 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
288 | dependencies:
289 | object-assign "^4"
290 | vary "^1"
291 |
292 | crypto-random-string@^2.0.0:
293 | version "2.0.0"
294 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
295 | integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
296 |
297 | debug@2.6.9, debug@^2.2.0:
298 | version "2.6.9"
299 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
300 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
301 | dependencies:
302 | ms "2.0.0"
303 |
304 | debug@3.1.0:
305 | version "3.1.0"
306 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
307 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
308 | dependencies:
309 | ms "2.0.0"
310 |
311 | debug@^3.2.6:
312 | version "3.2.7"
313 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
314 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
315 | dependencies:
316 | ms "^2.1.1"
317 |
318 | decompress-response@^3.3.0:
319 | version "3.3.0"
320 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
321 | integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
322 | dependencies:
323 | mimic-response "^1.0.0"
324 |
325 | deep-extend@^0.6.0:
326 | version "0.6.0"
327 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
328 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
329 |
330 | defer-to-connect@^1.0.1:
331 | version "1.1.3"
332 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
333 | integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
334 |
335 | denque@^1.4.1:
336 | version "1.5.0"
337 | resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.0.tgz#773de0686ff2d8ec2ff92914316a47b73b1c73de"
338 | integrity sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==
339 |
340 | depd@~1.1.2:
341 | version "1.1.2"
342 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
343 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
344 |
345 | destroy@~1.0.4:
346 | version "1.0.4"
347 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
348 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
349 |
350 | dot-prop@^5.2.0:
351 | version "5.3.0"
352 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
353 | integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
354 | dependencies:
355 | is-obj "^2.0.0"
356 |
357 | duplexer3@^0.1.4:
358 | version "0.1.4"
359 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
360 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
361 |
362 | ee-first@1.1.1:
363 | version "1.1.1"
364 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
365 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
366 |
367 | emoji-regex@^7.0.1:
368 | version "7.0.3"
369 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
370 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
371 |
372 | emoji-regex@^8.0.0:
373 | version "8.0.0"
374 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
375 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
376 |
377 | encodeurl@~1.0.2:
378 | version "1.0.2"
379 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
380 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
381 |
382 | end-of-stream@^1.1.0:
383 | version "1.4.4"
384 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
385 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
386 | dependencies:
387 | once "^1.4.0"
388 |
389 | escape-goat@^2.0.0:
390 | version "2.1.1"
391 | resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
392 | integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==
393 |
394 | escape-html@~1.0.3:
395 | version "1.0.3"
396 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
397 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
398 |
399 | etag@~1.8.1:
400 | version "1.8.1"
401 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
402 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
403 |
404 | express@4.17.1:
405 | version "4.17.1"
406 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
407 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
408 | dependencies:
409 | accepts "~1.3.7"
410 | array-flatten "1.1.1"
411 | body-parser "1.19.0"
412 | content-disposition "0.5.3"
413 | content-type "~1.0.4"
414 | cookie "0.4.0"
415 | cookie-signature "1.0.6"
416 | debug "2.6.9"
417 | depd "~1.1.2"
418 | encodeurl "~1.0.2"
419 | escape-html "~1.0.3"
420 | etag "~1.8.1"
421 | finalhandler "~1.1.2"
422 | fresh "0.5.2"
423 | merge-descriptors "1.0.1"
424 | methods "~1.1.2"
425 | on-finished "~2.3.0"
426 | parseurl "~1.3.3"
427 | path-to-regexp "0.1.7"
428 | proxy-addr "~2.0.5"
429 | qs "6.7.0"
430 | range-parser "~1.2.1"
431 | safe-buffer "5.1.2"
432 | send "0.17.1"
433 | serve-static "1.14.1"
434 | setprototypeof "1.1.1"
435 | statuses "~1.5.0"
436 | type-is "~1.6.18"
437 | utils-merge "1.0.1"
438 | vary "~1.1.2"
439 |
440 | fill-range@^7.0.1:
441 | version "7.0.1"
442 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
443 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
444 | dependencies:
445 | to-regex-range "^5.0.1"
446 |
447 | finalhandler@~1.1.2:
448 | version "1.1.2"
449 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
450 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
451 | dependencies:
452 | debug "2.6.9"
453 | encodeurl "~1.0.2"
454 | escape-html "~1.0.3"
455 | on-finished "~2.3.0"
456 | parseurl "~1.3.3"
457 | statuses "~1.5.0"
458 | unpipe "~1.0.0"
459 |
460 | forwarded@~0.1.2:
461 | version "0.1.2"
462 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
463 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
464 |
465 | fresh@0.5.2:
466 | version "0.5.2"
467 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
468 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
469 |
470 | fsevents@~2.3.1:
471 | version "2.3.2"
472 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
473 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
474 |
475 | get-stream@^4.1.0:
476 | version "4.1.0"
477 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
478 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
479 | dependencies:
480 | pump "^3.0.0"
481 |
482 | get-stream@^5.1.0:
483 | version "5.2.0"
484 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
485 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
486 | dependencies:
487 | pump "^3.0.0"
488 |
489 | glob-parent@~5.1.0:
490 | version "5.1.1"
491 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
492 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
493 | dependencies:
494 | is-glob "^4.0.1"
495 |
496 | global-dirs@^2.0.1:
497 | version "2.1.0"
498 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d"
499 | integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==
500 | dependencies:
501 | ini "1.3.7"
502 |
503 | got@^9.6.0:
504 | version "9.6.0"
505 | resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
506 | integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==
507 | dependencies:
508 | "@sindresorhus/is" "^0.14.0"
509 | "@szmarczak/http-timer" "^1.1.2"
510 | cacheable-request "^6.0.0"
511 | decompress-response "^3.3.0"
512 | duplexer3 "^0.1.4"
513 | get-stream "^4.1.0"
514 | lowercase-keys "^1.0.1"
515 | mimic-response "^1.0.1"
516 | p-cancelable "^1.0.0"
517 | to-readable-stream "^1.0.0"
518 | url-parse-lax "^3.0.0"
519 |
520 | graceful-fs@^4.1.2:
521 | version "4.2.6"
522 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
523 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
524 |
525 | has-flag@^3.0.0:
526 | version "3.0.0"
527 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
528 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
529 |
530 | has-flag@^4.0.0:
531 | version "4.0.0"
532 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
533 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
534 |
535 | has-yarn@^2.1.0:
536 | version "2.1.0"
537 | resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
538 | integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==
539 |
540 | http-cache-semantics@^4.0.0:
541 | version "4.1.0"
542 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
543 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
544 |
545 | http-errors@1.7.2:
546 | version "1.7.2"
547 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
548 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
549 | dependencies:
550 | depd "~1.1.2"
551 | inherits "2.0.3"
552 | setprototypeof "1.1.1"
553 | statuses ">= 1.5.0 < 2"
554 | toidentifier "1.0.0"
555 |
556 | http-errors@~1.7.2:
557 | version "1.7.3"
558 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
559 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
560 | dependencies:
561 | depd "~1.1.2"
562 | inherits "2.0.4"
563 | setprototypeof "1.1.1"
564 | statuses ">= 1.5.0 < 2"
565 | toidentifier "1.0.0"
566 |
567 | iconv-lite@0.4.24:
568 | version "0.4.24"
569 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
570 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
571 | dependencies:
572 | safer-buffer ">= 2.1.2 < 3"
573 |
574 | ignore-by-default@^1.0.1:
575 | version "1.0.1"
576 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
577 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk=
578 |
579 | import-lazy@^2.1.0:
580 | version "2.1.0"
581 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
582 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
583 |
584 | imurmurhash@^0.1.4:
585 | version "0.1.4"
586 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
587 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
588 |
589 | inherits@2.0.3:
590 | version "2.0.3"
591 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
592 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
593 |
594 | inherits@2.0.4, inherits@~2.0.3:
595 | version "2.0.4"
596 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
597 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
598 |
599 | ini@1.3.7:
600 | version "1.3.7"
601 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
602 | integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
603 |
604 | ini@~1.3.0:
605 | version "1.3.8"
606 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
607 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
608 |
609 | ipaddr.js@1.9.1:
610 | version "1.9.1"
611 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
612 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
613 |
614 | is-binary-path@~2.1.0:
615 | version "2.1.0"
616 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
617 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
618 | dependencies:
619 | binary-extensions "^2.0.0"
620 |
621 | is-ci@^2.0.0:
622 | version "2.0.0"
623 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
624 | integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
625 | dependencies:
626 | ci-info "^2.0.0"
627 |
628 | is-extglob@^2.1.1:
629 | version "2.1.1"
630 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
631 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
632 |
633 | is-fullwidth-code-point@^2.0.0:
634 | version "2.0.0"
635 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
636 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
637 |
638 | is-fullwidth-code-point@^3.0.0:
639 | version "3.0.0"
640 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
641 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
642 |
643 | is-glob@^4.0.1, is-glob@~4.0.1:
644 | version "4.0.1"
645 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
646 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
647 | dependencies:
648 | is-extglob "^2.1.1"
649 |
650 | is-installed-globally@^0.3.1:
651 | version "0.3.2"
652 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141"
653 | integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==
654 | dependencies:
655 | global-dirs "^2.0.1"
656 | is-path-inside "^3.0.1"
657 |
658 | is-npm@^4.0.0:
659 | version "4.0.0"
660 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d"
661 | integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==
662 |
663 | is-number@^7.0.0:
664 | version "7.0.0"
665 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
666 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
667 |
668 | is-obj@^2.0.0:
669 | version "2.0.0"
670 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
671 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
672 |
673 | is-path-inside@^3.0.1:
674 | version "3.0.2"
675 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
676 | integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==
677 |
678 | is-typedarray@^1.0.0:
679 | version "1.0.0"
680 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
681 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
682 |
683 | is-yarn-global@^0.3.0:
684 | version "0.3.0"
685 | resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
686 | integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
687 |
688 | isarray@~1.0.0:
689 | version "1.0.0"
690 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
691 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
692 |
693 | json-buffer@3.0.0:
694 | version "3.0.0"
695 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
696 | integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
697 |
698 | kareem@2.3.2:
699 | version "2.3.2"
700 | resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.2.tgz#78c4508894985b8d38a0dc15e1a8e11078f2ca93"
701 | integrity sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==
702 |
703 | keyv@^3.0.0:
704 | version "3.1.0"
705 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
706 | integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
707 | dependencies:
708 | json-buffer "3.0.0"
709 |
710 | latest-version@^5.0.0:
711 | version "5.1.0"
712 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
713 | integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==
714 | dependencies:
715 | package-json "^6.3.0"
716 |
717 | lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
718 | version "1.0.1"
719 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
720 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
721 |
722 | lowercase-keys@^2.0.0:
723 | version "2.0.0"
724 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
725 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
726 |
727 | make-dir@^3.0.0:
728 | version "3.1.0"
729 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
730 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
731 | dependencies:
732 | semver "^6.0.0"
733 |
734 | media-typer@0.3.0:
735 | version "0.3.0"
736 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
737 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
738 |
739 | memory-pager@^1.0.2:
740 | version "1.5.0"
741 | resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5"
742 | integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==
743 |
744 | merge-descriptors@1.0.1:
745 | version "1.0.1"
746 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
747 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
748 |
749 | methods@~1.1.2:
750 | version "1.1.2"
751 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
752 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
753 |
754 | mime-db@1.46.0:
755 | version "1.46.0"
756 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee"
757 | integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==
758 |
759 | mime-types@~2.1.24:
760 | version "2.1.29"
761 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2"
762 | integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==
763 | dependencies:
764 | mime-db "1.46.0"
765 |
766 | mime@1.6.0:
767 | version "1.6.0"
768 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
769 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
770 |
771 | mimic-response@^1.0.0, mimic-response@^1.0.1:
772 | version "1.0.1"
773 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
774 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
775 |
776 | minimatch@^3.0.4:
777 | version "3.0.4"
778 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
779 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
780 | dependencies:
781 | brace-expansion "^1.1.7"
782 |
783 | minimist@^1.2.0:
784 | version "1.2.5"
785 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
786 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
787 |
788 | mongodb@3.6.4:
789 | version "3.6.4"
790 | resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.6.4.tgz#ca59fd65b06831308262372ef9df6b78f9da97be"
791 | integrity sha512-Y+Ki9iXE9jI+n9bVtbTOOdK0B95d6wVGSucwtBkvQ+HIvVdTCfpVRp01FDC24uhC/Q2WXQ8Lpq3/zwtB5Op9Qw==
792 | dependencies:
793 | bl "^2.2.1"
794 | bson "^1.1.4"
795 | denque "^1.4.1"
796 | require_optional "^1.0.1"
797 | safe-buffer "^5.1.2"
798 | optionalDependencies:
799 | saslprep "^1.0.0"
800 |
801 | mongoose-legacy-pluralize@1.0.2:
802 | version "1.0.2"
803 | resolved "https://registry.yarnpkg.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4"
804 | integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==
805 |
806 | mongoose@5.11.18:
807 | version "5.11.18"
808 | resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.11.18.tgz#76fdcefeb2afc7409705fc44b58045953bba5ee1"
809 | integrity sha512-RsrPR9nhkXZbO3ml0DcmdbfeMvFNhgFrP81S6o1P+lFnDTNEKYnGNRCIL+ojD69wj7H5jJaAdZ0SJ5IlKxCHqw==
810 | dependencies:
811 | "@types/mongodb" "^3.5.27"
812 | bson "^1.1.4"
813 | kareem "2.3.2"
814 | mongodb "3.6.4"
815 | mongoose-legacy-pluralize "1.0.2"
816 | mpath "0.8.3"
817 | mquery "3.2.4"
818 | ms "2.1.2"
819 | regexp-clone "1.0.0"
820 | safe-buffer "5.2.1"
821 | sift "7.0.1"
822 | sliced "1.0.1"
823 |
824 | mpath@0.8.3:
825 | version "0.8.3"
826 | resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.8.3.tgz#828ac0d187f7f42674839d74921970979abbdd8f"
827 | integrity sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==
828 |
829 | mquery@3.2.4:
830 | version "3.2.4"
831 | resolved "https://registry.yarnpkg.com/mquery/-/mquery-3.2.4.tgz#9c5c2e285ea6c6f20673f3528973c99ee1aaa1a0"
832 | integrity sha512-uOLpp7iRX0BV1Uu6YpsqJ5b42LwYnmu0WeF/f8qgD/On3g0XDaQM6pfn0m6UxO6SM8DioZ9Bk6xxbWIGHm2zHg==
833 | dependencies:
834 | bluebird "3.5.1"
835 | debug "3.1.0"
836 | regexp-clone "^1.0.0"
837 | safe-buffer "5.1.2"
838 | sliced "1.0.1"
839 |
840 | ms@2.0.0:
841 | version "2.0.0"
842 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
843 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
844 |
845 | ms@2.1.1:
846 | version "2.1.1"
847 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
848 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
849 |
850 | ms@2.1.2:
851 | version "2.1.2"
852 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
853 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
854 |
855 | ms@^2.1.1:
856 | version "2.1.3"
857 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
858 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
859 |
860 | negotiator@0.6.2:
861 | version "0.6.2"
862 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
863 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
864 |
865 | nodemon@2.0.7:
866 | version "2.0.7"
867 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.7.tgz#6f030a0a0ebe3ea1ba2a38f71bf9bab4841ced32"
868 | integrity sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==
869 | dependencies:
870 | chokidar "^3.2.2"
871 | debug "^3.2.6"
872 | ignore-by-default "^1.0.1"
873 | minimatch "^3.0.4"
874 | pstree.remy "^1.1.7"
875 | semver "^5.7.1"
876 | supports-color "^5.5.0"
877 | touch "^3.1.0"
878 | undefsafe "^2.0.3"
879 | update-notifier "^4.1.0"
880 |
881 | nopt@~1.0.10:
882 | version "1.0.10"
883 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
884 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
885 | dependencies:
886 | abbrev "1"
887 |
888 | normalize-path@^3.0.0, normalize-path@~3.0.0:
889 | version "3.0.0"
890 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
891 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
892 |
893 | normalize-url@^4.1.0:
894 | version "4.5.0"
895 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
896 | integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
897 |
898 | object-assign@^4:
899 | version "4.1.1"
900 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
901 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
902 |
903 | on-finished@~2.3.0:
904 | version "2.3.0"
905 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
906 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
907 | dependencies:
908 | ee-first "1.1.1"
909 |
910 | once@^1.3.1, once@^1.4.0:
911 | version "1.4.0"
912 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
913 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
914 | dependencies:
915 | wrappy "1"
916 |
917 | p-cancelable@^1.0.0:
918 | version "1.1.0"
919 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
920 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
921 |
922 | package-json@^6.3.0:
923 | version "6.5.0"
924 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0"
925 | integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==
926 | dependencies:
927 | got "^9.6.0"
928 | registry-auth-token "^4.0.0"
929 | registry-url "^5.0.0"
930 | semver "^6.2.0"
931 |
932 | parseurl@~1.3.3:
933 | version "1.3.3"
934 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
935 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
936 |
937 | path-to-regexp@0.1.7:
938 | version "0.1.7"
939 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
940 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
941 |
942 | picomatch@^2.0.4, picomatch@^2.2.1:
943 | version "2.2.2"
944 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
945 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
946 |
947 | prepend-http@^2.0.0:
948 | version "2.0.0"
949 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
950 | integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
951 |
952 | process-nextick-args@~2.0.0:
953 | version "2.0.1"
954 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
955 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
956 |
957 | proxy-addr@~2.0.5:
958 | version "2.0.6"
959 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
960 | integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
961 | dependencies:
962 | forwarded "~0.1.2"
963 | ipaddr.js "1.9.1"
964 |
965 | pstree.remy@^1.1.7:
966 | version "1.1.8"
967 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
968 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
969 |
970 | pump@^3.0.0:
971 | version "3.0.0"
972 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
973 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
974 | dependencies:
975 | end-of-stream "^1.1.0"
976 | once "^1.3.1"
977 |
978 | pupa@^2.0.1:
979 | version "2.1.1"
980 | resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62"
981 | integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==
982 | dependencies:
983 | escape-goat "^2.0.0"
984 |
985 | qs@6.7.0:
986 | version "6.7.0"
987 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
988 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
989 |
990 | range-parser@~1.2.1:
991 | version "1.2.1"
992 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
993 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
994 |
995 | raw-body@2.4.0:
996 | version "2.4.0"
997 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
998 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
999 | dependencies:
1000 | bytes "3.1.0"
1001 | http-errors "1.7.2"
1002 | iconv-lite "0.4.24"
1003 | unpipe "1.0.0"
1004 |
1005 | rc@^1.2.8:
1006 | version "1.2.8"
1007 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
1008 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
1009 | dependencies:
1010 | deep-extend "^0.6.0"
1011 | ini "~1.3.0"
1012 | minimist "^1.2.0"
1013 | strip-json-comments "~2.0.1"
1014 |
1015 | readable-stream@^2.3.5:
1016 | version "2.3.7"
1017 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
1018 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
1019 | dependencies:
1020 | core-util-is "~1.0.0"
1021 | inherits "~2.0.3"
1022 | isarray "~1.0.0"
1023 | process-nextick-args "~2.0.0"
1024 | safe-buffer "~5.1.1"
1025 | string_decoder "~1.1.1"
1026 | util-deprecate "~1.0.1"
1027 |
1028 | readdirp@~3.5.0:
1029 | version "3.5.0"
1030 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
1031 | integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
1032 | dependencies:
1033 | picomatch "^2.2.1"
1034 |
1035 | regexp-clone@1.0.0, regexp-clone@^1.0.0:
1036 | version "1.0.0"
1037 | resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63"
1038 | integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==
1039 |
1040 | registry-auth-token@^4.0.0:
1041 | version "4.2.1"
1042 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250"
1043 | integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==
1044 | dependencies:
1045 | rc "^1.2.8"
1046 |
1047 | registry-url@^5.0.0:
1048 | version "5.1.0"
1049 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009"
1050 | integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==
1051 | dependencies:
1052 | rc "^1.2.8"
1053 |
1054 | require_optional@^1.0.1:
1055 | version "1.0.1"
1056 | resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e"
1057 | integrity sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==
1058 | dependencies:
1059 | resolve-from "^2.0.0"
1060 | semver "^5.1.0"
1061 |
1062 | resolve-from@^2.0.0:
1063 | version "2.0.0"
1064 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
1065 | integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=
1066 |
1067 | responselike@^1.0.2:
1068 | version "1.0.2"
1069 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
1070 | integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=
1071 | dependencies:
1072 | lowercase-keys "^1.0.0"
1073 |
1074 | safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1075 | version "5.1.2"
1076 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1077 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1078 |
1079 | safe-buffer@5.2.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2:
1080 | version "5.2.1"
1081 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1082 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1083 |
1084 | "safer-buffer@>= 2.1.2 < 3":
1085 | version "2.1.2"
1086 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1087 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1088 |
1089 | saslprep@^1.0.0:
1090 | version "1.0.3"
1091 | resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
1092 | integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==
1093 | dependencies:
1094 | sparse-bitfield "^3.0.3"
1095 |
1096 | semver-diff@^3.1.1:
1097 | version "3.1.1"
1098 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
1099 | integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==
1100 | dependencies:
1101 | semver "^6.3.0"
1102 |
1103 | semver@^5.1.0, semver@^5.7.1:
1104 | version "5.7.1"
1105 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1106 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1107 |
1108 | semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
1109 | version "6.3.0"
1110 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1111 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1112 |
1113 | send@0.17.1:
1114 | version "0.17.1"
1115 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
1116 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
1117 | dependencies:
1118 | debug "2.6.9"
1119 | depd "~1.1.2"
1120 | destroy "~1.0.4"
1121 | encodeurl "~1.0.2"
1122 | escape-html "~1.0.3"
1123 | etag "~1.8.1"
1124 | fresh "0.5.2"
1125 | http-errors "~1.7.2"
1126 | mime "1.6.0"
1127 | ms "2.1.1"
1128 | on-finished "~2.3.0"
1129 | range-parser "~1.2.1"
1130 | statuses "~1.5.0"
1131 |
1132 | serve-static@1.14.1:
1133 | version "1.14.1"
1134 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
1135 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
1136 | dependencies:
1137 | encodeurl "~1.0.2"
1138 | escape-html "~1.0.3"
1139 | parseurl "~1.3.3"
1140 | send "0.17.1"
1141 |
1142 | setprototypeof@1.1.1:
1143 | version "1.1.1"
1144 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
1145 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
1146 |
1147 | sift@7.0.1:
1148 | version "7.0.1"
1149 | resolved "https://registry.yarnpkg.com/sift/-/sift-7.0.1.tgz#47d62c50b159d316f1372f8b53f9c10cd21a4b08"
1150 | integrity sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==
1151 |
1152 | signal-exit@^3.0.2:
1153 | version "3.0.3"
1154 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
1155 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
1156 |
1157 | sliced@1.0.1:
1158 | version "1.0.1"
1159 | resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
1160 | integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=
1161 |
1162 | sparse-bitfield@^3.0.3:
1163 | version "3.0.3"
1164 | resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11"
1165 | integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE=
1166 | dependencies:
1167 | memory-pager "^1.0.2"
1168 |
1169 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
1170 | version "1.5.0"
1171 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
1172 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
1173 |
1174 | string-width@^3.0.0:
1175 | version "3.1.0"
1176 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
1177 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
1178 | dependencies:
1179 | emoji-regex "^7.0.1"
1180 | is-fullwidth-code-point "^2.0.0"
1181 | strip-ansi "^5.1.0"
1182 |
1183 | string-width@^4.0.0, string-width@^4.1.0:
1184 | version "4.2.2"
1185 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
1186 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
1187 | dependencies:
1188 | emoji-regex "^8.0.0"
1189 | is-fullwidth-code-point "^3.0.0"
1190 | strip-ansi "^6.0.0"
1191 |
1192 | string_decoder@~1.1.1:
1193 | version "1.1.1"
1194 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
1195 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
1196 | dependencies:
1197 | safe-buffer "~5.1.0"
1198 |
1199 | strip-ansi@^5.1.0:
1200 | version "5.2.0"
1201 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
1202 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
1203 | dependencies:
1204 | ansi-regex "^4.1.0"
1205 |
1206 | strip-ansi@^6.0.0:
1207 | version "6.0.0"
1208 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
1209 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
1210 | dependencies:
1211 | ansi-regex "^5.0.0"
1212 |
1213 | strip-json-comments@~2.0.1:
1214 | version "2.0.1"
1215 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1216 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
1217 |
1218 | supports-color@^5.5.0:
1219 | version "5.5.0"
1220 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1221 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1222 | dependencies:
1223 | has-flag "^3.0.0"
1224 |
1225 | supports-color@^7.1.0:
1226 | version "7.2.0"
1227 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1228 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1229 | dependencies:
1230 | has-flag "^4.0.0"
1231 |
1232 | term-size@^2.1.0:
1233 | version "2.2.1"
1234 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54"
1235 | integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==
1236 |
1237 | to-readable-stream@^1.0.0:
1238 | version "1.0.0"
1239 | resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
1240 | integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
1241 |
1242 | to-regex-range@^5.0.1:
1243 | version "5.0.1"
1244 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1245 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1246 | dependencies:
1247 | is-number "^7.0.0"
1248 |
1249 | toidentifier@1.0.0:
1250 | version "1.0.0"
1251 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
1252 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
1253 |
1254 | touch@^3.1.0:
1255 | version "3.1.0"
1256 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
1257 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==
1258 | dependencies:
1259 | nopt "~1.0.10"
1260 |
1261 | type-fest@^0.8.1:
1262 | version "0.8.1"
1263 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
1264 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
1265 |
1266 | type-is@~1.6.17, type-is@~1.6.18:
1267 | version "1.6.18"
1268 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
1269 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
1270 | dependencies:
1271 | media-typer "0.3.0"
1272 | mime-types "~2.1.24"
1273 |
1274 | typedarray-to-buffer@^3.1.5:
1275 | version "3.1.5"
1276 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
1277 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
1278 | dependencies:
1279 | is-typedarray "^1.0.0"
1280 |
1281 | undefsafe@^2.0.3:
1282 | version "2.0.3"
1283 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae"
1284 | integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==
1285 | dependencies:
1286 | debug "^2.2.0"
1287 |
1288 | unique-string@^2.0.0:
1289 | version "2.0.0"
1290 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
1291 | integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
1292 | dependencies:
1293 | crypto-random-string "^2.0.0"
1294 |
1295 | unpipe@1.0.0, unpipe@~1.0.0:
1296 | version "1.0.0"
1297 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
1298 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
1299 |
1300 | update-notifier@^4.1.0:
1301 | version "4.1.3"
1302 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3"
1303 | integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==
1304 | dependencies:
1305 | boxen "^4.2.0"
1306 | chalk "^3.0.0"
1307 | configstore "^5.0.1"
1308 | has-yarn "^2.1.0"
1309 | import-lazy "^2.1.0"
1310 | is-ci "^2.0.0"
1311 | is-installed-globally "^0.3.1"
1312 | is-npm "^4.0.0"
1313 | is-yarn-global "^0.3.0"
1314 | latest-version "^5.0.0"
1315 | pupa "^2.0.1"
1316 | semver-diff "^3.1.1"
1317 | xdg-basedir "^4.0.0"
1318 |
1319 | url-parse-lax@^3.0.0:
1320 | version "3.0.0"
1321 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
1322 | integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=
1323 | dependencies:
1324 | prepend-http "^2.0.0"
1325 |
1326 | util-deprecate@~1.0.1:
1327 | version "1.0.2"
1328 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1329 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
1330 |
1331 | utils-merge@1.0.1:
1332 | version "1.0.1"
1333 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
1334 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
1335 |
1336 | vary@^1, vary@~1.1.2:
1337 | version "1.1.2"
1338 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
1339 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
1340 |
1341 | widest-line@^3.1.0:
1342 | version "3.1.0"
1343 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
1344 | integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==
1345 | dependencies:
1346 | string-width "^4.0.0"
1347 |
1348 | wrappy@1:
1349 | version "1.0.2"
1350 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1351 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1352 |
1353 | write-file-atomic@^3.0.0:
1354 | version "3.0.3"
1355 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
1356 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
1357 | dependencies:
1358 | imurmurhash "^0.1.4"
1359 | is-typedarray "^1.0.0"
1360 | signal-exit "^3.0.2"
1361 | typedarray-to-buffer "^3.1.5"
1362 |
1363 | xdg-basedir@^4.0.0:
1364 | version "4.0.0"
1365 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
1366 | integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
1367 |
--------------------------------------------------------------------------------
/src/components/FirstStep.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { useForm } from 'react-hook-form';
3 | import { Form, Button } from 'react-bootstrap';
4 | import { motion } from 'framer-motion';
5 |
6 | const FirstStep = (props) => {
7 | const { user } = props;
8 | const { register, handleSubmit, errors } = useForm({
9 | defaultValues: {
10 | first_name: user.first_name,
11 | last_name: user.last_name
12 | }
13 | });
14 |
15 | const onSubmit = (data) => {
16 | props.updateUser(data);
17 | props.history.push('/second');
18 | };
19 |
20 | return (
21 |
75 | );
76 | };
77 |
78 | export default FirstStep;
79 |
--------------------------------------------------------------------------------
/src/components/Header.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Progress from './Progress';
3 |
4 | const Header = () => (
5 |
6 |
Multi Step Registration
7 |
8 |
9 | );
10 |
11 | export default Header;
12 |
--------------------------------------------------------------------------------
/src/components/Login.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import { useForm } from 'react-hook-form';
3 | import { Form, Button } from 'react-bootstrap';
4 | import axios from 'axios';
5 | import { BASE_API_URL } from '../utils/constants';
6 |
7 | const Login = () => {
8 | const { register, handleSubmit, errors } = useForm();
9 | const [successMessage, setSuccessMessage] = useState('');
10 | const [errorMessage, setErrorMessage] = useState('');
11 | const [userDetails, setUserDetails] = useState('');
12 |
13 | const onSubmit = async (data) => {
14 | console.log(data);
15 |
16 | try {
17 | const response = await axios.post(`${BASE_API_URL}/login`, data);
18 | setSuccessMessage('User with the provided credentials found.');
19 | setErrorMessage('');
20 | setUserDetails(response.data);
21 | } catch (error) {
22 | console.log(error);
23 | if (error.response) {
24 | console.log('error', error.response.data);
25 | setErrorMessage(error.response.data);
26 | }
27 | }
28 | };
29 |
30 | return (
31 |
97 | );
98 | };
99 |
100 | export default Login;
101 |
--------------------------------------------------------------------------------
/src/components/Progress.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Link, withRouter } from 'react-router-dom';
3 |
4 | const Progress = ({ location: { pathname } }) => {
5 | const isFirstStep = pathname === '/';
6 | const isSecondStep = pathname === '/second';
7 | const isThirdStep = pathname === '/third';
8 | const isLoginPage = pathname === '/login';
9 |
10 | return (
11 |
12 | {!isLoginPage ? (
13 |
14 |
15 |
1
16 |
17 | {isSecondStep || isThirdStep ? (
18 | Step 1
19 | ) : (
20 | 'Step 1'
21 | )}
22 |
23 |
24 |
25 |
2
26 |
27 | {isThirdStep ? Step 2 : 'Step 2'}
28 |
29 |
30 |
34 |
35 | ) : (
36 |
37 | )}
38 |
39 | );
40 | };
41 |
42 | export default withRouter(Progress);
43 |
--------------------------------------------------------------------------------
/src/components/SecondStep.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { useForm } from 'react-hook-form';
3 | import { Form, Button } from 'react-bootstrap';
4 | import { motion } from 'framer-motion';
5 |
6 | const SecondStep = (props) => {
7 | const { user } = props;
8 | const { register, handleSubmit, errors } = useForm({
9 | defaultValues: {
10 | user_email: user.user_email,
11 | user_password: user.user_password
12 | }
13 | });
14 |
15 | const onSubmit = (data) => {
16 | props.updateUser(data);
17 | props.history.push('/third');
18 | };
19 |
20 | return (
21 |
75 | );
76 | };
77 |
78 | export default SecondStep;
79 |
--------------------------------------------------------------------------------
/src/components/ThirdStep.js:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from 'react';
2 | import { Form, Button } from 'react-bootstrap';
3 | import csc from 'country-state-city';
4 | import axios from 'axios';
5 | import { motion } from 'framer-motion';
6 | import Swal from 'sweetalert2';
7 | import { BASE_API_URL } from '../utils/constants';
8 |
9 | const ThirdStep = (props) => {
10 | const [countries, setCountries] = useState([]);
11 | const [states, setStates] = useState([]);
12 | const [cities, setCities] = useState([]);
13 | const [isLoading, setIsLoading] = useState(false);
14 |
15 | const [selectedCountry, setSelectedCountry] = useState('');
16 | const [selectedState, setSelectedState] = useState('');
17 | const [selectedCity, setSelectedCity] = useState('');
18 |
19 | useEffect(() => {
20 | const getCountries = async () => {
21 | try {
22 | setIsLoading(true);
23 | const result = await csc.getAllCountries();
24 | let allCountries = [];
25 | allCountries = result?.map(({ isoCode, name }) => ({
26 | isoCode,
27 | name
28 | }));
29 | const [{ isoCode: firstCountry } = {}] = allCountries;
30 | setCountries(allCountries);
31 | setSelectedCountry(firstCountry);
32 | setIsLoading(false);
33 | } catch (error) {
34 | setCountries([]);
35 | setIsLoading(false);
36 | }
37 | };
38 |
39 | getCountries();
40 | }, []);
41 |
42 | useEffect(() => {
43 | const getStates = async () => {
44 | try {
45 | const result = await csc.getStatesOfCountry(selectedCountry);
46 | let allStates = [];
47 | allStates = result?.map(({ isoCode, name }) => ({
48 | isoCode,
49 | name
50 | }));
51 | const [{ isoCode: firstState = '' } = {}] = allStates;
52 | setCities([]);
53 | setSelectedCity('');
54 | setStates(allStates);
55 | setSelectedState(firstState);
56 | } catch (error) {
57 | setStates([]);
58 | setCities([]);
59 | setSelectedCity('');
60 | }
61 | };
62 |
63 | getStates();
64 | }, [selectedCountry]);
65 |
66 | useEffect(() => {
67 | const getCities = async () => {
68 | try {
69 | const result = await csc.getCitiesOfState(
70 | selectedCountry,
71 | selectedState
72 | );
73 | let allCities = [];
74 | allCities = result?.map(({ name }) => ({
75 | name
76 | }));
77 | const [{ name: firstCity = '' } = {}] = allCities;
78 | setCities(allCities);
79 | setSelectedCity(firstCity);
80 | } catch (error) {
81 | setCities([]);
82 | }
83 | };
84 |
85 | getCities();
86 | }, [selectedState]);
87 |
88 | const handleSubmit = async (event) => {
89 | event.preventDefault();
90 |
91 | try {
92 | const { user } = props;
93 | const updatedData = {
94 | country: countries.find(
95 | (country) => country.isoCode === selectedCountry
96 | )?.name,
97 | state:
98 | states.find((state) => state.isoCode === selectedState)?.name || '', // or condition added because selectedState might come as undefined
99 | city: selectedCity
100 | };
101 |
102 | await axios.post(`${BASE_API_URL}/register`, {
103 | ...user,
104 | ...updatedData
105 | });
106 | Swal.fire('Awesome!', "You're successfully registered!", 'success').then(
107 | (result) => {
108 | if (result.isConfirmed || result.isDismissed) {
109 | props.resetUser();
110 | props.history.push('/');
111 | }
112 | }
113 | );
114 | } catch (error) {
115 | if (error.response) {
116 | Swal.fire({
117 | icon: 'error',
118 | title: 'Oops...',
119 | text: error.response.data
120 | });
121 | console.log('error', error.response.data);
122 | }
123 | }
124 | };
125 |
126 | return (
127 |
200 | );
201 | };
202 |
203 | export default ThirdStep;
204 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import AppRouter from './router/AppRouter';
4 | import 'bootstrap/dist/css/bootstrap.min.css';
5 | import './styles.scss';
6 |
7 | ReactDOM.render( , document.getElementById('root'));
8 |
--------------------------------------------------------------------------------
/src/router/AppRouter.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import { BrowserRouter, Redirect, Route, Switch } from 'react-router-dom';
3 | import FirstStep from '../components/FirstStep';
4 | import Header from '../components/Header';
5 | import Login from '../components/Login';
6 | import SecondStep from '../components/SecondStep';
7 | import ThirdStep from '../components/ThirdStep';
8 |
9 | const AppRouter = () => {
10 | const [user, setUser] = useState({});
11 |
12 | const updateUser = (data) => {
13 | setUser((prevUser) => ({ ...prevUser, ...data }));
14 | };
15 |
16 | const resetUser = () => {
17 | setUser({});
18 | };
19 |
20 | return (
21 |
22 |
23 |
24 |
25 | (
27 |
28 | )}
29 | path="/"
30 | exact={true}
31 | />
32 | (
34 |
35 | )}
36 | path="/second"
37 | />
38 | (
40 |
46 | )}
47 | path="/third"
48 | />
49 |
50 | } />
51 |
52 |
53 |
54 | );
55 | };
56 |
57 | export default AppRouter;
58 |
--------------------------------------------------------------------------------
/src/styles.scss:
--------------------------------------------------------------------------------
1 | $base-color: #e67e22;
2 | $blue-color: #22ac11;
3 |
4 | * {
5 | margin: 0;
6 | padding: 0;
7 | box-sizing: border-box;
8 | }
9 |
10 | body {
11 | font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
12 | color: $base-color;
13 | }
14 |
15 | .form-control:focus {
16 | outline: none;
17 | box-shadow: none;
18 | color: unset;
19 | background-color: unset;
20 | border-color: unset;
21 | }
22 |
23 | h1 {
24 | text-align: center;
25 | margin-top: 1rem;
26 | font-size: 2.2rem;
27 | }
28 |
29 | .btn {
30 | letter-spacing: 1px;
31 | }
32 |
33 | .steps {
34 | display: flex;
35 | justify-content: center;
36 | letter-spacing: 1px;
37 | margin-top: 2rem;
38 |
39 | .step {
40 | margin: 0.5rem 3rem;
41 | display: flex;
42 | color: #ccc;
43 |
44 | a {
45 | color: $base-color;
46 | }
47 |
48 | div:first-of-type {
49 | border: 1px solid #ccc;
50 | padding: 5px;
51 | border-radius: 50%;
52 | margin-right: 0.5rem;
53 | width: 2rem;
54 | height: 2rem;
55 | text-align: center;
56 | line-height: 100%;
57 | padding-top: 7%;
58 | }
59 |
60 | :last-child {
61 | margin-top: 3%;
62 | }
63 |
64 | &.active {
65 | div:first-of-type {
66 | background-color: $base-color;
67 | border: 1px solid transparent;
68 | color: #fff;
69 | }
70 |
71 | div:last-of-type {
72 | color: $base-color;
73 | }
74 | }
75 | }
76 | }
77 |
78 | .input-form {
79 | width: 60%;
80 | margin: 3rem auto;
81 | }
82 |
83 | .errorMsg {
84 | max-width: 350px;
85 | color: #f21e08;
86 | padding: 2px 0;
87 | margin-top: 2px;
88 | font-size: 14px;
89 | font-weight: 300;
90 | }
91 |
92 | .login-error {
93 | font-size: 1.1rem;
94 | }
95 |
96 | .successMsg {
97 | color: $blue-color;
98 | }
99 |
100 | .loading {
101 | color: #777;
102 | }
103 |
104 | .form-control.input-error {
105 | border: 2px solid #f21e08;
106 | }
107 |
108 | .user-details {
109 | color: $blue-color;
110 | padding: 5px 0;
111 | margin-bottom: 1rem;
112 | }
113 |
114 | @media screen and (max-width: 1200px) {
115 | .input-form {
116 | width: 90%;
117 | }
118 | }
119 |
120 | @media screen and (max-width: 900px) {
121 | .steps .step {
122 | margin: 0.5rem 2rem;
123 | }
124 | }
125 |
126 | @media screen and (max-width: 600px) {
127 | h1 {
128 | font-size: 2rem;
129 | }
130 |
131 | .steps .step {
132 | margin: 0.5rem 1rem;
133 | font-size: 0.9rem;
134 |
135 | div:first-of-type {
136 | padding-top: 9%;
137 | }
138 | }
139 | }
140 |
141 | @media screen and (max-width: 400px) {
142 | .steps {
143 | flex-direction: column;
144 | align-items: center;
145 |
146 | .step {
147 | align-items: center;
148 | }
149 | }
150 | }
151 |
--------------------------------------------------------------------------------
/src/utils/constants.js:
--------------------------------------------------------------------------------
1 | export const BASE_API_URL = '';
2 |
--------------------------------------------------------------------------------