From 5f97b19cfc2411c68c849e9b6938b32752db7a83 Mon Sep 17 00:00:00 2001 From: Philip Kaufholz Date: Thu, 27 Jan 2022 13:09:03 -0500 Subject: [PATCH] challenge completed --- challenges/Backend_Challenge/.gitignore | 1 + challenges/Backend_Challenge/README.md | 19 + challenges/Backend_Challenge/data.js | 8 + challenges/Backend_Challenge/index.js | 141 ++ .../Backend_Challenge/package-lock.json | 1213 ++++++++++++++ challenges/Backend_Challenge/package.json | 16 + challenges/Database_Challenge/.gitignore | 1 + .../ER_diagram_headstorm.png | Bin 0 -> 114906 bytes challenges/Database_Challenge/README.md | 21 + challenges/Database_Challenge/index.js | 72 + challenges/Database_Challenge/jsconfig.json | 7 + challenges/Database_Challenge/nosql.json | 11 + .../Database_Challenge/package-lock.json | 13 + challenges/Database_Challenge/package.json | 12 + challenges/Frontend_Challenge/.gitignore | 1 + challenges/Frontend_Challenge/README.md | 20 + .../Frontend_Challenge/package-lock.json | 1490 +++++++++++++++++ challenges/Frontend_Challenge/package.json | 37 + .../public/images/favicon.ico | Bin 0 -> 268350 bytes .../public/images/favicon.svg | 58 + .../public/styles/styles.css | 3 + challenges/Frontend_Challenge/server.js | 54 + .../Frontend_Challenge/views/home.handlebars | 0 .../views/layouts/index.handlebars | 131 ++ 24 files changed, 3329 insertions(+) create mode 100644 challenges/Backend_Challenge/.gitignore create mode 100644 challenges/Backend_Challenge/README.md create mode 100644 challenges/Backend_Challenge/data.js create mode 100644 challenges/Backend_Challenge/index.js create mode 100644 challenges/Backend_Challenge/package-lock.json create mode 100644 challenges/Backend_Challenge/package.json create mode 100644 challenges/Database_Challenge/.gitignore create mode 100644 challenges/Database_Challenge/ER_diagram_headstorm.png create mode 100644 challenges/Database_Challenge/README.md create mode 100644 challenges/Database_Challenge/index.js create mode 100644 challenges/Database_Challenge/jsconfig.json create mode 100644 challenges/Database_Challenge/nosql.json create mode 100644 challenges/Database_Challenge/package-lock.json create mode 100644 challenges/Database_Challenge/package.json create mode 100644 challenges/Frontend_Challenge/.gitignore create mode 100644 challenges/Frontend_Challenge/README.md create mode 100644 challenges/Frontend_Challenge/package-lock.json create mode 100644 challenges/Frontend_Challenge/package.json create mode 100644 challenges/Frontend_Challenge/public/images/favicon.ico create mode 100644 challenges/Frontend_Challenge/public/images/favicon.svg create mode 100644 challenges/Frontend_Challenge/public/styles/styles.css create mode 100644 challenges/Frontend_Challenge/server.js create mode 100644 challenges/Frontend_Challenge/views/home.handlebars create mode 100644 challenges/Frontend_Challenge/views/layouts/index.handlebars diff --git a/challenges/Backend_Challenge/.gitignore b/challenges/Backend_Challenge/.gitignore new file mode 100644 index 000000000..3c3629e64 --- /dev/null +++ b/challenges/Backend_Challenge/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/challenges/Backend_Challenge/README.md b/challenges/Backend_Challenge/README.md new file mode 100644 index 000000000..7c60dae18 --- /dev/null +++ b/challenges/Backend_Challenge/README.md @@ -0,0 +1,19 @@ +# Backend Challenge for Headstorm + +By Philip Kaufholz + + +# Introduction + +Javascript program that uses Node.js Express to host a local server that implements the REST API as specified in the challenge writeup. + +POSTing a list of 500 numbers to /data will sort the list and become accessible through a GET call. Posting a list that isn't 500 numbers will return an error. The "bonus" PATCH functionality is also implemented, sorting the new element into the existing list. + +Note that a sample list isn't there on load, so using the GET endpoint before POSTing a list will show that no list has been uploaded. + +# How to run + +1. install node packages ('npm install' in console) +2. run 'node index.js' in console. Server hosted on port 3000 by default. +3. To make REST calls, suggested to use a GUI like Postman or Reqbin (what I used for testing) https://reqbin.com/ . + diff --git a/challenges/Backend_Challenge/data.js b/challenges/Backend_Challenge/data.js new file mode 100644 index 000000000..c1218dde6 --- /dev/null +++ b/challenges/Backend_Challenge/data.js @@ -0,0 +1,8 @@ + +var L = []; + +for (var i=0, t = 499; i<500; i++) { + L.push(Math.round(Math.random() * t)) +} + +console.log(JSON.stringify(L)) \ No newline at end of file diff --git a/challenges/Backend_Challenge/index.js b/challenges/Backend_Challenge/index.js new file mode 100644 index 000000000..b4b614fb7 --- /dev/null +++ b/challenges/Backend_Challenge/index.js @@ -0,0 +1,141 @@ + +//Import in required packages +var express = require('express'); +var bodyParser = require('body-parser'); +var multer = require('multer'); +var upload = multer(); +var app = express(); + +//Initialize app middleware +app.use(bodyParser.urlencoded({ extended: true })); +app.use(bodyParser.json()) +app.use(upload.array()); + +var stored_data = [] + +//Used for sorting list +function intCompare(a, b) { + if (a < b) { + return -1; + } + if (a > b) { + return 1; + } + return 0; + } + +//GET for /data endpoint, if no POST has been made then a message is returned instead. +//If there is stored data from a previous post, the list is sorted before it is returned. +app.get('/data', function(req, res){ + if (stored_data.length === 0) { + res.send("No data uploaded yet!") + } + else { + stored_data.sort(intCompare) + res.json({"data" : stored_data}) + } +}); + +//POST for the /data endpoint, if the posted data isn't a list of 500 numbers return bad status and message. +//If the data is a list of 500 numbers, then the data is stored and available to GET calls at this endpoint. +/*Format for POST request: +{ + "data" : [145,48,171,495 .... 61,355,284,294] +} +May have to include header: 'Content-Type: application/json' +*/ +app.post('/data', function(req, res){ + console.log(req.body.data) + var req_data = req.body.data + console.log(req_data.length) + if (req_data.length != 500) { + res.status(400); + res.send("Bad request, not length 500"); + } + else { + var allNums = true + for (i = 0; i < 500; i++) { + if (typeof(req_data[i]) != "number") { + console.log("found a false one!", typeof(req_data[i])) + allNums = false + }} + if (!allNums) { + res.status(400); + res.send("Bad request, not all numbers"); + res.end() + } + else { + stored_data = req_data + res.json({message: "List updated with POST request"}) + res.status(201); + res.end() + } +}}); + +//PATCH for the /data endpoint. Takes in a single number, which is sorted into the list and sent back. Malformed requests +//cause an error. +/*Format for PATCH request: +{ + "num" : 100 +} +May have to include header: 'Content-Type: application/json' +*/ +app.patch('/data', function(req, res){ + console.log(req.body.data) + var req_num = req.body.num + if (typeof(req_num) != "number") { + res.status(400); + res.send("Bad request, not a number"); + res.end() + } + else { + stored_data.push(req_num) + stored_data.sort(intCompare) + res.json({ "message": "Patch made! Result:", + "data" : stored_data + }) + } + }); + + +app.get('/', function (req, res) { + res.send('GET request to the homepage') + }) + +app.post('/', function (req, res) { + res.send('POST request to the homepage') + }) + + +//Start server +app.listen(3000, () => { + console.log('Server is running') + }) + + + + + + +/* Example REST calls */ + +//fetch('/').then(res => res.then(data => console.log(data))) + +//fetch('/', {method : "POST"}).then(res => res.then(data => console.log(data))) + + + + + +/* + +{ + "num" : 100 +} + +{ + "data" : [145,395,184,425,147,487,234,308,236,393,169,7,262,11,31,319,336,263,56,56,359,164,491,123,168,13,248,171,495,335,151,206,258,90,398,376,304,448,393,92,209,397,404,454,307,212,434,253,434,53,229,493,482,314,441,119,3,72,405,33,259,21,99,213,211,114,335,178,259,358,431,386,283,166,398,148,224,221,233,185,243,265,12,307,163,449,143,36,69,73,280,212,55,440,170,208,258,131,76,195,204,272,496,261,37,261,90,432,351,225,447,442,278,70,495,28,122,36,260,140,46,432,387,485,449,498,339,242,437,357,183,158,451,61,85,448,270,279,310,187,139,320,145,72,242,427,219,192,348,323,50,354,418,212,6,289,297,184,195,46,283,313,229,91,465,455,236,277,55,368,249,3,313,200,490,147,429,100,113,207,367,399,455,369,356,100,332,313,481,68,165,4,305,232,407,190,490,374,174,165,332,157,487,116,285,67,42,254,15,395,426,96,328,488,211,493,61,102,178,51,115,49,337,256,394,458,20,407,113,478,288,116,492,488,122,208,60,129,337,333,288,6,446,39,62,297,81,356,363,346,478,240,152,184,78,292,324,341,306,448,60,400,456,437,481,150,70,430,379,468,385,406,260,278,80,315,286,286,346,2,84,239,160,24,14,65,130,192,61,137,37,424,317,393,357,107,152,277,440,476,235,296,192,58,239,150,69,109,7,481,76,101,323,452,73,150,418,419,460,99,239,344,335,453,130,384,252,238,292,179,407,67,336,493,193,68,179,171,422,155,265,271,187,178,9,52,463,290,296,326,177,104,240,339,14,32,278,93,215,297,44,257,50,11,14,151,302,41,147,181,206,3,81,237,70,456,423,181,233,375,109,165,264,294,443,187,204,315,428,260,328,52,149,176,169,103,442,442,92,429,402,97,388,453,44,25,217,101,484,48,341,197,474,7,270,445,457,496,345,183,447,333,210,483,486,301,161,197,17,474,345,340,481,114,438,133,13,127,69,45,50,56,487,262,352,425,428,1,39,323,229,268,438,231,138,479,405,92,86,444,155,352,285,459,264,461,434,342,286,429,359,492,303,66,108,401,172,355,280,116,204,8,350,168,91,469,405,323,498,139,439,252,347,146,144,323,61,355,284,294] + +} + +*/ \ No newline at end of file diff --git a/challenges/Backend_Challenge/package-lock.json b/challenges/Backend_Challenge/package-lock.json new file mode 100644 index 000000000..ffe3a1e47 --- /dev/null +++ b/challenges/Backend_Challenge/package-lock.json @@ -0,0 +1,1213 @@ +{ + "name": "database", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "database", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "express": "^4.17.2", + "multer": "^1.4.4" + } + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "dependencies": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "dependencies": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "dependencies": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/multer": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", + "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dependencies": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + } + }, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "requires": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + } + }, + "bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multer": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", + "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "requires": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + } + } +} diff --git a/challenges/Backend_Challenge/package.json b/challenges/Backend_Challenge/package.json new file mode 100644 index 000000000..9828a8946 --- /dev/null +++ b/challenges/Backend_Challenge/package.json @@ -0,0 +1,16 @@ +{ + "name": "database", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "express": "^4.17.2", + "multer": "^1.4.4" + } +} diff --git a/challenges/Database_Challenge/.gitignore b/challenges/Database_Challenge/.gitignore new file mode 100644 index 000000000..3c3629e64 --- /dev/null +++ b/challenges/Database_Challenge/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/challenges/Database_Challenge/ER_diagram_headstorm.png b/challenges/Database_Challenge/ER_diagram_headstorm.png new file mode 100644 index 0000000000000000000000000000000000000000..d057985f8bb3bd463ab03d555d5edd5ab6130e38 GIT binary patch literal 114906 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

c4pf$|2jwd@eb@zj;B5@<7+97)`fROiwr$+tJ= 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 literal 0 HcmV?d00001 diff --git a/challenges/Database_Challenge/README.md b/challenges/Database_Challenge/README.md new file mode 100644 index 000000000..ac6325d65 --- /dev/null +++ b/challenges/Database_Challenge/README.md @@ -0,0 +1,21 @@ +# Database Challenge for Headstorm + +By Philip Kaufholz + + +# Entity relationship diagram +An ER diagram for what I think the new relational database should be is included. Customer personal info would be in the "Customers" table, while their ID would also be used to store +the widgets and any other information. This keeps internal product-related information separate from more sensitive personal information, and just helps keep all of the data organized. + +# Introduction + +Node.js Javascript program that takes in the specified NoSQL input and outputs PostgreSQL queries to insert the data into the new database. Reference queries are provided towards the end of the file to create the PostgreSQL tables that the data is inserted to. + +The NoSQL database is contained within nosql.json, and is imported by the program. The PostgreSQL queries are outputed to psqlOut.txt. + + + +# How to run +Instructions to run: +1. install node packages ('npm install' in console) +2. run 'node index.js' in console \ No newline at end of file diff --git a/challenges/Database_Challenge/index.js b/challenges/Database_Challenge/index.js new file mode 100644 index 000000000..27c12c6e5 --- /dev/null +++ b/challenges/Database_Challenge/index.js @@ -0,0 +1,72 @@ +var fs = require('fs'); + +function jsonToObj(row) { + const record = JSON.parse(row) + var d = new Object(); + d["id"] = Number(record.Record_ID) + d["name"] = record.Name + d["cellphone"] = record.Cell_Phone + d["workphone"] = record.Work_Phone + d["email"] = record.Email + d["address"] = record.Address + d["basic_widget"] = Number(record.Basic_Widget_Order) + d["advanced_widget"] = Number(record.Advanced_Widget_Order) + d["protection"] = Boolean(record.Protection_Plan) + return d +} + +function postgresInsertCustomer(d, tableName) { +return `INSERT INTO ${tableName} + VALUES (${d["id"]}, + '${d["name"]}', + '${d["cellphone"]}', + '${d["workphone"]}', + '${d["email"]}', + '${d["address"]}' + );` +} + +function postgresInsertWidget(d, tableName) { +return `INSERT INTO ${tableName} + VALUES (${d["id"]}, + ${d["basic_widget"]}, + ${d["advanced_widget"]}, + ${d["protection"]} + );` +} + +function main() { + const sample = fs.readFileSync("nosql.json") + dict = jsonToObj(sample) + const customer = postgresInsertCustomer(dict, "customers") + const widget = postgresInsertWidget(dict, "widgets") + fs.writeFileSync("psqlOut.txt", customer + '\n \n' + widget) +} + +main() + + +/* + +Reference queries to create tables (PostgreSQL): + +` +CREATE TABLE customers ( + id SERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL, + cellphone VARCHAR(12), + workphone VARCHAR(12), + email VARCHAR(255), + address VARCHAR(255) + ) + +` +` +CREATE TABLE widgets ( + id SERIAL PRIMARY KEY, + basic_widget INTEGER, + advanced_widget INTEGER, + protection BOOLEAN + ) +` +*/ \ No newline at end of file diff --git a/challenges/Database_Challenge/jsconfig.json b/challenges/Database_Challenge/jsconfig.json new file mode 100644 index 000000000..b33e572a3 --- /dev/null +++ b/challenges/Database_Challenge/jsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6" + }, + "exclude": ["node_modules"] + } \ No newline at end of file diff --git a/challenges/Database_Challenge/nosql.json b/challenges/Database_Challenge/nosql.json new file mode 100644 index 000000000..37dcd6863 --- /dev/null +++ b/challenges/Database_Challenge/nosql.json @@ -0,0 +1,11 @@ +{ + "Record_ID": "1234", + "Name" : "Joe Smith", + "Cell_Phone" : "405.867.5309", + "Work_Phone" : "123.123.1234", + "Email" : "joe_s@gmail.com", + "Address" : "123 Vic Way, Dallas TX 75001", + "Basic_Widget_Order" : "37", + "Advanced_Widget_Order" : "12", + "Protection_Plan" : "True" +} \ No newline at end of file diff --git a/challenges/Database_Challenge/package-lock.json b/challenges/Database_Challenge/package-lock.json new file mode 100644 index 000000000..28b3dd7b3 --- /dev/null +++ b/challenges/Database_Challenge/package-lock.json @@ -0,0 +1,13 @@ +{ + "name": "database", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "database", + "version": "1.0.0", + "license": "ISC" + } + } +} diff --git a/challenges/Database_Challenge/package.json b/challenges/Database_Challenge/package.json new file mode 100644 index 000000000..9f95770dd --- /dev/null +++ b/challenges/Database_Challenge/package.json @@ -0,0 +1,12 @@ +{ + "name": "database", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/challenges/Frontend_Challenge/.gitignore b/challenges/Frontend_Challenge/.gitignore new file mode 100644 index 000000000..3c3629e64 --- /dev/null +++ b/challenges/Frontend_Challenge/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/challenges/Frontend_Challenge/README.md b/challenges/Frontend_Challenge/README.md new file mode 100644 index 000000000..2a53402f7 --- /dev/null +++ b/challenges/Frontend_Challenge/README.md @@ -0,0 +1,20 @@ +# Frontend Challenge for Headstorm + +By Philip Kaufholz + +# Introduction + +Program that hosts a local website using Node.js Express with the functionality described in the challenge writeup. + +The Umbrella Corporation has a short contact form implemented on their website, with Google reCaptcha v3 protection on form submits. reCaptcha v3 is invisible, only challenging when it suspects a user is a bot, and so the only noticable part is the "protected by reCaptcha". + +The icon for The Umbrella Corporation is visible on the browser tab. + +Information about the form submission is printed in the frontend and backend console on succesful submission, along with information about the reCaptcha calls. + +# How to run + +1. Install node packages ('npm install' in console) +2. 'npm start' in console +3. Navigate to http://localhost:3000/ +4. Submit form! \ No newline at end of file diff --git a/challenges/Frontend_Challenge/package-lock.json b/challenges/Frontend_Challenge/package-lock.json new file mode 100644 index 000000000..cb916aa4b --- /dev/null +++ b/challenges/Frontend_Challenge/package-lock.json @@ -0,0 +1,1490 @@ +{ + "name": "frontend_challenge", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "frontend_challenge", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "body-parser": "^1.19.1", + "cors": "^2.8.5", + "express": "^4.16.3", + "express-handlebars": "^3.0.0", + "node-fetch": "^2.6.7", + "serve-favicon": "^2.5.0" + } + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "dependencies": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-handlebars": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-3.1.0.tgz", + "integrity": "sha512-7QlaXnSREMmN5P2o4gmpUZDfJlLtfBka9d6r7/ccXaU7rPp76odw9YYtwZYdIiha2JqwiaG6o2Wu6NZJQ0u7Fg==", + "dependencies": { + "glob": "^7.1.3", + "graceful-fs": "^4.1.2", + "handlebars": "^4.1.2", + "object.assign": "^4.1.0", + "promise": "^8.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dependencies": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "dependencies": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-favicon/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/serve-favicon/node_modules/safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/uglify-js": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", + "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + }, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "requires": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "express-handlebars": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-3.1.0.tgz", + "integrity": "sha512-7QlaXnSREMmN5P2o4gmpUZDfJlLtfBka9d6r7/ccXaU7rPp76odw9YYtwZYdIiha2JqwiaG6o2Wu6NZJQ0u7Fg==", + "requires": { + "glob": "^7.1.3", + "graceful-fs": "^4.1.2", + "handlebars": "^4.1.2", + "object.assign": "^4.1.0", + "promise": "^8.0.2" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "requires": { + "asap": "~2.0.6" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "requires": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "requires": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + } + } + }, + "serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "uglify-js": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", + "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", + "optional": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + } +} diff --git a/challenges/Frontend_Challenge/package.json b/challenges/Frontend_Challenge/package.json new file mode 100644 index 000000000..90e08114b --- /dev/null +++ b/challenges/Frontend_Challenge/package.json @@ -0,0 +1,37 @@ +{ + "name": "frontend_challenge", + "version": "1.0.0", + "main": "server.js", + "scripts": { + "start": "node server.js", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "express", + "expressjs", + "server", + "node", + "nodejs", + "handlebars", + "boilerplate", + "template", + "templates", + "webserver", + "css" + ], + "readmeFilename": "README.md", + "author": { + "name": "Wethrift", + "email": "hello@wethrift.com", + "url": "https://www.wethrift.com" + }, + "license": "MIT", + "dependencies": { + "body-parser": "^1.19.1", + "cors": "^2.8.5", + "express": "^4.16.3", + "express-handlebars": "^3.0.0", + "node-fetch": "^2.6.7", + "serve-favicon": "^2.5.0" + } +} diff --git a/challenges/Frontend_Challenge/public/images/favicon.ico b/challenges/Frontend_Challenge/public/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5df0f1ceed60edeb0892038cb716396a31f45152 GIT binary patch literal 268350 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

  • XOSirG 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 JyO_sU@GqE^N?rf} literal 0 HcmV?d00001 diff --git a/challenges/Frontend_Challenge/public/images/favicon.svg b/challenges/Frontend_Challenge/public/images/favicon.svg new file mode 100644 index 000000000..432e4c89b --- /dev/null +++ b/challenges/Frontend_Challenge/public/images/favicon.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/challenges/Frontend_Challenge/public/styles/styles.css b/challenges/Frontend_Challenge/public/styles/styles.css new file mode 100644 index 000000000..016cb0e19 --- /dev/null +++ b/challenges/Frontend_Challenge/public/styles/styles.css @@ -0,0 +1,3 @@ +body{ + margin: 0; +} diff --git a/challenges/Frontend_Challenge/server.js b/challenges/Frontend_Challenge/server.js new file mode 100644 index 000000000..2d671d307 --- /dev/null +++ b/challenges/Frontend_Challenge/server.js @@ -0,0 +1,54 @@ + +//Imports +const express = require('express') +const exphbs = require('express-handlebars') +const path = require('path') +var bodyParser = require('body-parser') +fetch = require('node-fetch'); +const app = express() + +//Configuring express Handlebars +app.engine('handlebars', exphbs({ + defaultLayout: 'index', + extname: '.handlebars' +})) + +app.set('view engine', 'handlebars'); +app.set('views', __dirname + '/views'); + +//Initialize middleware +app.use(bodyParser.urlencoded({ extended: true })); +app.use(bodyParser.text()); +app.use(bodyParser.json()); + + + +app.get('/', (req, res, next) => res.render('./home')) + +app.post('/captcha', (req, res, next) => { + token = req.body + secret = "6LdcXzweAAAAAM1DrbsPZl573znpPU6IxDIrofYY" + call = {"secret" : secret, "response" : token} + console.log(call) + fetch('https://www.google.com/recaptcha/api/siteverify', { + method: 'POST', + headers: {"Content-Type": "application/x-www-form-urlencoded"}, + body: `secret=${secret}&response=${token}`}).then(function (response) { + response.json().then(function (data) { + console.log(data) + res.json({"score" : data.score}) + }) + }) +}) + +app.post('/form_submit', (req, res, next) => { + console.log(req.body) + res.render('./home') +}) + +app.get('/favicon.ico', (req, res, next) => { + res.send('') +}) + +// Server start +app.listen(process.env.PORT || 3000, () => console.log(`Express server listening on port ${process.env.PORT || 3000}!`)) \ No newline at end of file diff --git a/challenges/Frontend_Challenge/views/home.handlebars b/challenges/Frontend_Challenge/views/home.handlebars new file mode 100644 index 000000000..e69de29bb diff --git a/challenges/Frontend_Challenge/views/layouts/index.handlebars b/challenges/Frontend_Challenge/views/layouts/index.handlebars new file mode 100644 index 000000000..115e99efc --- /dev/null +++ b/challenges/Frontend_Challenge/views/layouts/index.handlebars @@ -0,0 +1,131 @@ + + + + + + + + + + + + Umbrella Corporation + + + +

    Umbrella Corporation

    +

    "Our Business Is Life Itself"

    +
    +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    +
    + + + + + + + +