diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..9c1131e
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,2 @@
+# Elastic Beanstalk Configuration files
+.elasticbeanstalk/
\ No newline at end of file
diff --git a/docs/beanstalk/01_Getting_Started/README.md b/docs/beanstalk/01_Getting_Started/README.md
new file mode 100644
index 0000000..87c2caa
--- /dev/null
+++ b/docs/beanstalk/01_Getting_Started/README.md
@@ -0,0 +1,43 @@
+# Getting Started
+
+Before you can create resources in AWS you will first need to configure your local environment.
+
+Note that the EB CLI requires Python to be installed on your system.
+
+### AWS Authentication Keys
+
+1) Login into your AWS Educate account and select "AWS Account" on the top right
+
+
+2) Select "AWS Educate Starter Account" which should open a new tab
+
+
+
+
+3) Select the "Account Details" button and you will be presented with
+
+
+
+
+4) Using your favorite editor copy the entire contents of the "AWS CLI" section to the `~/.aws/credentials` file on Mac/Linux and `%UserProfile%\.aws\credentials` on Windows.
+More information can be found in the [CLI Configuration Docs](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+
+
+
+Now that your API credentials are saved, you will be able to authenticate against your AWS account using CLI tools as well as programs that use the AWS SDK. Note that AWS Educate tokens expire after 3 hours, so please repeat these steps if you receive an expired session error.
+
+
+
+### Install and Configure the EB CLI
+EB ClI - See installation [instructions](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-advanced.html) for your OS
+
+Once installed check that the CLI is installed by running:
+
+```
+eb --version
+EB CLI 3.19.3 (Python 3.8.5)
+```
+
+---
+
+Next: [Creating EB Environment](../02_Creating_EB_Environment/README.md)
diff --git a/docs/beanstalk/01_Getting_Started/images/1_Account_Details.png b/docs/beanstalk/01_Getting_Started/images/1_Account_Details.png
new file mode 100644
index 0000000..6d0af22
Binary files /dev/null and b/docs/beanstalk/01_Getting_Started/images/1_Account_Details.png differ
diff --git a/docs/beanstalk/01_Getting_Started/images/2_AWS_API_Creds.png b/docs/beanstalk/01_Getting_Started/images/2_AWS_API_Creds.png
new file mode 100644
index 0000000..b13fc93
Binary files /dev/null and b/docs/beanstalk/01_Getting_Started/images/2_AWS_API_Creds.png differ
diff --git a/docs/beanstalk/01_Getting_Started/images/3_AWS_Credentials_Edit.png b/docs/beanstalk/01_Getting_Started/images/3_AWS_Credentials_Edit.png
new file mode 100644
index 0000000..1f00d1e
Binary files /dev/null and b/docs/beanstalk/01_Getting_Started/images/3_AWS_Credentials_Edit.png differ
diff --git a/docs/beanstalk/01_Getting_Started/images/4_Editing_AWS_Credentials_File.png b/docs/beanstalk/01_Getting_Started/images/4_Editing_AWS_Credentials_File.png
new file mode 100644
index 0000000..ff8eda5
Binary files /dev/null and b/docs/beanstalk/01_Getting_Started/images/4_Editing_AWS_Credentials_File.png differ
diff --git a/docs/beanstalk/02_Creating_EB_Environment/README.md b/docs/beanstalk/02_Creating_EB_Environment/README.md
new file mode 100644
index 0000000..7ce2726
--- /dev/null
+++ b/docs/beanstalk/02_Creating_EB_Environment/README.md
@@ -0,0 +1,87 @@
+# Creating Your Elastic Beanstalk Environment
+
+Now that you have the EB CLI installed, you will be able to push your Backend (Server) code to Elastic Beanstalk in your AWS account.
+
+Note that all of the following will take place withing the `server` directory.
+
+## Initializing Your Elastic Beanstalk Project
+
+Initializing your Elastic Beanstalk project will create a `.elasticbeanstalk` folder which will contain a configuration file with information about your EB deployment.
+
+
+
+1) Run the `eb init` command which will prompt you for a few questions. You make your selection by typing the matching number or character and pressing "Enter".
+ Make sure to select the "US East (N. Virginia)" option which should be #1.
+
+
+
+
+
+2) You will now be prompted to either create an application or select an existing on. Enter the number for "Create a new Application"
+
+
+
+
+
+3) Next you will be prompted to enter the name of your project. In this example "CSCL" was used. Feel free to use a different name.
+
+
+
+
+
+4) Now you will be asked if you are "using Node.js", enter `y` or "yes". Next, choose the "Node.js 12" option which should be #1.
+
+
+
+
+
+5) You will be prompted to create an "SSH key pair". Enter `y`to accept. When prompted for a name, you must enter the same name that was referenced earlier in the deployment. Since we used "CSCL" earlier, it should be "cscl".
+
+
+
+
+
+6) You will be prompted to enter a passphrase. Press "Enter" two times to enter a blank passphrase if you don't wish to use one. Setting a passphrase will require you to enter it whenever you attempt to connect to your server using SSH.
+
+
+
+
+
+
+7) Congrats! Your EB environment has been initialized locally. You will notice a new folder called `elasticbeanstalk` which will contain your configuration file.
+
+
+
+
+## Creating your EB environment in AWS
+
+Now that your configuration has been initialized. The EB CLI will use your config in `.elasticbeanstalk` and the deployment configs in `.ebextensions` to create your environment.
+
+
+Making sure that you are still in the `server` directory. Run the `eb crreate` command followed by the name of the environment you are creating. You will be able to create multiple environments and also delete it later. So don't worry if you need to change the name.
+
+
+
+Once you kick off the deployment, EB CLI will display the log events on your console. This can take a few minutes, so feel free to check back later.
+
+Once finished you will be presented with the output.
+
+
+
+
+This deployment create the following resources:
+
+- API Gateway: Used to proxy (pass along) your HTTP requests to your Beanstalk server. This allows you to connect using HTTPS which will allow your Frontend to call your Backend server without generating any security errors.
+
+- EC2 Instance running MongoDB: This server is using a Bitnami Image containing MongoDB. This is where your database will live.
+
+- Elastic Beanstalk deployment: This represents a number of resources which include an EC2 instance where your code will be running.
+
+
+## Updating the Code
+
+Whenever you are ready to update your code on AWS. Run the `eb deploy` command. You can provide an environment name if you have more than one using `eb deploy `.
+
+---
+
+Next: [Setting Up Mongo](../03_Setting_Up_Mongo/README.md)
diff --git a/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_Create_1_CSCL.png b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_Create_1_CSCL.png
new file mode 100644
index 0000000..f22a8ed
Binary files /dev/null and b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_Create_1_CSCL.png differ
diff --git a/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_Create_2_CSCL_Finished.png b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_Create_2_CSCL_Finished.png
new file mode 100644
index 0000000..bea7bdc
Binary files /dev/null and b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_Create_2_CSCL_Finished.png differ
diff --git a/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_1_Select_Region.png b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_1_Select_Region.png
new file mode 100644
index 0000000..95cb489
Binary files /dev/null and b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_1_Select_Region.png differ
diff --git a/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_2_Create_New_App.png b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_2_Create_New_App.png
new file mode 100644
index 0000000..d687038
Binary files /dev/null and b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_2_Create_New_App.png differ
diff --git a/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_3_Set_Name.png b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_3_Set_Name.png
new file mode 100644
index 0000000..b3a339f
Binary files /dev/null and b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_3_Set_Name.png differ
diff --git a/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_4_Configure_Platform.png b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_4_Configure_Platform.png
new file mode 100644
index 0000000..a794f3b
Binary files /dev/null and b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_4_Configure_Platform.png differ
diff --git a/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_5_SSH_Key_Setup.png b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_5_SSH_Key_Setup.png
new file mode 100644
index 0000000..4a40441
Binary files /dev/null and b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_5_SSH_Key_Setup.png differ
diff --git a/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_6_SSH_Key_Passphrase.png b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_6_SSH_Key_Passphrase.png
new file mode 100644
index 0000000..512b763
Binary files /dev/null and b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_6_SSH_Key_Passphrase.png differ
diff --git a/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_7_Finish.png b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_7_Finish.png
new file mode 100644
index 0000000..bffc15a
Binary files /dev/null and b/docs/beanstalk/02_Creating_EB_Environment/images/EB_CLI_INIT_7_Finish.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/README.md b/docs/beanstalk/03_Setting_Up_Mongo/README.md
new file mode 100644
index 0000000..4696467
--- /dev/null
+++ b/docs/beanstalk/03_Setting_Up_Mongo/README.md
@@ -0,0 +1,157 @@
+# Configuring MongoDB
+
+After deploying your application to AWS you will need to access your MongoDB server so that you can import your database data. First you will need to add an entry in the Security Group which can be thought as a Firewall rule and then retrieving the MongoDB credentials from the logs.
+
+One of the easiest ways to access and manage a Mongo database is to use [MongoDB Compass](https://www.mongodb.com/try/download/compass). Download and install it and follow the instructions down below.
+
+## Getting MongoDB Credentials
+
+First, you will be getting your MongoDB username and password. The server imaged used to create this database server .
+
+Follow the [instrcutions](https://docs.bitnami.com/aws/faq/get-started/find-credentials/#option-1-find-password-by-checking-the-system-log-on-the-aws-cloud-console-ec2) to learn how you can retrieve those credentials. Make sure to save that information for now. It will be necessary for later steps.
+
+## Getting MongoDB IPs
+Your MongoDB server will have two IPs. A Private one used to access it within your Virtual Private Cloud (VPC) network. The other is a Public one used to access it over the internet.
+
+
+1) Make you r way to the EC2 dashboard by typing "EC2" in the search bar and selecting "EC2". You will be presented with the EC2 dashboard.
+
+
+
+
+
+2) Click on the "Instances" link to view all of your current EC2 instances.
+
+
+
+
+
+3) On this screen you will see all of your instances. There should only be two at the moment. One for MongoDB and one for Elastic Beanstalk.
+
+
+
+
+
+4) To the right you should see the Public IP address for your MongoDB instance. Look at the instance named "CSCL_DB". Do note this Public IP address.
+
+
+
+
+
+5) Click on the "Instance ID" of the "CSCL_DB" instance to go to the Instance Profile screen. Here you will see lots of information about your instance, including monitoring metrics. Do note the Private IP address.
+
+
+
+## Granting Access to MongoDB Server From Current IP
+Now that you have the IP addresses of your MongoDB server. You will need to open up a port so that you can access it from your local machine.
+
+
+1) First you will need to click the "Security Group" link in the left-side menu.
+
+
+
+
+
+
+2) On this screen you will see all of your current Security Groups. Locate the one with a description of "Lock MongoDB down to webserver access" and click the "Security Group ID" link.
+
+
+
+
+
+3) On this screen you will see information about the Security Group associated with the MongoDB server. You should only see a single Inbound rule and an unrestricted Outbound rule. Click the "Edit Inbound Rule" button.
+
+
+
+
+
+
+4) On this screen you will be able to add and remove rules. You will only need to add a single rule to grant yourself access to the Mongo Server.
+
+
+
+
+
+5) For the Type select "Custom TCP". For the "Port Range" enter "27017". For the source, select "My IP" which should populate the next field with your current IP address. Feel free to add a description if you wish.
+
+
+
+
+
+6) Once your new rule has been added, click "Save Rules"
+
+
+
+
+
+7) You will be taken to the Secrurity Group page where you can review all the Inbound rules again.
+
+
+
+
+
+At this point, your MongoDB server will be accessible from your current IP address and the Elastic Beanstalk server. If you are using a VPN or public IP, remember to remove access as soon as you are done.
+
+## Constructing the MongoDB Connection String
+
+Now that we have the database credentials, the private and public ip address of your MongoDB server, you can create the connection strings. Use the following template to construct your connection strings, one will be used to access the database from your local machine and the other from the EB server.
+
+Public Connection String:
+```
+mongodb://:@/admin
+```
+
+Private Connection String (used by your backend server):
+```
+mongodb://:@/cscl?authSource=admin
+```
+*Note that "cscl" in the Private connection string is the name of your database. Update the connection string accordingly if you are using a different database.*
+
+## Connecting to MongoDB Using MongoDB Compass and Importing Your Data
+Now that you have network access to the database, you can use MongoDB Compass to connect to it and import your data.
+
+
+1) In MongoDB Compass click "New Connection" and enter the "Public Connection String" you created earlier in the text field then click "CONNECT".
+
+
+
+
+
+2) Once logged in you will be presented with the current databases on your MongoDB server. Click the "CREATE DATABASE" button at the top to create a new database.
+
+
+
+
+
+3) On this form, enter the desired database name. For these instructions "cscl" will be used for the database. "items" will be used for the collection name. Click "Create Database" once done.
+
+
+
+
+
+4) Once your database is created you will be presented with the list of all databases. Select the database you created, i.e. "cscl".
+
+
+
+
+
+5) Select the collection that you created under your database, i.e. "items"
+
+
+
+
+
+6) Click the "ADD DATA" button in the upper-left, and select "Import File".
+
+
+
+
+
+7) Select the JSON file provided to you in the  or your own MongoDB backup. Enable the Options that you would like, and click "IMPORT".
+
+
+
+---
+Congrats! You now have loaded data into your Mongo database in the cloud. Feel free to remove your IP address entry from the Security Group to remove access to your Database server.
+
+Next: [Connecting the Backend to MongoDB](../04_Connecting_Backend_to_Mongo)
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_1_EC2_Dashboard_Screen.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_1_EC2_Dashboard_Screen.png
new file mode 100644
index 0000000..6696bb1
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_1_EC2_Dashboard_Screen.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_2_EC2_Dashboard_Select_Instances.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_2_EC2_Dashboard_Select_Instances.png
new file mode 100644
index 0000000..9f29e4b
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_2_EC2_Dashboard_Select_Instances.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_3_EC2_Instances.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_3_EC2_Instances.png
new file mode 100644
index 0000000..8d62353
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_3_EC2_Instances.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_4_EC2_Get_Public_IP.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_4_EC2_Get_Public_IP.png
new file mode 100644
index 0000000..ff758fe
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_4_EC2_Get_Public_IP.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_5_EC2_Get_Private_IP.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_5_EC2_Get_Private_IP.png
new file mode 100644
index 0000000..4d5788a
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/MongoServer_5_EC2_Get_Private_IP.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_1_select_sg.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_1_select_sg.png
new file mode 100644
index 0000000..4a9cc52
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_1_select_sg.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_2_locate_mongo_sg.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_2_locate_mongo_sg.png
new file mode 100644
index 0000000..1037bc4
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_2_locate_mongo_sg.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_3_sg_profile_screen.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_3_sg_profile_screen.png
new file mode 100644
index 0000000..4949839
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_3_sg_profile_screen.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_4_add_new_rule.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_4_add_new_rule.png
new file mode 100644
index 0000000..0b8823b
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_4_add_new_rule.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_5_select_myip.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_5_select_myip.png
new file mode 100644
index 0000000..ce65b85
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_5_select_myip.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_6_IP_added.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_6_IP_added.png
new file mode 100644
index 0000000..0d8ead4
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_6_IP_added.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_7_summary.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_7_summary.png
new file mode 100644
index 0000000..06fc9a6
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Connecting_To_Mongo/sg_add_current_ip_for_Mongo_7_summary.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/1_Mongo_Compass_connect_to_server.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/1_Mongo_Compass_connect_to_server.png
new file mode 100644
index 0000000..7028860
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/1_Mongo_Compass_connect_to_server.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/2_Mongo_Compass_create_db_screen.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/2_Mongo_Compass_create_db_screen.png
new file mode 100644
index 0000000..14c7517
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/2_Mongo_Compass_create_db_screen.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/3_Mongo_Compass_creating_database_and_collection.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/3_Mongo_Compass_creating_database_and_collection.png
new file mode 100644
index 0000000..f328173
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/3_Mongo_Compass_creating_database_and_collection.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/4_Mongo_Compass_select_database.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/4_Mongo_Compass_select_database.png
new file mode 100644
index 0000000..cc2d8c9
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/4_Mongo_Compass_select_database.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/5_Mongo_Compass_select_collection.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/5_Mongo_Compass_select_collection.png
new file mode 100644
index 0000000..0c092fd
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/5_Mongo_Compass_select_collection.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/6_Mongo_Compass_import_file_button.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/6_Mongo_Compass_import_file_button.png
new file mode 100644
index 0000000..848a7cc
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/6_Mongo_Compass_import_file_button.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/7_Mongo_Compass_import_file_submit.png b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/7_Mongo_Compass_import_file_submit.png
new file mode 100644
index 0000000..5a19a86
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/Mongo_Compass/7_Mongo_Compass_import_file_submit.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/ec2_instance_dashboard.png b/docs/beanstalk/03_Setting_Up_Mongo/images/ec2_instance_dashboard.png
new file mode 100644
index 0000000..76e461d
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/ec2_instance_dashboard.png differ
diff --git a/docs/beanstalk/03_Setting_Up_Mongo/images/ec2_main_screen.png b/docs/beanstalk/03_Setting_Up_Mongo/images/ec2_main_screen.png
new file mode 100644
index 0000000..82d7257
Binary files /dev/null and b/docs/beanstalk/03_Setting_Up_Mongo/images/ec2_main_screen.png differ
diff --git a/docs/beanstalk/04_Connecting_Backend_to_Mongo/README.md b/docs/beanstalk/04_Connecting_Backend_to_Mongo/README.md
new file mode 100644
index 0000000..b7b3268
--- /dev/null
+++ b/docs/beanstalk/04_Connecting_Backend_to_Mongo/README.md
@@ -0,0 +1,20 @@
+# Connecting The Backend to MongoDB
+You will now update your backend server so it will be able to connect to the MongoDB server. This will be achieved by providing a connection string using an Environment Variable.
+Here is an helpful [video](https://www.youtube.com/watch?v=ADh_OFBfdEE) explaining what Environment Variables are.
+
+## Updating Your Backend Environment
+
+Retrieve the Private IP connection string you created in the previous sections. Make sure that you are in the `server` directory and use the `eb setenv` command to update your backend server's environment variables. Note that you can use `eb list` to view the available environments.
+
+The format is:
+```shell
+MONGO_CONNECTION_STRING= -e
+```
+
+
+
+---
+
+Once deployed, your backend server will be able to connect to your MongoDB Database.
+
+Next: [Wrapping Up](../05_Wrapping_Up/README.md)
diff --git a/docs/beanstalk/04_Connecting_Backend_to_Mongo/images/ebcli_setting_mongo_conn_string.png b/docs/beanstalk/04_Connecting_Backend_to_Mongo/images/ebcli_setting_mongo_conn_string.png
new file mode 100644
index 0000000..8872a3c
Binary files /dev/null and b/docs/beanstalk/04_Connecting_Backend_to_Mongo/images/ebcli_setting_mongo_conn_string.png differ
diff --git a/docs/beanstalk/05_Wrapping_Up/README.md b/docs/beanstalk/05_Wrapping_Up/README.md
new file mode 100644
index 0000000..ced2a98
--- /dev/null
+++ b/docs/beanstalk/05_Wrapping_Up/README.md
@@ -0,0 +1,47 @@
+# Wrapping UP
+Congrats for making it this far, you're almost all set up and ready to fully deploy your app. You will now be retrieving your backend's Gateway URL which will be used in your Frontend environment to fetch, create and update data using your API.
+
+## Getting Your API URL
+
+1) In the AWS console, search for "API Gateway" and click "API Gateway".
+
+
+
+
+
+2) You should only see a single API called "CSCL-HTTPS-Proxy". Click the link to view the configuration.
+
+
+
+
+
+3) On this screen, you will see your API Gateway's URL. This is the URL that will be used to access your API in Elastic Beanstalk.
+
+
+
+## Testing
+Now that you have the URL you can test it by copying it to your browser and pressing enter. You should see the response from the root (`/`) route of your API.
+Also, you can test using Curl or Postman
+
+
+Curl)
+
+
+
+
+Postman)
+
+
+
+## What's Next
+
+To delete all resources created by your deployment, run the `eb terminate ` command.
+
+
+
+---
+
+Next up is to create your frontend using AWS Amplify. Make sure to note the API Gateway URL because it will be used in the Frontend deployment.
+
+[Amplify Deployment Documentation](../../amplify/README.md)
+
diff --git a/docs/beanstalk/05_Wrapping_Up/images/1_API_Gateway_Menu_Selection.png b/docs/beanstalk/05_Wrapping_Up/images/1_API_Gateway_Menu_Selection.png
new file mode 100644
index 0000000..8652589
Binary files /dev/null and b/docs/beanstalk/05_Wrapping_Up/images/1_API_Gateway_Menu_Selection.png differ
diff --git a/docs/beanstalk/05_Wrapping_Up/images/2_Select_CSCL_HTTPS_Proxy.png b/docs/beanstalk/05_Wrapping_Up/images/2_Select_CSCL_HTTPS_Proxy.png
new file mode 100644
index 0000000..4421492
Binary files /dev/null and b/docs/beanstalk/05_Wrapping_Up/images/2_Select_CSCL_HTTPS_Proxy.png differ
diff --git a/docs/beanstalk/05_Wrapping_Up/images/3_Get_API_Gateway_URL.png b/docs/beanstalk/05_Wrapping_Up/images/3_Get_API_Gateway_URL.png
new file mode 100644
index 0000000..d7e019d
Binary files /dev/null and b/docs/beanstalk/05_Wrapping_Up/images/3_Get_API_Gateway_URL.png differ
diff --git a/docs/beanstalk/05_Wrapping_Up/images/Testing_1_Curl.png b/docs/beanstalk/05_Wrapping_Up/images/Testing_1_Curl.png
new file mode 100644
index 0000000..174f9cd
Binary files /dev/null and b/docs/beanstalk/05_Wrapping_Up/images/Testing_1_Curl.png differ
diff --git a/docs/beanstalk/05_Wrapping_Up/images/Testing_2_Postman.png b/docs/beanstalk/05_Wrapping_Up/images/Testing_2_Postman.png
new file mode 100644
index 0000000..74cb200
Binary files /dev/null and b/docs/beanstalk/05_Wrapping_Up/images/Testing_2_Postman.png differ
diff --git a/docs/beanstalk/05_Wrapping_Up/images/eb_terminate_output.png b/docs/beanstalk/05_Wrapping_Up/images/eb_terminate_output.png
new file mode 100644
index 0000000..3d87fb1
Binary files /dev/null and b/docs/beanstalk/05_Wrapping_Up/images/eb_terminate_output.png differ
diff --git a/docs/beanstalk/README.md b/docs/beanstalk/README.md
index e69de29..9355129 100644
--- a/docs/beanstalk/README.md
+++ b/docs/beanstalk/README.md
@@ -0,0 +1,30 @@
+# Deploying The Client Using AWS Elastic Beanstalk
+Elastic Beanstalk is an Amazon service which gives Developers the ability to quickly deploy an application to the cloud without having worry about complex configuration and the management of cloud resources. For the API Server (Backend) and database, this will involve using the EB CLI tool to trigger an automated deployment to create a single API server, and a Mongo database server, along with the necessary resources to get your environment up and running.
+
+You can find more information at the [Elastic Beanstalk Product Page](https://aws.amazon.com/elasticbeanstalk/).
+
+## Getting Started
+1) Set up your AWS account. You should have received that information from a member of the Hack team.
+
+2) Set up your GitHub account. If you're reading this, there is a good chance that you have already done that.
+
+3) Fork this repository under your team or personal account.
+
+## Preparing For the Deployment
+A deployment is pushing a version of your code to an environment (developmernt, production, etc...). This version of your application is usually available to your end users, in this case it will be publicly available on the internet. By following the steps below, your code will be packaged and automatically deployed to AWS Elastic Beanstalk. There will be some manual steps for the initial deployment, but all subsequent deployments will only update your code..
+
+Please follow the instructions in the linked sections below to deploy your API to AWS:
+
+1) [Setup](./01_Getting_Started/README.md)
+
+2) [Creating Your Elastic Beanstalk Environment](./02_Creating_EB_Environment/README.md)
+
+3) [Setting Up Mongo](./03_Setting_Up_Mongo/README.md)
+
+4) [Connecting Backend to Mongo](./04_Connecting_Backend_To_Mongo/README.md)
+
+5) [Wrapping Up](./05_Wrapping_Up/README.md)
+
+
+### Conclusion
+Now that your app has been deployed to AWS Elastic Beanstalk, you will be able to retrieve, edit, and create data through your API over the internet. Please explore the Elastic Beanstalk dashboard for other neat features. Also, do remember to open an issue on this repository if you find any mistakes with these instructions.
diff --git a/server/.ebextensions/00_options.config b/server/.ebextensions/00_options.config
new file mode 100644
index 0000000..f227d0a
--- /dev/null
+++ b/server/.ebextensions/00_options.config
@@ -0,0 +1,6 @@
+option_settings:
+ "aws:elasticbeanstalk:customoption":
+ MongoAmi: ami-0c91ccf332e243a4d
+ MongoServerType: t2.micro
+ SshKeyName: cscl
+
\ No newline at end of file
diff --git a/server/.ebextensions/01_mongodb_ec2.config b/server/.ebextensions/01_mongodb_ec2.config
new file mode 100644
index 0000000..9047003
--- /dev/null
+++ b/server/.ebextensions/01_mongodb_ec2.config
@@ -0,0 +1,48 @@
+Resources:
+ MongoSecurityGroup:
+ Type: "AWS::EC2::SecurityGroup"
+ Properties:
+ GroupName: "CSCL-sg"
+ GroupDescription: "Lock MongoDB down to webserver access only"
+ SecurityGroupIngress :
+ - IpProtocol : "tcp"
+ FromPort :
+ Fn::GetOptionSetting:
+ OptionName : "MongoPort"
+ DefaultValue: "27017"
+ ToPort :
+ Fn::GetOptionSetting:
+ OptionName : "MongoPort"
+ DefaultValue: "27017"
+ SourceSecurityGroupName:
+ Ref: "AWSEBSecurityGroup"
+
+ MongoServer:
+ Type: AWS::EC2::Instance
+ Properties:
+ ImageId:
+ Fn::GetOptionSetting:
+ OptionName: "MongoAmi"
+ InstanceType:
+ Fn::GetOptionSetting:
+ OptionName: "MongoServerType"
+ DefaultValue: "t3.micro"
+ KeyName:
+ Fn::GetOptionSetting:
+ OptionName: "SshKeyName"
+ Monitoring: true
+ SecurityGroupIds:
+ - Ref: "MongoSecurityGroup"
+ Tags:
+ - "Key" : "Name"
+ "Value" : "CSCL_DB"
+
+Outputs:
+ MongoDBServer:
+ Description : "ID of EC2 Instance Running MongoDB"
+ Value :
+ Ref : "MongoServer"
+ MongoDBServerIP:
+ Description: "IP Address of EC2 Instance Running MongoDB"
+ Value:
+ Fn::GetAtt: ["MongoServer", "PrivateIp"]
\ No newline at end of file
diff --git a/server/.ebextensions/02_ec2_configuration.config b/server/.ebextensions/02_ec2_configuration.config
new file mode 100644
index 0000000..fb5c78d
--- /dev/null
+++ b/server/.ebextensions/02_ec2_configuration.config
@@ -0,0 +1,6 @@
+option_settings:
+ aws:autoscaling:launchconfiguration:
+ EC2KeyName:
+ Fn::GetOptionSetting:
+ OptionName: SshKeyName
+ DefaultValue: cscl
\ No newline at end of file
diff --git a/server/.ebextensions/02_environment_variables.config b/server/.ebextensions/02_environment_variables.config
new file mode 100644
index 0000000..7f730dd
--- /dev/null
+++ b/server/.ebextensions/02_environment_variables.config
@@ -0,0 +1,5 @@
+option_settings:
+ aws:elasticbeanstalk:application:environment:
+ API_PORT: 8080
+ MONGO_CONNECTION_STRING: "mongodb://:@:27017/cscl?authSource=admin"
+ NODE_ENV: production
diff --git a/server/.ebextensions/03_api_gateway_proxy.config b/server/.ebextensions/03_api_gateway_proxy.config
new file mode 100644
index 0000000..4883cf1
--- /dev/null
+++ b/server/.ebextensions/03_api_gateway_proxy.config
@@ -0,0 +1,13 @@
+Resources:
+ HTTPSProxy:
+ Type: AWS::ApiGatewayV2::Api
+ Properties:
+ Name: CSCL-HTTPS-Proxy
+ Description: Proxies HTTPS requests to CSCL API which only supports HTTP
+ ProtocolType: HTTP
+ RouteKey: "ANY /{proxy+}"
+ Target:
+ Fn::Sub:
+ - http://${lbDomain}/{proxy}
+ - lbDomain:
+ Fn::GetAtt: ["AWSEBLoadBalancer", "DNSName"]
diff --git a/server/.gitignore b/server/.gitignore
index 30bc162..79c4736 100644
--- a/server/.gitignore
+++ b/server/.gitignore
@@ -1 +1,5 @@
-/node_modules
\ No newline at end of file
+/node_modules
+# Elastic Beanstalk Files
+.elasticbeanstalk/*
+!.elasticbeanstalk/*.cfg.yml
+!.elasticbeanstalk/*.global.yml
diff --git a/server/db/index.js b/server/db/index.js
index 0f2f284..4e057bf 100644
--- a/server/db/index.js
+++ b/server/db/index.js
@@ -1,7 +1,9 @@
const mongoose = require('mongoose');
+const connection_string = process.env.MONGO_CONNECTION_STRING || 'mongodb://127.0.0.1:27017/items'
+
mongoose
- .connect('mongodb://127.0.0.1:27017/items', { useNewUrlParser: true })
+ .connect(connection_string, { useNewUrlParser: true })
.catch(e => {
console.error('Connection error', e.message);
});
diff --git a/server/index.js b/server/index.js
index f4873fd..35d1be1 100644
--- a/server/index.js
+++ b/server/index.js
@@ -7,7 +7,7 @@ const db = require('./db');
const itemRouter = require('./routes/item-router');
const app = express();
-const apiPort = 3000;
+const apiPort = process.env.API_PORT || 3000;
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors());
diff --git a/server/package-lock.json b/server/package-lock.json
new file mode 100644
index 0000000..b67fb2e
--- /dev/null
+++ b/server/package-lock.json
@@ -0,0 +1,1465 @@
+{
+ "name": "server",
+ "version": "12.20.1",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
+ },
+ "@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "requires": {
+ "defer-to-connect": "^1.0.1"
+ }
+ },
+ "@types/bson": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz",
+ "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/mongodb": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.3.tgz",
+ "integrity": "sha512-6YNqGP1hk5bjUFaim+QoFFuI61WjHiHE1BNeB41TA00Xd2K7zG4lcWyLLq/XtIp36uMavvS5hoAUJ+1u/GcX2Q==",
+ "requires": {
+ "@types/bson": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/node": {
+ "version": "14.14.22",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz",
+ "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw=="
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "ansi-align": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
+ "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
+ "requires": {
+ "string-width": "^3.0.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ }
+ }
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+ },
+ "bl": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
+ "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ }
+ },
+ "boxen": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
+ "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
+ "requires": {
+ "ansi-align": "^3.0.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^3.0.0",
+ "cli-boxes": "^2.2.0",
+ "string-width": "^4.1.0",
+ "term-size": "^2.1.0",
+ "type-fest": "^0.8.1",
+ "widest-line": "^3.1.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "bson": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.5.tgz",
+ "integrity": "sha512-kDuEzldR21lHciPQAIulLs1LZlCXdLziXI6Mb/TDkwXhb//UORJNPXgcRs2CuO4H0DcMkpfT3/ySsP3unoZjBg=="
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+ },
+ "cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
+ }
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "chokidar": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.1",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ }
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "cli-boxes": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "configstore": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
+ "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^3.0.0",
+ "unique-string": "^2.0.0",
+ "write-file-atomic": "^3.0.0",
+ "xdg-basedir": "^4.0.0"
+ }
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
+ "defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
+ },
+ "denque": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
+ "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ=="
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "requires": {
+ "is-obj": "^2.0.0"
+ }
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "escape-goat": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
+ "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q=="
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "fsevents": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz",
+ "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==",
+ "optional": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "global-dirs": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz",
+ "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==",
+ "requires": {
+ "ini": "1.3.7"
+ }
+ },
+ "got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "requires": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "has-yarn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
+ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw=="
+ },
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignore-by-default": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+ "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk="
+ },
+ "import-lazy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
+ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
+ "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "requires": {
+ "ci-info": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-installed-globally": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
+ "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
+ "requires": {
+ "global-dirs": "^2.0.1",
+ "is-path-inside": "^3.0.1"
+ }
+ },
+ "is-npm": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
+ "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
+ },
+ "is-path-inside": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
+ "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg=="
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-yarn-global": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
+ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
+ },
+ "kareem": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
+ "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
+ },
+ "keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "latest-version": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
+ "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+ "requires": {
+ "package-json": "^6.3.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
+ },
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "requires": {
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "memory-pager": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
+ "optional": true
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "mime-db": {
+ "version": "1.45.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz",
+ "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w=="
+ },
+ "mime-types": {
+ "version": "2.1.28",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz",
+ "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==",
+ "requires": {
+ "mime-db": "1.45.0"
+ }
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "mongodb": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz",
+ "integrity": "sha512-rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w==",
+ "requires": {
+ "bl": "^2.2.1",
+ "bson": "^1.1.4",
+ "denque": "^1.4.1",
+ "require_optional": "^1.0.1",
+ "safe-buffer": "^5.1.2",
+ "saslprep": "^1.0.0"
+ }
+ },
+ "mongoose": {
+ "version": "5.11.14",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.11.14.tgz",
+ "integrity": "sha512-sDI5/i1C9JD3ysDbVGqQG4N6vMC3ZOY7sH/bT63/+3vJub2Nys//JegL4y4iS7v8Vgvje3sNA3ladMSsVnv6TQ==",
+ "requires": {
+ "@types/mongodb": "^3.5.27",
+ "bson": "^1.1.4",
+ "kareem": "2.3.2",
+ "mongodb": "3.6.3",
+ "mongoose-legacy-pluralize": "1.0.2",
+ "mpath": "0.8.3",
+ "mquery": "3.2.3",
+ "ms": "2.1.2",
+ "regexp-clone": "1.0.0",
+ "safe-buffer": "5.2.1",
+ "sift": "7.0.1",
+ "sliced": "1.0.1"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
+ }
+ },
+ "mongoose-legacy-pluralize": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
+ "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
+ },
+ "mpath": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz",
+ "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA=="
+ },
+ "mquery": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.3.tgz",
+ "integrity": "sha512-cIfbP4TyMYX+SkaQ2MntD+F2XbqaBHUYWk3j+kqdDztPWok3tgyssOZxMHMtzbV1w9DaSlvEea0Iocuro41A4g==",
+ "requires": {
+ "bluebird": "3.5.1",
+ "debug": "3.1.0",
+ "regexp-clone": "^1.0.0",
+ "safe-buffer": "5.1.2",
+ "sliced": "1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ },
+ "nodemon": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz",
+ "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==",
+ "requires": {
+ "chokidar": "^3.2.2",
+ "debug": "^3.2.6",
+ "ignore-by-default": "^1.0.1",
+ "minimatch": "^3.0.4",
+ "pstree.remy": "^1.1.7",
+ "semver": "^5.7.1",
+ "supports-color": "^5.5.0",
+ "touch": "^3.1.0",
+ "undefsafe": "^2.0.3",
+ "update-notifier": "^4.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
+ },
+ "package-json": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
+ "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+ "requires": {
+ "got": "^9.6.0",
+ "registry-auth-token": "^4.0.0",
+ "registry-url": "^5.0.0",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ },
+ "picomatch": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "proxy-addr": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "pstree.remy": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pupa": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
+ "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
+ "requires": {
+ "escape-goat": "^2.0.0"
+ }
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "regexp-clone": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
+ "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
+ },
+ "registry-auth-token": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
+ "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
+ "requires": {
+ "rc": "^1.2.8"
+ }
+ },
+ "registry-url": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
+ "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+ "requires": {
+ "rc": "^1.2.8"
+ }
+ },
+ "require_optional": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
+ "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
+ "requires": {
+ "resolve-from": "^2.0.0",
+ "semver": "^5.1.0"
+ }
+ },
+ "resolve-from": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
+ "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "saslprep": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
+ "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
+ "optional": true,
+ "requires": {
+ "sparse-bitfield": "^3.0.3"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "semver-diff": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
+ "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
+ "requires": {
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+ },
+ "sift": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz",
+ "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
+ },
+ "signal-exit": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
+ },
+ "sliced": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
+ "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
+ },
+ "sparse-bitfield": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+ "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
+ "optional": true,
+ "requires": {
+ "memory-pager": "^1.0.2"
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "term-size": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
+ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
+ },
+ "to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
+ },
+ "touch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+ "requires": {
+ "nopt": "~1.0.10"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "undefsafe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
+ "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
+ "requires": {
+ "debug": "^2.2.0"
+ }
+ },
+ "unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "requires": {
+ "crypto-random-string": "^2.0.0"
+ }
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ },
+ "update-notifier": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
+ "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
+ "requires": {
+ "boxen": "^4.2.0",
+ "chalk": "^3.0.0",
+ "configstore": "^5.0.1",
+ "has-yarn": "^2.1.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^2.0.0",
+ "is-installed-globally": "^0.3.1",
+ "is-npm": "^4.0.0",
+ "is-yarn-global": "^0.3.0",
+ "latest-version": "^5.0.0",
+ "pupa": "^2.0.1",
+ "semver-diff": "^3.1.1",
+ "xdg-basedir": "^4.0.0"
+ }
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "widest-line": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
+ "requires": {
+ "string-width": "^4.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "xdg-basedir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
+ }
+ }
+}
diff --git a/server/package.json b/server/package.json
index daf9e7d..84eb2ea 100644
--- a/server/package.json
+++ b/server/package.json
@@ -1,16 +1,17 @@
{
"name": "server",
- "version": "1.0.0",
+ "version": "12.20.1",
"description": "",
"main": "index.js",
"engines": {
- "node": ">=10.14.2",
- "npm": ">=6.4.1",
- "yarn": ">=1.22.5"
+ "node": "12.20.1",
+ "npm": "6.14.1",
+ "yarn": "1.22.10"
},
"scripts": {
"debugServer": "npx nodemon inspect index.js",
"server": "npx nodemon index.js",
+ "start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],