From fa7cb177bf7073a32bcd39803a2408f50050c82c Mon Sep 17 00:00:00 2001 From: "sander.hautvast" Date: Tue, 10 Dec 2019 10:19:21 +0100 Subject: [PATCH] initial commit --- .gitignore | 13 + Procfile | 1 + README.md | 39 + app.json | 8 + dat | 0 encrypt | 20 + index.js | 52 + package-lock.json | 1416 +++++++++++++++++ package.json | 32 + public/img/disappointed-face.png | Bin 0 -> 23865 bytes .../img/grinning-face-with-smiling-eyes.png | Bin 0 -> 27634 bytes public/img/neutral-face.png | Bin 0 -> 22683 bytes public/js/stoplicht.js | 66 + public/lang-logo.png | Bin 0 -> 2293 bytes public/node.svg | 17 + public/stylesheets/stoplicht.css | 40 + views/pages/db.ejs | 23 + views/pages/error.ejs | 13 + views/pages/index.ejs | 12 + views/pages/thanks.ejs | 9 + views/partials/body.ejs | 13 + views/partials/header.ejs | 2 + views/partials/nav.ejs | 33 + views/partials/signin.ejs | 4 + 24 files changed, 1813 insertions(+) create mode 100644 .gitignore create mode 100644 Procfile create mode 100644 README.md create mode 100644 app.json create mode 100644 dat create mode 100644 encrypt create mode 100644 index.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/img/disappointed-face.png create mode 100644 public/img/grinning-face-with-smiling-eyes.png create mode 100644 public/img/neutral-face.png create mode 100644 public/js/stoplicht.js create mode 100644 public/lang-logo.png create mode 100644 public/node.svg create mode 100644 public/stylesheets/stoplicht.css create mode 100644 views/pages/db.ejs create mode 100644 views/pages/error.ejs create mode 100644 views/pages/index.ejs create mode 100644 views/pages/thanks.ejs create mode 100644 views/partials/body.ejs create mode 100644 views/partials/header.ejs create mode 100644 views/partials/nav.ejs create mode 100644 views/partials/signin.ejs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9a1cd8b --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# Node build artifacts +node_modules +npm-debug.log + +# Local development +*.env +*.dev +.DS_Store + +# Docker +Dockerfile +docker-compose.yml +.idea diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..1da0cd6 --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: node index.js diff --git a/README.md b/README.md new file mode 100644 index 0000000..91cce78 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# node-js-getting-started + +A barebones Node.js app using [Express 4](http://expressjs.com/). + +This application supports the [Getting Started with Node on Heroku](https://devcenter.heroku.com/articles/getting-started-with-nodejs) article - check it out. + +## Running Locally + +Make sure you have [Node.js](http://nodejs.org/) and the [Heroku CLI](https://cli.heroku.com/) installed. + +```sh +$ git clone https://github.com/heroku/node-js-getting-started.git # or clone your own fork +$ cd node-js-getting-started +$ npm install +$ npm start +``` + +Your app should now be running on [localhost:5000](http://localhost:5000/). + +## Deploying to Heroku + +``` +$ heroku create +$ git push heroku master +$ heroku open +``` +or + +[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy) + +## Documentation + +For more information about using Node.js on Heroku, see these Dev Center articles: + +- [Getting Started with Node.js on Heroku](https://devcenter.heroku.com/articles/getting-started-with-nodejs) +- [Heroku Node.js Support](https://devcenter.heroku.com/articles/nodejs-support) +- [Node.js on Heroku](https://devcenter.heroku.com/categories/nodejs) +- [Best Practices for Node.js Development](https://devcenter.heroku.com/articles/node-best-practices) +- [Using WebSockets on Heroku with Node.js](https://devcenter.heroku.com/articles/node-websockets) diff --git a/app.json b/app.json new file mode 100644 index 0000000..fb155f1 --- /dev/null +++ b/app.json @@ -0,0 +1,8 @@ +{ + "name": "stoplicht", + "description": "A Node.js app using Express 4", + "repository": "https://github.com/shautvast/stoplicht.git", + "logo": "", + "keywords": ["node", "express", "heroku"], + "image": "heroku/nodejs" +} diff --git a/dat b/dat new file mode 100644 index 0000000..e69de29 diff --git a/encrypt b/encrypt new file mode 100644 index 0000000..2ef5de4 --- /dev/null +++ b/encrypt @@ -0,0 +1,20 @@ +#!/usr/bin/env node + +const bcrypt = require('bcrypt'); + +if (process.argv.length === 0) { + console.log("Usage: encrypt "); +} else { + let plain= process.argv[2]; + let hash=cryptPassword(plain); + console.log(hash); +} + +function cryptPassword(password) { + let salt = bcrypt.genSaltSync(10); + return bcrypt.hashSync(password, salt); +}; + +function comparePassword(plainPass, hashword) { + return bcrypt.compareSync(plainPass, hashword); +}; diff --git a/index.js b/index.js new file mode 100644 index 0000000..f1128fe --- /dev/null +++ b/index.js @@ -0,0 +1,52 @@ +const express = require('express') +const fs = require('fs'); +const bodyParser = require('body-parser') +const path = require('path') +var bcrypt = require('bcrypt'); +const PORT = process.env.PORT || 5000 + +const logins = new Map(); +logins.set("sander", "$2b$10$6P.6pE7M/6C9l/xXKDxJFucTL313GwESnhZ3aAqtVnv.ouLca/y6a"); + + +express() + .use(express.urlencoded()) + .use(express.static(path.join(__dirname, '/public'))) + .set('views', path.join(__dirname, 'views')) + .set('view engine', 'ejs') + .get("/data", (req, res) => sendData(req, res)) + .get('/', (req, res) => res.render('pages/index')) + .post('/submit-form', (req, res) => appendToStorage(req, res)) + .listen(PORT, () => console.log(`Listening on ${PORT}`)); + +function appendToStorage(req, res) { + if (req.body.username === '' || req.body.password === '') { + res.render('pages/error'); + } else { + if (!correctCredentials(req.body.username, req.body.password)) { + res.render('pages/error'); + } else { + fs.appendFile("dat", req.body.timestamp + ", " + req.body.username + ", " + req.body.emotion + "\n", err => { + if (err) { + return console.log(err); + } + }); + res.render('pages/thanks'); + } + } +} + +function sendData(req, res) { + fs.readFile("dat", (err, data) => { + if (err) { + console.error(err); + res.render('pages/error'); + } else { + return res.send(data); + } + }); +} + +function correctCredentials(username, password) { + return bcrypt.compareSync(password, logins.get(username)); +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2610006 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1416 @@ +{ + "name": "node-js-getting-started", + "version": "0.3.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", + "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "bcrypt": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.7.tgz", + "integrity": "sha512-K5UglF9VQvBMHl/1elNyyFvAfOY9Bj+rpKrCSR9sFwcW8FywAYJSRwTURNej5TaAK2TEJkcJ6r6lh1YPmspx5Q==", + "requires": { + "nan": "2.14.0", + "node-pre-gyp": "0.13.0" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "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" + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "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==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "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=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "es-abstract": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.3.tgz", + "integrity": "sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + }, + "dependencies": { + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "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" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "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==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "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" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "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.42.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" + }, + "mime-types": { + "version": "2.1.25", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "requires": { + "mime-db": "1.42.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.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "needle": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", + "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "node-pre-gyp": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz", + "integrity": "sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ==", + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.0.tgz", + "integrity": "sha512-ez6dcKBFNo4FvlMqscBEFUum6M2FTLW5grqm3DyBKB5XOyKVCeeWvAuoZtbmW/5Cv8EM2bQUOA6ufxa/TKVN0g==" + }, + "npm-packlist": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz", + "integrity": "sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==", + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "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" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "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-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "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=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "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.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "psl": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz", + "integrity": "sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "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" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "resolve": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "dev": true, + "requires": { + "through": "~2.3.4" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.trim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" + } + }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "tape": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz", + "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==", + "dev": true, + "requires": { + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.4", + "has": "~1.0.3", + "inherits": "~2.0.4", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.11.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } + } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "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" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..614c366 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "node-js-getting-started", + "version": "0.3.0", + "description": "A sample Node.js app using Express 4", + "engines": { + "node": "12.x" + }, + "main": "index.js", + "scripts": { + "start": "node index.js", + "test": "node test.js" + }, + "dependencies": { + "bcrypt": "^3.0.7", + "ejs": "^2.5.6", + "express": "^4.15.2" + }, + "devDependencies": { + "request": "^2.81.0", + "tape": "^4.7.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/heroku/node-js-getting-started" + }, + "keywords": [ + "node", + "heroku", + "express" + ], + "license": "MIT" +} diff --git a/public/img/disappointed-face.png b/public/img/disappointed-face.png new file mode 100644 index 0000000000000000000000000000000000000000..11fb5ef94544b0c947ff701142e3d275005fef0b GIT binary patch literal 23865 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 aF)J`IIxsMtu=pYX0000 { + checkError(); + if (event.which == 13) { + get('#password').focus(); + event.preventDefault(); + } +}); +get('#password').addEventListener("keydown", event => { + checkError(); + if (event.which == 13) { + get('#username').focus(); + event.preventDefault(); + } +}); + +function handle(event, next) { + if (event.which == 13) { + get(next).focus; + event.preventDefault(); + } +} + +function happy() { + emotion().value = "happy"; + submit(); +} + +function unsure() { + emotion().value = "unsure" + submit(); +} + +function sad() { + emotion().value = "sad"; + submit(); +} + +function emotion() { + return get('#emotion'); +} + +function submit() { + get('#timestamp').value = Date.now(); + get('#emotionsForm').submit; +} + +function checkError(){ + if (getValue("#username") != '' && getValue("#password") !=''){ + setHtml("#errorMessage",''); + } +} + +function get(element){ + return document.querySelector(element); +} + +function getValue(element) { + return get(element).value; +} + +function setHtml(element, innerHtml) { + return get(element).innerHTML=innerHtml; +} diff --git a/public/lang-logo.png b/public/lang-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a2e8b0f7aa3126f56dbb8c3514a11b64023a18 GIT binary patch literal 2293 zcmb8x`6CmI1IO`|Yt1=wWRAvM$wL{-v1p@_BWDTWt2vealyf5iTOK*2vBHl5@0 zheHug7!;tkPhk!K0Me~3&biSx+JX1=-BA!zO8Q;u^s(1N;#mfh&vI}e}}UC zmbW+cy)nRS_RbRWThsSUs6UOQ)t7e%jx z<{vtBCyNwQSihv>s$nr9w?xXxe6OTFl&hnL(uWH=ns6ky6t6SNsB3 zmu7_Rua>v*`qt)L-@0-jm)=$Nru7H9{8bzV>Q4dd8PNqFY;sDwkp8;hIvcMUgxy>C zO&A;41I3O71U3&AL_N_$qi4R>0a3IWF0#&g;ua3S53l0uOQIadjuC={-iDWJV+vHw zA)U=oZ0t0_sCxJpYsN`Q^egx*DIbYxv44Hk3r+h}CLH-mvOyQ9xxteYl@q$Bs#BD7 z;Ajx|IkVyuPB~w(vLSb(qu8Tjw<#_W_ho2hWKbeuL6gj4yz5#~+cGRqKUt`HM29yK z^l_YtF~lrZjmEQT`9_H$16Z>c#Ci4m90Q9!lp&e8;4{QvAu8)b-JRPyy4?~``5sV;^6oi1qiX1sJ}e!Enk-aHlM2INi=@OO7FtrouD|E(g;O{3ni z$*I*=0t=^XyCe_~8@+P>u?*`LYwrZlNeK3v|`A4l z-e`glm?%6tK6L;(@_w$zp_}44J3Y$xz3i@$FaLdh#g1ReS0j2|R!pqC=|#!0L6Ed{ zo!@EZt*K}k&Lck0JBpYpSB2GdKx`ku=rg390o7Jd-vwLgRvL1rOW;GHoN8#(`p@bX2O#W zs-a2nwxUSql^xLLFj?H~fzj&rUn%8nt=Ga~_YTi&Rw~mSmrzkw*3_q4$ai2{soiUJ z{AH6rH)Ha}DJ1fKu6-CK8Oo%zG;39lfz-1usMwkv`tU*#?6jC}Z5+3yY$ScfdTh<) zMr#!8ADu9Yq{cR>r+L+}vm$FE4&ft1*lrAavjg#qN$RJiFP|BTS!CV|w?;?XAfq1C zO`os|o0 zY!m7V`jV9?`J2)~lTW}G`N-J?Hcqv|U!EoAqxonN)G{H?wCmKecY< z1W9h{dLbhN-7<3W2JL-ABp{)d%M!8E#UHL#Lp2#-Z*IlG*9yZ71JRgD;cChHUy7&G zHeP>!v$QS?z7m_+5SsHcsIt0iFZ|5Fy`ALQ(EJ8q7LifBjjR}valCC+~5@ z&&ANh$Je8dBii1Eo~;j>p4lhEuZs=RJ|d;%+KRWXRdZ_1R9uSCZ05cJu5(Jmko3dG zI_CVkcC@Xc6P^0Org2xfW$(1#NkVjncm4hM(fqY@d|K`IE}egL-AU_mc^#)T<5?a{z+_aIX`k5Qx$w~AC*0gSbHTYk z_Bhu4=Dcq93(Npbhxd#v?e!yRtqNP&tIzwbu}lRKooMktsh{=a%Z)fkk_+T(q#qh< zVxRsf;}=joyqo|!$!qFfRw87NA0-Si(Pa+-YKq%?R@t^1PHPZxclFL-=%G$TLLlLC zeByPtA&FH37yUin^W2sKIYL_eb#%p9t@&PRi;5qr+++%dm&rZnOYB4n{dIQ$O!)W_ zrkwL+Q+c}%ij|fdmsk2jM>*m_eq&Lom|1d;ynxZQw^y}_%Won&=NJHA(-_|m#nn) z_#cxMUt=$i09X1sN=7>wBQ)0UdRSI{*x1 W{LbprEX)4WF#u~zdy86>PyE0AE>_wA literal 0 HcmV?d00001 diff --git a/public/node.svg b/public/node.svg new file mode 100644 index 0000000..ccd6395 --- /dev/null +++ b/public/node.svg @@ -0,0 +1,17 @@ + + + + + + + diff --git a/public/stylesheets/stoplicht.css b/public/stylesheets/stoplicht.css new file mode 100644 index 0000000..3ff2c39 --- /dev/null +++ b/public/stylesheets/stoplicht.css @@ -0,0 +1,40 @@ +body{ + font-family: Arial; +} + +h1{ + font-size: 80px; +} +.signin{ + text-align: left; +} +button{ + margin: auto; +} + +.emotions{ + text-align: center; + display: flex; + flex-direction: column; + flex-wrap: wrap; +} + +button{ + background: white; + border: none; +} + +input[type="text"] { + font-size:24px; + border: none; +} + +input[type="password"] { + font-size:24px; + border: none; +} + +.error{ + font-size: 24px; + color: red; +} diff --git a/views/pages/db.ejs b/views/pages/db.ejs new file mode 100644 index 0000000..27a5f49 --- /dev/null +++ b/views/pages/db.ejs @@ -0,0 +1,23 @@ + + + + <% include ../partials/header.ejs %> + + + + +<% include ../partials/nav.ejs %> + +
+

Database Results

+ +
    + <% results.forEach(function(r) { %> +
  • <%= r.id %> - <%= r.name %>
  • + <% }); %> +
+ +
+ + + diff --git a/views/pages/error.ejs b/views/pages/error.ejs new file mode 100644 index 0000000..0966764 --- /dev/null +++ b/views/pages/error.ejs @@ -0,0 +1,13 @@ + + + + <% include ../partials/header.ejs %> + + +
+<% include ../partials/signin.ejs %> +

Vul je naam/wachtwoord in

+<% include ../partials/body.ejs %> +
+ + diff --git a/views/pages/index.ejs b/views/pages/index.ejs new file mode 100644 index 0000000..df6cfb1 --- /dev/null +++ b/views/pages/index.ejs @@ -0,0 +1,12 @@ + + + + <% include ../partials/header.ejs %> + + +
+ <% include ../partials/signin.ejs %> + <% include ../partials/body.ejs %> +
+ + diff --git a/views/pages/thanks.ejs b/views/pages/thanks.ejs new file mode 100644 index 0000000..1d6ef9a --- /dev/null +++ b/views/pages/thanks.ejs @@ -0,0 +1,9 @@ + + + + <% include ../partials/header.ejs %> + + +

Dankje!

+ + diff --git a/views/partials/body.ejs b/views/partials/body.ejs new file mode 100644 index 0000000..be5155f --- /dev/null +++ b/views/partials/body.ejs @@ -0,0 +1,13 @@ +
+

Wat is je gevoel vandaag?

+ + + + + +

Vul je naam en wachtwoord in en kies een emoji

+
+ + + + diff --git a/views/partials/header.ejs b/views/partials/header.ejs new file mode 100644 index 0000000..c83d3e0 --- /dev/null +++ b/views/partials/header.ejs @@ -0,0 +1,2 @@ + +Bisons stoplicht diff --git a/views/partials/nav.ejs b/views/partials/nav.ejs new file mode 100644 index 0000000..224b5e7 --- /dev/null +++ b/views/partials/nav.ejs @@ -0,0 +1,33 @@ +
diff --git a/views/partials/signin.ejs b/views/partials/signin.ejs new file mode 100644 index 0000000..2f28dee --- /dev/null +++ b/views/partials/signin.ejs @@ -0,0 +1,4 @@ +