From 5838aa00244c6bdcf2e7731a7b7585e9a526c5a0 Mon Sep 17 00:00:00 2001 From: rathod-sahaab Date: Sat, 4 Jan 2020 22:20:46 +0530 Subject: [PATCH 1/9] removed build.sh residual files --- npm_global_installs.sh | 6 ------ 1 file changed, 6 deletions(-) delete mode 100755 npm_global_installs.sh diff --git a/npm_global_installs.sh b/npm_global_installs.sh deleted file mode 100755 index 2723314..0000000 --- a/npm_global_installs.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -sudo npm -g install pug-cli -sudo npm -g install less less-watch-compiler -sudo npm -g install live-server -sudo npm -g install clean-css-cli -sudo npm -g install nodemon From bbaf5c99c31d4560ddfc8bc45fefddae7021df64 Mon Sep 17 00:00:00 2001 From: rathod-sahaab Date: Sat, 4 Jan 2020 22:44:43 +0530 Subject: [PATCH 2/9] automatic SSL management --- site/.greenlockrc | 4 + site/app.js | 449 +++++++++++++++++++++------------------- site/greenlock.js | 13 ++ site/greenlock.json | 28 +++ site/greenlock.json.bak | 20 ++ site/package-lock.json | 155 ++++++++++++++ site/package.json | 1 + site/qr.js | 19 -- site/server.js | 18 ++ 9 files changed, 480 insertions(+), 227 deletions(-) create mode 100644 site/.greenlockrc create mode 100644 site/greenlock.js create mode 100644 site/greenlock.json create mode 100644 site/greenlock.json.bak delete mode 100644 site/qr.js create mode 100644 site/server.js diff --git a/site/.greenlockrc b/site/.greenlockrc new file mode 100644 index 0000000..060405c --- /dev/null +++ b/site/.greenlockrc @@ -0,0 +1,4 @@ +{ + "manager": "greenlock-manager-fs", + "configFile": "./greenlock.json" +} \ No newline at end of file diff --git a/site/app.js b/site/app.js index 24583d7..fca1463 100644 --- a/site/app.js +++ b/site/app.js @@ -6,8 +6,9 @@ var Email = require('email-templates'); var path = require('path'); var config = require('./config'); var bcrypt = require('bcrypt'); -var https = require("https"); -var fs = require('fs'); +// var http = require('http'); +// var https = require('https'); +// var fs = require('fs'); mongoose.set('useNewUrlParser', true); mongoose.set('useFindAndModify', false); @@ -15,33 +16,33 @@ mongoose.set('useCreateIndex', true); mongoose.set('useUnifiedTopology', true); //leader mail extraction -function search(nameKey, myArray) { - for (var i = 0; i < myArray.length; i++) { - if (myArray[i]._id === nameKey) { - return myArray[i]; - } - } -} +// function search(nameKey, myArray) { +// for (var i = 0; i < myArray.length; i++) { +// if (myArray[i]._id === nameKey) { +// return myArray[i]; +// } +// } +// } var transporter = nodemailer.createTransport({ - host: 'smtp.gmail.com', - port: 465, - secure: true, - service: 'gmail', - auth: { - user: config.email, - pass: config.pw - } + host: 'smtp.gmail.com', + port: 465, + secure: true, + service: 'gmail', + auth: { + user: config.email, + pass: config.pw, + }, }); //Email Template const email = new Email({ - message: { - from: 'Team ISTE' - }, - // uncomment below to send emails in development/test env: - send: true, - preview: false, - transport: transporter + message: { + from: 'Team ISTE', + }, + // uncomment below to send emails in development/test env: + send: true, + preview: false, + transport: transporter, }); //loading models @@ -51,217 +52,249 @@ var Event = require('./models/event'); //hosting the front end var app = new express(); -var port = 3000; //coneectiong to backend mongoose.connect('mongodb://localhost/myDb', { useNewUrlParser: true }); var db = mongoose.connection; -db.on('error', () => console.log('error connecting to the database!')) - .once('open', () => console.log('connected to the database')); +db.on('error', () => + console.log('error connecting to the database!'), +).once('open', () => console.log('connected to the database')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(express.static('public')); -app.set('view engine', 'pug') +app.set('view engine', 'pug'); app.post('/regPlayer', (req, res) => { - var data = new User(req.body); - var mailid; + var data = new User(req.body); + var mailid; - //////validation code - User.findOne({ 'email': data.email }, (err, result) => { - if (err) { + //////validation code + User.findOne({ email: data.email }, (err, result) => { + if (err) { + console.log(err); + } else if (result == null) { + if (req.body.pw == req.body.confpw) { + bcrypt.hash(data.pw, 10, (err, hash) => { + if (err) { console.log(err); - } - else if (result == null) { - if (req.body.pw == req.body.confpw) { - bcrypt.hash(data.pw, 10, (err, hash) => { - if (err) { console.log(err) } - else { - data.pw = hash; - data.save() - .then((item) => { - mailid = item._id; - res.render('register', { title: "User Registration", id: item._id }); - console.log(item); - }) - .then(() => { - email.send({ - template: path.join(__dirname, 'emails', 'user'), - message: { - to: data.email - }, - locals: { - id: mailid, - name: data.name, - } - }); - }) - .then(() => console.log("email sent")) - .catch(err => console.log(err)); - } - }) - } else { - res.render('error', { title: "Error", message: "password and conformation password must be the same" }) - } - } - else { - //res.send("The email has already been registered"); - res.render('error', { title: "Error", message: "The email has already been registered" }) - } - }) + } else { + data.pw = hash; + data + .save() + .then((item) => { + mailid = item._id; + res.render('register', { + title: 'User Registration', + id: item._id, + }); + console.log(item); + }) + .then(() => { + email.send({ + template: path.join(__dirname, 'emails', 'user'), + message: { + to: data.email, + }, + locals: { + id: mailid, + name: data.name, + }, + }); + }) + .then(() => console.log('email sent')) + .catch((err) => console.log(err)); + } + }); + } else { + res.render('error', { + title: 'Error', + message: 'password and conformation password must be the same', + }); + } + } else { + //res.send("The email has already been registered"); + res.render('error', { + title: 'Error', + message: 'The email has already been registered', + }); + } + }); }); app.post('/regTeam', (req, res) => { - var recieved_data = req.body; - //console.log(recieved_data) - var data = { - name: recieved_data.team_name, - event: recieved_data.event, - team_limit: recieved_data.team_limit, - members: [] - } - User.findOne({ 'email': recieved_data.team_leader_email }, (err, userDoc) => { + var recieved_data = req.body; + //console.log(recieved_data) + var data = { + name: recieved_data.team_name, + event: recieved_data.event, + team_limit: recieved_data.team_limit, + members: [], + }; + User.findOne({ email: recieved_data.team_leader_email }, (err, userDoc) => { + if (err) { + consolse.log(err); + } else if (userDoc == null) { + res.render('error', { + title: 'Error', + message: 'The team leader email is not registered', + }); + } else { + bcrypt.compare(recieved_data.leader_pw, userDoc.pw, (err, resp) => { if (err) { - consolse.log(err); - } - else if (userDoc == null) { - res.render('error', { title: "Error", message: "The team leader email is not registered" }) - } - else { - bcrypt.compare(recieved_data.leader_pw, userDoc.pw, (err, resp) => { - if (err) { - console.log(err); - } - else if (resp) { - Event.findOne({ 'name': recieved_data.event }, (err, doc) => { - var participants = doc != null ? doc.participants : []; - var participationFlag = participants.includes(userDoc.id); - if (err) { - console.log(err); - } - else if (participationFlag == true) { - res.render('error', { title: "Error", message: "Team leader has already registered for this event" }); - } - else { - data.members.push(userDoc._id); - var team = new Team(data); - var tid; - team.save() - .then((item) => { - tid = item._id; - res.render('teamRegister', { title: "Team Registration", id: item._id, name: item.name }) - }) - .then(() => { - email.send({ - template: path.join(__dirname, 'emails', 'team'), - message: { - to: userDoc.email - }, - locals: { - Tid: tid, - Tname: data.name, - } - }); - }) - .then(() => console.log("email sent")) - .catch(err => console.log(err)); + console.log(err); + } else if (resp) { + Event.findOne({ name: recieved_data.event }, (err, doc) => { + var participants = doc != null ? doc.participants : []; + var participationFlag = participants.includes(userDoc.id); + if (err) { + console.log(err); + } else if (participationFlag == true) { + res.render('error', { + title: 'Error', + message: 'Team leader has already registered for this event', + }); + } else { + data.members.push(userDoc._id); + var team = new Team(data); + var tid; + team + .save() + .then((item) => { + tid = item._id; + res.render('teamRegister', { + title: 'Team Registration', + id: item._id, + name: item.name, + }); + }) + .then(() => { + email.send({ + template: path.join(__dirname, 'emails', 'team'), + message: { + to: userDoc.email, + }, + locals: { + Tid: tid, + Tname: data.name, + }, + }); + }) + .then(() => console.log('email sent')) + .catch((err) => console.log(err)); - Event.findOneAndUpdate({ 'name': data.event }, { $push: { 'participants': userDoc._id } }, { new: true, upsert: true }, (err, docs) => { - if (err) { - console.log(err); - } - }) - } - }) - } - else { - res.render('error', { title: "Error", message: "Invalid Team Leader Password" }) - } - }) + Event.findOneAndUpdate( + { name: data.event }, + { $push: { participants: userDoc._id } }, + { new: true, upsert: true }, + (err, docs) => { + if (err) { + console.log(err); + } + }, + ); + } + }); + } else { + res.render('error', { + title: 'Error', + message: 'Invalid Team Leader Password', + }); } - - }) + }); + } + }); }); app.post('/joinTeam', (req, res) => { - var recieved_data = req.body; + var recieved_data = req.body; - User.findOne({ 'email': recieved_data.email }, (err, userDoc) => { + User.findOne({ email: recieved_data.email }, (err, userDoc) => { + if (err) { + console.log(err); + } else if (userDoc == null) { + res.render('error', { + title: 'Error', + message: 'This email is not registered', + }); + } else { + bcrypt.compare(recieved_data.pw, userDoc.pw, (err, resp) => { if (err) { - console.log(err); - } - else if (userDoc == null) { - res.render('error', { title: "Error", message: "This email is not registered" }) - } - else { - bcrypt.compare(recieved_data.pw, userDoc.pw, (err, resp) => { + console.log(err); + } else if (resp) { + Team.findOne({ _id: recieved_data.team_id }, (err, teamDoc) => { + if (err) { + console.log(err); + } else if (teamDoc != null) { + var event = teamDoc.event; + var limit = teamDoc.team_limit; + Event.findOne({ name: event }, (err, eventDoc) => { + var participants = + eventDoc != null ? eventDoc.participants : []; + var participationFlag = participants.includes(userDoc.id); if (err) { - console.log(err); - } - else if (resp) { - Team.findOne({ '_id': recieved_data.team_id }, (err, teamDoc) => { - if (err) { - console.log(err); - } - else if (teamDoc != null) { - var event = teamDoc.event; - var limit = teamDoc.team_limit; - Event.findOne({ 'name': event }, (err, eventDoc) => { - var participants = eventDoc != null ? eventDoc.participants : []; - var participationFlag = participants.includes(userDoc.id); - if (err) { - console.log(err) - } - else if (participationFlag == true) { - res.render('error', { title: "Error", message: "You have already registered for this event" }); - } - else { - if (teamDoc.members.length < limit) { - teamDoc.members.push(userDoc._id); - eventDoc.participants.push(userDoc._id); - teamDoc.save(); - eventDoc.save(); - res.render('joinTeam', { title: "Done!", team: teamDoc.name }); - User.findOne({ 'id': teamDoc.members[0].email }, (err, lead) => { - email.send({ - template: path.join(__dirname, 'emails', 'memberJoin'), - message: { - to: lead.email - }, - locals: { - team: teamDoc.name, - member: userDoc.name, - event: teamDoc.event - } - }) - .then(() => console.log("email sent")) - .catch(err => console.log(err)); - }) - } else { - res.render('error', { title: "Error", message: "Max number of members reached" }); - } - } - }) - } - else { - res.render('error', { title: "Error", message: "Invalid Team Id" }) - } - }) + console.log(err); + } else if (participationFlag == true) { + res.render('error', { + title: 'Error', + message: 'You have already registered for this event', + }); } else { - res.render('error', { title: "Error", message: "Invalid Password" }); + if (teamDoc.members.length < limit) { + teamDoc.members.push(userDoc._id); + eventDoc.participants.push(userDoc._id); + teamDoc.save(); + eventDoc.save(); + res.render('joinTeam', { + title: 'Done!', + team: teamDoc.name, + }); + User.findOne( + { id: teamDoc.members[0].email }, + (err, lead) => { + email + .send({ + template: path.join( + __dirname, + 'emails', + 'memberJoin', + ), + message: { + to: lead.email, + }, + locals: { + team: teamDoc.name, + member: userDoc.name, + event: teamDoc.event, + }, + }) + .then(() => console.log('email sent')) + .catch((err) => console.log(err)); + }, + ); + } else { + res.render('error', { + title: 'Error', + message: 'Max number of members reached', + }); + } } - }) + }); + } else { + res.render('error', { + title: 'Error', + message: 'Invalid Team Id', + }); + } + }); + } else { + res.render('error', { title: 'Error', message: 'Invalid Password' }); } - }) -}) + }); + } + }); +}); -https.createServer({ - key: fs.readFileSync('server.key'), - cert: fs.readFileSync('server.cert') -}, app) - .listen(process.env.PORT || 3000, function () { - console.log('Server UP! Go to https://localhost:' + process.env.PORT) - }) +module.exports = app; diff --git a/site/greenlock.js b/site/greenlock.js new file mode 100644 index 0000000..6eda1e5 --- /dev/null +++ b/site/greenlock.js @@ -0,0 +1,13 @@ +'use strict'; + +var pkg = require('./package.json'); +module.exports = require('@root/greenlock').create({ + // name & version for ACME client user agent + packageAgent: pkg.name + '/' + pkg.version, + + // contact for security and critical bug notices + maintainerEmail: pkg.author, + + // where to find .greenlockrc and set default paths + packageRoot: __dirname, +}); diff --git a/site/greenlock.json b/site/greenlock.json new file mode 100644 index 0000000..f72879f --- /dev/null +++ b/site/greenlock.json @@ -0,0 +1,28 @@ +{ + "defaults": { + "store": { + "module": "greenlock-store-fs", + "basePath": "./greenlock.d" + }, + "challenges": { + "http-01": { + "module": "acme-http-01-standalone" + } + }, + "renewOffset": "-45d", + "renewStagger": "3d", + "accountKeyType": "EC-P256", + "serverKeyType": "RSA-2048", + "subscriberEmail": "abhayonlyone@gmail.com", + "agreeToTerms": true + }, + "sites": [ + { + "subject": "backend.istenith.com", + "altnames": [ + "backend.istenith.com" + ], + "renewAt": 1 + } + ] +} \ No newline at end of file diff --git a/site/greenlock.json.bak b/site/greenlock.json.bak new file mode 100644 index 0000000..66f1aa9 --- /dev/null +++ b/site/greenlock.json.bak @@ -0,0 +1,20 @@ +{ + "defaults": { + "store": { + "module": "greenlock-store-fs", + "basePath": "./greenlock.d" + }, + "challenges": { + "http-01": { + "module": "acme-http-01-standalone" + } + }, + "renewOffset": "-45d", + "renewStagger": "3d", + "accountKeyType": "EC-P256", + "serverKeyType": "RSA-2048", + "subscriberEmail": "abhayonlyone@gmail.com", + "agreeToTerms": true + }, + "sites": [] +} \ No newline at end of file diff --git a/site/package-lock.json b/site/package-lock.json index ee3433c..474f272 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -12,6 +12,14 @@ "regenerator-runtime": "^0.13.2" } }, + "@greenlock/manager": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@greenlock/manager/-/manager-3.1.0.tgz", + "integrity": "sha512-PBy5CMK+j4oD7sj7hF5qE+xKEOSiiuL2hHd5X5ttEbtnTSDKjNeqbrR5k2ZddwVNdjOVeBIeuqlm81IFZ+Ftew==", + "requires": { + "greenlock-manager-fs": "^3.1.0" + } + }, "@hapi/boom": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-8.0.1.tgz", @@ -63,6 +71,102 @@ } } }, + "@root/acme": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@root/acme/-/acme-3.0.8.tgz", + "integrity": "sha512-VmBvLvWdCDkolkanI9Dzm1ouSWPaAa2eCCwcDZcVQbWoNiUIOqbbd57fcMA/gZxLyuJPStD2WXFuEuSMPDxcww==", + "requires": { + "@root/encoding": "^1.0.1", + "@root/keypairs": "^0.9.0", + "@root/pem": "^1.0.4", + "@root/request": "^1.3.11", + "@root/x509": "^0.7.2" + } + }, + "@root/asn1": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@root/asn1/-/asn1-1.0.0.tgz", + "integrity": "sha512-0lfZNuOULKJDJmdIkP8V9RnbV3XaK6PAHD3swnFy4tZwtlMDzLKoM/dfNad7ut8Hu3r91wy9uK0WA/9zym5mig==", + "requires": { + "@root/encoding": "^1.0.1" + } + }, + "@root/csr": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@root/csr/-/csr-0.8.1.tgz", + "integrity": "sha512-hKl0VuE549TK6SnS2Yn9nRvKbFZXn/oAg+dZJU/tlKl/f/0yRXeuUzf8akg3JjtJq+9E592zDqeXZ7yyrg8fSQ==", + "requires": { + "@root/asn1": "^1.0.0", + "@root/pem": "^1.0.4", + "@root/x509": "^0.7.2" + } + }, + "@root/encoding": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@root/encoding/-/encoding-1.0.1.tgz", + "integrity": "sha512-OaEub02ufoU038gy6bsNHQOjIn8nUjGiLcaRmJ40IUykneJkIW5fxDqKxQx48cszuNflYldsJLPPXCrGfHs8yQ==" + }, + "@root/greenlock": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@root/greenlock/-/greenlock-3.1.5.tgz", + "integrity": "sha512-qJ7OdHj6yQz8zdJCqurPtrUGF3j/L+Tz4cWFYRGN6+owCaAWhjc2rhafC6y/6asisBJWoZyGDypbaSfKh5097w==", + "requires": { + "@greenlock/manager": "^3.0.0", + "@root/acme": "^3.0.8", + "@root/csr": "^0.8.1", + "@root/keypairs": "^0.9.0", + "@root/mkdirp": "^1.0.0", + "@root/request": "^1.3.10", + "acme-http-01-standalone": "^3.0.5", + "cert-info": "^1.5.1", + "greenlock-manager-fs": "^3.0.5", + "greenlock-store-fs": "^3.2.0", + "safe-replace": "^1.1.0" + } + }, + "@root/greenlock-express": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@root/greenlock-express/-/greenlock-express-3.1.1.tgz", + "integrity": "sha512-avZvBEPeLfkauX09v8Lou/CVao6s9jN8fwHkv8ai1MM27P2MYq4ULIvX5YOQIHbZbygSDcVDIaRzTOrsrImFeg==", + "requires": { + "@root/greenlock": "^3.1.3", + "redirect-https": "^1.1.5" + } + }, + "@root/keypairs": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@root/keypairs/-/keypairs-0.9.0.tgz", + "integrity": "sha512-NXE2L9Gv7r3iC4kB/gTPZE1vO9Ox/p14zDzAJ5cGpTpytbWOlWF7QoHSJbtVX4H7mRG/Hp7HR3jWdWdb2xaaXg==", + "requires": { + "@root/encoding": "^1.0.1", + "@root/pem": "^1.0.4", + "@root/x509": "^0.7.2" + } + }, + "@root/mkdirp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@root/mkdirp/-/mkdirp-1.0.0.tgz", + "integrity": "sha512-hxGAYUx5029VggfG+U9naAhQkoMSXtOeXtbql97m3Hi6/sQSRL/4khKZPyOF6w11glyCOU38WCNLu9nUcSjOfA==" + }, + "@root/pem": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@root/pem/-/pem-1.0.4.tgz", + "integrity": "sha512-rEUDiUsHtild8GfIjFE9wXtcVxeS+ehCJQBwbQQ3IVfORKHK93CFnRtkr69R75lZFjcmKYVc+AXDB+AeRFOULA==" + }, + "@root/request": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@root/request/-/request-1.4.2.tgz", + "integrity": "sha512-J8FM4+SJuc7WRC+Jz17m+VT2lgI7HtatHhxN1F2ck5aIKUAxJEaR4u/gLBsgT60mVHevKCjKN0O8115UtJjwLw==" + }, + "@root/x509": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@root/x509/-/x509-0.7.2.tgz", + "integrity": "sha512-ENq3LGYORK5NiMFHEVeNMt+fTXaC7DTS6sQXoqV+dFdfT0vmiL5cDLjaXQhaklJQq0NiwicZegzJRl1ZOTp3WQ==", + "requires": { + "@root/asn1": "^1.0.0", + "@root/encoding": "^1.0.1" + } + }, "@sindresorhus/is": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-1.2.0.tgz", @@ -100,6 +204,11 @@ "negotiator": "0.6.2" } }, + "acme-http-01-standalone": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/acme-http-01-standalone/-/acme-http-01-standalone-3.0.5.tgz", + "integrity": "sha512-W4GfK+39GZ+u0mvxRVUcVFCG6gposfzEnSBF20T/NUwWAKG59wQT1dUbS1NixRIAsRuhpGc4Jx659cErFQH0Pg==" + }, "acorn": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", @@ -442,6 +551,11 @@ "lazy-cache": "^1.0.3" } }, + "cert-info": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/cert-info/-/cert-info-1.5.1.tgz", + "integrity": "sha512-eoQC/yAgW3gKTKxjzyClvi+UzuY97YCjcl+lSqbsGIy7HeGaWxCPOQFivhUYm27hgsBMhsJJFya3kGvK6PMIcQ==" + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -1204,6 +1318,34 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, + "greenlock-express": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/greenlock-express/-/greenlock-express-3.1.1.tgz", + "integrity": "sha512-4n5x8k6ibdtsz/+rnBaLgvm3knUZ63o9FiZzTK+zoghHSoAGWQaBLS65NVSBJmNEWxhwLChhBUCCPk0bIu7O+g==", + "requires": { + "@root/greenlock": "^3.1.3", + "@root/greenlock-express": "^3.1.1", + "redirect-https": "^1.1.5" + } + }, + "greenlock-manager-fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/greenlock-manager-fs/-/greenlock-manager-fs-3.1.1.tgz", + "integrity": "sha512-np6qdnPIOZx40PAcSQcqK1eMPWjTKxsxcgRd/OVg0ai49WC1Ds74CTrwmB84pq2n53ikbnDBQFmKEQ4AC0DK8w==", + "requires": { + "@root/mkdirp": "^1.0.0", + "safe-replace": "^1.1.0" + } + }, + "greenlock-store-fs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/greenlock-store-fs/-/greenlock-store-fs-3.2.2.tgz", + "integrity": "sha512-92ejLB4DyV4qv/2b6VLGF2nKfYQeIfg3o+e/1cIoYLjlIaUFdbBXkzLTRozFlHsQPZt2ALi5qYrpC9IwH7GK8A==", + "requires": { + "@root/mkdirp": "^1.0.0", + "safe-replace": "^1.1.0" + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -2491,6 +2633,14 @@ "picomatch": "^2.0.4" } }, + "redirect-https": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/redirect-https/-/redirect-https-1.3.0.tgz", + "integrity": "sha512-9GzwI/+Cqw3jlSg0CW6TgBQbhiVhkHSDvW8wjgRQ9IK34wtxS71YJiQeazSCSEqbvowHCJuQZgmQFl1xUHKEgg==", + "requires": { + "escape-html": "^1.0.3" + } + }, "regenerator-runtime": { "version": "0.13.3", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", @@ -2602,6 +2752,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safe-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-replace/-/safe-replace-1.1.0.tgz", + "integrity": "sha512-9/V2E0CDsKs9DWOOwJH7jYpSl9S3N05uyevNjvsnDauBqRowBPOyot1fIvV5N2IuZAbYyvrTXrYFVG0RZInfFw==" + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", diff --git a/site/package.json b/site/package.json index 15265b6..823ecc8 100644 --- a/site/package.json +++ b/site/package.json @@ -14,6 +14,7 @@ "body-parser": "^1.19.0", "email-templates": "^6.0.6", "express": "^4.17.1", + "greenlock-express": "^3.1.1", "mongoose": "^5.8.1", "nodemailer": "^6.4.2", "pug": "^2.0.4", diff --git a/site/qr.js b/site/qr.js deleted file mode 100644 index e72b984..0000000 --- a/site/qr.js +++ /dev/null @@ -1,19 +0,0 @@ -var QRCode = require('qrcode') -const Email = require('email-templates'); - -const email = new Email(); - -QRCode.toDataURL('hello',(err,url)=>{ - email.render('user/html', { - id: '243234', - name: 'Parth', - qr : url, - }) - .then(console.log) - .catch(console.error); -}) - - - - - diff --git a/site/server.js b/site/server.js new file mode 100644 index 0000000..46593a1 --- /dev/null +++ b/site/server.js @@ -0,0 +1,18 @@ +'use strict'; + +require('greenlock-express') + .init(function() { + return { + greenlock: require('./greenlock.js'), + + // whether or not to run at cloudscale + cluster: false, + }; + }) + .ready(function(glx) { + var app = require('./app.js'); + + // Serves on 80 and 443 + // Get's SSL certificates magically! + glx.serveApp(app); + }); From 19d5f9605029e85a2f8d97b9eb27a2f0b7d2c705 Mon Sep 17 00:00:00 2001 From: rathod-sahaab Date: Sat, 4 Jan 2020 23:16:28 +0530 Subject: [PATCH 3/9] updated frontend --- site/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/public/index.html b/site/public/index.html index 72d1d4c..535bee1 100644 --- a/site/public/index.html +++ b/site/public/index.html @@ -1 +1 @@ -Prodyogiki 2020 | ISTE - NIT Hamirpur
IIT-K Technocruise

Prodyogiki 2020 presents in collaboration with the Indian Institute of Technology, Kanpur a couple of extravagant workshops focussed majorily on the fields of Data Science and Internet Of Things.

The workshops are designed and hosted by experts from IIT-K. They will be organized on a two day basis and will cover a wide range of information focussing primarily on the above mentioned fields.

So grab this chance of a lifetime to procure knowledge right from the tables of the expertise.

To register for the workshops, go to the registration link given below and then upload your e-tickets on the next link.

Click on the link on the submission page of the form to join the official Technocruise whatsapp group to remain updated about the workshop.

Click here to Register !Upload e-tickets (post-registration) !

PERKS

  • Receive a participation certificate duly signed by Dean, Student's Welfare ; Festival Chairman and Co-ordinator.
  • Get discount on Machine Learning Course (cost Rs.6000) and a certificate duly signed by Satya Nadella (CEO , Microsoft) through Foxmula (Microsoft Associate).
  • Participate in a free test conducted by Technocruise on "Data Science" to get a chance to gain free entry access to the Techkriti workshops.
  • For more info, visitwww.technocruise.techkriti.org

Register Yourself

Name
Phone Number
Email
Password
Confirm Password
Passwords don't match

Already Registered?

Make Team
Join Team
Team Name
Team Leader Email
Team Leader Password
Event
Team Members
Your Email
Password
Team Id
What is Prodyogiki?
Every technocrat’s first hand at practical implementation of what has been learnt, every nerd’s passion and the most fulfilling exploration of technology that any engineer can do. These are merely the glimpses of the gala show that "Prodyogiki 2020" will be. We at ISTE, NIT Hamirpur are ready with a chain of events designed to challenge and motivate the students at the same time, and bring out their best. Prodyogiki 2020 is filled with interactive technological sessions, workshops, events, quizzes and ample other activities for all you technocrats out there. We promise to be the melting pots of different engineering and technical fields and will set new benchmarks in taking the technological culture of NIT Hamirpur to the unprecedented marks of glory.
Tap to Flip
Register Now!

Crazy Crawler

Build a legged bot (crawler) that can move in a straight line to dash through a track in minimum time


Abstract    |   

Molecular Mystery

A treasure hunt which has questions related to all topics which have to be answered by teams of 4. Solutions are all around the campus.


Abstract    |   

Compact Condo

Design a tiny house with different features in a defined area. You can use any means for designing.


Abstract    |   

Risk Reduction

Buy virtual ../assets to ideate a solution to protect against virtual perils and calamities.


Abstract    |   

Lost Lander

Build a bot which can sense obstacles in an obstacle course and clear that obstacle course in minimum time. The course cannot be seen by the operator.


Abstract    |   

Spaghetti Bridge

Design and construct a model of a single span truss bridge with the help of spaghetti noodles.


Abstract    |   

Ropeway Design

Design and make a model of a ropeway. You need to know simple law of mechanics here, cable car is one of the example for this type of ropeway systems.


Abstract    |   

Dev Dash

There are 2 rounds in this code marathon. A short code competition followed by code relay event. Solo event for all the enthusiastic coders


Abstract    |   

The Indian Society for Technical Education (ISTE) is a National Professional Non-profit organisation for the upliftment of the Technical Education System in our country. ISTE has the motto of the promoting Career development of Teachers and personality development of students around the country. The major objective of ISTE is to provide quality training programmes for teachers and administrators of various technical Institutions to update their knowledge and skills in their fields of activity and to assist the production and development of high quality professional engineers. The ISTE Students' Chapter NIT Hamirpur promotes such technological culture in our college. We, at NIT Hamirpur, conduct various events, workshops and seminars within the college and also participate in various inter-college fests.
Click here to go to our official website.

\ No newline at end of file +Prodyogiki 2020 | ISTE - NIT Hamirpur
IIT-K Technocruise

Prodyogiki 2020 presents in collaboration with the Indian Institute of Technology, Kanpur a couple of extravagant workshops focussed majorily on the fields of Data Science and Internet Of Things.

The workshops are designed and hosted by experts from IIT-K. They will be organized on a two day basis and will cover a wide range of information focussing primarily on the above mentioned fields.

So grab this chance of a lifetime to procure knowledge right from the tables of the expertise.

To register for the workshops, go to the registration link given below and then upload your e-tickets on the next link.

Click on the link on the submission page of the form to join the official Technocruise whatsapp group to remain updated about the workshop.

Click here to Register !Upload e-tickets (post-registration) !

PERKS

  • Receive a participation certificate duly signed by Dean, Student's Welfare ; Festival Chairman and Co-ordinator.
  • Get discount on Machine Learning Course (cost Rs.6000) and a certificate duly signed by Satya Nadella (CEO , Microsoft) through Foxmula (Microsoft Associate).
  • Participate in a free test conducted by Technocruise on "Data Science" to get a chance to gain free entry access to the Techkriti workshops.
  • For more info, visitwww.technocruise.techkriti.org

Register Yourself

Name
Phone Number
Email
Password
Confirm Password
Passwords don't match

Already Registered?

Make Team
Join Team
Team Name
Team Leader Email
Team Leader Password
Event
Team Members
Your Email
Password
Team Id
What is Prodyogiki?
Every technocrat’s first hand at practical implementation of what has been learnt, every nerd’s passion and the most fulfilling exploration of technology that any engineer can do. These are merely the glimpses of the gala show that "Prodyogiki 2020" will be. We at ISTE, NIT Hamirpur are ready with a chain of events designed to challenge and motivate the students at the same time, and bring out their best. Prodyogiki 2020 is filled with interactive technological sessions, workshops, events, quizzes and ample other activities for all you technocrats out there. We promise to be the melting pots of different engineering and technical fields and will set new benchmarks in taking the technological culture of NIT Hamirpur to the unprecedented marks of glory.
Tap to Flip
Register Now!

Crazy Crawler

Build a legged bot (crawler) that can move in a straight line to dash through a track in minimum time


Abstract    |   

Molecular Mystery

A treasure hunt which has questions related to all topics which have to be answered by teams of 4. Solutions are all around the campus.


Abstract    |   

Compact Condo

Design a tiny house with different features in a defined area. You can use any means for designing.


Abstract    |   

Risk Reduction

Buy virtual ../assets to ideate a solution to protect against virtual perils and calamities.


Abstract    |   

Lost Lander

Build a bot which can sense obstacles in an obstacle course and clear that obstacle course in minimum time. The course cannot be seen by the operator.


Abstract    |   

Spaghetti Bridge

Design and construct a model of a single span truss bridge with the help of spaghetti noodles.


Abstract    |   

Ropeway Design

Design and make a model of a ropeway. You need to know simple law of mechanics here, cable car is one of the example for this type of ropeway systems.


Abstract    |   

Dev Dash

There are 2 rounds in this code marathon. A short code competition followed by code relay event. Solo event for all the enthusiastic coders


Abstract    |   

The Indian Society for Technical Education (ISTE) is a National Professional Non-profit organisation for the upliftment of the Technical Education System in our country. ISTE has the motto of the promoting Career development of Teachers and personality development of students around the country. The major objective of ISTE is to provide quality training programmes for teachers and administrators of various technical Institutions to update their knowledge and skills in their fields of activity and to assist the production and development of high quality professional engineers. The ISTE Students' Chapter NIT Hamirpur promotes such technological culture in our college. We, at NIT Hamirpur, conduct various events, workshops and seminars within the college and also participate in various inter-college fests.
Click here to go to our official website.

\ No newline at end of file From 9e3cccdb481285077d96efe1922d3d23083b3616 Mon Sep 17 00:00:00 2001 From: rathod-sahaab Date: Sun, 5 Jan 2020 00:09:16 +0530 Subject: [PATCH 4/9] some corners --- site/package.json | 6 +++--- site/server.cert | 24 ------------------------ site/server.key | 28 ---------------------------- 3 files changed, 3 insertions(+), 55 deletions(-) delete mode 100644 site/server.cert delete mode 100644 site/server.key diff --git a/site/package.json b/site/package.json index 823ecc8..dea8011 100644 --- a/site/package.json +++ b/site/package.json @@ -2,12 +2,12 @@ "name": "site", "version": "1.0.0", "description": "", - "main": "app.js", + "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "start": "nodemon -L app.js" + "start": "nodemon -L server.js" }, - "author": "Parth Pant", + "author": "abhayonlyone@gmail.com", "license": "ISC", "dependencies": { "bcrypt": "^3.0.7", diff --git a/site/server.cert b/site/server.cert deleted file mode 100644 index 3a0d9c8..0000000 --- a/site/server.cert +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIUUSnqfhf8uueAp1SJCnIKMjIZgiAwDQYJKoZIhvcNAQEL -BQAwgYcxCzAJBgNVBAYTAklOMRkwFwYDVQQIDBBIaW1hY2hhbCBQcmFkZXNoMREw -DwYDVQQHDAhIYW1pcnB1cjESMBAGA1UECgwJSVNURSBOSVRIMRMwEQYDVQQDDApQ -cm9keW9naWtpMSEwHwYJKoZIhvcNAQkBFhJpc3Rlbml0aEBnbWFpbC5jb20wHhcN -MjAwMTAzMDg1NzMzWhcNMjAwMjAyMDg1NzMzWjCBhzELMAkGA1UEBhMCSU4xGTAX -BgNVBAgMEEhpbWFjaGFsIFByYWRlc2gxETAPBgNVBAcMCEhhbWlycHVyMRIwEAYD -VQQKDAlJU1RFIE5JVEgxEzARBgNVBAMMClByb2R5b2dpa2kxITAfBgkqhkiG9w0B -CQEWEmlzdGVuaXRoQGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBALhrtKeeFWA00lh9XqvvQrmU473AGrY627J/6Bc2vrY7Gt35GsCVmxIz -xC2EbIehuxwB7iI+E5wH19lP0NJBxz09c6f8u5Kh2mFDRA5WKzTAC2RnmSlla3zi -qYa6u0UfpUqI3Or7E6nP20WoQ+dQtkIEjoibZ54Sc93UdN7vw1hShpuCG8XgEzSV -zMW8kfbiXVxouTWEYbmwqQ7MaFFv/5h0ZnD4I14BtYRJpPN2Db1jr8wNEadHdd/W -ekB9jVSxxZwYJj6qVVV+G7ir/7uQqm3XWmkm+YxOKoHQDbjjZIHqroFyYTHo7bUQ -USWx3/JVjn1/VMYlg75qi74lwX+xvEcCAwEAAaNTMFEwHQYDVR0OBBYEFDHNigbj -69MMLUi+BWk4RVqHKGX1MB8GA1UdIwQYMBaAFDHNigbj69MMLUi+BWk4RVqHKGX1 -MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAF7cPy7xsPUW3iKX -QP1NZLh3fykAgiWurZ+UZ/cuwWuYH54uqze1wlh38ttRrFI3ZcqxDrQqDLZ+Hw+b -bVCikIUtmJAbPpitb7hOsqWwV8BqeGj5RsNs560b5gIyJ599/4ST67utkScdVCj+ -L7yD6YM7vasVfWBxMc3OzkPbg+qHw3O/DbAcim95p4JIUDzQ7TjcNIWZiUr1iW/I -Ntwes83GoJz/1bqelcJK8Xb5lOQPDC1Dp9pv9BYmHYudvI/xRBV6GWj2Pp0NLpVW -ETG1kTSm8HS5wYyTVJF5F6u7dq22nObwJfxsZoulRvo8dSxBXFqOJkRDD8aNanud -+/s9WgE= ------END CERTIFICATE----- diff --git a/site/server.key b/site/server.key deleted file mode 100644 index 0ae33e5..0000000 --- a/site/server.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC4a7SnnhVgNNJY -fV6r70K5lOO9wBq2Otuyf+gXNr62Oxrd+RrAlZsSM8QthGyHobscAe4iPhOcB9fZ -T9DSQcc9PXOn/LuSodphQ0QOVis0wAtkZ5kpZWt84qmGurtFH6VKiNzq+xOpz9tF -qEPnULZCBI6Im2eeEnPd1HTe78NYUoabghvF4BM0lczFvJH24l1caLk1hGG5sKkO -zGhRb/+YdGZw+CNeAbWESaTzdg29Y6/MDRGnR3Xf1npAfY1UscWcGCY+qlVVfhu4 -q/+7kKpt11ppJvmMTiqB0A2442SB6q6BcmEx6O21EFElsd/yVY59f1TGJYO+aou+ -JcF/sbxHAgMBAAECggEAedLMN515yV+bQ9EtZK5ciXMNLh9khdRDpJpRmmQTfxV0 -HgWb4nPxSAjiIp9DgiUYENxFjmErWvrjXy4WZ44EKzQY3nNZBPfd5jolDsNlLydd -XyoARxQz+P9RtSpM4tCQw7e9F4xb5OTlmBIbKQZsHxgbf6oIvKa722GpAkun4wMg -qgDRMNElejDHYFzU5YdMMLV6omF7tIf94i/2lVdVFhNIYUuHLhCsMeM7EqhSR2a0 -72+o9u5d/TLIS2N8kLEK4rCXuQlhF+UUiQjfrxawUIzReNVdfufrAmh9H8Wny01c -NbyCzDV+CmEEaHLy0byg1n5vUUWTGcBVwc4qNa9iQQKBgQDtlC7nB8KQczcDR0IW -ml2jCLrLjCXfDlxo5VZIRV7qg4QBcKY27pNUG6wsL464K9JnzLhPS1oBDpfGullz -wZZNZXt8lKt1J+JKvwzWO8ZbTNP37VxRdDIy9vWKT9Srmui62sx9cJcXtsNkhs2f -RnB/YR9Spfnys5v7aWZEwlaOjwKBgQDGuFyHu4XzRzYL+hDcwHnuh5y8fLYD8kp3 -r+ViygPqr8uTT6FTMxenble2Xvp8599n/NgOdc7qF9h2dj9NL2YlSU0aMmvnqzHq -9SSWF4Mp1Qgysa5IUfsHuy4nffNbobJQWo0M7mzDhVfJ0WUw9itjiOab06V5QD47 -7F3Gd85SyQKBgQCI6Ncqjh9CbRLr0bm1GtoRJOu4dxgv9a+tR1Q0q71p+cYtqkQu -7cd7NcM/Z1ygp6hF5wTjtTG14Dn47NS1z36VNYE3Jtmz1vsiRfzYzHOfk6OngWKt -EgAHvKd9QEn3Znrtiz9CnoqDwO/S05hVTBtyXH7XewySH40pEfE8eJ224wKBgQDF -rhyOAaNssMg4/dfMYcRp3omyjzTZlCs0CMxdi6x9x8bxkeNfypGbQw8KIk1394mr -/kBHkjX1dScmINczxxULvnFuv/3LheewXZC5pkYaVQtEsrA2zSa1OCTfsFFoM+AY -QxvRY1Ta40jDQQQywo/DAiq1lMMlbRz7q1RV3FRo0QKBgQDQKHeZE15pW6AhRrsp -yEpBlNceN9byVkyadMqUOzgYptJRfGpW5O1HdUzvVqDVpeTIFejO8jy59tlDLh+N -XXmO3JphIM7o8HJi+vk5pYg14+cNjHUU8VHiO86960ef1LoziJiExKtIUnFYZpO3 -/d/xxan04E/0YU3fPjMHkv6rWg== ------END PRIVATE KEY----- From 815a144f9fa634ba2ddd21237dcd76afadb40bda Mon Sep 17 00:00:00 2001 From: rathod-sahaab Date: Mon, 6 Jan 2020 10:01:59 +0530 Subject: [PATCH 5/9] Architectural Change Request only model --- site/app.js | 319 ++++++++++++++++++++++++++++++------------------ site/signals.js | 10 ++ 2 files changed, 212 insertions(+), 117 deletions(-) create mode 100644 site/signals.js diff --git a/site/app.js b/site/app.js index fca1463..5a3535b 100644 --- a/site/app.js +++ b/site/app.js @@ -24,37 +24,40 @@ mongoose.set('useUnifiedTopology', true); // } // } -var transporter = nodemailer.createTransport({ - host: 'smtp.gmail.com', - port: 465, - secure: true, - service: 'gmail', - auth: { - user: config.email, - pass: config.pw, - }, -}); +// var transporter = nodemailer.createTransport({ +// host: 'smtp.gmail.com', +// port: 465, +// secure: true, +// service: 'gmail', +// auth: { +// user: config.email, +// pass: config.pw, +// }, +// }); //Email Template -const email = new Email({ - message: { - from: 'Team ISTE', - }, - // uncomment below to send emails in development/test env: - send: true, - preview: false, - transport: transporter, -}); +// const email = new Email({ +// message: { +// from: 'Team ISTE', +// }, +// // uncomment below to send emails in development/test env: +// send: true, +// preview: false, +// transport: transporter, +// }); //loading models var User = require('./models/user'); var Team = require('./models/team'); var Event = require('./models/event'); +// loading modules +const signalFrontend = require('./signals'); + //hosting the front end var app = new express(); //coneectiong to backend -mongoose.connect('mongodb://localhost/myDb', { useNewUrlParser: true }); +mongoose.connect('mongodb://localhost/prodyDB', { useNewUrlParser: true }); var db = mongoose.connection; db.on('error', () => @@ -63,12 +66,12 @@ db.on('error', () => app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); -app.use(express.static('public')); +// app.use(express.static('public')); app.set('view engine', 'pug'); app.post('/regPlayer', (req, res) => { - var data = new User(req.body); + const data = new User(req.body); var mailid; //////validation code @@ -86,40 +89,59 @@ app.post('/regPlayer', (req, res) => { .save() .then((item) => { mailid = item._id; - res.render('register', { - title: 'User Registration', - id: item._id, - }); console.log(item); + + res.redirect( + signalFrontend({ + type: 'player-registered', + name: item.name, + }), + ); + // res.render('register', { + // title: 'User Registration', + // id: item._id, + // }); }) - .then(() => { - email.send({ - template: path.join(__dirname, 'emails', 'user'), - message: { - to: data.email, - }, - locals: { - id: mailid, - name: data.name, - }, - }); - }) - .then(() => console.log('email sent')) + // .then(() => { + // email.send({ + // template: path.join(__dirname, 'emails', 'user'), + // message: { + // to: data.email, + // }, + // locals: { + // id: mailid, + // name: data.name, + // }, + // }); + // }) + // .then(() => console.log('email sent')) .catch((err) => console.log(err)); } }); } else { - res.render('error', { - title: 'Error', - message: 'password and conformation password must be the same', - }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'password and conformation password different', + }), + ); + // res.render('error', { + // title: 'Error', + // message: 'password and conformation password must be the same', + // }); } } else { //res.send("The email has already been registered"); - res.render('error', { - title: 'Error', - message: 'The email has already been registered', - }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'email already registered', + }), + ); + // res.render('error', { + // title: 'Error', + // message: 'The email has already been registered', + // }); } }); }); @@ -137,10 +159,16 @@ app.post('/regTeam', (req, res) => { if (err) { consolse.log(err); } else if (userDoc == null) { - res.render('error', { - title: 'Error', - message: 'The team leader email is not registered', - }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'Your email is not registered', + }), + ); + // res.render('error', { + // title: 'Error', + // message: 'The team leader email is not registered', + // }); } else { bcrypt.compare(recieved_data.leader_pw, userDoc.pw, (err, resp) => { if (err) { @@ -152,37 +180,50 @@ app.post('/regTeam', (req, res) => { if (err) { console.log(err); } else if (participationFlag == true) { - res.render('error', { - title: 'Error', - message: 'Team leader has already registered for this event', - }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'You have already registered for this event', + }), + ); + // res.render('error', { + // title: 'Error', + // message: 'Team leader has already registered for this event', + // }); } else { data.members.push(userDoc._id); var team = new Team(data); - var tid; team .save() .then((item) => { tid = item._id; - res.render('teamRegister', { - title: 'Team Registration', - id: item._id, - name: item.name, - }); - }) - .then(() => { - email.send({ - template: path.join(__dirname, 'emails', 'team'), - message: { - to: userDoc.email, - }, - locals: { - Tid: tid, - Tname: data.name, - }, - }); + res.redirect( + signalFrontend({ + type: 'team-registered', + id: item._id, + name: item.name, + event: item.event, + }), + ); + // res.render('teamRegister', { + // title: 'Team Registration', + // id: item._id, + // name: item.name, + // }); }) - .then(() => console.log('email sent')) + // .then(() => { + // email.send({ + // template: path.join(__dirname, 'emails', 'team'), + // message: { + // to: userDoc.email, + // }, + // locals: { + // Tid: tid, + // Tname: data.name, + // }, + // }); + // }) + // .then(() => console.log('email sent')) .catch((err) => console.log(err)); Event.findOneAndUpdate( @@ -198,10 +239,16 @@ app.post('/regTeam', (req, res) => { } }); } else { - res.render('error', { - title: 'Error', - message: 'Invalid Team Leader Password', - }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'Invalid Password', + }), + ); + // res.render('error', { + // title: 'Error', + // message: 'Invalid Team Leader Password', + // }); } }); } @@ -215,10 +262,16 @@ app.post('/joinTeam', (req, res) => { if (err) { console.log(err); } else if (userDoc == null) { - res.render('error', { - title: 'Error', - message: 'This email is not registered', - }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'Your email is not registered', + }), + ); + // res.render('error', { + // title: 'Error', + // message: 'This email is not registered', + // }); } else { bcrypt.compare(recieved_data.pw, userDoc.pw, (err, resp) => { if (err) { @@ -237,60 +290,92 @@ app.post('/joinTeam', (req, res) => { if (err) { console.log(err); } else if (participationFlag == true) { - res.render('error', { - title: 'Error', - message: 'You have already registered for this event', - }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'Your email is not registered', + }), + ); + // res.render('error', { + // title: 'Error', + // message: 'You have already registered for this event', + // }); } else { if (teamDoc.members.length < limit) { teamDoc.members.push(userDoc._id); eventDoc.participants.push(userDoc._id); teamDoc.save(); eventDoc.save(); - res.render('joinTeam', { - title: 'Done!', - team: teamDoc.name, - }); + + res.redirect( + signalFrontend({ + type: 'joined-team', + name: teamDoc.name, + }), + ); + // res.render('joinTeam', { + // title: 'Done!', + // team: teamDoc.name, + // }); User.findOne( { id: teamDoc.members[0].email }, (err, lead) => { - email - .send({ - template: path.join( - __dirname, - 'emails', - 'memberJoin', - ), - message: { - to: lead.email, - }, - locals: { - team: teamDoc.name, - member: userDoc.name, - event: teamDoc.event, - }, - }) - .then(() => console.log('email sent')) - .catch((err) => console.log(err)); + console.log('Email not sent to Leader'); + // email + // .send({ + // template: path.join( + // __dirname, + // 'emails', + // 'memberJoin', + // ), + // message: { + // to: lead.email, + // }, + // locals: { + // team: teamDoc.name, + // member: userDoc.name, + // event: teamDoc.event, + // }, + // }) + // .then(() => console.log('email sent')) + // .catch((err) => console.log(err)); }, ); } else { - res.render('error', { - title: 'Error', - message: 'Max number of members reached', - }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'Max number of members reached', + }), + ); + // res.render('error', { + // title: 'Error', + // message: 'Max number of members reached', + // }); } } }); } else { - res.render('error', { - title: 'Error', - message: 'Invalid Team Id', - }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'Invalid Team Id', + }), + ); + // res.render('error', { + // title: 'Error', + // message: 'Invalid Team Id', + // }); } }); } else { - res.render('error', { title: 'Error', message: 'Invalid Password' }); + // res.render('error', { title: 'Error', message: 'Invalid Password' }); + res.redirect( + signalFrontend({ + type: 'error', + error: 'Invalid Team Id', + }), + ); } }); } diff --git a/site/signals.js b/site/signals.js new file mode 100644 index 0000000..595d954 --- /dev/null +++ b/site/signals.js @@ -0,0 +1,10 @@ +'use strict'; + +const frontEndHandlingURL = + 'https://rathod.sahaab.github.io/prody/server-response.html' + '?'; +// necessary to append question mark +const signalFrontend = (options) => { + return frontEndHandlingURL + new URLSearchParams(options).toString(); +}; + +module.exports = { signalFrontend }; From 0cbc5436ae604cb63e4e9e120e6579598368a766 Mon Sep 17 00:00:00 2001 From: rathod-sahaab Date: Mon, 6 Jan 2020 10:22:09 +0530 Subject: [PATCH 6/9] fixed signalFrontEnd is not a function --- site/signals.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/signals.js b/site/signals.js index 595d954..556081c 100644 --- a/site/signals.js +++ b/site/signals.js @@ -7,4 +7,4 @@ const signalFrontend = (options) => { return frontEndHandlingURL + new URLSearchParams(options).toString(); }; -module.exports = { signalFrontend }; +module.exports = signalFrontend; From cf173ebdde5d1334497382292f4b68d7c3147e39 Mon Sep 17 00:00:00 2001 From: rathod-sahaab Date: Wed, 15 Jan 2020 00:48:52 +0530 Subject: [PATCH 7/9] updated backend --- .gitignore | 4 + package-lock.json | 124 ++++++++++++ site/app.js | 355 ++------------------------------- site/config.js | 23 ++- site/db.js | 16 ++ site/emails/user/html.pug | 4 +- site/helpers/emailer.js | 26 +++ site/helpers/otp-manager.js | 52 +++++ site/middleware/jwt-auth.js | 17 ++ site/models/otp.js | 8 + site/models/team.js | 24 ++- site/models/user.js | 35 ++-- site/models/verified-emails.js | 7 + site/routes/team.js | 249 +++++++++++++++++++++++ site/routes/user.js | 234 ++++++++++++++++++++++ 15 files changed, 811 insertions(+), 367 deletions(-) create mode 100644 .gitignore create mode 100644 package-lock.json create mode 100644 site/db.js create mode 100644 site/helpers/emailer.js create mode 100644 site/helpers/otp-manager.js create mode 100644 site/middleware/jwt-auth.js create mode 100644 site/models/otp.js create mode 100644 site/models/verified-emails.js create mode 100644 site/routes/team.js create mode 100644 site/routes/user.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..85aa946 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +.directory +public/ +config.js diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a65ce7a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,124 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "express-validator": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-6.3.1.tgz", + "integrity": "sha512-YQHQKP/zlUTN6d38uWwXgK3At5phK6R24pOB/ImWisMUz/U/1AC3ZXMgiZYhtH4ViYJ6UAiV0/nj8s1Qs3kmvw==", + "requires": { + "lodash": "^4.17.15", + "validator": "^11.1.0" + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "validator": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-11.1.0.tgz", + "integrity": "sha512-qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg==" + } + } +} diff --git a/site/app.js b/site/app.js index 5a3535b..18be171 100644 --- a/site/app.js +++ b/site/app.js @@ -1,9 +1,7 @@ var express = require('express'); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); -var nodemailer = require('nodemailer'); -var Email = require('email-templates'); -var path = require('path'); +// var path = require('path'); var config = require('./config'); var bcrypt = require('bcrypt'); // var http = require('http'); @@ -24,35 +22,11 @@ mongoose.set('useUnifiedTopology', true); // } // } -// var transporter = nodemailer.createTransport({ -// host: 'smtp.gmail.com', -// port: 465, -// secure: true, -// service: 'gmail', -// auth: { -// user: config.email, -// pass: config.pw, -// }, -// }); -//Email Template -// const email = new Email({ -// message: { -// from: 'Team ISTE', -// }, -// // uncomment below to send emails in development/test env: -// send: true, -// preview: false, -// transport: transporter, -// }); - //loading models var User = require('./models/user'); var Team = require('./models/team'); var Event = require('./models/event'); -// loading modules -const signalFrontend = require('./signals'); - //hosting the front end var app = new express(); @@ -70,316 +44,25 @@ app.use(bodyParser.urlencoded({ extended: true })); app.set('view engine', 'pug'); -app.post('/regPlayer', (req, res) => { - const data = new User(req.body); - var mailid; - - //////validation code - User.findOne({ email: data.email }, (err, result) => { - if (err) { - console.log(err); - } else if (result == null) { - if (req.body.pw == req.body.confpw) { - bcrypt.hash(data.pw, 10, (err, hash) => { - if (err) { - console.log(err); - } else { - data.pw = hash; - data - .save() - .then((item) => { - mailid = item._id; - console.log(item); - - res.redirect( - signalFrontend({ - type: 'player-registered', - name: item.name, - }), - ); - // res.render('register', { - // title: 'User Registration', - // id: item._id, - // }); - }) - // .then(() => { - // email.send({ - // template: path.join(__dirname, 'emails', 'user'), - // message: { - // to: data.email, - // }, - // locals: { - // id: mailid, - // name: data.name, - // }, - // }); - // }) - // .then(() => console.log('email sent')) - .catch((err) => console.log(err)); - } - }); - } else { - res.redirect( - signalFrontend({ - type: 'error', - error: 'password and conformation password different', - }), - ); - // res.render('error', { - // title: 'Error', - // message: 'password and conformation password must be the same', - // }); - } - } else { - //res.send("The email has already been registered"); - res.redirect( - signalFrontend({ - type: 'error', - error: 'email already registered', - }), - ); - // res.render('error', { - // title: 'Error', - // message: 'The email has already been registered', - // }); - } - }); -}); - -app.post('/regTeam', (req, res) => { - var recieved_data = req.body; - //console.log(recieved_data) - var data = { - name: recieved_data.team_name, - event: recieved_data.event, - team_limit: recieved_data.team_limit, - members: [], - }; - User.findOne({ email: recieved_data.team_leader_email }, (err, userDoc) => { - if (err) { - consolse.log(err); - } else if (userDoc == null) { - res.redirect( - signalFrontend({ - type: 'error', - error: 'Your email is not registered', - }), - ); - // res.render('error', { - // title: 'Error', - // message: 'The team leader email is not registered', - // }); - } else { - bcrypt.compare(recieved_data.leader_pw, userDoc.pw, (err, resp) => { - if (err) { - console.log(err); - } else if (resp) { - Event.findOne({ name: recieved_data.event }, (err, doc) => { - var participants = doc != null ? doc.participants : []; - var participationFlag = participants.includes(userDoc.id); - if (err) { - console.log(err); - } else if (participationFlag == true) { - res.redirect( - signalFrontend({ - type: 'error', - error: 'You have already registered for this event', - }), - ); - // res.render('error', { - // title: 'Error', - // message: 'Team leader has already registered for this event', - // }); - } else { - data.members.push(userDoc._id); - var team = new Team(data); - team - .save() - .then((item) => { - tid = item._id; - res.redirect( - signalFrontend({ - type: 'team-registered', - id: item._id, - name: item.name, - event: item.event, - }), - ); - // res.render('teamRegister', { - // title: 'Team Registration', - // id: item._id, - // name: item.name, - // }); - }) - // .then(() => { - // email.send({ - // template: path.join(__dirname, 'emails', 'team'), - // message: { - // to: userDoc.email, - // }, - // locals: { - // Tid: tid, - // Tname: data.name, - // }, - // }); - // }) - // .then(() => console.log('email sent')) - .catch((err) => console.log(err)); - - Event.findOneAndUpdate( - { name: data.event }, - { $push: { participants: userDoc._id } }, - { new: true, upsert: true }, - (err, docs) => { - if (err) { - console.log(err); - } - }, - ); - } - }); - } else { - res.redirect( - signalFrontend({ - type: 'error', - error: 'Invalid Password', - }), - ); - // res.render('error', { - // title: 'Error', - // message: 'Invalid Team Leader Password', - // }); - } - }); - } - }); +app.get('/', (req, res) => { + res.redirect('https://istenith.com/prody'); }); -app.post('/joinTeam', (req, res) => { - var recieved_data = req.body; - - User.findOne({ email: recieved_data.email }, (err, userDoc) => { - if (err) { - console.log(err); - } else if (userDoc == null) { - res.redirect( - signalFrontend({ - type: 'error', - error: 'Your email is not registered', - }), - ); - // res.render('error', { - // title: 'Error', - // message: 'This email is not registered', - // }); - } else { - bcrypt.compare(recieved_data.pw, userDoc.pw, (err, resp) => { - if (err) { - console.log(err); - } else if (resp) { - Team.findOne({ _id: recieved_data.team_id }, (err, teamDoc) => { - if (err) { - console.log(err); - } else if (teamDoc != null) { - var event = teamDoc.event; - var limit = teamDoc.team_limit; - Event.findOne({ name: event }, (err, eventDoc) => { - var participants = - eventDoc != null ? eventDoc.participants : []; - var participationFlag = participants.includes(userDoc.id); - if (err) { - console.log(err); - } else if (participationFlag == true) { - res.redirect( - signalFrontend({ - type: 'error', - error: 'Your email is not registered', - }), - ); - // res.render('error', { - // title: 'Error', - // message: 'You have already registered for this event', - // }); - } else { - if (teamDoc.members.length < limit) { - teamDoc.members.push(userDoc._id); - eventDoc.participants.push(userDoc._id); - teamDoc.save(); - eventDoc.save(); - - res.redirect( - signalFrontend({ - type: 'joined-team', - name: teamDoc.name, - }), - ); - // res.render('joinTeam', { - // title: 'Done!', - // team: teamDoc.name, - // }); - User.findOne( - { id: teamDoc.members[0].email }, - (err, lead) => { - console.log('Email not sent to Leader'); - // email - // .send({ - // template: path.join( - // __dirname, - // 'emails', - // 'memberJoin', - // ), - // message: { - // to: lead.email, - // }, - // locals: { - // team: teamDoc.name, - // member: userDoc.name, - // event: teamDoc.event, - // }, - // }) - // .then(() => console.log('email sent')) - // .catch((err) => console.log(err)); - }, - ); - } else { - res.redirect( - signalFrontend({ - type: 'error', - error: 'Max number of members reached', - }), - ); - // res.render('error', { - // title: 'Error', - // message: 'Max number of members reached', - // }); - } - } - }); - } else { - res.redirect( - signalFrontend({ - type: 'error', - error: 'Invalid Team Id', - }), - ); - // res.render('error', { - // title: 'Error', - // message: 'Invalid Team Id', - // }); - } - }); - } else { - // res.render('error', { title: 'Error', message: 'Invalid Password' }); - res.redirect( - signalFrontend({ - type: 'error', - error: 'Invalid Team Id', - }), - ); - } - }); - } - }); -}); +app.use('/user', require('./routes/user')); +app.use('/team', require('./routes/team')); + +//app.post('/regTeam', (req, res) => { +// var recieved_data = req.body; +// //console.log(recieved_data) +// var data = { +// name: recieved_data.team_name, +// event: recieved_data.event, +// team_limit: recieved_data.team_limit, +// members: [], +// }; +//}); + +//app.post('/joinTeam', (req, res) => { +//}); module.exports = app; diff --git a/site/config.js b/site/config.js index 5263aab..056eb82 100644 --- a/site/config.js +++ b/site/config.js @@ -1,6 +1,19 @@ -var credentials = { - email: 'parthpant4@gmail.com', - pw : 'lucknow14' -} +module.exports = { + MONGOURI: 'mongodb://prodyadmin:pushbois@localhost:27152', -module.exports = credentials; \ No newline at end of file + gmail: { + email: 'teamiste@gmail.com', + password: 'ISTEorderlookslikefate', + }, + jwt: { + encodingKey: 'phurrrrbajhtr382qyhd78i&Thdfa', + }, + + oauth: { + google: { + clientID: + '560206649463-5vnqmnq4014fb3ns2rfnecdstj5bclnn.apps.googleusercontent.com', + clientSecret: '6LtPSRwGfxE9dr2Pg0hxhXrP', + }, + }, +}; diff --git a/site/db.js b/site/db.js new file mode 100644 index 0000000..a00b446 --- /dev/null +++ b/site/db.js @@ -0,0 +1,16 @@ +const mongoose = require('mongoose'); +const config = require('./config'); + +const InitiateMongoServer = async () => { + try { + await mongoose.connect(cosfig.MONGOURI, { + useNewUrlParser: true, + }); + console.log('Connected to DB !!'); + } catch (e) { + console.log(e); + throw e; + } +}; + +module.exports = InitiateMongoServer; diff --git a/site/emails/user/html.pug b/site/emails/user/html.pug index 5409201..f855e44 100644 --- a/site/emails/user/html.pug +++ b/site/emails/user/html.pug @@ -1,5 +1,5 @@ -h2 Congratulations! #{name} You have registered for +h2 #{name} You have successfully registered for h2 Prodyogiki 2020 p Next Step : Join a team or make your own if you want. p Feel free to contact Team ISTE for any help. -p Best of Luck!!! . \ No newline at end of file +p Best of Luck!!!. diff --git a/site/helpers/emailer.js b/site/helpers/emailer.js new file mode 100644 index 0000000..3cb4969 --- /dev/null +++ b/site/helpers/emailer.js @@ -0,0 +1,26 @@ +var nodemailer = require('nodemailer'); +var Email = require('email-templates'); +var config = require('../config'); + +var transporter = nodemailer.createTransport({ + host: 'smtp.gmail.com', + port: 465, + secure: true, + service: 'gmail', + auth: { + user: config.gmail.email, + pass: config.gmail.password, + }, +}); +// Email Template +const emailer = new Email({ + message: { + from: 'Team ISTE', + }, + // uncomment below to send emails in development/test env: + send: true, + preview: false, + transport: transporter, +}); + +module.exports = emailer; diff --git a/site/helpers/otp-manager.js b/site/helpers/otp-manager.js new file mode 100644 index 0000000..a625986 --- /dev/null +++ b/site/helpers/otp-manager.js @@ -0,0 +1,52 @@ +emailer = require('./emailer'); +OTP = require('../models/otp'); +shortid = require('shortid'); +path = require('path'); + +module.exports.sendOTP = async (email) => { + const newOtp = shortid.generate(); + console.log('otp is %s', newOtp); + + OTP.updateOne( + { + email: email, + otp: newOtp, + }, + (err, res) => {}, + ); + + const response = await emailer + .send({ + template: path.join(__dirname, 'emails', 'otp'), + message: { to: email }, + locals: { + otp: newOtp, + }, + }) + .then(() => console.log('OTP sent')); + + return response; +}; + +module.exports.verifyOTP = (email, otp) => { + let isCorrect = false; + OTP.findOne( + { + email: email, + }, + (err, otpRecord) => { + if (err) { + console.log(err); + } + if (otpRecord) { + if (otp === otpRecord.otp) { + otpRecord.remove(); + isCorrect = true; + } else { + console.log('incorrect'); + } + } + }, + ); + return isCorrect; +}; diff --git a/site/middleware/jwt-auth.js b/site/middleware/jwt-auth.js new file mode 100644 index 0000000..a3020ad --- /dev/null +++ b/site/middleware/jwt-auth.js @@ -0,0 +1,17 @@ +const jwt = require('jsonwebtoken'); + +const config = require('../config'); + +module.exports = function(req, res, next) { + const token = req.header('token'); + if (!token) return res.status(401).json({ error: 'Auth Error' }); + + try { + const decoded = jwt.verify(token, config.jwt.encodingKey); + req.user = decoded.user; + next(); + } catch (e) { + console.error(e); + res.status(500).send({ error: 'Invalid Token' }); + } +}; diff --git a/site/models/otp.js b/site/models/otp.js new file mode 100644 index 0000000..578f033 --- /dev/null +++ b/site/models/otp.js @@ -0,0 +1,8 @@ +const mongoose = require('mongoose'); + +const otpSchema = new mongoose.Schema({ + email: String, + otp: String, +}); + +module.exports = new mongoose.model('otp', otpSchema); diff --git a/site/models/team.js b/site/models/team.js index f3fbfe5..02d9e81 100644 --- a/site/models/team.js +++ b/site/models/team.js @@ -1,17 +1,19 @@ var mongoose = require('mongoose'); var shortid = require('shortid'); -var teamScheema = new mongoose.Schema({ - _id : { - type : String, - default : shortid.generate +var teamScheema = new mongoose.Schema( + { + _id: { + type: String, + default: shortid.generate, }, - name : String, - event : String, - team_limit : Number, - members : [String] -},{versionKey : false}); + name: String, + event: String, + members: [String], + }, + { versionKey: false }, +); -var Team = new mongoose.model('team',teamScheema); +var Team = new mongoose.model('team', teamScheema); -module.exports = Team; \ No newline at end of file +module.exports = Team; diff --git a/site/models/user.js b/site/models/user.js index ba6ece8..6d881f8 100644 --- a/site/models/user.js +++ b/site/models/user.js @@ -1,17 +1,26 @@ var mongoose = require('mongoose'); -var shortid = require('shortid'); -var userScheema = new mongoose.Schema({ - _id : { - type : String, - default : shortid.generate +var userScheema = new mongoose.Schema( + { + name: { + type: String, + required: true, }, - name : String, - phone : Number, - email : String, - pw : String -},{versionKey : false}); - -var User = new mongoose.model('user',userScheema); + phone: { + type: Number, + required: true, + }, + email: { + type: String, + req: true, + }, + password: { + type: String, + req: true, + }, + teams: [String], + }, + { versionKey: false }, +); -module.exports = User; \ No newline at end of file +module.exports = new mongoose.model('user', userScheema); diff --git a/site/models/verified-emails.js b/site/models/verified-emails.js new file mode 100644 index 0000000..77d6d7d --- /dev/null +++ b/site/models/verified-emails.js @@ -0,0 +1,7 @@ +const mongoose = require('mongoose'); + +const VerifiedEmailSchema = new mongoose.Schema({ + email: String, +}); + +module.exports = new mongoose.model('verified-email', VerifiedEmailSchema); diff --git a/site/routes/team.js b/site/routes/team.js new file mode 100644 index 0000000..a88c56b --- /dev/null +++ b/site/routes/team.js @@ -0,0 +1,249 @@ +'use strict'; +const router = require('express').Router(); +const { check, validationResult } = require('express-validator/check'); +const bcrypt = require('bcryptjs'); +const jwt = require('jsonwebtoken'); + +const config = require('./config'); + +const User = require('../models/User'); +const Team = require('../models/team'); +const Event = require('./models/event'); + +const emailer = require('../helpers/emailer'); + +const teamLimit = { + 'crazy-crawler': 4, + 'molecular-mystery': 4, + 'compact-condo': 1, + 'risk-reduction': 4, + 'lost-lander': 4, + 'spaghetti-bridge': 5, + 'ropeway-design': 5, + 'dev-dash': 1, +}; + +router.post( + '/make-team', + [ + check('email', 'Invalid email').isEmail(), + check('password', 'Please enter a valid password').isLength({ + min: 6, + }), + check('name', 'Please enter a name') + .not() + .isEmpty(), + ], + async (req, res) => { + const errors = validationResult(req); + if (!errors.isEmpty()) { + return res.status(400).json({ + error: errors.array().toString(), + }); + } + + const { name, email, password, event } = req.body; + + User.findOne({ email: email }, (err, userDoc) => { + if (err) { + consolse.log(err); + } else if (userDoc == null) { + res.json({ + error: 'Your email is not registered', + }); + // res.render('error', { + // title: 'Error', + // message: 'The team leader email is not registered', + // }); + } else { + bcrypt.compare(password, userDoc.password, (err, res) => { + if (err) { + console.log(err); + } else if (res) { + Event.findOne({ name: event }, (err, doc) => { + var participants = doc != null ? doc.participants : []; + var participationFlag = participants.includes(userDoc.id); + if (err) { + console.log(err); + } else if (participationFlag) { + res.send({ + error: 'You have already registered for this event', + }); + // res.render('error', { + // title: 'Error', + // message: 'Team leader has already registered for this event', + // }); + } else { + let data = { + name: name, + event: event, + members: [], + }; + data.members.push(userDoc._id); + var team = new Team(data); + team + .save() + .then((item) => { + tid = item._id; + res.send({ + id: item._id, + name: item.name, + event: item.event, + }); + // res.render('teamRegister', { + // title: 'Team Registration', + // id: item._id, + // name: item.name, + // }); + }) + .then(() => { + emailer.send({ + template: path.join(__dirname, 'emails', 'team'), + message: { + to: userDoc.email, + }, + locals: { + Tid: tid, + Tname: data.name, + }, + }); + }) + .then(() => console.log('email sent')) + .catch((err) => console.log(err)); + + Event.findOneAndUpdate( + { name: data.event }, + { $push: { participants: userDoc._id } }, + { new: true, upsert: true }, + (err, docs) => { + if (err) { + console.log(err); + } + }, + ); + } + }); + } else { + res.send({ + error: 'Invalid Password', + }); + // res.render('error', { + // title: 'Error', + // message: 'Invalid Team Leader Password', + // }); + } + }); + } + }); + }, +); + +router.post('/join-team', [], (req, res) => { + const { email, password, teamid } = req.body; + + User.findOne({ email: email }, (err, userDoc) => { + if (err) { + console.log(err); + } else if (userDoc == null) { + res.send({ + error: 'Your email is not registered', + }); + // res.render('error', { + // title: 'Error', + // message: 'This email is not registered', + // }); + } else { + bcrypt.compare(password, userDoc.password, (err, resp) => { + if (err) { + console.log(err); + } else if (resp) { + Team.findOne({ _id: teamid }, (err, teamDoc) => { + if (err) { + console.log(err); + } else if (teamDoc != null) { + var event = teamDoc.event; + Event.findOne({ name: event }, (err, eventDoc) => { + var participants = + eventDoc != null ? eventDoc.participants : []; + var participationFlag = participants.includes(userDoc.id); + if (err) { + console.log(err); + } else if (participationFlag == true) { + res.send({ + error: 'Already Registered for the event', + }); + // res.render('error', { + // title: 'Error', + // message: 'You have already registered for this event', + // }); + } else { + if (teamDoc.members.length < teamLimit[event]) { + teamDoc.members.push(userDoc._id); + eventDoc.participants.push(userDoc._id); + teamDoc.save(); + eventDoc.save(); + + res.send({ + id: teamid, + name: teamDoc.name, + participants: teamDoc.participants, + }); + // res.render('joinTeam', { + // title: 'Done!', + // team: teamDoc.name, + // }); + User.findOne( + { id: teamDoc.members[0].email }, + (err, lead) => { + console.log('Email not sent to Leader'); + emailer + .send({ + template: path.join( + __dirname, + 'emails', + 'memberJoin', + ), + message: { + to: lead.email, + }, + locals: { + team: teamDoc.name, + member: userDoc.name, + event: teamDoc.event, + }, + }) + .then(() => console.log('email sent')) + .catch((err) => console.log(err)); + }, + ); + } else { + res.send({ + error: 'Max number of members reached', + }); + // res.render('error', { + // title: 'Error', + // message: 'Max number of members reached', + // }); + } + } + }); + } else { + res.send({ + error: 'Invalid Team Id', + }); + // res.render('error', { + // title: 'Error', + // message: 'Invalid Team Id', + // }); + } + }); + } else { + // res.render('error', { title: 'Error', message: 'Invalid Password' }); + res.send({ + error: 'Invalid Team Id', + }); + } + }); + } + }); +}); diff --git a/site/routes/user.js b/site/routes/user.js new file mode 100644 index 0000000..937efa8 --- /dev/null +++ b/site/routes/user.js @@ -0,0 +1,234 @@ +'use strict'; +const router = require('express').Router(); +const { check, validationResult } = require('express-validator/check'); +const bcrypt = require('bcryptjs'); +const jwt = require('jsonwebtoken'); + +const config = require('./config'); + +const User = require('../models/User'); + +/** + * @method - POST + * @param - /signup + * @description - User SignUp + */ + +router.post( + '/checkmeout', + [check('email', 'Please enter a valid email')], + async (res, req) => { + if (!errors.isEmpty()) { + return res.status(400).json({ + error: 'Invalid Email', + }); + } + const { email } = req.body; + let user = await User.findOne({ + email, + }); + if (user) { + return res.status(200).json({ + userExists: true, + }); + } else { + sendOTP(email); + + return res.status(200).json({ + userExists: false, + }); + } + }, +); + +router.post( + '/signup', + [ + check('name', 'Please enter a valid name') + .not() + .isEmpty(), + check('email', 'Please enter a valid email').isEmail(), + check('phone', 'Please enter a valid phone').isMobilePhone(), + check('password', 'Please enter a valid password').isLength({ + min: 6, + }), + ], + async (req, res) => { + const errors = validationResult(req); + if (!errors.isEmpty()) { + return res.status(400).json({ + error: errors.array().toString(), + }); + } + + const { name, phone, email, password, otp } = req.body; + try { + let user = await User.findOne({ + email, + }); + if (user) { + return res.status(400).json({ + error: 'User already exists', + }); + } + + if (verifyOTP(email, otp)) { + user = new User({ + name, + phone, + email, + password, + }); + + const salt = await bcrypt.genSalt(); + user.password = await bcrypt.hash(password, salt); + + await user.save(); + + const payload = { + user: { + id: user.id, + }, + }; + + jwt.sign(payload, config.jwt.encodingKey, {}, (err, token) => { + if (err) throw err; + res.status(200).json({ + token, + }); + }); + } else { + res.status(400).json({ + error: 'Wrong OTP', + }); + } + } catch (err) { + console.log(err.message); + res.status(500).send('Error in Saving'); + } + }, +); + +router.post( + '/login', + [ + check('email', 'Please enter a valid email').isEmail(), + check('password', 'Please enter a valid password').isLength({ + min: 6, + }), + ], + async (req, res) => { + const errors = validationResult(req); + + if (!errors.isEmpty()) { + return res.status(400).json({ + error: errors.array(), + }); + } + + const { email, password } = req.body; + try { + let user = await User.findOne({ + email, + }); + if (!user) + return res.status(400).json({ + message: 'User Not Exist', + }); + + const isMatch = await bcrypt.compare(password, user.password); + if (!isMatch) + return res.status(400).json({ + error: 'Incorrect Password !', + }); + + const payload = { + user: { + id: user.id, + }, + }; + + jwt.sign(payload, config.jwt.encodingKey, {}, (err, token) => { + if (err) throw err; + res.status(200).json({ + token, + }); + }); + } catch (e) { + console.error(e); + res.status(500).json({ + message: 'Server Error', + }); + } + }, +); + +const { sendOTP, verifyOTP } = require('../helpers/otp-manager'); + +router.post('/forgot-password', async (req, res) => { + try { + const { email } = req.body; + let user = await User.findOne({ + email: email, + }); + + if (user) { + sendOTP(email); + res.status(200).json({ + otpSent: true, + }); + } else { + res.status(403).json({ + error: 'unregistered email', + }); + } + } catch (e) { + res.status(500).json({ error: e }); + } +}); + +router.post('/reset-password', async (req, res) => { + const { otp, email, newPassword } = req.body; + + try { + if (verifyOTP(email, otp)) { + const salt = await bcrypt.genSalt(); + + let user = await User.findOne({ + email: email, + }); + if (user) { + user.password = await bcrypt.hash(newPassword, salt); + user.save(); + } else { + res.json({ + error: 'Email unregistered', + }); + } + } + } catch (e) { + res.status(500).json({ + error: 'Internal Server Error', + }); + } +}); + +/** + * @method - GET + * @description - Get LoggedIn User + * @param - /user/me + */ + +const jwtAuth = require('../middleware/jwt-auth'); + +router.get('/me', jwtAuth, async (req, res) => { + try { + // request.user is getting fetched from Middleware after token authentication + const user = await User.findById(req.user.id); + res.json(user); + } catch (e) { + res.json({ error: 'Error in Fetching user' }); + } +}); + +module.exports = router; From 7d35a7b2f4161d891380498e67ced3430d78c2ec Mon Sep 17 00:00:00 2001 From: Abhay Raj Singh Date: Tue, 14 Jan 2020 20:03:12 +0000 Subject: [PATCH 8/9] fixes --- .../directory/abhayonlyone@gmail.com.json | 1 + .../live/backend.istenith.com/bundle.pem | 60 ++ .../live/backend.istenith.com/bundle.pem.bak | 60 ++ .../live/backend.istenith.com/cert.pem | 31 + .../live/backend.istenith.com/cert.pem.bak | 31 + .../live/backend.istenith.com/chain.pem | 27 + .../live/backend.istenith.com/chain.pem.bak | 27 + .../live/backend.istenith.com/fullchain.pem | 59 ++ .../backend.istenith.com/fullchain.pem.bak | 59 ++ .../live/backend.istenith.com/privkey.pem | 27 + site/greenlock.json | 2 +- site/greenlock.json.bak | 10 +- site/package-lock.json | 562 +++++++++++------- site/package.json | 3 + site/routes/team.js | 7 +- site/routes/user.js | 9 +- site/signals.js | 2 +- 17 files changed, 741 insertions(+), 236 deletions(-) create mode 100644 site/greenlock.d/accounts/acme-v02.api.letsencrypt.org/directory/abhayonlyone@gmail.com.json create mode 100644 site/greenlock.d/live/backend.istenith.com/bundle.pem create mode 100644 site/greenlock.d/live/backend.istenith.com/bundle.pem.bak create mode 100644 site/greenlock.d/live/backend.istenith.com/cert.pem create mode 100644 site/greenlock.d/live/backend.istenith.com/cert.pem.bak create mode 100644 site/greenlock.d/live/backend.istenith.com/chain.pem create mode 100644 site/greenlock.d/live/backend.istenith.com/chain.pem.bak create mode 100644 site/greenlock.d/live/backend.istenith.com/fullchain.pem create mode 100644 site/greenlock.d/live/backend.istenith.com/fullchain.pem.bak create mode 100644 site/greenlock.d/live/backend.istenith.com/privkey.pem diff --git a/site/greenlock.d/accounts/acme-v02.api.letsencrypt.org/directory/abhayonlyone@gmail.com.json b/site/greenlock.d/accounts/acme-v02.api.letsencrypt.org/directory/abhayonlyone@gmail.com.json new file mode 100644 index 0000000..c6b2464 --- /dev/null +++ b/site/greenlock.d/accounts/acme-v02.api.letsencrypt.org/directory/abhayonlyone@gmail.com.json @@ -0,0 +1 @@ +{"privateKeyJwk":{"kty":"EC","crv":"P-256","d":"fqGs-Ih4evq0vTYq-A5reNJACSZcYxZJkh3vSM6VIWE","x":"FSC0DKIuHEgdMYXUAYqGZ6RLHul9Fja5yvT0S2h-2sU","y":"8gRAEtlB0xj_aDAJ-wolBLBOr3IA9iEI7F8RoPujBFQ","kid":"pzSwgnD2uMCSuyEamP3ACFPEPrwmnvpqOanPi8wfWkY"},"publicKeyJwk":{"kty":"EC","crv":"P-256","x":"FSC0DKIuHEgdMYXUAYqGZ6RLHul9Fja5yvT0S2h-2sU","y":"8gRAEtlB0xj_aDAJ-wolBLBOr3IA9iEI7F8RoPujBFQ","kid":"pzSwgnD2uMCSuyEamP3ACFPEPrwmnvpqOanPi8wfWkY","use":"sig"},"privateKeyPem":"-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIH6hrPiIeHr6tL02KvgOa3jSQAkmXGMWSZId70jOlSFhoAoGCCqGSM49\nAwEHoUQDQgAEFSC0DKIuHEgdMYXUAYqGZ6RLHul9Fja5yvT0S2h+2sXyBEAS2UHT\nGP9oMAn7CiUEsE6vcgD2IQjsXxGg+6MEVA==\n-----END EC PRIVATE KEY-----","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFSC0DKIuHEgdMYXUAYqGZ6RLHul9\nFja5yvT0S2h+2sXyBEAS2UHTGP9oMAn7CiUEsE6vcgD2IQjsXxGg+6MEVA==\n-----END PUBLIC KEY-----"} \ No newline at end of file diff --git a/site/greenlock.d/live/backend.istenith.com/bundle.pem b/site/greenlock.d/live/backend.istenith.com/bundle.pem new file mode 100644 index 0000000..1b5e241 --- /dev/null +++ b/site/greenlock.d/live/backend.istenith.com/bundle.pem @@ -0,0 +1,60 @@ + +-----BEGIN CERTIFICATE----- +MIIFYTCCBEmgAwIBAgISA4kIFL92u9nsl1l6BSiquTAvMA0GCSqGSIb3DQEBCwUA +MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD +ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDAxMDYwMzUzNDNaFw0y +MDA0MDUwMzUzNDNaMB8xHTAbBgNVBAMTFGJhY2tlbmQuaXN0ZW5pdGguY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqOuVa24VnIMsb+6O25RKnf8 +v3D5gH7DVJwiKkrH9ZB+Tloe3NbVFDIJ4DeDhqdodOvBu2GF9e9evYHDzOtSrNO6 +EIXTKZMzdhTF/bwXddkRf1u5g3LtaFVDw2YuSAlQRGLCjTwhKG6mVgSWeXV6WFH7 +DRsgZzNzu0e1hU8yh1ruAxawcmy1PQhn1d6D9keOr8EMLSBd0ZXP2cZzVuafs8U5 +EqJqqM9TbddmmquUHy4Vo3ahckYL1X2EWlZcVoEDsWf97TSq37eSwbuc9NpDWNhG +tA9CxR34o6RfYw3QnDcGSImXTSR6kpbWnkyxannDrYDBZ6S2s8oKxu+B6v7zXQID +AQABo4ICajCCAmYwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMB +BggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRb28Y1YTEYATwpMqBQ +GEdZkRWGTTAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86jsoTBvBggrBgEF +BQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5sZXRzZW5j +cnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5j +cnlwdC5vcmcvMB8GA1UdEQQYMBaCFGJhY2tlbmQuaXN0ZW5pdGguY29tMEwGA1Ud +IARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0 +dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDx +AHYAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVgAAAFveTOeZwAABAMA +RzBFAiBxn7xe9PojuMhO9u+YgEcHuYNEENniBGMhLCL82loVmAIhAPrE9jb1sLW/ +mPQikDKcJNp7ethNr50sbSuNVPk8EPBFAHcAsh4FzIuizYogTodm+Su5iiUgZ2va ++nDnsklTLe+LkF4AAAFveTOeYAAABAMASDBGAiEA7iJ3rXy2eBFJ4TlNFv6ZyswM +CbAYcYwYSwL5i8uGrjQCIQCR+F1gSx6VaK1IfRjbQYV+YEhlzz5ctzRS6+zjSLEq +LjANBgkqhkiG9w0BAQsFAAOCAQEAWXQ8/9P1cCooiJKP17OuH06k3p2tEEPRvkQn +7dVpew1qgsWsdR3bio/Bsa36EiycTslBBWIM0UXo/9MO6FlfBmv67wYbMrvM2QhF +vD9/qyyVCZ9zCkC24BbNRWncmNT1OfSV2twz3OWJjDoIM551zlZNYAB+Z5/rqRVk +QwkmcT3lmfCcjFTBJ/ZrKFD+dwJUovxR5neydMv4v8pws8Chxh2RUNDlJ+FR7881 +xtW91xsfqB9bFXy9a+j5TBYYlGQEvY7U7DMPpRS1yVjMUyQnA9+7sZRzQLkk96qr +yfZq92R5uacTofGXfIppXtA3xQyNOtEpbgi3OToTFSpNofpAoQ== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow +SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT +GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF +q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8 +SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0 +Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA +a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj +/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T +AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG +CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv +bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k +c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw +VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC +ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz +MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu +Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF +AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo +uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/ +wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu +X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG +PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 +KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== +-----END CERTIFICATE----- diff --git a/site/greenlock.d/live/backend.istenith.com/bundle.pem.bak b/site/greenlock.d/live/backend.istenith.com/bundle.pem.bak new file mode 100644 index 0000000..e923893 --- /dev/null +++ b/site/greenlock.d/live/backend.istenith.com/bundle.pem.bak @@ -0,0 +1,60 @@ + +-----BEGIN CERTIFICATE----- +MIIFYDCCBEigAwIBAgISA67snWGxWmE7bvDcG7SWtfFWMA0GCSqGSIb3DQEBCwUA +MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD +ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDAxMDQxNzUxMzhaFw0y +MDA0MDMxNzUxMzhaMB8xHTAbBgNVBAMTFGJhY2tlbmQuaXN0ZW5pdGguY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqOuVa24VnIMsb+6O25RKnf8 +v3D5gH7DVJwiKkrH9ZB+Tloe3NbVFDIJ4DeDhqdodOvBu2GF9e9evYHDzOtSrNO6 +EIXTKZMzdhTF/bwXddkRf1u5g3LtaFVDw2YuSAlQRGLCjTwhKG6mVgSWeXV6WFH7 +DRsgZzNzu0e1hU8yh1ruAxawcmy1PQhn1d6D9keOr8EMLSBd0ZXP2cZzVuafs8U5 +EqJqqM9TbddmmquUHy4Vo3ahckYL1X2EWlZcVoEDsWf97TSq37eSwbuc9NpDWNhG +tA9CxR34o6RfYw3QnDcGSImXTSR6kpbWnkyxannDrYDBZ6S2s8oKxu+B6v7zXQID +AQABo4ICaTCCAmUwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMB +BggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRb28Y1YTEYATwpMqBQ +GEdZkRWGTTAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86jsoTBvBggrBgEF +BQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5sZXRzZW5j +cnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5j +cnlwdC5vcmcvMB8GA1UdEQQYMBaCFGJhY2tlbmQuaXN0ZW5pdGguY29tMEwGA1Ud +IARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0 +dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDw +AHUAsh4FzIuizYogTodm+Su5iiUgZ2va+nDnsklTLe+LkF4AAAFvceYJxwAABAMA +RjBEAiBXikn3CyBMR1C2UWYT2kq8FtCOCAIxywmVgVSZKTs90gIgL7uSRZpAUmEu +ED9dNA5YqUNPnJX9i1bbB+pvahw8zQgAdwBvU3asMfAxGdiZAKRRFf93FRwR2QLB +ACkGjbIImjfZEwAAAW9x5gqGAAAEAwBIMEYCIQCoHnA5EtDHnrS2ue5Hp23qi12N +gyoUFVNqPhIw5vRdnQIhAI4I3ytUxgqGYS03eYiGrLMo/5gWQ4x4kcTv1hrFxlv0 +MA0GCSqGSIb3DQEBCwUAA4IBAQAGvI8OylkstBjNFqWyBxBBN3L767watWJer51k +jLlCKb5ZugkxOSRFxoxLcTanbkCnYSPXFrWYZk6L2aioDatvIs1PHhlxGdbdFZgQ +Dxt7JTfBtYV2QkNeLWb4jW+2kWOxBVBn6ZmbssYwf2lwmkFSFxcpIclLnViFz53+ +NjoCc/DrMFFrwwB9MkKvRF4LVWOHqP9X4ljnImve4LE5abr3HrjuXte6Vr9+fFGx +xvonucEydAHFVufLFI9852hjka6b4FTfLyIllMTFjc+xSdrunlJvmGg1lFchzoWM +3nYBz6dTyaZkrSo1wpiV2ieHJfy2NNOsJHAlwR4v8fM8COvF +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow +SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT +GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF +q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8 +SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0 +Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA +a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj +/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T +AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG +CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv +bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k +c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw +VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC +ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz +MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu +Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF +AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo +uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/ +wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu +X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG +PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 +KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== +-----END CERTIFICATE----- diff --git a/site/greenlock.d/live/backend.istenith.com/cert.pem b/site/greenlock.d/live/backend.istenith.com/cert.pem new file mode 100644 index 0000000..a181853 --- /dev/null +++ b/site/greenlock.d/live/backend.istenith.com/cert.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFYTCCBEmgAwIBAgISA4kIFL92u9nsl1l6BSiquTAvMA0GCSqGSIb3DQEBCwUA +MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD +ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDAxMDYwMzUzNDNaFw0y +MDA0MDUwMzUzNDNaMB8xHTAbBgNVBAMTFGJhY2tlbmQuaXN0ZW5pdGguY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqOuVa24VnIMsb+6O25RKnf8 +v3D5gH7DVJwiKkrH9ZB+Tloe3NbVFDIJ4DeDhqdodOvBu2GF9e9evYHDzOtSrNO6 +EIXTKZMzdhTF/bwXddkRf1u5g3LtaFVDw2YuSAlQRGLCjTwhKG6mVgSWeXV6WFH7 +DRsgZzNzu0e1hU8yh1ruAxawcmy1PQhn1d6D9keOr8EMLSBd0ZXP2cZzVuafs8U5 +EqJqqM9TbddmmquUHy4Vo3ahckYL1X2EWlZcVoEDsWf97TSq37eSwbuc9NpDWNhG +tA9CxR34o6RfYw3QnDcGSImXTSR6kpbWnkyxannDrYDBZ6S2s8oKxu+B6v7zXQID +AQABo4ICajCCAmYwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMB +BggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRb28Y1YTEYATwpMqBQ +GEdZkRWGTTAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86jsoTBvBggrBgEF +BQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5sZXRzZW5j +cnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5j +cnlwdC5vcmcvMB8GA1UdEQQYMBaCFGJhY2tlbmQuaXN0ZW5pdGguY29tMEwGA1Ud +IARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0 +dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDx +AHYAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVgAAAFveTOeZwAABAMA +RzBFAiBxn7xe9PojuMhO9u+YgEcHuYNEENniBGMhLCL82loVmAIhAPrE9jb1sLW/ +mPQikDKcJNp7ethNr50sbSuNVPk8EPBFAHcAsh4FzIuizYogTodm+Su5iiUgZ2va ++nDnsklTLe+LkF4AAAFveTOeYAAABAMASDBGAiEA7iJ3rXy2eBFJ4TlNFv6ZyswM +CbAYcYwYSwL5i8uGrjQCIQCR+F1gSx6VaK1IfRjbQYV+YEhlzz5ctzRS6+zjSLEq +LjANBgkqhkiG9w0BAQsFAAOCAQEAWXQ8/9P1cCooiJKP17OuH06k3p2tEEPRvkQn +7dVpew1qgsWsdR3bio/Bsa36EiycTslBBWIM0UXo/9MO6FlfBmv67wYbMrvM2QhF +vD9/qyyVCZ9zCkC24BbNRWncmNT1OfSV2twz3OWJjDoIM551zlZNYAB+Z5/rqRVk +QwkmcT3lmfCcjFTBJ/ZrKFD+dwJUovxR5neydMv4v8pws8Chxh2RUNDlJ+FR7881 +xtW91xsfqB9bFXy9a+j5TBYYlGQEvY7U7DMPpRS1yVjMUyQnA9+7sZRzQLkk96qr +yfZq92R5uacTofGXfIppXtA3xQyNOtEpbgi3OToTFSpNofpAoQ== +-----END CERTIFICATE----- diff --git a/site/greenlock.d/live/backend.istenith.com/cert.pem.bak b/site/greenlock.d/live/backend.istenith.com/cert.pem.bak new file mode 100644 index 0000000..012ef6f --- /dev/null +++ b/site/greenlock.d/live/backend.istenith.com/cert.pem.bak @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFYDCCBEigAwIBAgISA67snWGxWmE7bvDcG7SWtfFWMA0GCSqGSIb3DQEBCwUA +MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD +ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDAxMDQxNzUxMzhaFw0y +MDA0MDMxNzUxMzhaMB8xHTAbBgNVBAMTFGJhY2tlbmQuaXN0ZW5pdGguY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqOuVa24VnIMsb+6O25RKnf8 +v3D5gH7DVJwiKkrH9ZB+Tloe3NbVFDIJ4DeDhqdodOvBu2GF9e9evYHDzOtSrNO6 +EIXTKZMzdhTF/bwXddkRf1u5g3LtaFVDw2YuSAlQRGLCjTwhKG6mVgSWeXV6WFH7 +DRsgZzNzu0e1hU8yh1ruAxawcmy1PQhn1d6D9keOr8EMLSBd0ZXP2cZzVuafs8U5 +EqJqqM9TbddmmquUHy4Vo3ahckYL1X2EWlZcVoEDsWf97TSq37eSwbuc9NpDWNhG +tA9CxR34o6RfYw3QnDcGSImXTSR6kpbWnkyxannDrYDBZ6S2s8oKxu+B6v7zXQID +AQABo4ICaTCCAmUwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMB +BggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRb28Y1YTEYATwpMqBQ +GEdZkRWGTTAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86jsoTBvBggrBgEF +BQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5sZXRzZW5j +cnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5j +cnlwdC5vcmcvMB8GA1UdEQQYMBaCFGJhY2tlbmQuaXN0ZW5pdGguY29tMEwGA1Ud +IARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0 +dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDw +AHUAsh4FzIuizYogTodm+Su5iiUgZ2va+nDnsklTLe+LkF4AAAFvceYJxwAABAMA +RjBEAiBXikn3CyBMR1C2UWYT2kq8FtCOCAIxywmVgVSZKTs90gIgL7uSRZpAUmEu +ED9dNA5YqUNPnJX9i1bbB+pvahw8zQgAdwBvU3asMfAxGdiZAKRRFf93FRwR2QLB +ACkGjbIImjfZEwAAAW9x5gqGAAAEAwBIMEYCIQCoHnA5EtDHnrS2ue5Hp23qi12N +gyoUFVNqPhIw5vRdnQIhAI4I3ytUxgqGYS03eYiGrLMo/5gWQ4x4kcTv1hrFxlv0 +MA0GCSqGSIb3DQEBCwUAA4IBAQAGvI8OylkstBjNFqWyBxBBN3L767watWJer51k +jLlCKb5ZugkxOSRFxoxLcTanbkCnYSPXFrWYZk6L2aioDatvIs1PHhlxGdbdFZgQ +Dxt7JTfBtYV2QkNeLWb4jW+2kWOxBVBn6ZmbssYwf2lwmkFSFxcpIclLnViFz53+ +NjoCc/DrMFFrwwB9MkKvRF4LVWOHqP9X4ljnImve4LE5abr3HrjuXte6Vr9+fFGx +xvonucEydAHFVufLFI9852hjka6b4FTfLyIllMTFjc+xSdrunlJvmGg1lFchzoWM +3nYBz6dTyaZkrSo1wpiV2ieHJfy2NNOsJHAlwR4v8fM8COvF +-----END CERTIFICATE----- diff --git a/site/greenlock.d/live/backend.istenith.com/chain.pem b/site/greenlock.d/live/backend.istenith.com/chain.pem new file mode 100644 index 0000000..0002462 --- /dev/null +++ b/site/greenlock.d/live/backend.istenith.com/chain.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow +SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT +GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF +q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8 +SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0 +Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA +a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj +/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T +AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG +CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv +bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k +c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw +VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC +ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz +MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu +Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF +AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo +uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/ +wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu +X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG +PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 +KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== +-----END CERTIFICATE----- diff --git a/site/greenlock.d/live/backend.istenith.com/chain.pem.bak b/site/greenlock.d/live/backend.istenith.com/chain.pem.bak new file mode 100644 index 0000000..0002462 --- /dev/null +++ b/site/greenlock.d/live/backend.istenith.com/chain.pem.bak @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow +SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT +GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF +q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8 +SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0 +Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA +a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj +/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T +AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG +CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv +bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k +c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw +VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC +ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz +MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu +Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF +AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo +uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/ +wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu +X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG +PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 +KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== +-----END CERTIFICATE----- diff --git a/site/greenlock.d/live/backend.istenith.com/fullchain.pem b/site/greenlock.d/live/backend.istenith.com/fullchain.pem new file mode 100644 index 0000000..c302c1b --- /dev/null +++ b/site/greenlock.d/live/backend.istenith.com/fullchain.pem @@ -0,0 +1,59 @@ +-----BEGIN CERTIFICATE----- +MIIFYTCCBEmgAwIBAgISA4kIFL92u9nsl1l6BSiquTAvMA0GCSqGSIb3DQEBCwUA +MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD +ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDAxMDYwMzUzNDNaFw0y +MDA0MDUwMzUzNDNaMB8xHTAbBgNVBAMTFGJhY2tlbmQuaXN0ZW5pdGguY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqOuVa24VnIMsb+6O25RKnf8 +v3D5gH7DVJwiKkrH9ZB+Tloe3NbVFDIJ4DeDhqdodOvBu2GF9e9evYHDzOtSrNO6 +EIXTKZMzdhTF/bwXddkRf1u5g3LtaFVDw2YuSAlQRGLCjTwhKG6mVgSWeXV6WFH7 +DRsgZzNzu0e1hU8yh1ruAxawcmy1PQhn1d6D9keOr8EMLSBd0ZXP2cZzVuafs8U5 +EqJqqM9TbddmmquUHy4Vo3ahckYL1X2EWlZcVoEDsWf97TSq37eSwbuc9NpDWNhG +tA9CxR34o6RfYw3QnDcGSImXTSR6kpbWnkyxannDrYDBZ6S2s8oKxu+B6v7zXQID +AQABo4ICajCCAmYwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMB +BggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRb28Y1YTEYATwpMqBQ +GEdZkRWGTTAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86jsoTBvBggrBgEF +BQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5sZXRzZW5j +cnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5j +cnlwdC5vcmcvMB8GA1UdEQQYMBaCFGJhY2tlbmQuaXN0ZW5pdGguY29tMEwGA1Ud +IARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0 +dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDx +AHYAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVgAAAFveTOeZwAABAMA +RzBFAiBxn7xe9PojuMhO9u+YgEcHuYNEENniBGMhLCL82loVmAIhAPrE9jb1sLW/ +mPQikDKcJNp7ethNr50sbSuNVPk8EPBFAHcAsh4FzIuizYogTodm+Su5iiUgZ2va ++nDnsklTLe+LkF4AAAFveTOeYAAABAMASDBGAiEA7iJ3rXy2eBFJ4TlNFv6ZyswM +CbAYcYwYSwL5i8uGrjQCIQCR+F1gSx6VaK1IfRjbQYV+YEhlzz5ctzRS6+zjSLEq +LjANBgkqhkiG9w0BAQsFAAOCAQEAWXQ8/9P1cCooiJKP17OuH06k3p2tEEPRvkQn +7dVpew1qgsWsdR3bio/Bsa36EiycTslBBWIM0UXo/9MO6FlfBmv67wYbMrvM2QhF +vD9/qyyVCZ9zCkC24BbNRWncmNT1OfSV2twz3OWJjDoIM551zlZNYAB+Z5/rqRVk +QwkmcT3lmfCcjFTBJ/ZrKFD+dwJUovxR5neydMv4v8pws8Chxh2RUNDlJ+FR7881 +xtW91xsfqB9bFXy9a+j5TBYYlGQEvY7U7DMPpRS1yVjMUyQnA9+7sZRzQLkk96qr +yfZq92R5uacTofGXfIppXtA3xQyNOtEpbgi3OToTFSpNofpAoQ== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow +SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT +GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF +q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8 +SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0 +Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA +a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj +/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T +AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG +CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv +bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k +c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw +VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC +ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz +MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu +Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF +AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo +uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/ +wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu +X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG +PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 +KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== +-----END CERTIFICATE----- diff --git a/site/greenlock.d/live/backend.istenith.com/fullchain.pem.bak b/site/greenlock.d/live/backend.istenith.com/fullchain.pem.bak new file mode 100644 index 0000000..38c5faa --- /dev/null +++ b/site/greenlock.d/live/backend.istenith.com/fullchain.pem.bak @@ -0,0 +1,59 @@ +-----BEGIN CERTIFICATE----- +MIIFYDCCBEigAwIBAgISA67snWGxWmE7bvDcG7SWtfFWMA0GCSqGSIb3DQEBCwUA +MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD +ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDAxMDQxNzUxMzhaFw0y +MDA0MDMxNzUxMzhaMB8xHTAbBgNVBAMTFGJhY2tlbmQuaXN0ZW5pdGguY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqOuVa24VnIMsb+6O25RKnf8 +v3D5gH7DVJwiKkrH9ZB+Tloe3NbVFDIJ4DeDhqdodOvBu2GF9e9evYHDzOtSrNO6 +EIXTKZMzdhTF/bwXddkRf1u5g3LtaFVDw2YuSAlQRGLCjTwhKG6mVgSWeXV6WFH7 +DRsgZzNzu0e1hU8yh1ruAxawcmy1PQhn1d6D9keOr8EMLSBd0ZXP2cZzVuafs8U5 +EqJqqM9TbddmmquUHy4Vo3ahckYL1X2EWlZcVoEDsWf97TSq37eSwbuc9NpDWNhG +tA9CxR34o6RfYw3QnDcGSImXTSR6kpbWnkyxannDrYDBZ6S2s8oKxu+B6v7zXQID +AQABo4ICaTCCAmUwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMB +BggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRb28Y1YTEYATwpMqBQ +GEdZkRWGTTAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86jsoTBvBggrBgEF +BQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5sZXRzZW5j +cnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5j +cnlwdC5vcmcvMB8GA1UdEQQYMBaCFGJhY2tlbmQuaXN0ZW5pdGguY29tMEwGA1Ud +IARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0 +dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDw +AHUAsh4FzIuizYogTodm+Su5iiUgZ2va+nDnsklTLe+LkF4AAAFvceYJxwAABAMA +RjBEAiBXikn3CyBMR1C2UWYT2kq8FtCOCAIxywmVgVSZKTs90gIgL7uSRZpAUmEu +ED9dNA5YqUNPnJX9i1bbB+pvahw8zQgAdwBvU3asMfAxGdiZAKRRFf93FRwR2QLB +ACkGjbIImjfZEwAAAW9x5gqGAAAEAwBIMEYCIQCoHnA5EtDHnrS2ue5Hp23qi12N +gyoUFVNqPhIw5vRdnQIhAI4I3ytUxgqGYS03eYiGrLMo/5gWQ4x4kcTv1hrFxlv0 +MA0GCSqGSIb3DQEBCwUAA4IBAQAGvI8OylkstBjNFqWyBxBBN3L767watWJer51k +jLlCKb5ZugkxOSRFxoxLcTanbkCnYSPXFrWYZk6L2aioDatvIs1PHhlxGdbdFZgQ +Dxt7JTfBtYV2QkNeLWb4jW+2kWOxBVBn6ZmbssYwf2lwmkFSFxcpIclLnViFz53+ +NjoCc/DrMFFrwwB9MkKvRF4LVWOHqP9X4ljnImve4LE5abr3HrjuXte6Vr9+fFGx +xvonucEydAHFVufLFI9852hjka6b4FTfLyIllMTFjc+xSdrunlJvmGg1lFchzoWM +3nYBz6dTyaZkrSo1wpiV2ieHJfy2NNOsJHAlwR4v8fM8COvF +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow +SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT +GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF +q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8 +SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0 +Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA +a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj +/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T +AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG +CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv +bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k +c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw +VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC +ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz +MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu +Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF +AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo +uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/ +wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu +X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG +PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 +KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== +-----END CERTIFICATE----- diff --git a/site/greenlock.d/live/backend.istenith.com/privkey.pem b/site/greenlock.d/live/backend.istenith.com/privkey.pem new file mode 100644 index 0000000..12acabf --- /dev/null +++ b/site/greenlock.d/live/backend.istenith.com/privkey.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAzqOuVa24VnIMsb+6O25RKnf8v3D5gH7DVJwiKkrH9ZB+Tloe +3NbVFDIJ4DeDhqdodOvBu2GF9e9evYHDzOtSrNO6EIXTKZMzdhTF/bwXddkRf1u5 +g3LtaFVDw2YuSAlQRGLCjTwhKG6mVgSWeXV6WFH7DRsgZzNzu0e1hU8yh1ruAxaw +cmy1PQhn1d6D9keOr8EMLSBd0ZXP2cZzVuafs8U5EqJqqM9TbddmmquUHy4Vo3ah +ckYL1X2EWlZcVoEDsWf97TSq37eSwbuc9NpDWNhGtA9CxR34o6RfYw3QnDcGSImX +TSR6kpbWnkyxannDrYDBZ6S2s8oKxu+B6v7zXQIDAQABAoIBAD44v0gBVV6CXRww +1U0L/NjC5JJo3Fg602po0UjW17sz1TSWonBxKBw6rQqc7LfhNOzwCJf517Kkb2y0 +5FaSDYUJBB/xjBIaxwYpXyz2NEJCKKim4Aea1a3y7sKpxAng9BCDhH2uu3VHTELe +gsjz/PEXTnc10d4BejnMb/ZCUL68sick5dQ7nt1EreOJ96ajHhjRP5W4dduxs7SB +3iy+nZ43wIVfeT8RyHCKon1MC4CLapfdfRha3pm3PwAifjRazMesbCrYu/gakHQS +EZIIgi6OicobPZSnWoSAW1aK/+4YIUsdN8YLNvmVbVCWJcsaqhkpaZM3bD+1lnIZ +GFvoxGkCgYEA5phtIv1V6cd0qL5ExlWfQUjKIXXsP1y2p7jeK3AqqpjgAngdZKrZ +rwGEiG0Fw1uR2S/2QCnt5iE2ov3qaHjAhu6kq11cCgEsvDjInKgcm7e1F+25/hlO +jw7kcN45h5e7TjsFafrZy060zJOvyLTYEwxxP5Mbn4dctN7cwHdGJEsCgYEA5Wec +9OK9c5+qfDqaMTsf2QNyniOgoHB3fPC0+oZxGekJgDiaXkAHPUmLGnm82Caa0gIE +RbR73HrI2xchBNLDnKrGLbQUa9Ojc+IxiI/cFeh6HsId2of+b4Y8L0rCgbggS+XJ +rB/kwlmykvQS2bJvNhEfqU9562pcLxIi3JPabfcCgYEAlfxAyEhlECjmjTcsvqBE +dI8mwfrUjiX8vDz3bOOJLOtAkPqVi7vA2R6wmJfo7rdptw2GKxfaoBusUPm89PTN +rTYdr0SLMAqxkT+R5KtH6FTmGklK96Z4PX6fQXaZjsM3Vlv3WoaKEL4BxSquZGqU +PFeUdZh2mB3QQ+jNRvaNjd8CgYAtiyODDpzUHqfHIA9KpNVOzTttH9+c2pcuS89y +SUyc+0Hyncov2gBV74rZR7/xHcDw3ouglxNcE1ha/r2Eap+BM/pCSpUfTxYNRKPW +29Cy3MOZ5antn8Aovfqm3O2+uSJYTxd5v5834nzsZd50L9OaZU3m3Ct1TFle0vfu +2L+twwKBgQDUlYeJYL4Xg1z2xtgyV6lQDo1EY7HhB6utruNrtA5gvaQfHVtBtHxY +bslEuxF+lwEVQVyRGLHo1WDSbMa21olRXNCrnEqFewcjncRoUSNc2ApDkowXoPRf +YZHEuFZHWdmrovbENcrMT/kw3CXWNyN6o5GnazCYvdZ0JKgIMincIA== +-----END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/site/greenlock.json b/site/greenlock.json index f72879f..da08ea4 100644 --- a/site/greenlock.json +++ b/site/greenlock.json @@ -22,7 +22,7 @@ "altnames": [ "backend.istenith.com" ], - "renewAt": 1 + "renewAt": 1582092153555 } ] } \ No newline at end of file diff --git a/site/greenlock.json.bak b/site/greenlock.json.bak index 66f1aa9..da08ea4 100644 --- a/site/greenlock.json.bak +++ b/site/greenlock.json.bak @@ -16,5 +16,13 @@ "subscriberEmail": "abhayonlyone@gmail.com", "agreeToTerms": true }, - "sites": [] + "sites": [ + { + "subject": "backend.istenith.com", + "altnames": [ + "backend.istenith.com" + ], + "renewAt": 1582092153555 + } + ] } \ No newline at end of file diff --git a/site/package-lock.json b/site/package-lock.json index 474f272..9549f52 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -15,7 +15,7 @@ "@greenlock/manager": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@greenlock/manager/-/manager-3.1.0.tgz", - "integrity": "sha512-PBy5CMK+j4oD7sj7hF5qE+xKEOSiiuL2hHd5X5ttEbtnTSDKjNeqbrR5k2ZddwVNdjOVeBIeuqlm81IFZ+Ftew==", + "integrity": "sha1-D1QP6U0qsCP+WuoTX7AsAlq0fJ4=", "requires": { "greenlock-manager-fs": "^3.1.0" } @@ -23,7 +23,7 @@ "@hapi/boom": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-8.0.1.tgz", - "integrity": "sha512-SnBM2GzEYEA6AGFKXBqNLWXR3uNBui0bkmklYXX1gYtevVhDTy2uakwkSauxvIWMtlANGRhzChYg95If3FWCwA==", + "integrity": "sha1-E/Hy8qOr+weHx5414jjIr/aqFmE=", "requires": { "@hapi/hoek": "8.x.x" } @@ -31,7 +31,7 @@ "@hapi/hoek": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz", - "integrity": "sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw==" + "integrity": "sha1-L5zjAciJjhwySLCoVkaWsk0amlo=" }, "@ladjs/i18n": { "version": "2.0.0", @@ -54,7 +54,7 @@ "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { "ms": "^2.1.1" } @@ -67,14 +67,14 @@ "qs": { "version": "6.9.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", - "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==" + "integrity": "sha1-IAgsZct4IjY1qxqerKiHWim/jsk=" } } }, "@root/acme": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/@root/acme/-/acme-3.0.8.tgz", - "integrity": "sha512-VmBvLvWdCDkolkanI9Dzm1ouSWPaAa2eCCwcDZcVQbWoNiUIOqbbd57fcMA/gZxLyuJPStD2WXFuEuSMPDxcww==", + "integrity": "sha1-erFQG36eeqJcWfSDOGL9B42POcQ=", "requires": { "@root/encoding": "^1.0.1", "@root/keypairs": "^0.9.0", @@ -86,7 +86,7 @@ "@root/asn1": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@root/asn1/-/asn1-1.0.0.tgz", - "integrity": "sha512-0lfZNuOULKJDJmdIkP8V9RnbV3XaK6PAHD3swnFy4tZwtlMDzLKoM/dfNad7ut8Hu3r91wy9uK0WA/9zym5mig==", + "integrity": "sha1-h0jPe0SXMk3pGhVLYGyh3f6Xxdc=", "requires": { "@root/encoding": "^1.0.1" } @@ -94,7 +94,7 @@ "@root/csr": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@root/csr/-/csr-0.8.1.tgz", - "integrity": "sha512-hKl0VuE549TK6SnS2Yn9nRvKbFZXn/oAg+dZJU/tlKl/f/0yRXeuUzf8akg3JjtJq+9E592zDqeXZ7yyrg8fSQ==", + "integrity": "sha1-l6G4ITMaTtWJXu4zvttq1Jze904=", "requires": { "@root/asn1": "^1.0.0", "@root/pem": "^1.0.4", @@ -104,12 +104,12 @@ "@root/encoding": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@root/encoding/-/encoding-1.0.1.tgz", - "integrity": "sha512-OaEub02ufoU038gy6bsNHQOjIn8nUjGiLcaRmJ40IUykneJkIW5fxDqKxQx48cszuNflYldsJLPPXCrGfHs8yQ==" + "integrity": "sha1-YM88y54iOSJrMOg5THpKJYoWHD4=" }, "@root/greenlock": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/@root/greenlock/-/greenlock-3.1.5.tgz", - "integrity": "sha512-qJ7OdHj6yQz8zdJCqurPtrUGF3j/L+Tz4cWFYRGN6+owCaAWhjc2rhafC6y/6asisBJWoZyGDypbaSfKh5097w==", + "integrity": "sha1-uxd35ks9sCKp7bFixaaUAAN9G60=", "requires": { "@greenlock/manager": "^3.0.0", "@root/acme": "^3.0.8", @@ -127,7 +127,7 @@ "@root/greenlock-express": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@root/greenlock-express/-/greenlock-express-3.1.1.tgz", - "integrity": "sha512-avZvBEPeLfkauX09v8Lou/CVao6s9jN8fwHkv8ai1MM27P2MYq4ULIvX5YOQIHbZbygSDcVDIaRzTOrsrImFeg==", + "integrity": "sha1-qfBJW0xyYiTjFCXnHaDvTxO6eVo=", "requires": { "@root/greenlock": "^3.1.3", "redirect-https": "^1.1.5" @@ -136,7 +136,7 @@ "@root/keypairs": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@root/keypairs/-/keypairs-0.9.0.tgz", - "integrity": "sha512-NXE2L9Gv7r3iC4kB/gTPZE1vO9Ox/p14zDzAJ5cGpTpytbWOlWF7QoHSJbtVX4H7mRG/Hp7HR3jWdWdb2xaaXg==", + "integrity": "sha1-A0Coqc2GWprcOtXdH5giGnyzEN8=", "requires": { "@root/encoding": "^1.0.1", "@root/pem": "^1.0.4", @@ -146,22 +146,22 @@ "@root/mkdirp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@root/mkdirp/-/mkdirp-1.0.0.tgz", - "integrity": "sha512-hxGAYUx5029VggfG+U9naAhQkoMSXtOeXtbql97m3Hi6/sQSRL/4khKZPyOF6w11glyCOU38WCNLu9nUcSjOfA==" + "integrity": "sha1-8gDilWjXEdM1cVGvDSZI5+ryG28=" }, "@root/pem": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@root/pem/-/pem-1.0.4.tgz", - "integrity": "sha512-rEUDiUsHtild8GfIjFE9wXtcVxeS+ehCJQBwbQQ3IVfORKHK93CFnRtkr69R75lZFjcmKYVc+AXDB+AeRFOULA==" + "integrity": "sha1-nsw0GcCgXJK47L/gpB9HSXD4xy8=" }, "@root/request": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@root/request/-/request-1.4.2.tgz", - "integrity": "sha512-J8FM4+SJuc7WRC+Jz17m+VT2lgI7HtatHhxN1F2ck5aIKUAxJEaR4u/gLBsgT60mVHevKCjKN0O8115UtJjwLw==" + "integrity": "sha1-pR6Txk64ubDfBvNGd+Y9gjnEMRw=" }, "@root/x509": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@root/x509/-/x509-0.7.2.tgz", - "integrity": "sha512-ENq3LGYORK5NiMFHEVeNMt+fTXaC7DTS6sQXoqV+dFdfT0vmiL5cDLjaXQhaklJQq0NiwicZegzJRl1ZOTp3WQ==", + "integrity": "sha1-Qiyn5GwJ9d3zr4YwY4N3jrAErOE=", "requires": { "@root/asn1": "^1.0.0", "@root/encoding": "^1.0.1" @@ -170,17 +170,17 @@ "@sindresorhus/is": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-1.2.0.tgz", - "integrity": "sha512-mwhXGkRV5dlvQc4EgPDxDxO6WuMBVymGFd1CA+2Y+z5dG9MNspoQ+AWjl/Ld1MnpCL8AKbosZlDVohqcIwuWsw==" + "integrity": "sha1-Y842OMuFIx83BBZMkKGO+BbaP7c=" }, "@types/babel-types": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", - "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==" + "integrity": "sha1-Zn6xZA6AOUNgKAVXN9K5mG7jNuM=" }, "@types/babylon": { "version": "6.16.5", "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", - "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", + "integrity": "sha1-HFZB22nrjN83jt0ltL53VL7rSLQ=", "requires": { "@types/babel-types": "*" } @@ -188,17 +188,17 @@ "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=" }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", "requires": { "mime-types": "~2.1.24", "negotiator": "0.6.2" @@ -207,7 +207,7 @@ "acme-http-01-standalone": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/acme-http-01-standalone/-/acme-http-01-standalone-3.0.5.tgz", - "integrity": "sha512-W4GfK+39GZ+u0mvxRVUcVFCG6gposfzEnSBF20T/NUwWAKG59wQT1dUbS1NixRIAsRuhpGc4Jx659cErFQH0Pg==" + "integrity": "sha1-OFpT4tpgyvxnn+fZzzf2Yl1ELQM=" }, "acorn": { "version": "3.3.0", @@ -232,7 +232,7 @@ "ajv": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "integrity": "sha1-086gTWsBeyiUrWkED+yLYj60vVI=", "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", @@ -267,7 +267,7 @@ "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "requires": { "color-convert": "^1.9.0" } @@ -275,7 +275,7 @@ "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -285,12 +285,12 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" }, "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==", + "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -328,7 +328,7 @@ "array-differ": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==" + "integrity": "sha1-PLs9DzFoEOr8xHYkc0I31q7krms=" }, "array-flatten": { "version": "1.1.1", @@ -338,12 +338,12 @@ "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=" }, "arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + "integrity": "sha1-yWVekzHgq81YjSp8rX6ZVvZnAfo=" }, "asap": { "version": "2.0.6", @@ -353,7 +353,7 @@ "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", "requires": { "safer-buffer": "~2.1.0" } @@ -366,7 +366,7 @@ "async": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz", - "integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==" + "integrity": "sha1-QrOxKuG3SSe1IX2MABa6r2JGN3I=" }, "asynckit": { "version": "0.4.0", @@ -381,7 +381,7 @@ "aws4": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", - "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==" + "integrity": "sha1-JDkOatYThrCnRyZXVNKhchnehiw=" }, "babel-runtime": { "version": "6.26.0", @@ -395,7 +395,7 @@ "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" } } }, @@ -413,7 +413,7 @@ "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=" }, "balanced-match": { "version": "1.0.0", @@ -423,7 +423,7 @@ "bcrypt": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.7.tgz", - "integrity": "sha512-K5UglF9VQvBMHl/1elNyyFvAfOY9Bj+rpKrCSR9sFwcW8FywAYJSRwTURNej5TaAK2TEJkcJ6r6lh1YPmspx5Q==", + "integrity": "sha1-EYfSnfLhzeRCaBUrE+PUplWnx94=", "requires": { "nan": "2.14.0", "node-pre-gyp": "0.13.0" @@ -437,10 +437,15 @@ "tweetnacl": "^0.14.3" } }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, "binary-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "integrity": "sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=", "dev": true }, "bluebird": { @@ -451,7 +456,7 @@ "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", "requires": { "bytes": "3.1.0", "content-type": "~1.0.4", @@ -478,7 +483,7 @@ "boxen": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "integrity": "sha1-VcbDmouljZxhrSLNh3Uy3rZlogs=", "dev": true, "requires": { "ansi-align": "^2.0.0", @@ -501,7 +506,7 @@ "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -510,7 +515,7 @@ "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", "dev": true, "requires": { "fill-range": "^7.0.1" @@ -519,12 +524,17 @@ "bson": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz", - "integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg==" + "integrity": "sha1-qoLLkfmkU6qgYNYgnQZ1EUqBVNM=" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" }, "camelcase": { "version": "1.2.1", @@ -534,7 +544,7 @@ "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "integrity": "sha1-psC74fOPOqC5Ijjstv9Cw0TUE10=", "dev": true }, "caseless": { @@ -554,12 +564,12 @@ "cert-info": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/cert-info/-/cert-info-1.5.1.tgz", - "integrity": "sha512-eoQC/yAgW3gKTKxjzyClvi+UzuY97YCjcl+lSqbsGIy7HeGaWxCPOQFivhUYm27hgsBMhsJJFya3kGvK6PMIcQ==" + "integrity": "sha1-kAeMnqLRirqopO2QaKRjIOzw1Rk=" }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -600,7 +610,7 @@ "dom-serializer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "integrity": "sha1-HsQFnihLq+027sKUHUqXChic58A=", "requires": { "domelementtype": "^1.3.0", "entities": "^1.1.1" @@ -627,18 +637,18 @@ "chownr": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + "integrity": "sha1-Qtg31SOWiNVfMDADpQgjD6ZycUI=" }, "ci-info": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=", "dev": true }, "clean-css": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "integrity": "sha1-LUEe92uFabbQyEBo2r6FsKpeXBc=", "requires": { "source-map": "~0.6.0" } @@ -667,7 +677,7 @@ "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "requires": { "color-name": "1.1.3" } @@ -680,7 +690,7 @@ "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", "requires": { "delayed-stream": "~1.0.0" } @@ -688,7 +698,7 @@ "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" }, "concat-map": { "version": "0.0.1", @@ -698,7 +708,7 @@ "configstore": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "integrity": "sha1-xvJd767vJt8S3TNBSwAf6BpUP48=", "dev": true, "requires": { "dot-prop": "^4.1.0", @@ -717,7 +727,7 @@ "consolidate": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", - "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", "requires": { "bluebird": "^3.1.1" } @@ -725,7 +735,7 @@ "constantinople": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", - "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", + "integrity": "sha1-1F7XJPV9PRBQABen06iJwTga5kc=", "requires": { "@types/babel-types": "^7.0.0", "@types/babylon": "^6.16.2", @@ -736,7 +746,7 @@ "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", "requires": { "safe-buffer": "5.1.2" } @@ -744,12 +754,12 @@ "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==" + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=" }, "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=" }, "cookie-signature": { "version": "1.0.6", @@ -759,7 +769,7 @@ "core-js": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=" }, "core-util-is": { "version": "1.0.2", @@ -787,7 +797,7 @@ "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -827,7 +837,7 @@ "css-what": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=" }, "dashdash": { "version": "1.14.1", @@ -840,7 +850,7 @@ "datauri": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/datauri/-/datauri-2.0.0.tgz", - "integrity": "sha512-zS2HSf9pI5XPlNZgIqJg/wCJpecgU/HA6E/uv2EfaWnW1EiTGLfy/EexTIsC9c99yoCOTXlqeeWk4FkCSuO3/g==", + "integrity": "sha1-/w7iNymTWmvMgfMBYhvtPmkr88c=", "requires": { "image-size": "^0.7.3", "mimer": "^1.0.0" @@ -867,7 +877,7 @@ "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==" + "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=" }, "delayed-stream": { "version": "1.0.0", @@ -902,7 +912,7 @@ "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", "requires": { "domelementtype": "^2.0.1", "entities": "^2.0.0" @@ -911,24 +921,24 @@ "domelementtype": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=" }, "entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=" } } }, "domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=" }, "domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", "requires": { "domelementtype": "1" } @@ -936,7 +946,7 @@ "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", "requires": { "dom-serializer": "0", "domelementtype": "1" @@ -945,7 +955,7 @@ "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=", "dev": true, "requires": { "is-obj": "^1.0.0" @@ -966,6 +976,14 @@ "safer-buffer": "^2.1.0" } }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -992,7 +1010,7 @@ "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { "ms": "^2.1.1" } @@ -1012,7 +1030,7 @@ "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=" }, "escape-html": { "version": "1.0.3", @@ -1027,7 +1045,7 @@ "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=" }, "etag": { "version": "1.8.1", @@ -1065,7 +1083,7 @@ "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", "requires": { "accepts": "~1.3.7", "array-flatten": "1.1.1", @@ -1099,10 +1117,19 @@ "vary": "~1.1.2" } }, + "express-validator": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-6.3.1.tgz", + "integrity": "sha512-YQHQKP/zlUTN6d38uWwXgK3At5phK6R24pOB/ImWisMUz/U/1AC3ZXMgiZYhtH4ViYJ6UAiV0/nj8s1Qs3kmvw==", + "requires": { + "lodash": "^4.17.15", + "validator": "^11.1.0" + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" }, "extsprintf": { "version": "1.3.0", @@ -1122,7 +1149,7 @@ "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -1131,7 +1158,7 @@ "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -1150,7 +1177,7 @@ "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==", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -1170,7 +1197,7 @@ "fs-minipass": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "integrity": "sha1-zP+FcIQef+QmVpPaiJNsVa7X98c=", "requires": { "minipass": "^2.6.0" } @@ -1190,7 +1217,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" }, "gauge": { "version": "2.7.4", @@ -1243,7 +1270,7 @@ "get-paths": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/get-paths/-/get-paths-0.0.7.tgz", - "integrity": "sha512-0wdJt7C1XKQxuCgouqd+ZvLJ56FQixKoki9MrFaO4EriqzXOiH9gbukaDE1ou08S8Ns3/yDzoBAISNPqj6e6tA==", + "integrity": "sha1-FTMQhnUgd88TAWbM0jOhzb7vzzg=", "requires": { "pify": "^4.0.1" } @@ -1265,7 +1292,7 @@ "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1278,7 +1305,7 @@ "glob-parent": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "integrity": "sha1-X0wdHnSNMM1zrSlEs1d6gbCB6MI=", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -1315,13 +1342,13 @@ "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "integrity": "sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM=", "dev": true }, "greenlock-express": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/greenlock-express/-/greenlock-express-3.1.1.tgz", - "integrity": "sha512-4n5x8k6ibdtsz/+rnBaLgvm3knUZ63o9FiZzTK+zoghHSoAGWQaBLS65NVSBJmNEWxhwLChhBUCCPk0bIu7O+g==", + "integrity": "sha1-gxfVH5Ej2t0PXiVUT0z/4B/i9mk=", "requires": { "@root/greenlock": "^3.1.3", "@root/greenlock-express": "^3.1.1", @@ -1331,7 +1358,7 @@ "greenlock-manager-fs": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/greenlock-manager-fs/-/greenlock-manager-fs-3.1.1.tgz", - "integrity": "sha512-np6qdnPIOZx40PAcSQcqK1eMPWjTKxsxcgRd/OVg0ai49WC1Ds74CTrwmB84pq2n53ikbnDBQFmKEQ4AC0DK8w==", + "integrity": "sha1-iEd9q4/NGmRVAyzFV8gejNRi7Aw=", "requires": { "@root/mkdirp": "^1.0.0", "safe-replace": "^1.1.0" @@ -1340,7 +1367,7 @@ "greenlock-store-fs": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/greenlock-store-fs/-/greenlock-store-fs-3.2.2.tgz", - "integrity": "sha512-92ejLB4DyV4qv/2b6VLGF2nKfYQeIfg3o+e/1cIoYLjlIaUFdbBXkzLTRozFlHsQPZt2ALi5qYrpC9IwH7GK8A==", + "integrity": "sha1-5ATTzB+6+I3saRTqLBDUsxJW+qI=", "requires": { "@root/mkdirp": "^1.0.0", "safe-replace": "^1.1.0" @@ -1354,7 +1381,7 @@ "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==", + "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -1363,7 +1390,7 @@ "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", "requires": { "function-bind": "^1.1.1" } @@ -1381,12 +1408,12 @@ "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=" }, "html-to-text": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-5.1.1.tgz", - "integrity": "sha512-Bci6bD/JIfZSvG4s0gW/9mMKwBRoe/1RWLxUME/d6WUSZCdY7T60bssf/jFf7EYXRyqU4P5xdClVqiYU0/ypdA==", + "integrity": "sha1-LYnbe/NLx7y31UaxsiiZGhaSboc=", "requires": { "he": "^1.2.0", "htmlparser2": "^3.10.1", @@ -1397,7 +1424,7 @@ "htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", "requires": { "domelementtype": "^1.3.1", "domhandler": "^2.3.0", @@ -1410,7 +1437,7 @@ "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==", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -1432,7 +1459,7 @@ "i18n": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.8.4.tgz", - "integrity": "sha512-PvMcG+yqYWXrwgdmCpL+APCGa8lRY0tdlo2cXp9UeR3u4h1bJGqFsgybfmG/MqtL1iDmdaPPPLJebXGrZ1XoMQ==", + "integrity": "sha1-lI4e593v7xiyeFlpOI4JcycDG9A=", "requires": { "debug": "*", "make-plural": "^6.0.1", @@ -1445,12 +1472,12 @@ "i18n-locales": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/i18n-locales/-/i18n-locales-0.0.2.tgz", - "integrity": "sha512-WCaJVIfU10v0/ZNy+mG7fCUQb1o2PsM7tNf1dUg0uU9OxtygDkWRqLT9Q/X30V2XsUb6XUEPbSsdUiORfDPVQA==" + "integrity": "sha1-EuVgRvH6Jg4RZY9Kxi9gs2NHn/k=" }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -1464,7 +1491,7 @@ "ignore-walk": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "integrity": "sha1-AX4kRxhL/q3nwjjkrv3R6PlbHjc=", "requires": { "minimatch": "^3.0.4" } @@ -1472,7 +1499,7 @@ "image-size": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", - "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==" + "integrity": "sha1-Jp81fPV5fLRGg9+pl5DlTHBerQQ=" }, "import-lazy": { "version": "2.1.0", @@ -1503,17 +1530,17 @@ "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" }, "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==" + "integrity": "sha1-N9905DCg5HVQ/lSi3v4w2KzZX2U=" }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "dev": true, "requires": { "binary-extensions": "^2.0.0" @@ -1522,12 +1549,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" }, "is-ci": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", "dev": true, "requires": { "ci-info": "^1.5.0" @@ -1563,7 +1590,7 @@ "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -1588,7 +1615,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", "dev": true }, "is-obj": { @@ -1628,7 +1655,7 @@ "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "integrity": "sha1-13hIi9CkZmo76KFIK58rqv7eqLQ=", "dev": true }, "is-stream": { @@ -1675,13 +1702,37 @@ "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==" + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" }, "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=" }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -1705,7 +1756,7 @@ "juice": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/juice/-/juice-6.0.0.tgz", - "integrity": "sha512-5T3JPgXYiw6A6axsb9E09Gzq46WbfJeDirY6nMrqY55iAdqEoPDxSr1GpXqYfoyndx4ujpBPXGLzBRzbiqOOaw==", + "integrity": "sha1-zY+P5SEO8SnRhv4sQcDsFp97B7Y=", "requires": { "cheerio": "^0.22.0", "commander": "^2.15.1", @@ -1716,10 +1767,29 @@ "web-resource-inliner": "^4.3.3" } }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "kareem": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", - "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" + "integrity": "sha1-3vEtnJQQF/q/sA+HOvlenJnhvoc=" }, "kind-of": { "version": "3.2.2", @@ -1746,7 +1816,7 @@ "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" }, "lodash.assignin": { "version": "4.2.0", @@ -1778,6 +1848,36 @@ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -1786,7 +1886,12 @@ "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, "lodash.pick": { "version": "4.4.0", @@ -1821,13 +1926,13 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=", "dev": true }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -1837,7 +1942,7 @@ "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", "dev": true, "requires": { "pify": "^3.0.0" @@ -1854,12 +1959,12 @@ "make-plural": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.0.1.tgz", - "integrity": "sha512-h0uBNi4tpDkiWUyYKrJNj8Kif6q3Ba5zp/8jnfPy3pQE+4XcTj6h3eZM5SYVUyDNX9Zk69Isr/dx0I+78aJUaQ==" + "integrity": "sha1-7Tg5+sP0aeu+UFdR1I/jMZdp7fw=" }, "math-interval-parser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", - "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" + "integrity": "sha1-4izW0VoKf0wDrsVg23ZRPaYVvtQ=" }, "media-typer": { "version": "0.3.0", @@ -1869,13 +1974,13 @@ "memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "integrity": "sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU=", "optional": true }, "mensch": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", - "integrity": "sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==" + "integrity": "sha1-dw+RtGyxbqWyBO5zV2jD8MSR/s0=" }, "merge-descriptors": { "version": "1.0.1", @@ -1885,7 +1990,7 @@ "messageformat": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz", - "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", + "integrity": "sha1-3iY8SQKdXq5l1+4l4HVPV/QlrZE=", "requires": { "make-plural": "^4.3.0", "messageformat-formatters": "^2.0.1", @@ -1895,7 +2000,7 @@ "make-plural": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", - "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", + "integrity": "sha1-8j3gjv2wysLgybqfMVsN/2tMJzU=", "requires": { "minimist": "^1.2.0" } @@ -1905,12 +2010,12 @@ "messageformat-formatters": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", - "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==" + "integrity": "sha1-BJLBQCpId191HJsXwDVOkr4BKwg=" }, "messageformat-parser": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.2.tgz", - "integrity": "sha512-7dWuifeyldz7vhEuL96Kwq1fhZXBW+TUfbnHN4UCrCxoXQTYjHnR78eI66Gk9LaLLsAvzPNVJBaa66DRfFNaiA==" + "integrity": "sha1-/TTsOZEqFIaKFZXq63QkhauKs3I=" }, "methods": { "version": "1.1.2", @@ -1920,17 +2025,17 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=" }, "mime-db": { "version": "1.42.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", - "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" + "integrity": "sha1-PiUpB7THrbkGWXtLZWNics+ee6w=" }, "mime-types": { "version": "2.1.25", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", - "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "integrity": "sha1-OXctRmIfk+KoCoVsU7hqYhVqZDc=", "requires": { "mime-db": "1.42.0" } @@ -1938,12 +2043,12 @@ "mimer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mimer/-/mimer-1.0.0.tgz", - "integrity": "sha512-4ZJvCzfcwsBgPbkKXUzGoVZMWjv8IDIygkGzVc7uUYhgnK0t2LmGxxjdgH1i+pn0/KQfB5F/VKUJlfyTSOFQjg==" + "integrity": "sha1-MiUb703HpjGE2zoQgu2b46vg89s=" }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { "brace-expansion": "^1.1.7" } @@ -1956,7 +2061,7 @@ "minipass": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "integrity": "sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=", "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -1972,7 +2077,7 @@ "minizlib": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "integrity": "sha1-IpDeloGKNMKVUcio0wEha9Zahh0=", "requires": { "minipass": "^2.9.0" } @@ -1995,7 +2100,7 @@ "moment": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" }, "mongodb": { "version": "3.3.5", @@ -2036,17 +2141,17 @@ "mongoose-legacy-pluralize": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", - "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" + "integrity": "sha1-O6n5H6UHtRhtOZ+0CFS/8Y+1Y+Q=" }, "mpath": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz", - "integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw==" + "integrity": "sha1-qpIgKfyk8PZB82DnTFwbakxHB44=" }, "mquery": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", - "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", + "integrity": "sha1-4Tg6OVGFLOI+N/YZqbNQ8fs2ZOc=", "requires": { "bluebird": "3.5.1", "debug": "3.1.0", @@ -2058,7 +2163,7 @@ "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "requires": { "ms": "2.0.0" } @@ -2073,7 +2178,7 @@ "multimatch": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "integrity": "sha1-jDwPbj6ESa2grz3SnvtJGjdRkbM=", "requires": { "@types/minimatch": "^3.0.3", "array-differ": "^3.0.0", @@ -2090,7 +2195,7 @@ "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=" }, "nanoid": { "version": "2.1.7", @@ -2100,7 +2205,7 @@ "needle": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "integrity": "sha1-aDPnSXXERGQlkOFadQKIxfk5tXw=", "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -2125,17 +2230,17 @@ "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" }, "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==", + "integrity": "sha1-35q3to3WSYE3cXg45PkqM/ydqkI=", "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -2163,12 +2268,12 @@ "nodemailer": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.2.tgz", - "integrity": "sha512-g0n4nH1ONGvqYo1v72uSWvF/MRNnnq1LzmSzXb/6EPF3LFb51akOhgG3K2+aETAsJx90/Q5eFNTntu4vBCwyQQ==" + "integrity": "sha1-cUdVDjLNw3RTOAq3jSB0UzlmCQo=" }, "nodemon": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.2.tgz", - "integrity": "sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw==", + "integrity": "sha1-nH7+qvm4JZKVqX5dRYW6jwy+ULA=", "dev": true, "requires": { "chokidar": "^3.2.2", @@ -2212,13 +2317,13 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", "dev": true }, "npm-bundled": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "integrity": "sha1-Ht1XCGWpTNsbyCIHdeKUZsn7I0s=", "requires": { "npm-normalize-package-bin": "^1.0.1" } @@ -2226,12 +2331,12 @@ "npm-normalize-package-bin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + "integrity": "sha1-bnmkHyP9I1wGIyGCKNp9nCO49uI=" }, "npm-packlist": { "version": "1.4.7", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz", - "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==", + "integrity": "sha1-npVDZaBrgLGBEeqQCUWvT4jtSEg=", "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -2249,7 +2354,7 @@ "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -2260,7 +2365,7 @@ "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", "requires": { "boolbase": "~1.0.0" } @@ -2273,7 +2378,7 @@ "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" }, "object-assign": { "version": "4.1.1", @@ -2299,7 +2404,7 @@ "open": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", "requires": { "is-wsl": "^1.1.0" } @@ -2317,7 +2422,7 @@ "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -2344,7 +2449,7 @@ "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=" }, "path-is-absolute": { "version": "1.0.1", @@ -2365,7 +2470,7 @@ "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==" + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" }, "path-to-regexp": { "version": "0.1.7", @@ -2380,13 +2485,13 @@ "picomatch": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.1.tgz", - "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==", + "integrity": "sha1-7N++p3BK21/m+0f5hmxMDhXpBcU=", "dev": true }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" }, "prepend-http": { "version": "1.0.4", @@ -2397,7 +2502,7 @@ "preview-email": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/preview-email/-/preview-email-1.0.2.tgz", - "integrity": "sha512-0ue1JqSjkp2N8XLC3vcZ0T2WeJnBK3pCanC/3G1uhXxABZHk3ZR5a4KDK93X20MiG3Jzto4P4LsA//HDwCyNKQ==", + "integrity": "sha1-wVjacM9yP5YD1x1dJmL9GtJG1zo=", "requires": { "@babel/runtime": "^7.6.3", "dayjs": "^1.8.16", @@ -2412,7 +2517,7 @@ "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { "ms": "^2.1.1" } @@ -2427,12 +2532,12 @@ "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==" + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" }, "promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", "requires": { "asap": "~2.0.3" } @@ -2440,7 +2545,7 @@ "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==", + "integrity": "sha1-NMvWSi2B9LH9IedvnwbIpFKZ7jQ=", "requires": { "forwarded": "~0.1.2", "ipaddr.js": "1.9.0" @@ -2460,13 +2565,13 @@ "pstree.remy": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", - "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", + "integrity": "sha1-x2ljooBH7WFULcNhqibuVaf6FfM=", "dev": true }, "pug": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz", - "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==", + "integrity": "sha1-7naC7ApgSUs41IqI8F87CskxN30=", "requires": { "pug-code-gen": "^2.0.2", "pug-filters": "^3.1.1", @@ -2481,7 +2586,7 @@ "pug-attrs": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", - "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", + "integrity": "sha1-svRMQ55OtK1dTvJcrCDRitKMwzY=", "requires": { "constantinople": "^3.0.1", "js-stringify": "^1.0.1", @@ -2491,7 +2596,7 @@ "pug-code-gen": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz", - "integrity": "sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==", + "integrity": "sha1-rQlnFirqB33PeHg42U7RSssCF8I=", "requires": { "constantinople": "^3.1.2", "doctypes": "^1.1.0", @@ -2506,12 +2611,12 @@ "pug-error": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", - "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==" + "integrity": "sha1-80L7AIdS1YA0wYXeA2At2f/hX6Y=" }, "pug-filters": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz", - "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==", + "integrity": "sha1-qyzILbnuzPV4vaiRMOJSoNsCaqc=", "requires": { "clean-css": "^4.1.11", "constantinople": "^3.0.1", @@ -2525,7 +2630,7 @@ "pug-lexer": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", - "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", + "integrity": "sha1-UxzeSMfAsfy7wrhUhchmXjFInP0=", "requires": { "character-parser": "^2.1.1", "is-expression": "^3.0.0", @@ -2535,7 +2640,7 @@ "pug-linker": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz", - "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==", + "integrity": "sha1-9b8hiw79Zc5mcPevxRZY0Pgpifs=", "requires": { "pug-error": "^1.3.3", "pug-walk": "^1.1.8" @@ -2544,7 +2649,7 @@ "pug-load": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz", - "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==", + "integrity": "sha1-04yF64X24vcE3qFNzKlBRNNdPns=", "requires": { "object-assign": "^4.1.0", "pug-walk": "^1.1.8" @@ -2553,7 +2658,7 @@ "pug-parser": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz", - "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==", + "integrity": "sha1-A+etpItoQL04Ivhn19kPhC0P/ck=", "requires": { "pug-error": "^1.3.3", "token-stream": "0.0.1" @@ -2562,12 +2667,12 @@ "pug-runtime": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", - "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==" + "integrity": "sha1-baeXbDa/IvaOczw1kkDYrnoylTo=" }, "pug-strip-comments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz", - "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==", + "integrity": "sha1-zBtt4fbo9ZMc8C7GbN/9P1Dq+Kg=", "requires": { "pug-error": "^1.3.3" } @@ -2575,27 +2680,27 @@ "pug-walk": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz", - "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==" + "integrity": "sha1-tAj2fyeRL4wh2i9FtyMMS9Kl6no=" }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=" }, "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==" + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=" }, "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==", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", "requires": { "bytes": "3.1.0", "http-errors": "1.7.2", @@ -2606,7 +2711,7 @@ "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "integrity": "sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=", "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -2636,7 +2741,7 @@ "redirect-https": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/redirect-https/-/redirect-https-1.3.0.tgz", - "integrity": "sha512-9GzwI/+Cqw3jlSg0CW6TgBQbhiVhkHSDvW8wjgRQ9IK34wtxS71YJiQeazSCSEqbvowHCJuQZgmQFl1xUHKEgg==", + "integrity": "sha1-VKG86s3a0MMXjUNbzI1kILY/CHo=", "requires": { "escape-html": "^1.0.3" } @@ -2644,17 +2749,17 @@ "regenerator-runtime": { "version": "0.13.3", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + "integrity": "sha1-fPanfY9cb2Drc8X8GVWyzrAea/U=" }, "regexp-clone": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", - "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + "integrity": "sha1-Ii25Z2IydwViYLmSYmNUoEzpv2M=" }, "registry-auth-token": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "integrity": "sha1-10RoFUM/XV7WQxzV3KIQSPZrOX4=", "dev": true, "requires": { "rc": "^1.1.6", @@ -2678,7 +2783,7 @@ "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -2705,14 +2810,14 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" } } }, "require_optional": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "integrity": "sha1-TPNaQkf2TKPfjC7yCMxJSxyo/C4=", "requires": { "resolve-from": "^2.0.0", "semver": "^5.1.0" @@ -2742,7 +2847,7 @@ "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", "requires": { "glob": "^7.1.3" } @@ -2750,22 +2855,22 @@ "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==" + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" }, "safe-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-replace/-/safe-replace-1.1.0.tgz", - "integrity": "sha512-9/V2E0CDsKs9DWOOwJH7jYpSl9S3N05uyevNjvsnDauBqRowBPOyot1fIvV5N2IuZAbYyvrTXrYFVG0RZInfFw==" + "integrity": "sha1-QyghtagTmji1NGeNcS8IUP4+UjU=" }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" }, "saslprep": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "integrity": "sha1-TAL5RrVs9UKX40e6EJPnrKxM8iY=", "optional": true, "requires": { "sparse-bitfield": "^3.0.3" @@ -2774,12 +2879,12 @@ "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" }, "semver-diff": { "version": "2.1.0", @@ -2793,7 +2898,7 @@ "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", "requires": { "debug": "2.6.9", "depd": "~1.1.2", @@ -2813,14 +2918,14 @@ "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==" + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" } } }, "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==", + "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -2836,7 +2941,7 @@ "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" }, "shebang-command": { "version": "1.2.0", @@ -2854,7 +2959,7 @@ "shortid": { "version": "2.2.15", "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.15.tgz", - "integrity": "sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw==", + "integrity": "sha1-K5AuqpOmmxESA3PNQqHx/kQ3wSI=", "requires": { "nanoid": "^2.1.0" } @@ -2862,7 +2967,7 @@ "sift": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", - "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" + "integrity": "sha1-R9YsULFZ0xbxNy+LU/nBDNIaSwg=" }, "signal-exit": { "version": "3.0.2", @@ -2882,7 +2987,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" }, "sparse-bitfield": { "version": "3.0.3", @@ -2896,12 +3001,12 @@ "sprintf-js": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + "integrity": "sha1-2hdlJiv4wPVxdJ8q1sJjACB65nM=" }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -2965,7 +3070,7 @@ "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "requires": { "has-flag": "^3.0.0" } @@ -2973,7 +3078,7 @@ "tar": { "version": "4.4.13", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "integrity": "sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU=", "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -3009,7 +3114,7 @@ "titleize": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/titleize/-/titleize-2.1.0.tgz", - "integrity": "sha512-m+apkYlfiQTKLW+sI4vqUkwMEzfgEUEYSqljx1voUE3Wz/z1ZsxyzSxvH2X8uKVrOp7QkByWt0rA6+gvhCKy6g==" + "integrity": "sha1-VTDeB8IhR6BIiIcXK1vZT1swpI8=" }, "to-fast-properties": { "version": "1.0.3", @@ -3019,7 +3124,7 @@ "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", "dev": true, "requires": { "is-number": "^7.0.0" @@ -3028,7 +3133,7 @@ "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" }, "token-stream": { "version": "0.0.1", @@ -3038,7 +3143,7 @@ "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "integrity": "sha1-/jZfX3XsntTlaCXgu3bSSrdK+Ds=", "dev": true, "requires": { "nopt": "~1.0.10" @@ -3047,7 +3152,7 @@ "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==", + "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", "requires": { "psl": "^1.1.24", "punycode": "^1.4.1" @@ -3076,7 +3181,7 @@ "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -3147,7 +3252,7 @@ "update-notifier": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "integrity": "sha1-0HRFk+E/Fh5AassdlAi3LK0Ir/Y=", "dev": true, "requires": { "boxen": "^1.2.1", @@ -3165,7 +3270,7 @@ "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==", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", "requires": { "punycode": "^2.1.0" } @@ -3192,12 +3297,17 @@ "uuid": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "integrity": "sha1-RWjwIW54dg7h2/Ok0s9T4iQRKGY=" }, "valid-data-url": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-2.0.0.tgz", - "integrity": "sha512-dyCZnv3aCey7yfTgIqdZanKl7xWAEEKCbgmR7SKqyK6QT/Z07ROactrgD1eA37C69ODRj7rNOjzKWVPh0EUjBA==" + "integrity": "sha1-IiD6n41Odh69PzuwJ3DxISuBBTc=" + }, + "validator": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-11.1.0.tgz", + "integrity": "sha512-qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg==" }, "vary": { "version": "1.1.2", @@ -3222,7 +3332,7 @@ "web-resource-inliner": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-4.3.4.tgz", - "integrity": "sha512-agVAgRhOOi4GVlvKK34oM23tDgH8390HfLnZY2HZl8OFBwKNvUJkH7t89AT2iluQP8w9VHAAKX6Z8EN7/9tqKA==", + "integrity": "sha1-B+G0vLy+4QISUbAY6QK6xXE/G+A=", "requires": { "async": "^3.1.0", "chalk": "^2.4.2", @@ -3238,12 +3348,12 @@ "domelementtype": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=" }, "domhandler": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz", - "integrity": "sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==", + "integrity": "sha1-Uc0T78ox2pW7sMW+46SDAOMzs+k=", "requires": { "domelementtype": "^2.0.1" } @@ -3251,7 +3361,7 @@ "domutils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.0.0.tgz", - "integrity": "sha512-n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg==", + "integrity": "sha1-Fbgnjje/qEaNFXR4xYw2dxgTPAg=", "requires": { "dom-serializer": "^0.2.1", "domelementtype": "^2.0.1", @@ -3261,12 +3371,12 @@ "entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=" }, "htmlparser2": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.0.0.tgz", - "integrity": "sha512-cChwXn5Vam57fyXajDtPXL1wTYc8JtLbr2TN76FYu05itVVVealxLowe2B3IEznJG4p9HAYn/0tJaRlGuEglFQ==", + "integrity": "sha1-YDRljbZbdxOlcqnr959lCDLc7sg=", "requires": { "domelementtype": "^2.0.1", "domhandler": "^3.0.0", @@ -3279,7 +3389,7 @@ "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "requires": { "isexe": "^2.0.0" } @@ -3287,7 +3397,7 @@ "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", "requires": { "string-width": "^1.0.2 || 2" } @@ -3295,7 +3405,7 @@ "widest-line": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "integrity": "sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w=", "dev": true, "requires": { "string-width": "^2.1.1" @@ -3328,7 +3438,7 @@ "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "integrity": "sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE=", "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -3345,7 +3455,7 @@ "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=" }, "yallist": { "version": "2.1.2", diff --git a/site/package.json b/site/package.json index dea8011..cf9dcb0 100644 --- a/site/package.json +++ b/site/package.json @@ -11,10 +11,13 @@ "license": "ISC", "dependencies": { "bcrypt": "^3.0.7", + "bcryptjs": "^2.4.3", "body-parser": "^1.19.0", "email-templates": "^6.0.6", "express": "^4.17.1", + "express-validator": "^6.3.1", "greenlock-express": "^3.1.1", + "jsonwebtoken": "^8.5.1", "mongoose": "^5.8.1", "nodemailer": "^6.4.2", "pug": "^2.0.4", diff --git a/site/routes/team.js b/site/routes/team.js index a88c56b..8b23f91 100644 --- a/site/routes/team.js +++ b/site/routes/team.js @@ -4,11 +4,11 @@ const { check, validationResult } = require('express-validator/check'); const bcrypt = require('bcryptjs'); const jwt = require('jsonwebtoken'); -const config = require('./config'); +const config = require('../config'); -const User = require('../models/User'); +const User = require('../models/user'); const Team = require('../models/team'); -const Event = require('./models/event'); +const Event = require('../models/event'); const emailer = require('../helpers/emailer'); @@ -247,3 +247,4 @@ router.post('/join-team', [], (req, res) => { } }); }); +module.exports = router; diff --git a/site/routes/user.js b/site/routes/user.js index 937efa8..2e139bc 100644 --- a/site/routes/user.js +++ b/site/routes/user.js @@ -4,9 +4,9 @@ const { check, validationResult } = require('express-validator/check'); const bcrypt = require('bcryptjs'); const jwt = require('jsonwebtoken'); -const config = require('./config'); +const config = require('../config'); -const User = require('../models/User'); +const User = require('../models/user'); /** * @method - POST @@ -16,8 +16,9 @@ const User = require('../models/User'); router.post( '/checkmeout', - [check('email', 'Please enter a valid email')], - async (res, req) => { + [check('email', 'Please enter a valid email').isEmail()], + async (req, res) => { + const errors = validationResult(req); if (!errors.isEmpty()) { return res.status(400).json({ error: 'Invalid Email', diff --git a/site/signals.js b/site/signals.js index 556081c..59dc2f8 100644 --- a/site/signals.js +++ b/site/signals.js @@ -1,7 +1,7 @@ 'use strict'; const frontEndHandlingURL = - 'https://rathod.sahaab.github.io/prody/server-response.html' + '?'; + 'https://rathod-sahaab.github.io/prody/server-response.html' + '?'; // necessary to append question mark const signalFrontend = (options) => { return frontEndHandlingURL + new URLSearchParams(options).toString(); From c097fc3e6f5c1ef7998fb03b1d0f8619dd4e3a1f Mon Sep 17 00:00:00 2001 From: rathod-sahaab Date: Wed, 15 Jan 2020 01:37:11 +0530 Subject: [PATCH 9/9] Added OTP template --- site/emails/otp/html.pug | 5 +++++ site/emails/otp/subject.pug | 1 + 2 files changed, 6 insertions(+) create mode 100644 site/emails/otp/html.pug create mode 100644 site/emails/otp/subject.pug diff --git a/site/emails/otp/html.pug b/site/emails/otp/html.pug new file mode 100644 index 0000000..72fa1fb --- /dev/null +++ b/site/emails/otp/html.pug @@ -0,0 +1,5 @@ +h2 Your OTP is #{otp} +h2 Prodyogiki 2020 +p Next Step : Join a team or make your own if you want. +p Feel free to contact Team ISTE for any help. +p Best of Luck!!!. diff --git a/site/emails/otp/subject.pug b/site/emails/otp/subject.pug new file mode 100644 index 0000000..bfdcd1a --- /dev/null +++ b/site/emails/otp/subject.pug @@ -0,0 +1 @@ +|OTP: Prodyogiki 2020