├── .gitignore
├── Controller
└── products.js
├── Model
└── product.js
├── Services
└── product.js
├── dbconfigs.js
├── package-lock.json
├── package.json
├── readme.md
├── sample.env
└── serverless.yml
/.gitignore:
--------------------------------------------------------------------------------
1 | # package directories
2 | node_modules
3 | jspm_packages
4 |
5 | # Serverless directories
6 | .serverless
7 |
8 | # Environment Variables
9 | .env
10 |
--------------------------------------------------------------------------------
/Controller/products.js:
--------------------------------------------------------------------------------
1 | const serverless = require('serverless-http');
2 | const express = require('express');
3 | const app = express();
4 |
5 | const bodyParser = require('body-parser');
6 | const uuid = require('uuid/v4');
7 |
8 | const dbConnection = require('../dbConfigs');
9 | const ProductService = require('../Services/product');
10 |
11 |
12 | app.use(bodyParser.json());
13 | app.use(bodyParser.urlencoded({ extended: true }));
14 |
15 |
16 | // base url to test our API
17 | app.get('/index', async (req, res) => {
18 | await res.send("
Welcome to the Product API for LogRocket Blog serverless Example!!
")
19 | })
20 |
21 | // function for creating a new product
22 | app.post('/', async (req, res) => {
23 | try {
24 | await dbConnection();
25 | const data = req.body;
26 | const {name, type, description, cost} = data;
27 | if(!data) {
28 | return "Please pass all required fields!"
29 | }
30 | const dataToSave = {name,type,description,cost,productId:uuid()};
31 | let createProduct = await ProductService.createProduct(dataToSave);
32 | if (createProduct) {
33 | return res.status(200).send(
34 | createProduct
35 | )
36 | }
37 | } catch (error) {
38 | // handle errors here
39 | console.log(error, "error!!");
40 | }
41 | })
42 |
43 | // function for getting all products
44 | app.get('/', async (req, res) => {
45 | try {
46 | await dbConnection();
47 | const allProducts = await ProductService.getAllProduct();
48 | if (allProducts) {
49 | return res.status(200).send({
50 | data: allProducts
51 | })
52 | }
53 | } catch (error) {
54 | // handle errors here
55 | console.log(error, "error!!");
56 | }
57 | })
58 |
59 |
60 | // function for getting a product by Id
61 | app.get('/:productId/', async (req, res) => {
62 | try {
63 | await dbConnection();
64 | const {productId} = req.params;
65 | const getProduct = await ProductService.getProductById({productId});
66 | if(getProduct) {
67 | return res.status(200).send({
68 | data: getProduct
69 | })
70 | }
71 | } catch (error) {
72 | // handle errors here
73 | console.log(error, "error!!");
74 | }
75 | });
76 |
77 | module.exports.handler = serverless(app);
78 |
--------------------------------------------------------------------------------
/Model/product.js:
--------------------------------------------------------------------------------
1 | const mongoose = require("mongoose");
2 |
3 | const ProductSchema = new mongoose.Schema (
4 | {
5 | name: {type: String},
6 | type: {type: String},
7 | cost: {type: Number},
8 | description: {type: String},
9 | productId: { type: String },
10 | },
11 | {timestamps: true}
12 | );
13 |
14 | const ProductModel = mongoose.model("product", ProductSchema);
15 |
16 | module.exports = ProductModel;
17 |
18 |
--------------------------------------------------------------------------------
/Services/product.js:
--------------------------------------------------------------------------------
1 | const Product = require('../Model/product');
2 |
3 |
4 | module.exports = {
5 |
6 | async createProduct (product) {
7 | let result = await Product.create(product);
8 | if(result) {
9 | return {
10 | data: product,
11 | message: "Product successfully created!"
12 | };
13 | }
14 | return "Error creating new product"
15 |
16 | },
17 |
18 |
19 | async getAllProduct() {
20 | let product = await Product.find();
21 | if(product) return product;
22 | return "Error fetching products from db"
23 | },
24 |
25 |
26 | async getProductById(productId) {
27 | let product = await Product.findOne(productId);
28 | if(product) return product;
29 | return "Error fetching product from db";
30 | },
31 | };
32 |
--------------------------------------------------------------------------------
/dbconfigs.js:
--------------------------------------------------------------------------------
1 | const mongoose = require('mongoose');
2 | require("dotenv").config();
3 | mongoose.Promise = global.Promise;
4 |
5 | const connectToDatabase = async () => {
6 | let isConnected;
7 | if (isConnected) {
8 | console.log('using existing database connection');
9 | return Promise.resolve();
10 | }
11 |
12 | console.log('using new database connection');
13 | const database = await mongoose.connect(process.env.MONGODB_URL, {useNewUrlParser: true});
14 | isConnected = database.connections[0].readyState;
15 | // return isConnected;
16 | };
17 |
18 | module.exports = connectToDatabase;
19 |
20 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "serverless-example",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@cto.af/textdecoder": {
8 | "version": "0.0.0",
9 | "resolved": "https://registry.npmjs.org/@cto.af/textdecoder/-/textdecoder-0.0.0.tgz",
10 | "integrity": "sha512-sJpx3F5xcVV/9jNYJQtvimo4Vfld/nD3ph+ZWtQzZ03Zo8rJC7QKQTRcIGS13Rcz80DwFNthCWMrd58vpY4ZAQ==",
11 | "dev": true
12 | },
13 | "@hapi/accept": {
14 | "version": "3.2.3",
15 | "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-3.2.3.tgz",
16 | "integrity": "sha512-qEzsOJkCAJZxwj3iF83bSG9Lxy8Bpbrt8mRLNdvSALT6vlU2cYh6ZEHKEZPy4h/Mo31Su3j0rJgFF91+W1RWDQ==",
17 | "dev": true,
18 | "requires": {
19 | "@hapi/boom": "7.x.x",
20 | "@hapi/hoek": "8.x.x"
21 | }
22 | },
23 | "@hapi/address": {
24 | "version": "2.1.2",
25 | "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.2.tgz",
26 | "integrity": "sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q==",
27 | "dev": true
28 | },
29 | "@hapi/ammo": {
30 | "version": "3.1.1",
31 | "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-3.1.1.tgz",
32 | "integrity": "sha512-NYFK27VSPGyQ/KmOQedpQH4PSjE7awLntepX68vrYtRvuJO21W1kX0bK2p3C+6ltUwtCQSvmNT8a4uMVAysC6Q==",
33 | "dev": true,
34 | "requires": {
35 | "@hapi/hoek": "8.x.x"
36 | }
37 | },
38 | "@hapi/b64": {
39 | "version": "4.2.1",
40 | "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-4.2.1.tgz",
41 | "integrity": "sha512-zqHpQuH5CBMw6hADzKfU/IGNrxq1Q+/wTYV+OiZRQN9F3tMyk+9BUMeBvFRMamduuqL8iSp62QAnJ+7ATiYLWA==",
42 | "dev": true,
43 | "requires": {
44 | "@hapi/hoek": "8.x.x"
45 | }
46 | },
47 | "@hapi/boom": {
48 | "version": "7.4.11",
49 | "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz",
50 | "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==",
51 | "dev": true,
52 | "requires": {
53 | "@hapi/hoek": "8.x.x"
54 | }
55 | },
56 | "@hapi/bounce": {
57 | "version": "1.3.2",
58 | "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-1.3.2.tgz",
59 | "integrity": "sha512-3bnb1AlcEByFZnpDIidxQyw1Gds81z/1rSqlx4bIEE+wUN0ATj0D49B5cE1wGocy90Rp/de4tv7GjsKd5RQeew==",
60 | "dev": true,
61 | "requires": {
62 | "@hapi/boom": "7.x.x",
63 | "@hapi/hoek": "^8.3.1"
64 | }
65 | },
66 | "@hapi/bourne": {
67 | "version": "1.3.2",
68 | "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
69 | "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==",
70 | "dev": true
71 | },
72 | "@hapi/call": {
73 | "version": "5.1.2",
74 | "resolved": "https://registry.npmjs.org/@hapi/call/-/call-5.1.2.tgz",
75 | "integrity": "sha512-10XyXbpo0fAXmOf/Q4BCgsQrrTZuwa6/FcSnuKqD06sZz5yMCmJTD8VpmolEjEfwJqXtQBZHj9g/IYcmHk3nxQ==",
76 | "dev": true,
77 | "requires": {
78 | "@hapi/boom": "7.x.x",
79 | "@hapi/hoek": "8.x.x"
80 | }
81 | },
82 | "@hapi/catbox": {
83 | "version": "10.2.3",
84 | "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-10.2.3.tgz",
85 | "integrity": "sha512-kN9hXO4NYyOHW09CXiuj5qW1syc/0XeVOBsNNk0Tz89wWNQE5h21WF+VsfAw3uFR8swn/Wj3YEVBnWqo82m/JQ==",
86 | "dev": true,
87 | "requires": {
88 | "@hapi/boom": "7.x.x",
89 | "@hapi/hoek": "8.x.x",
90 | "@hapi/joi": "16.x.x",
91 | "@hapi/podium": "3.x.x"
92 | }
93 | },
94 | "@hapi/catbox-memory": {
95 | "version": "4.1.1",
96 | "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-4.1.1.tgz",
97 | "integrity": "sha512-T6Hdy8DExzG0jY7C8yYWZB4XHfc0v+p1EGkwxl2HoaPYAmW7I3E59M/IvmSVpis8RPcIoBp41ZpO2aZPBpM2Ww==",
98 | "dev": true,
99 | "requires": {
100 | "@hapi/boom": "7.x.x",
101 | "@hapi/hoek": "8.x.x"
102 | }
103 | },
104 | "@hapi/content": {
105 | "version": "4.1.0",
106 | "resolved": "https://registry.npmjs.org/@hapi/content/-/content-4.1.0.tgz",
107 | "integrity": "sha512-hv2Czsl49hnWDEfRZOFow/BmYbKyfEknmk3k83gOp6moFn5ceHB4xVcna8OwsGfy8dxO81lhpPy+JgQEaU4SWw==",
108 | "dev": true,
109 | "requires": {
110 | "@hapi/boom": "7.x.x"
111 | }
112 | },
113 | "@hapi/cryptiles": {
114 | "version": "4.2.1",
115 | "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-4.2.1.tgz",
116 | "integrity": "sha512-XoqgKsHK0l/VpqPs+tr6j6vE+VQ3+2bkF2stvttmc7xAOf1oSAwHcJ0tlp/6MxMysktt1IEY0Csy3khKaP9/uQ==",
117 | "dev": true,
118 | "requires": {
119 | "@hapi/boom": "7.x.x"
120 | }
121 | },
122 | "@hapi/file": {
123 | "version": "1.0.0",
124 | "resolved": "https://registry.npmjs.org/@hapi/file/-/file-1.0.0.tgz",
125 | "integrity": "sha512-Bsfp/+1Gyf70eGtnIgmScvrH8sSypO3TcK3Zf0QdHnzn/ACnAkI6KLtGACmNRPEzzIy+W7aJX5E+1fc9GwIABQ==",
126 | "dev": true
127 | },
128 | "@hapi/formula": {
129 | "version": "1.2.0",
130 | "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-1.2.0.tgz",
131 | "integrity": "sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA==",
132 | "dev": true
133 | },
134 | "@hapi/h2o2": {
135 | "version": "8.3.2",
136 | "resolved": "https://registry.npmjs.org/@hapi/h2o2/-/h2o2-8.3.2.tgz",
137 | "integrity": "sha512-2WkZq+QAkvYHWGqnUuG0stcVeGyv9T7bopBYnCJSUEuvBZlUf2BTX2JCVSKxsnTLOxCYwoC/aI4Rr0ZSRd2oVg==",
138 | "dev": true,
139 | "requires": {
140 | "@hapi/boom": "7.x.x",
141 | "@hapi/hoek": "8.x.x",
142 | "@hapi/joi": "16.x.x",
143 | "@hapi/wreck": "15.x.x"
144 | }
145 | },
146 | "@hapi/hapi": {
147 | "version": "18.4.0",
148 | "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-18.4.0.tgz",
149 | "integrity": "sha512-uk9zqknRLcNVQKgrPURm85DqkdroWP8eDRekh/IPoKvC4VjdZSn6EH2eUriOwyud/CldeBS3HDIJ/PtRj3VxDQ==",
150 | "dev": true,
151 | "requires": {
152 | "@hapi/accept": "3.x.x",
153 | "@hapi/ammo": "3.x.x",
154 | "@hapi/boom": "7.x.x",
155 | "@hapi/bounce": "1.x.x",
156 | "@hapi/call": "5.x.x",
157 | "@hapi/catbox": "10.x.x",
158 | "@hapi/catbox-memory": "4.x.x",
159 | "@hapi/heavy": "6.x.x",
160 | "@hapi/hoek": "8.x.x",
161 | "@hapi/joi": "15.x.x",
162 | "@hapi/mimos": "4.x.x",
163 | "@hapi/podium": "3.x.x",
164 | "@hapi/shot": "4.x.x",
165 | "@hapi/somever": "2.x.x",
166 | "@hapi/statehood": "6.x.x",
167 | "@hapi/subtext": "6.x.x",
168 | "@hapi/teamwork": "3.x.x",
169 | "@hapi/topo": "3.x.x"
170 | },
171 | "dependencies": {
172 | "@hapi/joi": {
173 | "version": "15.1.1",
174 | "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
175 | "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
176 | "dev": true,
177 | "requires": {
178 | "@hapi/address": "2.x.x",
179 | "@hapi/bourne": "1.x.x",
180 | "@hapi/hoek": "8.x.x",
181 | "@hapi/topo": "3.x.x"
182 | }
183 | }
184 | }
185 | },
186 | "@hapi/heavy": {
187 | "version": "6.2.2",
188 | "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-6.2.2.tgz",
189 | "integrity": "sha512-PY1dCCO6dsze7RlafIRhTaGeyTgVe49A/lSkxbhKGjQ7x46o/OFf7hLiRqTCDh3atcEKf6362EaB3+kTUbCsVA==",
190 | "dev": true,
191 | "requires": {
192 | "@hapi/boom": "7.x.x",
193 | "@hapi/hoek": "8.x.x",
194 | "@hapi/joi": "16.x.x"
195 | }
196 | },
197 | "@hapi/hoek": {
198 | "version": "8.5.0",
199 | "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz",
200 | "integrity": "sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw==",
201 | "dev": true
202 | },
203 | "@hapi/iron": {
204 | "version": "5.1.4",
205 | "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-5.1.4.tgz",
206 | "integrity": "sha512-+ElC+OCiwWLjlJBmm8ZEWjlfzTMQTdgPnU/TsoU5QsktspIWmWi9IU4kU83nH+X/SSya8TP8h8P11Wr5L7dkQQ==",
207 | "dev": true,
208 | "requires": {
209 | "@hapi/b64": "4.x.x",
210 | "@hapi/boom": "7.x.x",
211 | "@hapi/bourne": "1.x.x",
212 | "@hapi/cryptiles": "4.x.x",
213 | "@hapi/hoek": "8.x.x"
214 | }
215 | },
216 | "@hapi/joi": {
217 | "version": "16.1.7",
218 | "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.7.tgz",
219 | "integrity": "sha512-anaIgnZhNooG3LJLrTFzgGALTiO97zRA1UkvQHm9KxxoSiIzCozB3RCNCpDnfhTJD72QlrHA8nwGmNgpFFCIeg==",
220 | "dev": true,
221 | "requires": {
222 | "@hapi/address": "^2.1.2",
223 | "@hapi/formula": "^1.2.0",
224 | "@hapi/hoek": "^8.2.4",
225 | "@hapi/pinpoint": "^1.0.2",
226 | "@hapi/topo": "^3.1.3"
227 | }
228 | },
229 | "@hapi/mimos": {
230 | "version": "4.1.1",
231 | "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-4.1.1.tgz",
232 | "integrity": "sha512-CXoi/zfcTWfKYX756eEea8rXJRIb9sR4d7VwyAH9d3BkDyNgAesZxvqIdm55npQc6S9mU3FExinMAQVlIkz0eA==",
233 | "dev": true,
234 | "requires": {
235 | "@hapi/hoek": "8.x.x",
236 | "mime-db": "1.x.x"
237 | }
238 | },
239 | "@hapi/nigel": {
240 | "version": "3.1.1",
241 | "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-3.1.1.tgz",
242 | "integrity": "sha512-R9YWx4S8yu0gcCBrMUDCiEFm1SQT895dMlYoeNBp8I6YhF1BFF1iYPueKA2Kkp9BvyHdjmvrxCOns7GMmpl+Fw==",
243 | "dev": true,
244 | "requires": {
245 | "@hapi/hoek": "8.x.x",
246 | "@hapi/vise": "3.x.x"
247 | }
248 | },
249 | "@hapi/pez": {
250 | "version": "4.1.1",
251 | "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-4.1.1.tgz",
252 | "integrity": "sha512-TUa2C7Xk6J69HWrm+Ad+O6dFvdVAG0BiFUYaRsmkdWjFIfwHBCaOI1dWT/juNukSb39Lj6/mDVyjN+H4nKB3xg==",
253 | "dev": true,
254 | "requires": {
255 | "@hapi/b64": "4.x.x",
256 | "@hapi/boom": "7.x.x",
257 | "@hapi/content": "4.x.x",
258 | "@hapi/hoek": "8.x.x",
259 | "@hapi/nigel": "3.x.x"
260 | }
261 | },
262 | "@hapi/pinpoint": {
263 | "version": "1.0.2",
264 | "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-1.0.2.tgz",
265 | "integrity": "sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==",
266 | "dev": true
267 | },
268 | "@hapi/podium": {
269 | "version": "3.4.3",
270 | "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-3.4.3.tgz",
271 | "integrity": "sha512-QJlnYLEYZWlKQ9fSOtuUcpANyoVGwT68GA9P0iQQCAetBK0fI+nbRBt58+aMixoifczWZUthuGkNjqKxgPh/CQ==",
272 | "dev": true,
273 | "requires": {
274 | "@hapi/hoek": "8.x.x",
275 | "@hapi/joi": "16.x.x"
276 | }
277 | },
278 | "@hapi/shot": {
279 | "version": "4.1.2",
280 | "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-4.1.2.tgz",
281 | "integrity": "sha512-6LeHLjvsq/bQ0R+fhEyr7mqExRGguNTrxFZf5DyKe3CK6pNabiGgYO4JVFaRrLZ3JyuhkS0fo8iiRE2Ql2oA/A==",
282 | "dev": true,
283 | "requires": {
284 | "@hapi/hoek": "8.x.x",
285 | "@hapi/joi": "16.x.x"
286 | }
287 | },
288 | "@hapi/somever": {
289 | "version": "2.1.1",
290 | "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-2.1.1.tgz",
291 | "integrity": "sha512-cic5Sto4KGd9B0oQSdKTokju+rYhCbdpzbMb0EBnrH5Oc1z048hY8PaZ1lx2vBD7I/XIfTQVQetBH57fU51XRA==",
292 | "dev": true,
293 | "requires": {
294 | "@hapi/bounce": "1.x.x",
295 | "@hapi/hoek": "8.x.x"
296 | }
297 | },
298 | "@hapi/statehood": {
299 | "version": "6.1.2",
300 | "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-6.1.2.tgz",
301 | "integrity": "sha512-pYXw1x6npz/UfmtcpUhuMvdK5kuOGTKcJNfLqdNptzietK2UZH5RzNJSlv5bDHeSmordFM3kGItcuQWX2lj2nQ==",
302 | "dev": true,
303 | "requires": {
304 | "@hapi/boom": "7.x.x",
305 | "@hapi/bounce": "1.x.x",
306 | "@hapi/bourne": "1.x.x",
307 | "@hapi/cryptiles": "4.x.x",
308 | "@hapi/hoek": "8.x.x",
309 | "@hapi/iron": "5.x.x",
310 | "@hapi/joi": "16.x.x"
311 | }
312 | },
313 | "@hapi/subtext": {
314 | "version": "6.1.2",
315 | "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-6.1.2.tgz",
316 | "integrity": "sha512-G1kqD1E2QdxpvpL26WieIyo3z0qCa/sAGSa2TJI/PYPWCR9rL0rqFvhWY774xPZ4uK1PV3TIaJcx8AruAvxclg==",
317 | "dev": true,
318 | "requires": {
319 | "@hapi/boom": "7.x.x",
320 | "@hapi/bourne": "1.x.x",
321 | "@hapi/content": "4.x.x",
322 | "@hapi/file": "1.x.x",
323 | "@hapi/hoek": "8.x.x",
324 | "@hapi/pez": "4.x.x",
325 | "@hapi/wreck": "15.x.x"
326 | }
327 | },
328 | "@hapi/teamwork": {
329 | "version": "3.3.1",
330 | "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-3.3.1.tgz",
331 | "integrity": "sha512-61tiqWCYvMKP7fCTXy0M4VE6uNIwA0qvgFoiDubgfj7uqJ0fdHJFQNnVPGrxhLWlwz0uBPWrQlBH7r8y9vFITQ==",
332 | "dev": true
333 | },
334 | "@hapi/topo": {
335 | "version": "3.1.6",
336 | "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
337 | "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
338 | "dev": true,
339 | "requires": {
340 | "@hapi/hoek": "^8.3.0"
341 | }
342 | },
343 | "@hapi/vise": {
344 | "version": "3.1.1",
345 | "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-3.1.1.tgz",
346 | "integrity": "sha512-OXarbiCSadvtg+bSdVPqu31Z1JoBL+FwNYz3cYoBKQ5xq1/Cr4A3IkGpAZbAuxU5y4NL5pZFZG3d2a3ZGm/dOQ==",
347 | "dev": true,
348 | "requires": {
349 | "@hapi/hoek": "8.x.x"
350 | }
351 | },
352 | "@hapi/wreck": {
353 | "version": "15.1.0",
354 | "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-15.1.0.tgz",
355 | "integrity": "sha512-tQczYRTTeYBmvhsek/D49En/5khcShaBEmzrAaDjMrFXKJRuF8xA8+tlq1ETLBFwGd6Do6g2OC74rt11kzawzg==",
356 | "dev": true,
357 | "requires": {
358 | "@hapi/boom": "7.x.x",
359 | "@hapi/bourne": "1.x.x",
360 | "@hapi/hoek": "8.x.x"
361 | }
362 | },
363 | "@sindresorhus/is": {
364 | "version": "0.14.0",
365 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
366 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
367 | "dev": true
368 | },
369 | "@szmarczak/http-timer": {
370 | "version": "1.1.2",
371 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
372 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
373 | "dev": true,
374 | "requires": {
375 | "defer-to-connect": "^1.0.1"
376 | }
377 | },
378 | "@types/aws-lambda": {
379 | "version": "8.10.35",
380 | "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.35.tgz",
381 | "integrity": "sha512-2z7tI/cRpwQwx9eFFhnBgyJppQEkL3YZ+4PadhNcDuB5y+BmMY25h1N16WufdtMzOVK2WQYrLUGt6ajTzVBJUQ==",
382 | "optional": true
383 | },
384 | "@types/bson": {
385 | "version": "4.0.5",
386 | "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.5.tgz",
387 | "integrity": "sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==",
388 | "requires": {
389 | "@types/node": "*"
390 | }
391 | },
392 | "@types/mongodb": {
393 | "version": "3.6.20",
394 | "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz",
395 | "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==",
396 | "requires": {
397 | "@types/bson": "*",
398 | "@types/node": "*"
399 | }
400 | },
401 | "@types/node": {
402 | "version": "16.4.13",
403 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.13.tgz",
404 | "integrity": "sha512-bLL69sKtd25w7p1nvg9pigE4gtKVpGTPojBFLMkGHXuUgap2sLqQt2qUnqmVCDfzGUL0DRNZP+1prIZJbMeAXg=="
405 | },
406 | "accepts": {
407 | "version": "1.3.7",
408 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
409 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
410 | "requires": {
411 | "mime-types": "~2.1.24",
412 | "negotiator": "0.6.2"
413 | }
414 | },
415 | "ansi-align": {
416 | "version": "3.0.0",
417 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
418 | "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
419 | "dev": true,
420 | "requires": {
421 | "string-width": "^3.0.0"
422 | }
423 | },
424 | "ansi-regex": {
425 | "version": "4.1.0",
426 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
427 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
428 | "dev": true
429 | },
430 | "ansi-styles": {
431 | "version": "3.2.1",
432 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
433 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
434 | "dev": true,
435 | "requires": {
436 | "color-convert": "^1.9.0"
437 | }
438 | },
439 | "array-flatten": {
440 | "version": "1.1.1",
441 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
442 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
443 | },
444 | "bl": {
445 | "version": "2.2.1",
446 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
447 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
448 | "requires": {
449 | "readable-stream": "^2.3.5",
450 | "safe-buffer": "^5.1.1"
451 | }
452 | },
453 | "bluebird": {
454 | "version": "3.5.1",
455 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
456 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
457 | },
458 | "body-parser": {
459 | "version": "1.19.0",
460 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
461 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
462 | "requires": {
463 | "bytes": "3.1.0",
464 | "content-type": "~1.0.4",
465 | "debug": "2.6.9",
466 | "depd": "~1.1.2",
467 | "http-errors": "1.7.2",
468 | "iconv-lite": "0.4.24",
469 | "on-finished": "~2.3.0",
470 | "qs": "6.7.0",
471 | "raw-body": "2.4.0",
472 | "type-is": "~1.6.17"
473 | }
474 | },
475 | "boxen": {
476 | "version": "3.2.0",
477 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz",
478 | "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==",
479 | "dev": true,
480 | "requires": {
481 | "ansi-align": "^3.0.0",
482 | "camelcase": "^5.3.1",
483 | "chalk": "^2.4.2",
484 | "cli-boxes": "^2.2.0",
485 | "string-width": "^3.0.0",
486 | "term-size": "^1.2.0",
487 | "type-fest": "^0.3.0",
488 | "widest-line": "^2.0.0"
489 | }
490 | },
491 | "bson": {
492 | "version": "1.1.6",
493 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
494 | "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg=="
495 | },
496 | "buffer-equal-constant-time": {
497 | "version": "1.0.1",
498 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
499 | "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=",
500 | "dev": true
501 | },
502 | "bytes": {
503 | "version": "3.1.0",
504 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
505 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
506 | },
507 | "cacheable-request": {
508 | "version": "6.1.0",
509 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
510 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
511 | "dev": true,
512 | "requires": {
513 | "clone-response": "^1.0.2",
514 | "get-stream": "^5.1.0",
515 | "http-cache-semantics": "^4.0.0",
516 | "keyv": "^3.0.0",
517 | "lowercase-keys": "^2.0.0",
518 | "normalize-url": "^4.1.0",
519 | "responselike": "^1.0.2"
520 | },
521 | "dependencies": {
522 | "get-stream": {
523 | "version": "5.1.0",
524 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
525 | "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
526 | "dev": true,
527 | "requires": {
528 | "pump": "^3.0.0"
529 | }
530 | },
531 | "lowercase-keys": {
532 | "version": "2.0.0",
533 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
534 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
535 | "dev": true
536 | }
537 | }
538 | },
539 | "camelcase": {
540 | "version": "5.3.1",
541 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
542 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
543 | "dev": true
544 | },
545 | "chalk": {
546 | "version": "2.4.2",
547 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
548 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
549 | "dev": true,
550 | "requires": {
551 | "ansi-styles": "^3.2.1",
552 | "escape-string-regexp": "^1.0.5",
553 | "supports-color": "^5.3.0"
554 | }
555 | },
556 | "ci-info": {
557 | "version": "2.0.0",
558 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
559 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
560 | "dev": true
561 | },
562 | "cli-boxes": {
563 | "version": "2.2.0",
564 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz",
565 | "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==",
566 | "dev": true
567 | },
568 | "clone-response": {
569 | "version": "1.0.2",
570 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
571 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
572 | "dev": true,
573 | "requires": {
574 | "mimic-response": "^1.0.0"
575 | }
576 | },
577 | "color-convert": {
578 | "version": "1.9.3",
579 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
580 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
581 | "dev": true,
582 | "requires": {
583 | "color-name": "1.1.3"
584 | }
585 | },
586 | "color-name": {
587 | "version": "1.1.3",
588 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
589 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
590 | "dev": true
591 | },
592 | "configstore": {
593 | "version": "4.0.0",
594 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz",
595 | "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==",
596 | "dev": true,
597 | "requires": {
598 | "dot-prop": "^4.1.0",
599 | "graceful-fs": "^4.1.2",
600 | "make-dir": "^1.0.0",
601 | "unique-string": "^1.0.0",
602 | "write-file-atomic": "^2.0.0",
603 | "xdg-basedir": "^3.0.0"
604 | }
605 | },
606 | "content-disposition": {
607 | "version": "0.5.3",
608 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
609 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
610 | "requires": {
611 | "safe-buffer": "5.1.2"
612 | },
613 | "dependencies": {
614 | "safe-buffer": {
615 | "version": "5.1.2",
616 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
617 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
618 | }
619 | }
620 | },
621 | "content-type": {
622 | "version": "1.0.4",
623 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
624 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
625 | },
626 | "cookie": {
627 | "version": "0.4.0",
628 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
629 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
630 | },
631 | "cookie-signature": {
632 | "version": "1.0.6",
633 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
634 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
635 | },
636 | "core-util-is": {
637 | "version": "1.0.2",
638 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
639 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
640 | },
641 | "cross-spawn": {
642 | "version": "5.1.0",
643 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
644 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
645 | "dev": true,
646 | "requires": {
647 | "lru-cache": "^4.0.1",
648 | "shebang-command": "^1.2.0",
649 | "which": "^1.2.9"
650 | }
651 | },
652 | "crypto-random-string": {
653 | "version": "1.0.0",
654 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
655 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
656 | "dev": true
657 | },
658 | "cuid": {
659 | "version": "2.1.6",
660 | "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.6.tgz",
661 | "integrity": "sha512-ZFp7PS6cSYMJNch9fc3tyHdE4T8TDo3Y5qAxb0KSA9mpiYDo7z9ql1CznFuuzxea9STVIDy0tJWm2lYiX2ZU1Q==",
662 | "dev": true
663 | },
664 | "debug": {
665 | "version": "2.6.9",
666 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
667 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
668 | "requires": {
669 | "ms": "2.0.0"
670 | },
671 | "dependencies": {
672 | "ms": {
673 | "version": "2.0.0",
674 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
675 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
676 | }
677 | }
678 | },
679 | "decompress-response": {
680 | "version": "3.3.0",
681 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
682 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
683 | "dev": true,
684 | "requires": {
685 | "mimic-response": "^1.0.0"
686 | }
687 | },
688 | "deep-extend": {
689 | "version": "0.6.0",
690 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
691 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
692 | "dev": true
693 | },
694 | "defer-to-connect": {
695 | "version": "1.1.0",
696 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.0.tgz",
697 | "integrity": "sha512-WE2sZoctWm/v4smfCAdjYbrfS55JiMRdlY9ZubFhsYbteCK9+BvAx4YV7nPjYM6ZnX5BcoVKwfmyx9sIFTgQMQ==",
698 | "dev": true
699 | },
700 | "define-properties": {
701 | "version": "1.1.3",
702 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
703 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
704 | "dev": true,
705 | "requires": {
706 | "object-keys": "^1.0.12"
707 | }
708 | },
709 | "denque": {
710 | "version": "1.5.0",
711 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
712 | "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ=="
713 | },
714 | "depd": {
715 | "version": "1.1.2",
716 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
717 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
718 | },
719 | "destroy": {
720 | "version": "1.0.4",
721 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
722 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
723 | },
724 | "dot-prop": {
725 | "version": "4.2.1",
726 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
727 | "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
728 | "dev": true,
729 | "requires": {
730 | "is-obj": "^1.0.0"
731 | }
732 | },
733 | "dotenv": {
734 | "version": "4.0.0",
735 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz",
736 | "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=",
737 | "dev": true
738 | },
739 | "dotenv-expand": {
740 | "version": "4.2.0",
741 | "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz",
742 | "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=",
743 | "dev": true
744 | },
745 | "duplexer3": {
746 | "version": "0.1.4",
747 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
748 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
749 | "dev": true
750 | },
751 | "ecdsa-sig-formatter": {
752 | "version": "1.0.11",
753 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
754 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
755 | "dev": true,
756 | "requires": {
757 | "safe-buffer": "^5.0.1"
758 | }
759 | },
760 | "ee-first": {
761 | "version": "1.1.1",
762 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
763 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
764 | },
765 | "emoji-regex": {
766 | "version": "7.0.3",
767 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
768 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
769 | "dev": true
770 | },
771 | "encodeurl": {
772 | "version": "1.0.2",
773 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
774 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
775 | },
776 | "end-of-stream": {
777 | "version": "1.4.4",
778 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
779 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
780 | "dev": true,
781 | "requires": {
782 | "once": "^1.4.0"
783 | }
784 | },
785 | "es-abstract": {
786 | "version": "1.16.0",
787 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
788 | "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
789 | "dev": true,
790 | "requires": {
791 | "es-to-primitive": "^1.2.0",
792 | "function-bind": "^1.1.1",
793 | "has": "^1.0.3",
794 | "has-symbols": "^1.0.0",
795 | "is-callable": "^1.1.4",
796 | "is-regex": "^1.0.4",
797 | "object-inspect": "^1.6.0",
798 | "object-keys": "^1.1.1",
799 | "string.prototype.trimleft": "^2.1.0",
800 | "string.prototype.trimright": "^2.1.0"
801 | }
802 | },
803 | "es-to-primitive": {
804 | "version": "1.2.1",
805 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
806 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
807 | "dev": true,
808 | "requires": {
809 | "is-callable": "^1.1.4",
810 | "is-date-object": "^1.0.1",
811 | "is-symbol": "^1.0.2"
812 | }
813 | },
814 | "escape-html": {
815 | "version": "1.0.3",
816 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
817 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
818 | },
819 | "escape-string-regexp": {
820 | "version": "1.0.5",
821 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
822 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
823 | "dev": true
824 | },
825 | "etag": {
826 | "version": "1.8.1",
827 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
828 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
829 | },
830 | "event-lite": {
831 | "version": "0.1.2",
832 | "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz",
833 | "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==",
834 | "dev": true
835 | },
836 | "execa": {
837 | "version": "0.7.0",
838 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
839 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
840 | "dev": true,
841 | "requires": {
842 | "cross-spawn": "^5.0.1",
843 | "get-stream": "^3.0.0",
844 | "is-stream": "^1.1.0",
845 | "npm-run-path": "^2.0.0",
846 | "p-finally": "^1.0.0",
847 | "signal-exit": "^3.0.0",
848 | "strip-eof": "^1.0.0"
849 | }
850 | },
851 | "express": {
852 | "version": "4.17.1",
853 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
854 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
855 | "requires": {
856 | "accepts": "~1.3.7",
857 | "array-flatten": "1.1.1",
858 | "body-parser": "1.19.0",
859 | "content-disposition": "0.5.3",
860 | "content-type": "~1.0.4",
861 | "cookie": "0.4.0",
862 | "cookie-signature": "1.0.6",
863 | "debug": "2.6.9",
864 | "depd": "~1.1.2",
865 | "encodeurl": "~1.0.2",
866 | "escape-html": "~1.0.3",
867 | "etag": "~1.8.1",
868 | "finalhandler": "~1.1.2",
869 | "fresh": "0.5.2",
870 | "merge-descriptors": "1.0.1",
871 | "methods": "~1.1.2",
872 | "on-finished": "~2.3.0",
873 | "parseurl": "~1.3.3",
874 | "path-to-regexp": "0.1.7",
875 | "proxy-addr": "~2.0.5",
876 | "qs": "6.7.0",
877 | "range-parser": "~1.2.1",
878 | "safe-buffer": "5.1.2",
879 | "send": "0.17.1",
880 | "serve-static": "1.14.1",
881 | "setprototypeof": "1.1.1",
882 | "statuses": "~1.5.0",
883 | "type-is": "~1.6.18",
884 | "utils-merge": "1.0.1",
885 | "vary": "~1.1.2"
886 | },
887 | "dependencies": {
888 | "safe-buffer": {
889 | "version": "5.1.2",
890 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
891 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
892 | }
893 | }
894 | },
895 | "finalhandler": {
896 | "version": "1.1.2",
897 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
898 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
899 | "requires": {
900 | "debug": "2.6.9",
901 | "encodeurl": "~1.0.2",
902 | "escape-html": "~1.0.3",
903 | "on-finished": "~2.3.0",
904 | "parseurl": "~1.3.3",
905 | "statuses": "~1.5.0",
906 | "unpipe": "~1.0.0"
907 | }
908 | },
909 | "forwarded": {
910 | "version": "0.1.2",
911 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
912 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
913 | },
914 | "fresh": {
915 | "version": "0.5.2",
916 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
917 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
918 | },
919 | "function-bind": {
920 | "version": "1.1.1",
921 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
922 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
923 | "dev": true
924 | },
925 | "get-stream": {
926 | "version": "3.0.0",
927 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
928 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
929 | "dev": true
930 | },
931 | "global-dirs": {
932 | "version": "0.1.1",
933 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
934 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
935 | "dev": true,
936 | "requires": {
937 | "ini": "^1.3.4"
938 | }
939 | },
940 | "got": {
941 | "version": "9.6.0",
942 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
943 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
944 | "dev": true,
945 | "requires": {
946 | "@sindresorhus/is": "^0.14.0",
947 | "@szmarczak/http-timer": "^1.1.2",
948 | "cacheable-request": "^6.0.0",
949 | "decompress-response": "^3.3.0",
950 | "duplexer3": "^0.1.4",
951 | "get-stream": "^4.1.0",
952 | "lowercase-keys": "^1.0.1",
953 | "mimic-response": "^1.0.1",
954 | "p-cancelable": "^1.0.0",
955 | "to-readable-stream": "^1.0.0",
956 | "url-parse-lax": "^3.0.0"
957 | },
958 | "dependencies": {
959 | "get-stream": {
960 | "version": "4.1.0",
961 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
962 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
963 | "dev": true,
964 | "requires": {
965 | "pump": "^3.0.0"
966 | }
967 | }
968 | }
969 | },
970 | "graceful-fs": {
971 | "version": "4.2.3",
972 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
973 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
974 | "dev": true
975 | },
976 | "hapi-plugin-websocket": {
977 | "version": "2.3.4",
978 | "resolved": "https://registry.npmjs.org/hapi-plugin-websocket/-/hapi-plugin-websocket-2.3.4.tgz",
979 | "integrity": "sha512-QsoTR6NdCzhVnQe4denz0X+2QbhP44guPhxENqU/EPNXERIrfCV6h31eedZR176nMEfu3BSegLhqfQ6jwAv2Rg==",
980 | "dev": true,
981 | "requires": {
982 | "@hapi/boom": "9.1.2",
983 | "@hapi/hoek": "9.2.0",
984 | "urijs": "1.19.6",
985 | "websocket-framed": "1.2.5",
986 | "ws": "7.5.1"
987 | },
988 | "dependencies": {
989 | "@hapi/boom": {
990 | "version": "9.1.2",
991 | "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.2.tgz",
992 | "integrity": "sha512-uJEJtiNHzKw80JpngDGBCGAmWjBtzxDCz17A9NO2zCi8LLBlb5Frpq4pXwyN+2JQMod4pKz5BALwyneCgDg89Q==",
993 | "dev": true,
994 | "requires": {
995 | "@hapi/hoek": "9.x.x"
996 | }
997 | },
998 | "@hapi/hoek": {
999 | "version": "9.2.0",
1000 | "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz",
1001 | "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==",
1002 | "dev": true
1003 | },
1004 | "bignumber.js": {
1005 | "version": "9.0.1",
1006 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz",
1007 | "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==",
1008 | "dev": true
1009 | },
1010 | "cbor": {
1011 | "version": "7.0.5",
1012 | "resolved": "https://registry.npmjs.org/cbor/-/cbor-7.0.5.tgz",
1013 | "integrity": "sha512-0aaAPgW92lLmypb9iCd22k7tSD1FbF6dps8VQzmIBKY6ych2gO09b2vo/SbaLTmezJuB8Kh88Rvpl/Uq52mNZg==",
1014 | "dev": true,
1015 | "requires": {
1016 | "@cto.af/textdecoder": "^0.0.0",
1017 | "nofilter": "^2.0.3"
1018 | }
1019 | },
1020 | "encodr": {
1021 | "version": "1.3.0",
1022 | "resolved": "https://registry.npmjs.org/encodr/-/encodr-1.3.0.tgz",
1023 | "integrity": "sha512-yPTpvcJdVDqBA6hde6K/S1Q8zO3npKDwKl7oHLJbKLs0WVoc5w8wHApzw2qu8yPG8idEGYh0cXtk0D53O7gV8w==",
1024 | "dev": true,
1025 | "requires": {
1026 | "bignumber.js": "9.0.1",
1027 | "cbor": "7.0.5",
1028 | "msgpack-lite": "0.1.26",
1029 | "node-inspect-extracted": "1.0.7",
1030 | "utf8": "3.0.0"
1031 | }
1032 | },
1033 | "eventemitter3": {
1034 | "version": "4.0.7",
1035 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
1036 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
1037 | "dev": true
1038 | },
1039 | "nofilter": {
1040 | "version": "2.0.3",
1041 | "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-2.0.3.tgz",
1042 | "integrity": "sha512-FbuXC+lK+GU2+63D1kC1ETiZo+Z7SIi7B+mxKTCH1byrh6WFvfBCN/wpherFz0a0bjGd7EKTst/cz0yLeNngug==",
1043 | "dev": true,
1044 | "requires": {
1045 | "@cto.af/textdecoder": "^0.0.0"
1046 | }
1047 | },
1048 | "urijs": {
1049 | "version": "1.19.6",
1050 | "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.6.tgz",
1051 | "integrity": "sha512-eSXsXZ2jLvGWeLYlQA3Gh36BcjF+0amo92+wHPyN1mdR8Nxf75fuEuYTd9c0a+m/vhCjRK0ESlE9YNLW+E1VEw==",
1052 | "dev": true
1053 | },
1054 | "websocket-framed": {
1055 | "version": "1.2.5",
1056 | "resolved": "https://registry.npmjs.org/websocket-framed/-/websocket-framed-1.2.5.tgz",
1057 | "integrity": "sha512-iqz8MvWXGcucx5VzRMyfgM6iCR0QuubGRakJJdIJtz5zXzm4hbsqxnXXgcqqY5ZoA2P+6xghbfn9u5CFZPW3lw==",
1058 | "dev": true,
1059 | "requires": {
1060 | "encodr": "1.3.0",
1061 | "eventemitter3": "4.0.7"
1062 | }
1063 | },
1064 | "ws": {
1065 | "version": "7.5.1",
1066 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz",
1067 | "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==",
1068 | "dev": true
1069 | }
1070 | }
1071 | },
1072 | "has": {
1073 | "version": "1.0.3",
1074 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1075 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1076 | "dev": true,
1077 | "requires": {
1078 | "function-bind": "^1.1.1"
1079 | }
1080 | },
1081 | "has-flag": {
1082 | "version": "3.0.0",
1083 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1084 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1085 | "dev": true
1086 | },
1087 | "has-symbols": {
1088 | "version": "1.0.0",
1089 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
1090 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
1091 | "dev": true
1092 | },
1093 | "has-yarn": {
1094 | "version": "2.1.0",
1095 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
1096 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
1097 | "dev": true
1098 | },
1099 | "http-cache-semantics": {
1100 | "version": "4.0.3",
1101 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz",
1102 | "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==",
1103 | "dev": true
1104 | },
1105 | "http-errors": {
1106 | "version": "1.7.2",
1107 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
1108 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
1109 | "requires": {
1110 | "depd": "~1.1.2",
1111 | "inherits": "2.0.3",
1112 | "setprototypeof": "1.1.1",
1113 | "statuses": ">= 1.5.0 < 2",
1114 | "toidentifier": "1.0.0"
1115 | }
1116 | },
1117 | "iconv-lite": {
1118 | "version": "0.4.24",
1119 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1120 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1121 | "requires": {
1122 | "safer-buffer": ">= 2.1.2 < 3"
1123 | }
1124 | },
1125 | "ieee754": {
1126 | "version": "1.1.13",
1127 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
1128 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
1129 | "dev": true
1130 | },
1131 | "import-lazy": {
1132 | "version": "2.1.0",
1133 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
1134 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
1135 | "dev": true
1136 | },
1137 | "imurmurhash": {
1138 | "version": "0.1.4",
1139 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1140 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1141 | "dev": true
1142 | },
1143 | "inherits": {
1144 | "version": "2.0.3",
1145 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1146 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
1147 | },
1148 | "ini": {
1149 | "version": "1.3.8",
1150 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
1151 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
1152 | "dev": true
1153 | },
1154 | "int64-buffer": {
1155 | "version": "0.1.10",
1156 | "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz",
1157 | "integrity": "sha1-J3siiofZWtd30HwTgyAiQGpHNCM=",
1158 | "dev": true
1159 | },
1160 | "ipaddr.js": {
1161 | "version": "1.9.0",
1162 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
1163 | "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
1164 | },
1165 | "is-callable": {
1166 | "version": "1.1.4",
1167 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
1168 | "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
1169 | "dev": true
1170 | },
1171 | "is-ci": {
1172 | "version": "2.0.0",
1173 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
1174 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
1175 | "dev": true,
1176 | "requires": {
1177 | "ci-info": "^2.0.0"
1178 | }
1179 | },
1180 | "is-date-object": {
1181 | "version": "1.0.1",
1182 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
1183 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
1184 | "dev": true
1185 | },
1186 | "is-fullwidth-code-point": {
1187 | "version": "2.0.0",
1188 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1189 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1190 | "dev": true
1191 | },
1192 | "is-installed-globally": {
1193 | "version": "0.1.0",
1194 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
1195 | "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
1196 | "dev": true,
1197 | "requires": {
1198 | "global-dirs": "^0.1.0",
1199 | "is-path-inside": "^1.0.0"
1200 | }
1201 | },
1202 | "is-npm": {
1203 | "version": "3.0.0",
1204 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz",
1205 | "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==",
1206 | "dev": true
1207 | },
1208 | "is-obj": {
1209 | "version": "1.0.1",
1210 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
1211 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
1212 | "dev": true
1213 | },
1214 | "is-path-inside": {
1215 | "version": "1.0.1",
1216 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
1217 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
1218 | "dev": true,
1219 | "requires": {
1220 | "path-is-inside": "^1.0.1"
1221 | }
1222 | },
1223 | "is-regex": {
1224 | "version": "1.0.4",
1225 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
1226 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
1227 | "dev": true,
1228 | "requires": {
1229 | "has": "^1.0.1"
1230 | }
1231 | },
1232 | "is-stream": {
1233 | "version": "1.1.0",
1234 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
1235 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
1236 | "dev": true
1237 | },
1238 | "is-symbol": {
1239 | "version": "1.0.2",
1240 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
1241 | "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
1242 | "dev": true,
1243 | "requires": {
1244 | "has-symbols": "^1.0.0"
1245 | }
1246 | },
1247 | "is-yarn-global": {
1248 | "version": "0.3.0",
1249 | "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
1250 | "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
1251 | "dev": true
1252 | },
1253 | "isarray": {
1254 | "version": "1.0.0",
1255 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1256 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1257 | },
1258 | "isexe": {
1259 | "version": "2.0.0",
1260 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1261 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1262 | "dev": true
1263 | },
1264 | "js-string-escape": {
1265 | "version": "1.0.1",
1266 | "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
1267 | "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=",
1268 | "dev": true
1269 | },
1270 | "json-buffer": {
1271 | "version": "3.0.0",
1272 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
1273 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
1274 | "dev": true
1275 | },
1276 | "jsonpath-plus": {
1277 | "version": "1.1.0",
1278 | "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-1.1.0.tgz",
1279 | "integrity": "sha512-ydqTBOuLcFCUr9e7AxJlKCFgxzEQ03HjnIim0hJSdk2NxD8MOsaMOrRgP6XWEm5q3VuDY5+cRT1DM9vLlGo/qA==",
1280 | "dev": true
1281 | },
1282 | "jsonwebtoken": {
1283 | "version": "8.5.1",
1284 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
1285 | "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
1286 | "dev": true,
1287 | "requires": {
1288 | "jws": "^3.2.2",
1289 | "lodash.includes": "^4.3.0",
1290 | "lodash.isboolean": "^3.0.3",
1291 | "lodash.isinteger": "^4.0.4",
1292 | "lodash.isnumber": "^3.0.3",
1293 | "lodash.isplainobject": "^4.0.6",
1294 | "lodash.isstring": "^4.0.1",
1295 | "lodash.once": "^4.0.0",
1296 | "ms": "^2.1.1",
1297 | "semver": "^5.6.0"
1298 | },
1299 | "dependencies": {
1300 | "semver": {
1301 | "version": "5.7.1",
1302 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1303 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1304 | "dev": true
1305 | }
1306 | }
1307 | },
1308 | "jwa": {
1309 | "version": "1.4.1",
1310 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
1311 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
1312 | "dev": true,
1313 | "requires": {
1314 | "buffer-equal-constant-time": "1.0.1",
1315 | "ecdsa-sig-formatter": "1.0.11",
1316 | "safe-buffer": "^5.0.1"
1317 | }
1318 | },
1319 | "jws": {
1320 | "version": "3.2.2",
1321 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
1322 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
1323 | "dev": true,
1324 | "requires": {
1325 | "jwa": "^1.4.1",
1326 | "safe-buffer": "^5.0.1"
1327 | }
1328 | },
1329 | "kareem": {
1330 | "version": "2.3.2",
1331 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
1332 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
1333 | },
1334 | "keyv": {
1335 | "version": "3.1.0",
1336 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
1337 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
1338 | "dev": true,
1339 | "requires": {
1340 | "json-buffer": "3.0.0"
1341 | }
1342 | },
1343 | "latest-version": {
1344 | "version": "5.1.0",
1345 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
1346 | "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
1347 | "dev": true,
1348 | "requires": {
1349 | "package-json": "^6.3.0"
1350 | }
1351 | },
1352 | "lodash.includes": {
1353 | "version": "4.3.0",
1354 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
1355 | "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=",
1356 | "dev": true
1357 | },
1358 | "lodash.isboolean": {
1359 | "version": "3.0.3",
1360 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
1361 | "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=",
1362 | "dev": true
1363 | },
1364 | "lodash.isinteger": {
1365 | "version": "4.0.4",
1366 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
1367 | "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=",
1368 | "dev": true
1369 | },
1370 | "lodash.isnumber": {
1371 | "version": "3.0.3",
1372 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
1373 | "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=",
1374 | "dev": true
1375 | },
1376 | "lodash.isplainobject": {
1377 | "version": "4.0.6",
1378 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
1379 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
1380 | "dev": true
1381 | },
1382 | "lodash.isstring": {
1383 | "version": "4.0.1",
1384 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
1385 | "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=",
1386 | "dev": true
1387 | },
1388 | "lodash.once": {
1389 | "version": "4.1.1",
1390 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
1391 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
1392 | "dev": true
1393 | },
1394 | "lowercase-keys": {
1395 | "version": "1.0.1",
1396 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
1397 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
1398 | "dev": true
1399 | },
1400 | "lru-cache": {
1401 | "version": "4.1.5",
1402 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
1403 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
1404 | "dev": true,
1405 | "requires": {
1406 | "pseudomap": "^1.0.2",
1407 | "yallist": "^2.1.2"
1408 | }
1409 | },
1410 | "luxon": {
1411 | "version": "1.21.1",
1412 | "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.21.1.tgz",
1413 | "integrity": "sha512-3zxaKX7mj7eA80TU0sm4CfNEtiUZ2QXGjMc80rfG4d1dOnnOOWz63U9j4nYR7+1w716DYtWfdOeVhDXYlH+D4w==",
1414 | "dev": true
1415 | },
1416 | "make-dir": {
1417 | "version": "1.3.0",
1418 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
1419 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
1420 | "dev": true,
1421 | "requires": {
1422 | "pify": "^3.0.0"
1423 | }
1424 | },
1425 | "media-typer": {
1426 | "version": "0.3.0",
1427 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1428 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
1429 | },
1430 | "memory-pager": {
1431 | "version": "1.5.0",
1432 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
1433 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
1434 | "optional": true
1435 | },
1436 | "merge-descriptors": {
1437 | "version": "1.0.1",
1438 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1439 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1440 | },
1441 | "methods": {
1442 | "version": "1.1.2",
1443 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1444 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
1445 | },
1446 | "mime": {
1447 | "version": "1.6.0",
1448 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1449 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1450 | },
1451 | "mime-db": {
1452 | "version": "1.42.0",
1453 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
1454 | "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==",
1455 | "dev": true
1456 | },
1457 | "mime-types": {
1458 | "version": "2.1.24",
1459 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
1460 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
1461 | "requires": {
1462 | "mime-db": "1.40.0"
1463 | },
1464 | "dependencies": {
1465 | "mime-db": {
1466 | "version": "1.40.0",
1467 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
1468 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
1469 | }
1470 | }
1471 | },
1472 | "mimic-response": {
1473 | "version": "1.0.1",
1474 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
1475 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
1476 | "dev": true
1477 | },
1478 | "minimist": {
1479 | "version": "1.2.5",
1480 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1481 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1482 | "dev": true
1483 | },
1484 | "mongodb": {
1485 | "version": "3.6.11",
1486 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.11.tgz",
1487 | "integrity": "sha512-4Y4lTFHDHZZdgMaHmojtNAlqkvddX2QQBEN0K//GzxhGwlI9tZ9R0vhbjr1Decw+TF7qK0ZLjQT292XgHRRQgw==",
1488 | "requires": {
1489 | "bl": "^2.2.1",
1490 | "bson": "^1.1.4",
1491 | "denque": "^1.4.1",
1492 | "optional-require": "^1.0.3",
1493 | "safe-buffer": "^5.1.2",
1494 | "saslprep": "^1.0.0"
1495 | }
1496 | },
1497 | "mongoose": {
1498 | "version": "5.13.6",
1499 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.6.tgz",
1500 | "integrity": "sha512-IyswXkgxnnl+rpiU+lzXl5/BOEle2llDfuPBrN6K+Eb5vS6a/HN/A9zrdtOcSTb0tVoCZ0QN5PfDSwa/EEGBuQ==",
1501 | "requires": {
1502 | "@types/mongodb": "^3.5.27",
1503 | "bson": "^1.1.4",
1504 | "kareem": "2.3.2",
1505 | "mongodb": "3.6.11",
1506 | "mongoose-legacy-pluralize": "1.0.2",
1507 | "mpath": "0.8.3",
1508 | "mquery": "3.2.5",
1509 | "ms": "2.1.2",
1510 | "optional-require": "1.0.x",
1511 | "regexp-clone": "1.0.0",
1512 | "safe-buffer": "5.2.1",
1513 | "sift": "13.5.2",
1514 | "sliced": "1.0.1"
1515 | },
1516 | "dependencies": {
1517 | "safe-buffer": {
1518 | "version": "5.2.1",
1519 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1520 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1521 | }
1522 | }
1523 | },
1524 | "mongoose-legacy-pluralize": {
1525 | "version": "1.0.2",
1526 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
1527 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
1528 | },
1529 | "mpath": {
1530 | "version": "0.8.3",
1531 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz",
1532 | "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA=="
1533 | },
1534 | "mquery": {
1535 | "version": "3.2.5",
1536 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz",
1537 | "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==",
1538 | "requires": {
1539 | "bluebird": "3.5.1",
1540 | "debug": "3.1.0",
1541 | "regexp-clone": "^1.0.0",
1542 | "safe-buffer": "5.1.2",
1543 | "sliced": "1.0.1"
1544 | },
1545 | "dependencies": {
1546 | "debug": {
1547 | "version": "3.1.0",
1548 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1549 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1550 | "requires": {
1551 | "ms": "2.0.0"
1552 | }
1553 | },
1554 | "ms": {
1555 | "version": "2.0.0",
1556 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1557 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1558 | },
1559 | "safe-buffer": {
1560 | "version": "5.1.2",
1561 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1562 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1563 | }
1564 | }
1565 | },
1566 | "ms": {
1567 | "version": "2.1.2",
1568 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1569 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1570 | },
1571 | "msgpack-lite": {
1572 | "version": "0.1.26",
1573 | "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz",
1574 | "integrity": "sha1-3TxQsm8FnyXn7e42REGDWOKprYk=",
1575 | "dev": true,
1576 | "requires": {
1577 | "event-lite": "^0.1.1",
1578 | "ieee754": "^1.1.8",
1579 | "int64-buffer": "^0.1.9",
1580 | "isarray": "^1.0.0"
1581 | }
1582 | },
1583 | "negotiator": {
1584 | "version": "0.6.2",
1585 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1586 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
1587 | },
1588 | "node-inspect-extracted": {
1589 | "version": "1.0.7",
1590 | "resolved": "https://registry.npmjs.org/node-inspect-extracted/-/node-inspect-extracted-1.0.7.tgz",
1591 | "integrity": "sha512-FDdIQtuAVzkmV8Qh/Z0MdUvj4p6rRHYl28PkwnlRzwXNGFMd5leouoLtqaAqvtG0RG0jj0/RzYOznNe5XZw1lg==",
1592 | "dev": true
1593 | },
1594 | "normalize-url": {
1595 | "version": "4.5.1",
1596 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
1597 | "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
1598 | "dev": true
1599 | },
1600 | "npm-run-path": {
1601 | "version": "2.0.2",
1602 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
1603 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
1604 | "dev": true,
1605 | "requires": {
1606 | "path-key": "^2.0.0"
1607 | }
1608 | },
1609 | "object-inspect": {
1610 | "version": "1.6.0",
1611 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
1612 | "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
1613 | "dev": true
1614 | },
1615 | "object-keys": {
1616 | "version": "1.1.1",
1617 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1618 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1619 | "dev": true
1620 | },
1621 | "object.fromentries": {
1622 | "version": "2.0.1",
1623 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.1.tgz",
1624 | "integrity": "sha512-PUQv8Hbg3j2QX0IQYv3iAGCbGcu4yY4KQ92/dhA4sFSixBmSmp13UpDLs6jGK8rBtbmhNNIK99LD2k293jpiGA==",
1625 | "dev": true,
1626 | "requires": {
1627 | "define-properties": "^1.1.3",
1628 | "es-abstract": "^1.15.0",
1629 | "function-bind": "^1.1.1",
1630 | "has": "^1.0.3"
1631 | }
1632 | },
1633 | "on-finished": {
1634 | "version": "2.3.0",
1635 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1636 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1637 | "requires": {
1638 | "ee-first": "1.1.1"
1639 | }
1640 | },
1641 | "once": {
1642 | "version": "1.4.0",
1643 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1644 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1645 | "dev": true,
1646 | "requires": {
1647 | "wrappy": "1"
1648 | }
1649 | },
1650 | "optional-require": {
1651 | "version": "1.0.3",
1652 | "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz",
1653 | "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA=="
1654 | },
1655 | "p-cancelable": {
1656 | "version": "1.1.0",
1657 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
1658 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
1659 | "dev": true
1660 | },
1661 | "p-finally": {
1662 | "version": "1.0.0",
1663 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
1664 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
1665 | "dev": true
1666 | },
1667 | "package-json": {
1668 | "version": "6.5.0",
1669 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
1670 | "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
1671 | "dev": true,
1672 | "requires": {
1673 | "got": "^9.6.0",
1674 | "registry-auth-token": "^4.0.0",
1675 | "registry-url": "^5.0.0",
1676 | "semver": "^6.2.0"
1677 | }
1678 | },
1679 | "parseurl": {
1680 | "version": "1.3.3",
1681 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1682 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1683 | },
1684 | "path-is-inside": {
1685 | "version": "1.0.2",
1686 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
1687 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
1688 | "dev": true
1689 | },
1690 | "path-key": {
1691 | "version": "2.0.1",
1692 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1693 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1694 | "dev": true
1695 | },
1696 | "path-to-regexp": {
1697 | "version": "0.1.7",
1698 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1699 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1700 | },
1701 | "pify": {
1702 | "version": "3.0.0",
1703 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1704 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1705 | "dev": true
1706 | },
1707 | "prepend-http": {
1708 | "version": "2.0.0",
1709 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
1710 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
1711 | "dev": true
1712 | },
1713 | "process-nextick-args": {
1714 | "version": "2.0.1",
1715 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1716 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
1717 | },
1718 | "proxy-addr": {
1719 | "version": "2.0.5",
1720 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
1721 | "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
1722 | "requires": {
1723 | "forwarded": "~0.1.2",
1724 | "ipaddr.js": "1.9.0"
1725 | }
1726 | },
1727 | "pseudomap": {
1728 | "version": "1.0.2",
1729 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
1730 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
1731 | "dev": true
1732 | },
1733 | "pump": {
1734 | "version": "3.0.0",
1735 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1736 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1737 | "dev": true,
1738 | "requires": {
1739 | "end-of-stream": "^1.1.0",
1740 | "once": "^1.3.1"
1741 | }
1742 | },
1743 | "qs": {
1744 | "version": "6.7.0",
1745 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
1746 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
1747 | },
1748 | "range-parser": {
1749 | "version": "1.2.1",
1750 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1751 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1752 | },
1753 | "raw-body": {
1754 | "version": "2.4.0",
1755 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
1756 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
1757 | "requires": {
1758 | "bytes": "3.1.0",
1759 | "http-errors": "1.7.2",
1760 | "iconv-lite": "0.4.24",
1761 | "unpipe": "1.0.0"
1762 | }
1763 | },
1764 | "rc": {
1765 | "version": "1.2.8",
1766 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
1767 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
1768 | "dev": true,
1769 | "requires": {
1770 | "deep-extend": "^0.6.0",
1771 | "ini": "~1.3.0",
1772 | "minimist": "^1.2.0",
1773 | "strip-json-comments": "~2.0.1"
1774 | }
1775 | },
1776 | "readable-stream": {
1777 | "version": "2.3.7",
1778 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1779 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1780 | "requires": {
1781 | "core-util-is": "~1.0.0",
1782 | "inherits": "~2.0.3",
1783 | "isarray": "~1.0.0",
1784 | "process-nextick-args": "~2.0.0",
1785 | "safe-buffer": "~5.1.1",
1786 | "string_decoder": "~1.1.1",
1787 | "util-deprecate": "~1.0.1"
1788 | },
1789 | "dependencies": {
1790 | "safe-buffer": {
1791 | "version": "5.1.2",
1792 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1793 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1794 | }
1795 | }
1796 | },
1797 | "regexp-clone": {
1798 | "version": "1.0.0",
1799 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
1800 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
1801 | },
1802 | "registry-auth-token": {
1803 | "version": "4.0.0",
1804 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz",
1805 | "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==",
1806 | "dev": true,
1807 | "requires": {
1808 | "rc": "^1.2.8",
1809 | "safe-buffer": "^5.0.1"
1810 | }
1811 | },
1812 | "registry-url": {
1813 | "version": "5.1.0",
1814 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
1815 | "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
1816 | "dev": true,
1817 | "requires": {
1818 | "rc": "^1.2.8"
1819 | }
1820 | },
1821 | "responselike": {
1822 | "version": "1.0.2",
1823 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
1824 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
1825 | "dev": true,
1826 | "requires": {
1827 | "lowercase-keys": "^1.0.0"
1828 | }
1829 | },
1830 | "safe-buffer": {
1831 | "version": "5.2.0",
1832 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
1833 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
1834 | },
1835 | "safer-buffer": {
1836 | "version": "2.1.2",
1837 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1838 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1839 | },
1840 | "saslprep": {
1841 | "version": "1.0.3",
1842 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
1843 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
1844 | "optional": true,
1845 | "requires": {
1846 | "sparse-bitfield": "^3.0.3"
1847 | }
1848 | },
1849 | "semver": {
1850 | "version": "6.3.0",
1851 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1852 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1853 | "dev": true
1854 | },
1855 | "semver-diff": {
1856 | "version": "2.1.0",
1857 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
1858 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
1859 | "dev": true,
1860 | "requires": {
1861 | "semver": "^5.0.3"
1862 | },
1863 | "dependencies": {
1864 | "semver": {
1865 | "version": "5.7.1",
1866 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1867 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1868 | "dev": true
1869 | }
1870 | }
1871 | },
1872 | "send": {
1873 | "version": "0.17.1",
1874 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
1875 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
1876 | "requires": {
1877 | "debug": "2.6.9",
1878 | "depd": "~1.1.2",
1879 | "destroy": "~1.0.4",
1880 | "encodeurl": "~1.0.2",
1881 | "escape-html": "~1.0.3",
1882 | "etag": "~1.8.1",
1883 | "fresh": "0.5.2",
1884 | "http-errors": "~1.7.2",
1885 | "mime": "1.6.0",
1886 | "ms": "2.1.1",
1887 | "on-finished": "~2.3.0",
1888 | "range-parser": "~1.2.1",
1889 | "statuses": "~1.5.0"
1890 | },
1891 | "dependencies": {
1892 | "ms": {
1893 | "version": "2.1.1",
1894 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1895 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
1896 | }
1897 | }
1898 | },
1899 | "serve-static": {
1900 | "version": "1.14.1",
1901 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
1902 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
1903 | "requires": {
1904 | "encodeurl": "~1.0.2",
1905 | "escape-html": "~1.0.3",
1906 | "parseurl": "~1.3.3",
1907 | "send": "0.17.1"
1908 | }
1909 | },
1910 | "serverless-dotenv": {
1911 | "version": "1.0.0-beta.2",
1912 | "resolved": "https://registry.npmjs.org/serverless-dotenv/-/serverless-dotenv-1.0.0-beta.2.tgz",
1913 | "integrity": "sha1-g4he/ebBsG8j7sCKzi/zRUO3qUE=",
1914 | "dev": true
1915 | },
1916 | "serverless-dotenv-plugin": {
1917 | "version": "2.1.1",
1918 | "resolved": "https://registry.npmjs.org/serverless-dotenv-plugin/-/serverless-dotenv-plugin-2.1.1.tgz",
1919 | "integrity": "sha512-T08fI0XoWGMKfs1KEpYrFwG/6A+qR2UZyANgchV7jJAhRhCtO0my1oMTLovyone5UHXOwTojrwUw3pm8NYa3rg==",
1920 | "dev": true,
1921 | "requires": {
1922 | "chalk": "^2.1.0",
1923 | "dotenv": "^4.0.0",
1924 | "dotenv-expand": "^4.0.1"
1925 | }
1926 | },
1927 | "serverless-http": {
1928 | "version": "2.3.0",
1929 | "resolved": "https://registry.npmjs.org/serverless-http/-/serverless-http-2.3.0.tgz",
1930 | "integrity": "sha512-z1820kGkw/XlaXCZ3HMA6fY/SQXrbtlQjuTaxB1fMJTe5GJqjQRE0EyLKkeQDT3Qd4nmtfM1p7XEUuNv2chnFA==",
1931 | "requires": {
1932 | "@types/aws-lambda": "^8.10.19"
1933 | }
1934 | },
1935 | "serverless-offline": {
1936 | "version": "5.12.0",
1937 | "resolved": "https://registry.npmjs.org/serverless-offline/-/serverless-offline-5.12.0.tgz",
1938 | "integrity": "sha512-iYnToFs/PWQe1V68ChueD6+pzMlla8hJNA2O7jThYGiDgC8EyO+R6uAK+cD89VW8kneQNy/eGJzEcA8VUJOkbg==",
1939 | "dev": true,
1940 | "requires": {
1941 | "@hapi/boom": "^7.4.11",
1942 | "@hapi/h2o2": "^8.3.2",
1943 | "@hapi/hapi": "^18.4.0",
1944 | "cuid": "^2.1.6",
1945 | "hapi-plugin-websocket": "^2.1.2",
1946 | "js-string-escape": "^1.0.1",
1947 | "jsonpath-plus": "^1.1.0",
1948 | "jsonwebtoken": "^8.5.1",
1949 | "luxon": "^1.19.3",
1950 | "object.fromentries": "^2.0.0",
1951 | "semver": "^6.2.0",
1952 | "trim-newlines": "^3.0.0",
1953 | "update-notifier": "^3.0.1",
1954 | "velocityjs": "^1.1.5"
1955 | }
1956 | },
1957 | "setprototypeof": {
1958 | "version": "1.1.1",
1959 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1960 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1961 | },
1962 | "shebang-command": {
1963 | "version": "1.2.0",
1964 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1965 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1966 | "dev": true,
1967 | "requires": {
1968 | "shebang-regex": "^1.0.0"
1969 | }
1970 | },
1971 | "shebang-regex": {
1972 | "version": "1.0.0",
1973 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1974 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1975 | "dev": true
1976 | },
1977 | "sift": {
1978 | "version": "13.5.2",
1979 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz",
1980 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA=="
1981 | },
1982 | "signal-exit": {
1983 | "version": "3.0.2",
1984 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1985 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
1986 | "dev": true
1987 | },
1988 | "sliced": {
1989 | "version": "1.0.1",
1990 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
1991 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
1992 | },
1993 | "sparse-bitfield": {
1994 | "version": "3.0.3",
1995 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
1996 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
1997 | "optional": true,
1998 | "requires": {
1999 | "memory-pager": "^1.0.2"
2000 | }
2001 | },
2002 | "statuses": {
2003 | "version": "1.5.0",
2004 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
2005 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
2006 | },
2007 | "string-width": {
2008 | "version": "3.1.0",
2009 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
2010 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
2011 | "dev": true,
2012 | "requires": {
2013 | "emoji-regex": "^7.0.1",
2014 | "is-fullwidth-code-point": "^2.0.0",
2015 | "strip-ansi": "^5.1.0"
2016 | }
2017 | },
2018 | "string.prototype.trimleft": {
2019 | "version": "2.1.0",
2020 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
2021 | "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
2022 | "dev": true,
2023 | "requires": {
2024 | "define-properties": "^1.1.3",
2025 | "function-bind": "^1.1.1"
2026 | }
2027 | },
2028 | "string.prototype.trimright": {
2029 | "version": "2.1.0",
2030 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
2031 | "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
2032 | "dev": true,
2033 | "requires": {
2034 | "define-properties": "^1.1.3",
2035 | "function-bind": "^1.1.1"
2036 | }
2037 | },
2038 | "string_decoder": {
2039 | "version": "1.1.1",
2040 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2041 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2042 | "requires": {
2043 | "safe-buffer": "~5.1.0"
2044 | },
2045 | "dependencies": {
2046 | "safe-buffer": {
2047 | "version": "5.1.2",
2048 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2049 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
2050 | }
2051 | }
2052 | },
2053 | "strip-ansi": {
2054 | "version": "5.2.0",
2055 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
2056 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
2057 | "dev": true,
2058 | "requires": {
2059 | "ansi-regex": "^4.1.0"
2060 | }
2061 | },
2062 | "strip-eof": {
2063 | "version": "1.0.0",
2064 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
2065 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
2066 | "dev": true
2067 | },
2068 | "strip-json-comments": {
2069 | "version": "2.0.1",
2070 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
2071 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
2072 | "dev": true
2073 | },
2074 | "supports-color": {
2075 | "version": "5.5.0",
2076 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2077 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2078 | "dev": true,
2079 | "requires": {
2080 | "has-flag": "^3.0.0"
2081 | }
2082 | },
2083 | "term-size": {
2084 | "version": "1.2.0",
2085 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
2086 | "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
2087 | "dev": true,
2088 | "requires": {
2089 | "execa": "^0.7.0"
2090 | }
2091 | },
2092 | "to-readable-stream": {
2093 | "version": "1.0.0",
2094 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
2095 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
2096 | "dev": true
2097 | },
2098 | "toidentifier": {
2099 | "version": "1.0.0",
2100 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
2101 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
2102 | },
2103 | "trim-newlines": {
2104 | "version": "3.0.1",
2105 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
2106 | "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
2107 | "dev": true
2108 | },
2109 | "type-fest": {
2110 | "version": "0.3.1",
2111 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
2112 | "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
2113 | "dev": true
2114 | },
2115 | "type-is": {
2116 | "version": "1.6.18",
2117 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
2118 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
2119 | "requires": {
2120 | "media-typer": "0.3.0",
2121 | "mime-types": "~2.1.24"
2122 | }
2123 | },
2124 | "unique-string": {
2125 | "version": "1.0.0",
2126 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
2127 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
2128 | "dev": true,
2129 | "requires": {
2130 | "crypto-random-string": "^1.0.0"
2131 | }
2132 | },
2133 | "unpipe": {
2134 | "version": "1.0.0",
2135 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
2136 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
2137 | },
2138 | "update-notifier": {
2139 | "version": "3.0.1",
2140 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz",
2141 | "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==",
2142 | "dev": true,
2143 | "requires": {
2144 | "boxen": "^3.0.0",
2145 | "chalk": "^2.0.1",
2146 | "configstore": "^4.0.0",
2147 | "has-yarn": "^2.1.0",
2148 | "import-lazy": "^2.1.0",
2149 | "is-ci": "^2.0.0",
2150 | "is-installed-globally": "^0.1.0",
2151 | "is-npm": "^3.0.0",
2152 | "is-yarn-global": "^0.3.0",
2153 | "latest-version": "^5.0.0",
2154 | "semver-diff": "^2.0.0",
2155 | "xdg-basedir": "^3.0.0"
2156 | }
2157 | },
2158 | "url-parse-lax": {
2159 | "version": "3.0.0",
2160 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
2161 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
2162 | "dev": true,
2163 | "requires": {
2164 | "prepend-http": "^2.0.0"
2165 | }
2166 | },
2167 | "utf8": {
2168 | "version": "3.0.0",
2169 | "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
2170 | "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==",
2171 | "dev": true
2172 | },
2173 | "util-deprecate": {
2174 | "version": "1.0.2",
2175 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2176 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
2177 | },
2178 | "utils-merge": {
2179 | "version": "1.0.1",
2180 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2181 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
2182 | },
2183 | "uuid": {
2184 | "version": "3.3.3",
2185 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
2186 | "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
2187 | },
2188 | "vary": {
2189 | "version": "1.1.2",
2190 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2191 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
2192 | },
2193 | "velocityjs": {
2194 | "version": "1.1.5",
2195 | "resolved": "https://registry.npmjs.org/velocityjs/-/velocityjs-1.1.5.tgz",
2196 | "integrity": "sha512-U4ANK4MRYSczVZjOp9FkAQoPO9geKSy3CWrBShPxMoWyqDox8SW8AZYiKtlCrV21ucONUtlU0iF3+KKK9AGoyA==",
2197 | "dev": true
2198 | },
2199 | "which": {
2200 | "version": "1.3.1",
2201 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2202 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2203 | "dev": true,
2204 | "requires": {
2205 | "isexe": "^2.0.0"
2206 | }
2207 | },
2208 | "widest-line": {
2209 | "version": "2.0.1",
2210 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
2211 | "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
2212 | "dev": true,
2213 | "requires": {
2214 | "string-width": "^2.1.1"
2215 | },
2216 | "dependencies": {
2217 | "ansi-regex": {
2218 | "version": "3.0.0",
2219 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
2220 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
2221 | "dev": true
2222 | },
2223 | "string-width": {
2224 | "version": "2.1.1",
2225 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
2226 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
2227 | "dev": true,
2228 | "requires": {
2229 | "is-fullwidth-code-point": "^2.0.0",
2230 | "strip-ansi": "^4.0.0"
2231 | }
2232 | },
2233 | "strip-ansi": {
2234 | "version": "4.0.0",
2235 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2236 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2237 | "dev": true,
2238 | "requires": {
2239 | "ansi-regex": "^3.0.0"
2240 | }
2241 | }
2242 | }
2243 | },
2244 | "wrappy": {
2245 | "version": "1.0.2",
2246 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2247 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2248 | "dev": true
2249 | },
2250 | "write-file-atomic": {
2251 | "version": "2.4.3",
2252 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
2253 | "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
2254 | "dev": true,
2255 | "requires": {
2256 | "graceful-fs": "^4.1.11",
2257 | "imurmurhash": "^0.1.4",
2258 | "signal-exit": "^3.0.2"
2259 | }
2260 | },
2261 | "xdg-basedir": {
2262 | "version": "3.0.0",
2263 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
2264 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
2265 | "dev": true
2266 | },
2267 | "yallist": {
2268 | "version": "2.1.2",
2269 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
2270 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
2271 | "dev": true
2272 | }
2273 | }
2274 | }
2275 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "serverless-example",
3 | "version": "1.0.0",
4 | "description": "Serverless Example for LogRocket Blog",
5 | "main": "handler.js",
6 | "scripts": {
7 | "start": "serverless offline start --skipCacheInvalidation",
8 | "deploy": "sls deploy -v"
9 | },
10 | "dependencies": {
11 | "body-parser": "^1.19.0",
12 | "express": "^4.17.1",
13 | "mongoose": "^5.13.6",
14 | "serverless-http": "^2.3.0",
15 | "uuid": "^3.3.3"
16 | },
17 | "author": "Alexander Nnakwue",
18 | "license": "MIT",
19 | "devDependencies": {
20 | "serverless-offline": "^5.12.0",
21 | "serverless-dotenv": "^1.0.0-beta.2",
22 | "serverless-dotenv-plugin": "^2.1.1"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | ## Serverless example for LogRocket blog
2 |
3 |
4 | To start the application? Run ```npm start```
5 |
6 |
7 | Then go to the base url here:===> ```http://localhost:3000```
8 |
9 |
10 | Path:
11 |
12 | /index - base path
13 |
14 | / - To create a new product
15 |
16 | / - To get all the products from the db
17 |
18 | /{productId} - To get a product by Id from the db
19 |
20 | ## Payload to create a new product
21 |
22 | http://localhost:3000/
23 |
24 | `Requestbody`
25 |
26 | ```
27 | {
28 | "name": " ",
29 | "type": " ",
30 | "cost": "",
31 | "description": ""
32 | }
33 | ```
34 |
--------------------------------------------------------------------------------
/sample.env:
--------------------------------------------------------------------------------
1 | MONGODB_URL = mongodb://localhost:27017
2 |
--------------------------------------------------------------------------------
/serverless.yml:
--------------------------------------------------------------------------------
1 | # Welcome to Serverless!
2 | service: serverless-example
3 | app: product-api
4 |
5 |
6 | provider:
7 | name: aws
8 | runtime: nodejs14.17. 4
9 | stage: dev
10 | region: us-east-1
11 |
12 |
13 | functions:
14 | productAPI:
15 | handler: Controller/products.handler
16 | events:
17 | - http:
18 | path: /index
19 | method: get
20 |
21 |
22 | - http:
23 | path: /
24 | method: post
25 |
26 |
27 | - http:
28 | path: /
29 | method: get
30 |
31 | - http:
32 | path: /{productId}
33 | method: get
34 |
35 |
36 | plugins:
37 | - serverless-offline
38 | - serverless-dotenv-plugin
39 |
--------------------------------------------------------------------------------