├── BasicBankingSystem
├── public
│ ├── img
│ │ ├── BG1.jpg
│ │ └── icon.png
│ ├── css
│ │ └── Style.css
│ ├── js
│ │ └── script.js
│ └── index.html
├── package.json
├── server.js
└── package-lock.json
└── README.md
/BasicBankingSystem/public/img/BG1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dipen7520/Basic-Banking-System/HEAD/BasicBankingSystem/public/img/BG1.jpg
--------------------------------------------------------------------------------
/BasicBankingSystem/public/img/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dipen7520/Basic-Banking-System/HEAD/BasicBankingSystem/public/img/icon.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Basic-Banking-System
2 | Sparks Foundation Web Development Internship Project : Basic Banking System website.
3 | A web application used to Transfer virtual money between multiple users and also record the banking transactions/ activities.
4 |
--------------------------------------------------------------------------------
/BasicBankingSystem/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "basicbankingsystem",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "start": "node server.js"
9 | },
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "express": "^4.17.1",
14 | "mongoose": "^5.12.3"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/BasicBankingSystem/server.js:
--------------------------------------------------------------------------------
1 | var express = require("express"),
2 | path = require("path");
3 | var app = express();
4 | var http = require('http');
5 | const mongoose = require('mongoose');
6 |
7 | mongoose.connect('mongodb://localhost:27017/BankingSystem', { useNewUrlParser: true, useUnifiedTopology: true });
8 |
9 | const db = mongoose.connection;
10 | db.on('error', console.error.bind(console, 'connection error:'));
11 | db.once('open', function () {
12 | console.log("connected...");
13 | });
14 |
15 | // console.log(path.join(__dirname,"/public"));
16 | const staticPath = path.join(__dirname, "/public");
17 | app.use(express.static(staticPath));
18 | app.use(express.json());
19 | app.use(express.urlencoded({ extended: false }));
20 |
21 | app.get('/', function (req, res) {
22 | res.send("hello..");
23 | });
24 | app.get('/getUsers', function (req, res) {
25 | db.collection('customer').find({}).toArray(function (err, customer) {
26 | if (err) {
27 | console.log(err);
28 | }
29 | else {
30 | res.json(customer);
31 | }
32 | });
33 | });
34 | app.post('/insertUser', function (req, res) {
35 | var jsonData = JSON.parse(req.body.mydata);
36 |
37 | db.collection('transaction').insertOne(jsonData, function (err, records) {
38 | if (err) {
39 | console.log(err);
40 | }
41 | else {
42 | res.end('User saved');
43 | }
44 | })
45 | });
46 | app.put('/updateUser', function (req, res) {
47 | var jsonDataUpdate = JSON.parse(req.body.updatedata);
48 | var FromId = { email: jsonDataUpdate.idFrom };
49 | var ToId = { email: jsonDataUpdate.idTo };
50 | var Frombalance = { $set: { balance: jsonDataUpdate.blFrom } };
51 | var Tobalance = { $set: { balance: jsonDataUpdate.blTo } };
52 |
53 | db.collection('customer').updateOne(FromId, Frombalance, function (err, records) {
54 | if (err) {
55 | console.log(err);
56 | }
57 | else {
58 | db.collection('customer').updateOne(ToId, Tobalance, function (err, records) {
59 | if (err) {
60 | console.log(err);
61 | }
62 | else {
63 | res.end('User Updated');
64 | }
65 | })
66 | }
67 | })
68 | });
69 | app.get('/getHistory', function (req, res) {
70 | db.collection('transaction').find({}).toArray(function (err, history) {
71 | if (err) {
72 | console.log(err);
73 | }
74 | else {
75 | res.json(history);
76 | }
77 | });
78 | });
79 | http.createServer(app).listen(2803)
--------------------------------------------------------------------------------
/BasicBankingSystem/public/css/Style.css:
--------------------------------------------------------------------------------
1 | body{
2 | margin: 0px;
3 | padding: 0px;
4 | background-image: linear-gradient(rgba(29, 28, 28, 0.400), rgba(53, 51, 51, 0.400)), url('../img/BG1.jpg');
5 | background-repeat: no-repeat;
6 | background-attachment: fixed;
7 | background-size: 100% 100%;
8 | }
9 | .navbar{
10 | background-color: rgba(255, 255, 255, 0.7);
11 | padding: 0rem 0rem;
12 | margin: 0px 0px;
13 | }
14 | .navbar-brand{
15 | font-size: 45px;
16 | margin: 0px 20px;
17 | font-weight: bolder;
18 | }
19 | .nav-link{
20 | margin: 10px;
21 | font-size: 29px;
22 | color: #ffffff;
23 | font-family: 'Noto Sans JP', sans-serif;
24 | font-weight: bold;
25 | padding: 0px;
26 | border-radius: 10px;
27 | }
28 | .nav-link:hover{
29 | color: rgb(255, 255, 255)!important;
30 | background-color: rgb(104, 99, 99);
31 | border-radius: 10px;
32 | }
33 | .heading{
34 | margin-top:65px;
35 | text-align: center;
36 | }
37 | .heading h1{
38 | padding: 0px;
39 | font-size: 4.5rem;
40 | display: inline-block;
41 | color: white;
42 | -webkit-animation: glow 1s ease-in-out infinite alternate;
43 | -moz-animation: glow 1s ease-in-out infinite alternate;
44 | animation: glow 1s ease-in-out infinite alternate;
45 | }
46 | @-webkit-keyframes glow{
47 | from {
48 | text-shadow: 0 0 10px rgb(0, 0, 0), 0 0 20px rgb(0, 0, 0), 0 0 20px #eee6ea, 0 0 20px #fdfced, 0 0 30px #f1ebee, 0 0 30px #f8f4f6, 0 0 30px #eee9eb;
49 | }
50 | to {
51 | text-shadow: 0 0 10px rgb(58, 58, 58), 0 0 10px #0fcfff, 0 0 20px #89dfee, 0 0 25px #88edfa, 0 0 30px #5ae1f3, 0 0 30px #a2f8f8, 0 0 40px #86ffff;
52 | }
53 | }
54 | .hero-content{
55 | height: 90vh;
56 | }
57 | .contant{
58 | color: white;
59 | margin: 35px 0px 10px 0px;
60 | font-size: 1.5rem;
61 | font-family: 'Cutive Mono', monospace;
62 | font-family: 'Graduate', cursive;
63 | font-family: 'Montserrat Subrayada', sans-serif;
64 | font-family: 'Nosifer', cursive;
65 | font-family: 'Six Caps', sans-serif;
66 | font-family: 'Yatra One', cursive;
67 | font-family: 'Zilla Slab Highlight', cursive;
68 | }
69 | #about{
70 | font-size: 29px;
71 | color: white;
72 | font-family: monospace;
73 | margin: 20px;
74 | }
75 | .vision{
76 | margin: 30px 0px;
77 | color: rgb(255, 255, 255);
78 | font-size: 1.5rem;
79 | font-family: 'Acme', sans-serif;
80 | text-align: center;
81 | word-spacing: 25px;
82 | }
83 | .btn{
84 | text-align: center;
85 | }
86 | .btn2{
87 | padding: 5px 43px;
88 | margin: 0px 25px;
89 | border-radius: 10px;
90 | font-family: monospace;
91 | font-size: 2.8rem;
92 | font-weight: bold;
93 | color: rgb(0, 0, 0);
94 | background-color: rgba(255, 255, 255, 0.993);
95 | }
96 | .btn2:hover{
97 | color: rgb(255, 255, 255);
98 | background-color: rgb(9, 0, 136,0.6);
99 | }
100 | footer{
101 | background-color: #a5a1a1;
102 | color: rgb(29, 28, 28);
103 | height: 65px;
104 | }
105 | .copyright{
106 | font-size: 18px;
107 | font-weight: bold;
108 | }
109 | .social-icons li{
110 | list-style: none;
111 | display: inline;
112 | padding: 0.5rem;
113 | font-size: 18px;
114 | }
115 | .social-icons{
116 | padding: 0px;
117 | }
118 | .contact{
119 | font-size: 17px;
120 | font-weight: bold;
121 | }
122 | .github{
123 | color: #310058;
124 | }
125 |
126 | .linkedin{
127 | color: #312dffe1;
128 | }
129 | .github:hover{
130 | color: #015e18;
131 | }
132 |
133 | .linkedin:hover{
134 | color: #0c0231;
135 | }
136 | table{
137 | background-color: rgb(186, 202, 212);
138 | border-radius: 8px;
139 | padding: 3px;
140 | text-align: center;
141 | font-weight: 500;
142 | }
143 | td,th{
144 | padding: 7px 130px;
145 | }
146 | #row1{
147 | font-size: 27px;
148 | color: white;
149 | background-color: rgba(49, 48, 48, 0.726);
150 | }
151 | #transfer-btn{
152 | display: none;
153 | }
154 | .marquee{
155 | font-size: 40px;
156 | font-weight: bold;
157 | color: white;
158 | }
--------------------------------------------------------------------------------
/BasicBankingSystem/public/js/script.js:
--------------------------------------------------------------------------------
1 | var app = angular.module('myApp', []);
2 | var app = angular.module('myApp', ['ngRoute']);
3 | app.config(function ($routeProvider) {
4 | $routeProvider
5 |
6 | .when('/', {
7 | templateUrl: 'first.html',
8 | controller: 'FirstController'
9 | })
10 |
11 | .when('/second', {
12 | templateUrl: 'second.html',
13 | controller: 'SecondController'
14 | })
15 |
16 | .when('/third', {
17 | templateUrl: 'third.html',
18 | controller: 'ThirdController'
19 | })
20 |
21 | .otherwise({ redirectTo: '/' });
22 | });
23 |
24 | app.controller('FirstController', function ($scope) {
25 | $scope.message = 'Hello from FirstController';
26 | });
27 |
28 | app.controller('SecondController', function ($scope, $http, $templateCache) {
29 | $scope.amount = 0;
30 | $scope.list = function () {
31 | var url = 'http://localhost:2803/getUsers';
32 | $http.get(url).success(function (data) {
33 | $scope.users = data;
34 | });
35 | };
36 | $scope.list();
37 | $scope.selectFrom = function (dataFrom) {
38 | $scope.userFrom = dataFrom;
39 | $('#select-btn').hide();
40 | $('#transfer-btn').show();
41 | };
42 | $scope.selectTo = function (dataTo) {
43 | $scope.userTo = dataTo;
44 | $('#select-btn').show();
45 | $('#transfer-btn').hide();
46 | };
47 | $scope.Transfer = function (TrFrom, TrTo, amount) {
48 | var insertMethod = 'POST';
49 | var updateMethod = 'PUT';
50 | var inserturl = 'http://localhost:2803/insertUser';
51 | var updateUrl = 'http://localhost:2803/updateUser';
52 | $scope.amount = 0;
53 | if (TrFrom.balance >= amount && TrFrom.email != TrTo.email) {
54 |
55 | var x1 = TrFrom.balance - amount;
56 | var x2 = TrTo.balance + amount;
57 |
58 | var formData = {
59 | "nameFrom": TrFrom.name,
60 | "emailFrom": TrFrom.email,
61 | "nameTo": TrTo.name,
62 | "emailTo": TrTo.email,
63 | "amount": amount
64 | };
65 | var jdata = 'mydata=' + JSON.stringify(formData);
66 |
67 | $http({
68 | method: insertMethod,
69 | url: inserturl,
70 | data: jdata,
71 | headers: {
72 | 'Content-Type': 'application/x-www-form-urlencoded'
73 | },
74 | cache: $templateCache
75 | }).
76 | success(function (response) {
77 | }).
78 | error(function (response) {
79 | });
80 |
81 | var UpdateData = {
82 | "idFrom": TrFrom.email,
83 | "idTo": TrTo.email,
84 | "blFrom": x1,
85 | "blTo": x2
86 | };
87 | var udata = 'updatedata=' + JSON.stringify(UpdateData);
88 | $http({
89 | method: updateMethod,
90 | url: updateUrl,
91 | data: udata,
92 | headers: {
93 | 'Content-Type': 'application/x-www-form-urlencoded'
94 | },
95 | cache: $templateCache
96 | }).
97 | success(function (response) {
98 | window.alert("money transfer successfully");
99 | $scope.list();
100 | }).
101 | error(function (response) {
102 | window.alert("somthing wrong");
103 | });
104 | }
105 | else {
106 | window.alert("Do Valid Transaction");
107 | }
108 | };
109 | });
110 |
111 | app.controller('ThirdController', function ($scope, $http) {
112 | $scope.message = 'Hello from ThirdController';
113 | $scope.listHistory = function () {
114 | var url = 'http://localhost:2803/getHistory';
115 | $http.get(url).success(function (HistoryData) {
116 | $scope.history = HistoryData;
117 | });
118 | };
119 | $scope.listHistory();
120 | });
--------------------------------------------------------------------------------
/BasicBankingSystem/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Basic Banking System
9 |
10 |
11 |
13 |
14 |
15 |
18 |
19 |
20 |
21 |
22 |
24 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
62 |
64 |
89 |
169 |
193 |
195 |
196 |
198 |
199 |
200 |
221 |
222 |
223 |
--------------------------------------------------------------------------------
/BasicBankingSystem/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "basicbankingsystem",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@types/bson": {
8 | "version": "4.0.3",
9 | "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz",
10 | "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==",
11 | "requires": {
12 | "@types/node": "*"
13 | }
14 | },
15 | "@types/mongodb": {
16 | "version": "3.6.12",
17 | "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.12.tgz",
18 | "integrity": "sha512-49aEzQD5VdHPxyd5dRyQdqEveAg9LanwrH8RQipnMuulwzKmODXIZRp0umtxi1eBUfEusRkoy8AVOMr+kVuFog==",
19 | "requires": {
20 | "@types/bson": "*",
21 | "@types/node": "*"
22 | }
23 | },
24 | "@types/node": {
25 | "version": "14.14.37",
26 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz",
27 | "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw=="
28 | },
29 | "accepts": {
30 | "version": "1.3.7",
31 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
32 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
33 | "requires": {
34 | "mime-types": "~2.1.24",
35 | "negotiator": "0.6.2"
36 | }
37 | },
38 | "array-flatten": {
39 | "version": "1.1.1",
40 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
41 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
42 | },
43 | "bl": {
44 | "version": "2.2.1",
45 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
46 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
47 | "requires": {
48 | "readable-stream": "^2.3.5",
49 | "safe-buffer": "^5.1.1"
50 | }
51 | },
52 | "bluebird": {
53 | "version": "3.5.1",
54 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
55 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
56 | },
57 | "body-parser": {
58 | "version": "1.19.0",
59 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
60 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
61 | "requires": {
62 | "bytes": "3.1.0",
63 | "content-type": "~1.0.4",
64 | "debug": "2.6.9",
65 | "depd": "~1.1.2",
66 | "http-errors": "1.7.2",
67 | "iconv-lite": "0.4.24",
68 | "on-finished": "~2.3.0",
69 | "qs": "6.7.0",
70 | "raw-body": "2.4.0",
71 | "type-is": "~1.6.17"
72 | },
73 | "dependencies": {
74 | "debug": {
75 | "version": "2.6.9",
76 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
77 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
78 | "requires": {
79 | "ms": "2.0.0"
80 | }
81 | },
82 | "ms": {
83 | "version": "2.0.0",
84 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
85 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
86 | }
87 | }
88 | },
89 | "bson": {
90 | "version": "1.1.6",
91 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
92 | "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg=="
93 | },
94 | "bytes": {
95 | "version": "3.1.0",
96 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
97 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
98 | },
99 | "content-disposition": {
100 | "version": "0.5.3",
101 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
102 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
103 | "requires": {
104 | "safe-buffer": "5.1.2"
105 | },
106 | "dependencies": {
107 | "safe-buffer": {
108 | "version": "5.1.2",
109 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
110 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
111 | }
112 | }
113 | },
114 | "content-type": {
115 | "version": "1.0.4",
116 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
117 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
118 | },
119 | "cookie": {
120 | "version": "0.4.0",
121 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
122 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
123 | },
124 | "cookie-signature": {
125 | "version": "1.0.6",
126 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
127 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
128 | },
129 | "core-util-is": {
130 | "version": "1.0.2",
131 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
132 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
133 | },
134 | "debug": {
135 | "version": "3.1.0",
136 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
137 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
138 | "requires": {
139 | "ms": "2.0.0"
140 | },
141 | "dependencies": {
142 | "ms": {
143 | "version": "2.0.0",
144 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
145 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
146 | }
147 | }
148 | },
149 | "denque": {
150 | "version": "1.5.0",
151 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
152 | "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ=="
153 | },
154 | "depd": {
155 | "version": "1.1.2",
156 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
157 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
158 | },
159 | "destroy": {
160 | "version": "1.0.4",
161 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
162 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
163 | },
164 | "ee-first": {
165 | "version": "1.1.1",
166 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
167 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
168 | },
169 | "encodeurl": {
170 | "version": "1.0.2",
171 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
172 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
173 | },
174 | "escape-html": {
175 | "version": "1.0.3",
176 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
177 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
178 | },
179 | "etag": {
180 | "version": "1.8.1",
181 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
182 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
183 | },
184 | "express": {
185 | "version": "4.17.1",
186 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
187 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
188 | "requires": {
189 | "accepts": "~1.3.7",
190 | "array-flatten": "1.1.1",
191 | "body-parser": "1.19.0",
192 | "content-disposition": "0.5.3",
193 | "content-type": "~1.0.4",
194 | "cookie": "0.4.0",
195 | "cookie-signature": "1.0.6",
196 | "debug": "2.6.9",
197 | "depd": "~1.1.2",
198 | "encodeurl": "~1.0.2",
199 | "escape-html": "~1.0.3",
200 | "etag": "~1.8.1",
201 | "finalhandler": "~1.1.2",
202 | "fresh": "0.5.2",
203 | "merge-descriptors": "1.0.1",
204 | "methods": "~1.1.2",
205 | "on-finished": "~2.3.0",
206 | "parseurl": "~1.3.3",
207 | "path-to-regexp": "0.1.7",
208 | "proxy-addr": "~2.0.5",
209 | "qs": "6.7.0",
210 | "range-parser": "~1.2.1",
211 | "safe-buffer": "5.1.2",
212 | "send": "0.17.1",
213 | "serve-static": "1.14.1",
214 | "setprototypeof": "1.1.1",
215 | "statuses": "~1.5.0",
216 | "type-is": "~1.6.18",
217 | "utils-merge": "1.0.1",
218 | "vary": "~1.1.2"
219 | },
220 | "dependencies": {
221 | "debug": {
222 | "version": "2.6.9",
223 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
224 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
225 | "requires": {
226 | "ms": "2.0.0"
227 | }
228 | },
229 | "ms": {
230 | "version": "2.0.0",
231 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
232 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
233 | },
234 | "safe-buffer": {
235 | "version": "5.1.2",
236 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
237 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
238 | }
239 | }
240 | },
241 | "finalhandler": {
242 | "version": "1.1.2",
243 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
244 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
245 | "requires": {
246 | "debug": "2.6.9",
247 | "encodeurl": "~1.0.2",
248 | "escape-html": "~1.0.3",
249 | "on-finished": "~2.3.0",
250 | "parseurl": "~1.3.3",
251 | "statuses": "~1.5.0",
252 | "unpipe": "~1.0.0"
253 | },
254 | "dependencies": {
255 | "debug": {
256 | "version": "2.6.9",
257 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
258 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
259 | "requires": {
260 | "ms": "2.0.0"
261 | }
262 | },
263 | "ms": {
264 | "version": "2.0.0",
265 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
266 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
267 | }
268 | }
269 | },
270 | "forwarded": {
271 | "version": "0.1.2",
272 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
273 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
274 | },
275 | "fresh": {
276 | "version": "0.5.2",
277 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
278 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
279 | },
280 | "http-errors": {
281 | "version": "1.7.2",
282 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
283 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
284 | "requires": {
285 | "depd": "~1.1.2",
286 | "inherits": "2.0.3",
287 | "setprototypeof": "1.1.1",
288 | "statuses": ">= 1.5.0 < 2",
289 | "toidentifier": "1.0.0"
290 | },
291 | "dependencies": {
292 | "inherits": {
293 | "version": "2.0.3",
294 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
295 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
296 | }
297 | }
298 | },
299 | "iconv-lite": {
300 | "version": "0.4.24",
301 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
302 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
303 | "requires": {
304 | "safer-buffer": ">= 2.1.2 < 3"
305 | }
306 | },
307 | "inherits": {
308 | "version": "2.0.4",
309 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
310 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
311 | },
312 | "ipaddr.js": {
313 | "version": "1.9.1",
314 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
315 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
316 | },
317 | "isarray": {
318 | "version": "1.0.0",
319 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
320 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
321 | },
322 | "kareem": {
323 | "version": "2.3.2",
324 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
325 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
326 | },
327 | "media-typer": {
328 | "version": "0.3.0",
329 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
330 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
331 | },
332 | "memory-pager": {
333 | "version": "1.5.0",
334 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
335 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
336 | "optional": true
337 | },
338 | "merge-descriptors": {
339 | "version": "1.0.1",
340 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
341 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
342 | },
343 | "methods": {
344 | "version": "1.1.2",
345 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
346 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
347 | },
348 | "mime": {
349 | "version": "1.6.0",
350 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
351 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
352 | },
353 | "mime-db": {
354 | "version": "1.47.0",
355 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
356 | "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
357 | },
358 | "mime-types": {
359 | "version": "2.1.30",
360 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
361 | "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
362 | "requires": {
363 | "mime-db": "1.47.0"
364 | }
365 | },
366 | "mongodb": {
367 | "version": "3.6.5",
368 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.5.tgz",
369 | "integrity": "sha512-mQlYKw1iGbvJJejcPuyTaytq0xxlYbIoVDm2FODR+OHxyEiMR021vc32bTvamgBjCswsD54XIRwhg3yBaWqJjg==",
370 | "requires": {
371 | "bl": "^2.2.1",
372 | "bson": "^1.1.4",
373 | "denque": "^1.4.1",
374 | "require_optional": "^1.0.1",
375 | "safe-buffer": "^5.1.2",
376 | "saslprep": "^1.0.0"
377 | }
378 | },
379 | "mongoose": {
380 | "version": "5.12.3",
381 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.12.3.tgz",
382 | "integrity": "sha512-frsSR9yeldaRpSUeTegXCSB0Tu5UGq8sHuHBuEV31Jk3COyxlKFQPL7UsdMhxPUCmk74FpOYSmNwxhWBEqgzQg==",
383 | "requires": {
384 | "@types/mongodb": "^3.5.27",
385 | "bson": "^1.1.4",
386 | "kareem": "2.3.2",
387 | "mongodb": "3.6.5",
388 | "mongoose-legacy-pluralize": "1.0.2",
389 | "mpath": "0.8.3",
390 | "mquery": "3.2.5",
391 | "ms": "2.1.2",
392 | "regexp-clone": "1.0.0",
393 | "safe-buffer": "5.2.1",
394 | "sift": "7.0.1",
395 | "sliced": "1.0.1"
396 | }
397 | },
398 | "mongoose-legacy-pluralize": {
399 | "version": "1.0.2",
400 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
401 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
402 | },
403 | "mpath": {
404 | "version": "0.8.3",
405 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz",
406 | "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA=="
407 | },
408 | "mquery": {
409 | "version": "3.2.5",
410 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz",
411 | "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==",
412 | "requires": {
413 | "bluebird": "3.5.1",
414 | "debug": "3.1.0",
415 | "regexp-clone": "^1.0.0",
416 | "safe-buffer": "5.1.2",
417 | "sliced": "1.0.1"
418 | },
419 | "dependencies": {
420 | "safe-buffer": {
421 | "version": "5.1.2",
422 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
423 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
424 | }
425 | }
426 | },
427 | "ms": {
428 | "version": "2.1.2",
429 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
430 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
431 | },
432 | "negotiator": {
433 | "version": "0.6.2",
434 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
435 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
436 | },
437 | "on-finished": {
438 | "version": "2.3.0",
439 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
440 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
441 | "requires": {
442 | "ee-first": "1.1.1"
443 | }
444 | },
445 | "parseurl": {
446 | "version": "1.3.3",
447 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
448 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
449 | },
450 | "path-to-regexp": {
451 | "version": "0.1.7",
452 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
453 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
454 | },
455 | "process-nextick-args": {
456 | "version": "2.0.1",
457 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
458 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
459 | },
460 | "proxy-addr": {
461 | "version": "2.0.6",
462 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
463 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
464 | "requires": {
465 | "forwarded": "~0.1.2",
466 | "ipaddr.js": "1.9.1"
467 | }
468 | },
469 | "qs": {
470 | "version": "6.7.0",
471 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
472 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
473 | },
474 | "range-parser": {
475 | "version": "1.2.1",
476 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
477 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
478 | },
479 | "raw-body": {
480 | "version": "2.4.0",
481 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
482 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
483 | "requires": {
484 | "bytes": "3.1.0",
485 | "http-errors": "1.7.2",
486 | "iconv-lite": "0.4.24",
487 | "unpipe": "1.0.0"
488 | }
489 | },
490 | "readable-stream": {
491 | "version": "2.3.7",
492 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
493 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
494 | "requires": {
495 | "core-util-is": "~1.0.0",
496 | "inherits": "~2.0.3",
497 | "isarray": "~1.0.0",
498 | "process-nextick-args": "~2.0.0",
499 | "safe-buffer": "~5.1.1",
500 | "string_decoder": "~1.1.1",
501 | "util-deprecate": "~1.0.1"
502 | },
503 | "dependencies": {
504 | "safe-buffer": {
505 | "version": "5.1.2",
506 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
507 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
508 | }
509 | }
510 | },
511 | "regexp-clone": {
512 | "version": "1.0.0",
513 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
514 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
515 | },
516 | "require_optional": {
517 | "version": "1.0.1",
518 | "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
519 | "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
520 | "requires": {
521 | "resolve-from": "^2.0.0",
522 | "semver": "^5.1.0"
523 | }
524 | },
525 | "resolve-from": {
526 | "version": "2.0.0",
527 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
528 | "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
529 | },
530 | "safe-buffer": {
531 | "version": "5.2.1",
532 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
533 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
534 | },
535 | "safer-buffer": {
536 | "version": "2.1.2",
537 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
538 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
539 | },
540 | "saslprep": {
541 | "version": "1.0.3",
542 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
543 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
544 | "optional": true,
545 | "requires": {
546 | "sparse-bitfield": "^3.0.3"
547 | }
548 | },
549 | "semver": {
550 | "version": "5.7.1",
551 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
552 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
553 | },
554 | "send": {
555 | "version": "0.17.1",
556 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
557 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
558 | "requires": {
559 | "debug": "2.6.9",
560 | "depd": "~1.1.2",
561 | "destroy": "~1.0.4",
562 | "encodeurl": "~1.0.2",
563 | "escape-html": "~1.0.3",
564 | "etag": "~1.8.1",
565 | "fresh": "0.5.2",
566 | "http-errors": "~1.7.2",
567 | "mime": "1.6.0",
568 | "ms": "2.1.1",
569 | "on-finished": "~2.3.0",
570 | "range-parser": "~1.2.1",
571 | "statuses": "~1.5.0"
572 | },
573 | "dependencies": {
574 | "debug": {
575 | "version": "2.6.9",
576 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
577 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
578 | "requires": {
579 | "ms": "2.0.0"
580 | },
581 | "dependencies": {
582 | "ms": {
583 | "version": "2.0.0",
584 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
585 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
586 | }
587 | }
588 | },
589 | "ms": {
590 | "version": "2.1.1",
591 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
592 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
593 | }
594 | }
595 | },
596 | "serve-static": {
597 | "version": "1.14.1",
598 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
599 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
600 | "requires": {
601 | "encodeurl": "~1.0.2",
602 | "escape-html": "~1.0.3",
603 | "parseurl": "~1.3.3",
604 | "send": "0.17.1"
605 | }
606 | },
607 | "setprototypeof": {
608 | "version": "1.1.1",
609 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
610 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
611 | },
612 | "sift": {
613 | "version": "7.0.1",
614 | "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz",
615 | "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
616 | },
617 | "sliced": {
618 | "version": "1.0.1",
619 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
620 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
621 | },
622 | "sparse-bitfield": {
623 | "version": "3.0.3",
624 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
625 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
626 | "optional": true,
627 | "requires": {
628 | "memory-pager": "^1.0.2"
629 | }
630 | },
631 | "statuses": {
632 | "version": "1.5.0",
633 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
634 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
635 | },
636 | "string_decoder": {
637 | "version": "1.1.1",
638 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
639 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
640 | "requires": {
641 | "safe-buffer": "~5.1.0"
642 | },
643 | "dependencies": {
644 | "safe-buffer": {
645 | "version": "5.1.2",
646 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
647 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
648 | }
649 | }
650 | },
651 | "toidentifier": {
652 | "version": "1.0.0",
653 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
654 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
655 | },
656 | "type-is": {
657 | "version": "1.6.18",
658 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
659 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
660 | "requires": {
661 | "media-typer": "0.3.0",
662 | "mime-types": "~2.1.24"
663 | }
664 | },
665 | "unpipe": {
666 | "version": "1.0.0",
667 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
668 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
669 | },
670 | "util-deprecate": {
671 | "version": "1.0.2",
672 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
673 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
674 | },
675 | "utils-merge": {
676 | "version": "1.0.1",
677 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
678 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
679 | },
680 | "vary": {
681 | "version": "1.1.2",
682 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
683 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
684 | }
685 | }
686 | }
687 |
--------------------------------------------------------------------------------