commit
7cbbd32303
|
@ -0,0 +1,4 @@
|
||||||
|
option_settings:
|
||||||
|
- namespace: aws:elasticbeanstalk:container:nodejs
|
||||||
|
option_name: NodeCommand
|
||||||
|
value: "npm start"
|
1
app.js
1
app.js
|
@ -13,6 +13,7 @@ const blogRouter = require("./routes/blog");
|
||||||
const port = process.env.PORT || 5000;
|
const port = process.env.PORT || 5000;
|
||||||
const cors = require("cors");
|
const cors = require("cors");
|
||||||
|
|
||||||
|
|
||||||
//const passport = require('passport');
|
//const passport = require('passport');
|
||||||
//const cookieSession = require('cookie-session') ;
|
//const cookieSession = require('cookie-session') ;
|
||||||
//require('./passport-setup') ;
|
//require('./passport-setup') ;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -119,3 +119,44 @@ module.exports.editBlog = async (req, res, next) => {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
module.exports.commentBlog = async (req, res, next) => {
|
||||||
|
const comment = req.body.comment;
|
||||||
|
const comments1 = {
|
||||||
|
user: req.user._id,
|
||||||
|
review: comment,
|
||||||
|
date: Date.now().toString(),
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (comment) {
|
||||||
|
Blog.findByIdAndUpdate(
|
||||||
|
{ _id: req.params.id },
|
||||||
|
{
|
||||||
|
$push: {
|
||||||
|
comments: comments1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ new: true }
|
||||||
|
)
|
||||||
|
.populate("comments.user", "_id name")
|
||||||
|
.exec((err, result) => {
|
||||||
|
if (err) {
|
||||||
|
res.status(503).json({
|
||||||
|
message: "Some Error Occured!" + err,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(201).json({
|
||||||
|
message: "Comment posted!" + result,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
if (err) {
|
||||||
|
res.status(501).json({
|
||||||
|
message: "internal Server error please try again after some time",
|
||||||
|
err,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
|
@ -1,197 +1,192 @@
|
||||||
const razorpay = require('razorpay') ;
|
const razorpay = require("razorpay");
|
||||||
const Order = require('../models/Order') ;
|
const Order = require("../models/Order");
|
||||||
const User = require('../models/User') ;
|
const User = require("../models/User");
|
||||||
const CourseType = require('../models/CourseType') ;
|
const CourseType = require("../models/CourseType");
|
||||||
const Course = require('../models/Course') ;
|
const Course = require("../models/Course");
|
||||||
const Student = require('../models/Student') ;
|
const Student = require("../models/Student");
|
||||||
const Coupon = require('../models/Coupon') ;
|
const Coupon = require("../models/Coupon");
|
||||||
const { getAllCoupons } = require('./coupon');
|
const { getAllCoupons } = require("./coupon");
|
||||||
|
|
||||||
//test credentials of razorpay
|
//test credentials of razorpay
|
||||||
const instance = new razorpay({
|
const instance = new razorpay({
|
||||||
key_id : process.env.KEY_ID ,
|
key_id: process.env.KEY_ID,
|
||||||
key_secret : process.env.KEY_SECRET
|
key_secret: process.env.KEY_SECRET,
|
||||||
}) ;
|
});
|
||||||
|
|
||||||
module.exports.postVerify =async (req , res , next) => {
|
module.exports.postVerify = async (req, res, next) => {
|
||||||
|
try {
|
||||||
|
//Secret we put in razorpay
|
||||||
|
const SECRET = "CantileverLabs";
|
||||||
|
|
||||||
try
|
const crypto = require("crypto");
|
||||||
{
|
|
||||||
//Secret we put in razorpay
|
|
||||||
const SECRET = 'CantileverLabs' ;
|
|
||||||
|
|
||||||
const crypto = require('crypto')
|
const shasum = crypto.createHmac("sha256", SECRET);
|
||||||
|
shasum.update(JSON.stringify(req.body));
|
||||||
|
const digest = shasum.digest("hex");
|
||||||
|
|
||||||
const shasum = crypto.createHmac('sha256', SECRET) ;
|
//if secret is matched
|
||||||
shasum.update(JSON.stringify(req.body))
|
if (digest === req.headers["x-razorpay-signature"]) {
|
||||||
const digest = shasum.digest('hex')
|
console.log("request is legit");
|
||||||
|
// process it
|
||||||
|
const orderId = req.body.payload.payment.entity.order_id;
|
||||||
|
//fetching the order from the orderId
|
||||||
|
let order = await Order.findOne({ orderId: orderId });
|
||||||
|
let courseId = order.course;
|
||||||
|
//adding the payment detail
|
||||||
|
order.paymentDetail = req.body.payload.payment;
|
||||||
|
//making the paymentSuccess as true
|
||||||
|
order.paymentSuccess = true;
|
||||||
|
|
||||||
//if secret is matched
|
//now getting the details of user which has bought this course
|
||||||
if (digest === req.headers['x-razorpay-signature']) {
|
const userId = order.user;
|
||||||
console.log('request is legit')
|
let user = await User.findById(userId);
|
||||||
// process it
|
let student = await Student.findById(user.student);
|
||||||
const orderId = req.body.payload.payment.entity.order_id ;
|
|
||||||
//fetching the order from the orderId
|
|
||||||
let order = await Order.findOne({orderId:orderId}) ;
|
|
||||||
let courseId = order.course ;
|
|
||||||
//adding the payment detail
|
|
||||||
order.paymentDetail = req.body.payload.payment ;
|
|
||||||
//making the paymentSuccess as true
|
|
||||||
order.paymentSuccess = true ;
|
|
||||||
|
|
||||||
//now getting the details of user which has bought this course
|
let ind = -1;
|
||||||
const userId = order.user ;
|
//checking whether user has already bought this course or not
|
||||||
let user = await User.findById(userId) ;
|
if (student.courses) {
|
||||||
let student =await Student.findById(user.student) ;
|
ind = student.courses.findIndex(
|
||||||
|
(course) => String(course.basicInfo) == String(courseId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
console.log(ind);
|
||||||
|
if (ind == -1) {
|
||||||
|
//adding a new object in the courses array of student
|
||||||
|
let newObj = {
|
||||||
|
basicInfo: courseId,
|
||||||
|
details: {
|
||||||
|
completed: [],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
let courses = [...student.courses];
|
||||||
|
courses.push(newObj);
|
||||||
|
student.courses = courses;
|
||||||
|
await student.save();
|
||||||
|
await order.save();
|
||||||
|
res.status(200).json({
|
||||||
|
status: "ok",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
//user has already bought this course
|
||||||
|
res.status(200).json({
|
||||||
|
error: "already paid",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
let ind = -1 ;
|
//now updating that course in user also
|
||||||
//checking whether user has already bought this course or not
|
//console.log(req.body.payload.payment) ;
|
||||||
if(student.courses)
|
//require('fs').writeFileSync('payment1.json', JSON.stringify(req.body, null, 4))
|
||||||
{
|
} else {
|
||||||
ind = student.courses.findIndex(course => String(course.basicInfo) == String(courseId)) ;
|
// pass it
|
||||||
}
|
console.log("HELLO IN ERROR");
|
||||||
console.log(ind);
|
res.status(200).json({
|
||||||
if(ind == -1)
|
error: "error",
|
||||||
{
|
});
|
||||||
//adding a new object in the courses array of student
|
|
||||||
let newObj = {
|
|
||||||
basicInfo : courseId ,
|
|
||||||
details : {
|
|
||||||
completed : []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let courses = [...student.courses] ;
|
|
||||||
courses.push(newObj) ;
|
|
||||||
student.courses = courses ;
|
|
||||||
await student.save() ;
|
|
||||||
await order.save() ;
|
|
||||||
res.status(200).json({
|
|
||||||
status : 'ok'
|
|
||||||
}) ;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//user has already bought this course
|
|
||||||
res.status(200).json({
|
|
||||||
error:'already paid'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//now updating that course in user also
|
|
||||||
//console.log(req.body.payload.payment) ;
|
|
||||||
//require('fs').writeFileSync('payment1.json', JSON.stringify(req.body, null, 4))
|
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// pass it
|
|
||||||
console.log("HELLO IN ERROR");
|
|
||||||
res.status(200).json({
|
|
||||||
error:'error'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch(err)
|
} catch (err) {
|
||||||
{
|
console.log(err);
|
||||||
console.log(err);
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports.postRazorpay = async (req, res, next) => {
|
||||||
|
try {
|
||||||
|
//this route will be called after clicking the payment
|
||||||
|
|
||||||
|
//here this is the id of courseType
|
||||||
|
const courseId = req.body.courseId;
|
||||||
|
const couponCode = req.body.couponCode;
|
||||||
|
const userId = req.user._id;
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
"Course ID =",
|
||||||
|
courseId,
|
||||||
|
" Coupon code =",
|
||||||
|
couponCode,
|
||||||
|
" user ID =",
|
||||||
|
userId
|
||||||
|
);
|
||||||
|
|
||||||
|
let user = await User.findById(userId);
|
||||||
|
let student = await Student.findById(user.student);
|
||||||
|
let course = await CourseType.findById(courseId);
|
||||||
|
|
||||||
|
console.log(student.courses);
|
||||||
|
//we are creating a new order associated to it
|
||||||
|
//we are setting the paymentSuccess to be false
|
||||||
|
|
||||||
|
let discount = 0;
|
||||||
|
|
||||||
|
let coupon = await Coupon.findOne({ couponCode: couponCode });
|
||||||
|
if (coupon && coupon.numAllowed > 0) {
|
||||||
|
discount = coupon.percentage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let ind = -1;
|
||||||
} ;
|
//checking whether user has already bought this course or not
|
||||||
|
if (student.courses) {
|
||||||
module.exports.postRazorpay = async (req , res , next) => {
|
ind = student.courses.findIndex(
|
||||||
try
|
(course) => String(course.basicInfo) == String(courseId)
|
||||||
{
|
);
|
||||||
|
|
||||||
//this route will be called after clicking the payment
|
|
||||||
|
|
||||||
//here this is the id of courseType
|
|
||||||
const courseId = req.body.courseId ;
|
|
||||||
const couponCode = req.body.couponCode ;
|
|
||||||
const userId = req.user._id ;
|
|
||||||
|
|
||||||
console.log("Course ID =" ,courseId ," Coupon code =" , couponCode ," user ID =" , userId) ;
|
|
||||||
|
|
||||||
let user = await User.findById(userId) ;
|
|
||||||
let student =await Student.findById(user.student) ;
|
|
||||||
let course =await CourseType.findById(courseId) ;
|
|
||||||
|
|
||||||
console.log(student.courses);
|
|
||||||
//we are creating a new order associated to it
|
|
||||||
//we are setting the paymentSuccess to be false
|
|
||||||
|
|
||||||
let discount = 0 ;
|
|
||||||
|
|
||||||
let coupon = await Coupon.findOne({couponCode : couponCode}) ;
|
|
||||||
if(coupon && coupon.numAllowed > 0)
|
|
||||||
{
|
|
||||||
discount = coupon.percentage ;
|
|
||||||
}
|
|
||||||
|
|
||||||
let ind = -1 ;
|
|
||||||
//checking whether user has already bought this course or not
|
|
||||||
if(student.courses)
|
|
||||||
{
|
|
||||||
ind = student.courses.findIndex(course => String(course.basicInfo) == String(courseId)) ;
|
|
||||||
}
|
|
||||||
console.log(ind);
|
|
||||||
if(ind == -1)
|
|
||||||
{
|
|
||||||
let order = new Order({
|
|
||||||
course : courseId ,
|
|
||||||
user : userId ,
|
|
||||||
paymentSuccess : false
|
|
||||||
}) ;
|
|
||||||
|
|
||||||
order = await order.save() ;
|
|
||||||
|
|
||||||
const payment_capture = 1 ;
|
|
||||||
|
|
||||||
//setting the amount according to the course
|
|
||||||
let amount = Number(course.amount) ;
|
|
||||||
|
|
||||||
amount = amount - amount*discount/100 ;
|
|
||||||
|
|
||||||
amount = Math.ceil(amount) ;
|
|
||||||
|
|
||||||
const options = {amount : (amount*100).toString()
|
|
||||||
, currency : "INR"
|
|
||||||
, receipt : order._id.toString()
|
|
||||||
, payment_capture
|
|
||||||
} ;
|
|
||||||
|
|
||||||
//this is a razorpay feature
|
|
||||||
const response = await instance.orders.create(options) ;
|
|
||||||
|
|
||||||
order.orderId = response.id ;
|
|
||||||
await order.save() ;
|
|
||||||
res.status(200).json({
|
|
||||||
id:response.id ,
|
|
||||||
currency : response.currency ,
|
|
||||||
amount : response.amount ,
|
|
||||||
name:(user.firstName + " " + user.lastName) ,
|
|
||||||
email:user.email ,
|
|
||||||
receipt : response.receipt
|
|
||||||
});
|
|
||||||
if(coupon && coupon.numAllowed > 0)
|
|
||||||
{
|
|
||||||
coupon.numAllowed = coupon.numAllowed - 1 ;
|
|
||||||
await coupon.save() ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//user has already bought this course
|
|
||||||
res.status(500).json({
|
|
||||||
error:'already paid'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch(err)
|
console.log(ind);
|
||||||
{
|
if (ind == -1) {
|
||||||
console.log(err);
|
let order = new Order({
|
||||||
res.status(500).json({
|
course: courseId,
|
||||||
error : "error"
|
user: userId,
|
||||||
})
|
paymentSuccess: false,
|
||||||
}
|
});
|
||||||
}
|
|
||||||
|
|
||||||
|
order = await order.save();
|
||||||
|
|
||||||
|
const payment_capture = 1;
|
||||||
|
|
||||||
|
//setting the amount according to the course
|
||||||
|
let amount = Number(course.amount);
|
||||||
|
|
||||||
|
amount = amount - (amount * discount) / 100;
|
||||||
|
|
||||||
|
amount = Math.ceil(amount);
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
amount: (amount * 100).toString(),
|
||||||
|
currency: "INR",
|
||||||
|
receipt: order._id.toString(),
|
||||||
|
payment_capture,
|
||||||
|
};
|
||||||
|
|
||||||
|
//this is a razorpay feature
|
||||||
|
const response = await instance.orders.create(options);
|
||||||
|
|
||||||
|
order.orderId = response.id;
|
||||||
|
await order.save();
|
||||||
|
res.status(200).json({
|
||||||
|
id: response.id,
|
||||||
|
currency: response.currency,
|
||||||
|
amount: response.amount,
|
||||||
|
name: user.firstName + " " + user.lastName,
|
||||||
|
email: user.email,
|
||||||
|
receipt: response.receipt,
|
||||||
|
date_purchased: Date.now(),
|
||||||
|
});
|
||||||
|
if (coupon && coupon.numAllowed > 0) {
|
||||||
|
coupon.numAllowed = coupon.numAllowed - 1;
|
||||||
|
await coupon.save();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//user has already bought this course
|
||||||
|
res.status(500).json({
|
||||||
|
error: "already paid",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
res.status(500).json({
|
||||||
|
error: "error",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports.amount = async (req, res, next) => {
|
||||||
|
const amount = req.body.amount;
|
||||||
|
res.status(200).json({ amount: amount / 100 });
|
||||||
|
};
|
||||||
|
|
|
@ -21,5 +21,17 @@ const blogSchema = new mongoose.Schema({
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
comments: [
|
||||||
|
{
|
||||||
|
user: { ref: "User", type: mongoose.Types.ObjectId },
|
||||||
|
review: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
date: {
|
||||||
|
type: Date,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
user: { ref: "User", type: mongoose.Types.ObjectId },
|
||||||
});
|
});
|
||||||
module.exports = mongoose.model("Blog", blogSchema);
|
module.exports = mongoose.model("Blog", blogSchema);
|
||||||
|
|
|
@ -1,28 +1,29 @@
|
||||||
const mongoose = require('mongoose') ;
|
const mongoose = require("mongoose");
|
||||||
|
|
||||||
const Schema = mongoose.Schema ;
|
const Schema = mongoose.Schema;
|
||||||
|
|
||||||
const orderSchema = new Schema({
|
const orderSchema = new Schema({
|
||||||
user : {
|
user: {
|
||||||
type:mongoose.Types.ObjectId ,
|
type: mongoose.Types.ObjectId,
|
||||||
ref:'User' ,
|
ref: "User",
|
||||||
required:true
|
required: true,
|
||||||
} ,
|
},
|
||||||
course : {
|
course: {
|
||||||
type: mongoose.Types.ObjectId ,
|
type: mongoose.Types.ObjectId,
|
||||||
ref : 'CourseType' ,
|
ref: "CourseType",
|
||||||
required : true
|
required: true,
|
||||||
},
|
},
|
||||||
paymentSuccess : {
|
paymentSuccess: {
|
||||||
type:Boolean ,
|
type: Boolean,
|
||||||
required : true
|
required: true,
|
||||||
} ,
|
},
|
||||||
paymentDetail : {
|
paymentDetail: {
|
||||||
type:Object
|
type: Object,
|
||||||
} ,
|
},
|
||||||
orderId : {
|
orderId: {
|
||||||
type : String
|
type: String,
|
||||||
}
|
},
|
||||||
}) ;
|
date_purchased: Date,
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = mongoose.model('Order' , orderSchema) ;
|
module.exports = mongoose.model("Order", orderSchema);
|
||||||
|
|
|
@ -37,6 +37,11 @@ const userSchema = new Schema({
|
||||||
},
|
},
|
||||||
passwordResetToken: String,
|
passwordResetToken: String,
|
||||||
passwordResetExpires: Date,
|
passwordResetExpires: Date,
|
||||||
|
signUp_date: Date,
|
||||||
|
lastLoginDate: {
|
||||||
|
type: Date,
|
||||||
|
default: Date.now,
|
||||||
|
},
|
||||||
//need to add isAdmin
|
//need to add isAdmin
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
20
nodemon.json
20
nodemon.json
|
@ -1,12 +1,14 @@
|
||||||
{
|
{
|
||||||
"env" : {
|
"env": {
|
||||||
"MONGO_USER":"Cantilever",
|
"MONGO_USER": "Cantilever",
|
||||||
"MONGO_PASSWORD" :"Cantilever" ,
|
"MONGO_PASSWORD": "Cantilever",
|
||||||
"MONGO_DEFAULT_DATABASE" :"myFirstDatabase" ,
|
"MONGO_DEFAULT_DATABASE": "myFirstDatabase",
|
||||||
"KEY_ID" : "rzp_live_aD9j5WLBGtdQxt" ,
|
"KEY_ID": "rzp_live_aD9j5WLBGtdQxt",
|
||||||
"KEY_SECRET" : "o9BDCwYcpNcHyFL5yjiY7OWG" ,
|
"KEY_SECRET": "o9BDCwYcpNcHyFL5yjiY7OWG",
|
||||||
"EMAIL" : "AKIA2G7743RRTZMVXE3X" ,
|
"EMAIL": "AKIA2G7743RR3HEMJ6V5",
|
||||||
"HOST" : "email-smtp.us-east-1.amazonaws.com" ,
|
"HOST": "email-smtp.us-east-1.amazonaws.com",
|
||||||
"PASS" : "BJSjV3jArJfsnk1LhFc/hUmisEyEtbLNGgrRbv0noh8c"
|
"PASS": "BA5XVsIOnbDRje/Dc8icsYocLYm3x24iHlTamz94528K",
|
||||||
|
"AWS_KEY": "AKIA2G7743RRZXHP4XNL",
|
||||||
|
"AWS_SEC": "H4gCtDNRRfIPvq32fe9pHD3Q7OmwQ4z8AUm3Boel"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -380,6 +380,18 @@
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/chai": {
|
||||||
|
"version": "4.2.18",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.18.tgz",
|
||||||
|
"integrity": "sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"@types/cookiejar": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"@types/cors": {
|
"@types/cors": {
|
||||||
"version": "2.8.10",
|
"version": "2.8.10",
|
||||||
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz",
|
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz",
|
||||||
|
@ -407,6 +419,16 @@
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz",
|
||||||
"integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag=="
|
"integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag=="
|
||||||
},
|
},
|
||||||
|
"@types/superagent": {
|
||||||
|
"version": "3.8.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-3.8.7.tgz",
|
||||||
|
"integrity": "sha512-9KhCkyXv268A2nZ1Wvu7rQWM+BmdYUVkycFeNnYrUL5Zwu7o8wPQ3wBfW59dDP+wuoxw0ww8YKgTNv8j/cgscA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/cookiejar": "*",
|
||||||
|
"@types/node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/type-is": {
|
"@types/type-is": {
|
||||||
"version": "1.6.3",
|
"version": "1.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/@types/type-is/-/type-is-1.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/@types/type-is/-/type-is-1.6.3.tgz",
|
||||||
|
@ -415,6 +437,12 @@
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@ungap/promise-all-settled": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"abbrev": {
|
"abbrev": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||||
|
@ -498,6 +526,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ansi-colors": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||||
|
@ -541,6 +575,12 @@
|
||||||
"readable-stream": "^2.0.6"
|
"readable-stream": "^2.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"argparse": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"array-find-index": {
|
"array-find-index": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
|
||||||
|
@ -574,6 +614,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
|
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
|
||||||
},
|
},
|
||||||
|
"assertion-error": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"async": {
|
"async": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
|
||||||
|
@ -753,6 +799,12 @@
|
||||||
"fill-range": "^7.0.1"
|
"fill-range": "^7.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"browser-stdout": {
|
||||||
|
"version": "1.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
|
||||||
|
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"browserslist": {
|
"browserslist": {
|
||||||
"version": "4.16.6",
|
"version": "4.16.6",
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
|
||||||
|
@ -931,6 +983,35 @@
|
||||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
|
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
|
||||||
},
|
},
|
||||||
|
"chai": {
|
||||||
|
"version": "4.3.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz",
|
||||||
|
"integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"assertion-error": "^1.1.0",
|
||||||
|
"check-error": "^1.0.2",
|
||||||
|
"deep-eql": "^3.0.1",
|
||||||
|
"get-func-name": "^2.0.0",
|
||||||
|
"pathval": "^1.1.1",
|
||||||
|
"type-detect": "^4.0.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chai-http": {
|
||||||
|
"version": "4.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/chai-http/-/chai-http-4.3.0.tgz",
|
||||||
|
"integrity": "sha512-zFTxlN7HLMv+7+SPXZdkd5wUlK+KxH6Q7bIEMiEx0FK3zuuMqL7cwICAQ0V1+yYRozBburYuxN1qZstgHpFZQg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/chai": "4",
|
||||||
|
"@types/superagent": "^3.8.3",
|
||||||
|
"cookiejar": "^2.1.1",
|
||||||
|
"is-ip": "^2.0.0",
|
||||||
|
"methods": "^1.1.2",
|
||||||
|
"qs": "^6.5.1",
|
||||||
|
"superagent": "^3.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"chalk": {
|
"chalk": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
|
||||||
|
@ -958,6 +1039,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"check-error": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"cheerio": {
|
"cheerio": {
|
||||||
"version": "1.0.0-rc.9",
|
"version": "1.0.0-rc.9",
|
||||||
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.9.tgz",
|
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.9.tgz",
|
||||||
|
@ -1086,6 +1173,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
|
||||||
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
|
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
|
||||||
},
|
},
|
||||||
|
"component-emitter": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
|
@ -1162,6 +1255,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
||||||
},
|
},
|
||||||
|
"cookiejar": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"cookies": {
|
"cookies": {
|
||||||
"version": "0.8.0",
|
"version": "0.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
|
||||||
|
@ -1279,6 +1378,15 @@
|
||||||
"mimic-response": "^1.0.0"
|
"mimic-response": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"deep-eql": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"type-detect": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"deep-extend": {
|
"deep-extend": {
|
||||||
"version": "0.6.0",
|
"version": "0.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
||||||
|
@ -1347,6 +1455,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"diff": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"dom-serializer": {
|
"dom-serializer": {
|
||||||
"version": "1.3.1",
|
"version": "1.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.1.tgz",
|
||||||
|
@ -1565,6 +1679,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
||||||
},
|
},
|
||||||
|
"fast-safe-stringify": {
|
||||||
|
"version": "2.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
|
||||||
|
"integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"fast-text-encoding": {
|
"fast-text-encoding": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz",
|
||||||
|
@ -1617,6 +1737,12 @@
|
||||||
"path-exists": "^4.0.0"
|
"path-exists": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flat": {
|
||||||
|
"version": "5.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
|
||||||
|
"integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"flushwritable": {
|
"flushwritable": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/flushwritable/-/flushwritable-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/flushwritable/-/flushwritable-1.0.0.tgz",
|
||||||
|
@ -1637,6 +1763,12 @@
|
||||||
"mime-types": "^2.1.12"
|
"mime-types": "^2.1.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"formidable": {
|
||||||
|
"version": "1.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz",
|
||||||
|
"integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"forwarded": {
|
"forwarded": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
||||||
|
@ -1772,6 +1904,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
|
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
|
||||||
},
|
},
|
||||||
|
"get-func-name": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"get-intrinsic": {
|
"get-intrinsic": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
|
||||||
|
@ -1985,6 +2123,12 @@
|
||||||
"flushwritable": "^1.0.0"
|
"flushwritable": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"growl": {
|
||||||
|
"version": "1.10.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
|
||||||
|
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"gtoken": {
|
"gtoken": {
|
||||||
"version": "5.2.1",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.2.1.tgz",
|
||||||
|
@ -2098,6 +2242,12 @@
|
||||||
"integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
|
"integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"he": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"hosted-git-info": {
|
"hosted-git-info": {
|
||||||
"version": "2.8.9",
|
"version": "2.8.9",
|
||||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
|
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
|
||||||
|
@ -2285,6 +2435,12 @@
|
||||||
"loose-envify": "^1.0.0"
|
"loose-envify": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ip-regex": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
|
||||||
|
"integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"ipaddr.js": {
|
"ipaddr.js": {
|
||||||
"version": "1.9.1",
|
"version": "1.9.1",
|
||||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
||||||
|
@ -2361,6 +2517,15 @@
|
||||||
"is-path-inside": "^3.0.1"
|
"is-path-inside": "^3.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"is-ip": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-ip/-/is-ip-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-aO6gfooKCpTC0IDdZ0xzGrKkYas=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ip-regex": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"is-npm": {
|
"is-npm": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
|
||||||
|
@ -2385,6 +2550,12 @@
|
||||||
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
|
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"is-plain-obj": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"is-promise": {
|
"is-promise": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
|
||||||
|
@ -2449,6 +2620,15 @@
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
|
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
|
||||||
},
|
},
|
||||||
|
"js-yaml": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"argparse": "^2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"jsbn": {
|
"jsbn": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
||||||
|
@ -2828,6 +3008,42 @@
|
||||||
"resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz",
|
||||||
"integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw="
|
"integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw="
|
||||||
},
|
},
|
||||||
|
"log-symbols": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"chalk": "^4.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"chalk": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^4.1.0",
|
||||||
|
"supports-color": "^7.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has-flag": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"supports-color": {
|
||||||
|
"version": "7.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||||
|
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^4.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"loose-envify": {
|
"loose-envify": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
||||||
|
@ -2989,6 +3205,221 @@
|
||||||
"minimist": "^1.2.5"
|
"minimist": "^1.2.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"mocha": {
|
||||||
|
"version": "8.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz",
|
||||||
|
"integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@ungap/promise-all-settled": "1.1.2",
|
||||||
|
"ansi-colors": "4.1.1",
|
||||||
|
"browser-stdout": "1.3.1",
|
||||||
|
"chokidar": "3.5.1",
|
||||||
|
"debug": "4.3.1",
|
||||||
|
"diff": "5.0.0",
|
||||||
|
"escape-string-regexp": "4.0.0",
|
||||||
|
"find-up": "5.0.0",
|
||||||
|
"glob": "7.1.6",
|
||||||
|
"growl": "1.10.5",
|
||||||
|
"he": "1.2.0",
|
||||||
|
"js-yaml": "4.0.0",
|
||||||
|
"log-symbols": "4.0.0",
|
||||||
|
"minimatch": "3.0.4",
|
||||||
|
"ms": "2.1.3",
|
||||||
|
"nanoid": "3.1.20",
|
||||||
|
"serialize-javascript": "5.0.1",
|
||||||
|
"strip-json-comments": "3.1.1",
|
||||||
|
"supports-color": "8.1.1",
|
||||||
|
"which": "2.0.2",
|
||||||
|
"wide-align": "1.1.3",
|
||||||
|
"workerpool": "6.1.0",
|
||||||
|
"yargs": "16.2.0",
|
||||||
|
"yargs-parser": "20.2.4",
|
||||||
|
"yargs-unparser": "2.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-regex": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"cliui": {
|
||||||
|
"version": "7.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||||
|
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"string-width": "^4.2.0",
|
||||||
|
"strip-ansi": "^6.0.0",
|
||||||
|
"wrap-ansi": "^7.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"version": "4.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||||
|
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"escape-string-regexp": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"find-up": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"locate-path": "^6.0.0",
|
||||||
|
"path-exists": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"glob": {
|
||||||
|
"version": "7.1.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||||
|
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"fs.realpath": "^1.0.0",
|
||||||
|
"inflight": "^1.0.4",
|
||||||
|
"inherits": "2",
|
||||||
|
"minimatch": "^3.0.4",
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"path-is-absolute": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has-flag": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"locate-path": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"p-locate": "^5.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"nanoid": {
|
||||||
|
"version": "3.1.20",
|
||||||
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
|
||||||
|
"integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"p-limit": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"yocto-queue": "^0.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-locate": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"p-limit": "^3.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-ansi": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-regex": "^5.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-json-comments": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
||||||
|
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"supports-color": {
|
||||||
|
"version": "8.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
|
||||||
|
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"which": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"isexe": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wrap-ansi": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^4.0.0",
|
||||||
|
"string-width": "^4.1.0",
|
||||||
|
"strip-ansi": "^6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"y18n": {
|
||||||
|
"version": "5.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||||
|
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"yargs": {
|
||||||
|
"version": "16.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
|
||||||
|
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"cliui": "^7.0.2",
|
||||||
|
"escalade": "^3.1.1",
|
||||||
|
"get-caller-file": "^2.0.5",
|
||||||
|
"require-directory": "^2.1.1",
|
||||||
|
"string-width": "^4.2.0",
|
||||||
|
"y18n": "^5.0.5",
|
||||||
|
"yargs-parser": "^20.2.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yargs-parser": {
|
||||||
|
"version": "20.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
|
||||||
|
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"moment": {
|
"moment": {
|
||||||
"version": "2.29.1",
|
"version": "2.29.1",
|
||||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
|
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
|
||||||
|
@ -3720,6 +4151,12 @@
|
||||||
"pinkie-promise": "^2.0.0"
|
"pinkie-promise": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pathval": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"pause": {
|
"pause": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
|
||||||
|
@ -3924,6 +4361,15 @@
|
||||||
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
|
||||||
"integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
|
"integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
|
||||||
},
|
},
|
||||||
|
"randombytes": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "^5.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"range-parser": {
|
"range-parser": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
||||||
|
@ -4299,6 +4745,15 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"serialize-javascript": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"randombytes": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"serve-static": {
|
"serve-static": {
|
||||||
"version": "1.14.1",
|
"version": "1.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
|
||||||
|
@ -4539,6 +4994,148 @@
|
||||||
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
|
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"superagent": {
|
||||||
|
"version": "3.8.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
|
||||||
|
"integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"component-emitter": "^1.2.0",
|
||||||
|
"cookiejar": "^2.1.0",
|
||||||
|
"debug": "^3.1.0",
|
||||||
|
"extend": "^3.0.0",
|
||||||
|
"form-data": "^2.3.1",
|
||||||
|
"formidable": "^1.2.0",
|
||||||
|
"methods": "^1.1.1",
|
||||||
|
"mime": "^1.4.1",
|
||||||
|
"qs": "^6.5.1",
|
||||||
|
"readable-stream": "^2.3.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "3.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
||||||
|
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ms": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"supertest": {
|
||||||
|
"version": "6.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/supertest/-/supertest-6.1.3.tgz",
|
||||||
|
"integrity": "sha512-v2NVRyP73XDewKb65adz+yug1XMtmvij63qIWHZzSX8tp6wiq6xBLUy4SUAd2NII6wIipOmHT/FD9eicpJwdgQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"methods": "^1.1.2",
|
||||||
|
"superagent": "^6.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "4.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||||
|
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"form-data": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.8",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lru-cache": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"yallist": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mime": {
|
||||||
|
"version": "2.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
|
||||||
|
"integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"qs": {
|
||||||
|
"version": "6.10.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
|
||||||
|
"integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"side-channel": "^1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"readable-stream": {
|
||||||
|
"version": "3.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||||
|
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"inherits": "^2.0.3",
|
||||||
|
"string_decoder": "^1.1.1",
|
||||||
|
"util-deprecate": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"semver": {
|
||||||
|
"version": "7.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
||||||
|
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"superagent": {
|
||||||
|
"version": "6.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz",
|
||||||
|
"integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"component-emitter": "^1.3.0",
|
||||||
|
"cookiejar": "^2.1.2",
|
||||||
|
"debug": "^4.1.1",
|
||||||
|
"fast-safe-stringify": "^2.0.7",
|
||||||
|
"form-data": "^3.0.0",
|
||||||
|
"formidable": "^1.2.2",
|
||||||
|
"methods": "^1.1.2",
|
||||||
|
"mime": "^2.4.6",
|
||||||
|
"qs": "^6.9.4",
|
||||||
|
"readable-stream": "^3.6.0",
|
||||||
|
"semver": "^7.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yallist": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"supports-color": {
|
"supports-color": {
|
||||||
"version": "5.5.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||||
|
@ -4642,6 +5239,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
||||||
},
|
},
|
||||||
|
"type-detect": {
|
||||||
|
"version": "4.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
|
||||||
|
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"type-fest": {
|
"type-fest": {
|
||||||
"version": "0.8.1",
|
"version": "0.8.1",
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
|
||||||
|
@ -4948,6 +5551,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
|
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
|
||||||
},
|
},
|
||||||
|
"workerpool": {
|
||||||
|
"version": "6.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz",
|
||||||
|
"integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"wrap-ansi": {
|
"wrap-ansi": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
|
||||||
|
@ -5110,6 +5719,38 @@
|
||||||
"camelcase": "^5.0.0",
|
"camelcase": "^5.0.0",
|
||||||
"decamelize": "^1.2.0"
|
"decamelize": "^1.2.0"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"yargs-unparser": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"camelcase": "^6.0.0",
|
||||||
|
"decamelize": "^4.0.0",
|
||||||
|
"flat": "^5.0.2",
|
||||||
|
"is-plain-obj": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"camelcase": {
|
||||||
|
"version": "6.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
|
||||||
|
"integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"decamelize": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yocto-queue": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
||||||
|
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
|
||||||
|
"dev": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
10
package.json
10
package.json
|
@ -5,8 +5,10 @@
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start:dev": "nodemon app.js",
|
"start:dev": "nodemon app.js",
|
||||||
"start": "node app.js"
|
"start": "node app.js",
|
||||||
|
"test": "mocha ||true"
|
||||||
},
|
},
|
||||||
|
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -37,6 +39,10 @@
|
||||||
"shortid": "^2.2.16"
|
"shortid": "^2.2.16"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"nodemon": "^2.0.7"
|
"chai": "^4.3.4",
|
||||||
|
"chai-http": "^4.3.0",
|
||||||
|
"mocha": "^8.4.0",
|
||||||
|
"nodemon": "^2.0.7",
|
||||||
|
"supertest": "^6.1.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,8 +98,8 @@
|
||||||
|
|
||||||
Route : /sendotp
|
Route : /sendotp
|
||||||
Method: POST
|
Method: POST
|
||||||
Body Params : phoneNumber
|
Body Params : phoneNumber , _id
|
||||||
Respone : {id:id} id of the transaction.
|
Respone : {_id} _id is the user id that just signedup .
|
||||||
|
|
||||||
Route : /getotp
|
Route : /getotp
|
||||||
Method: POST
|
Method: POST
|
||||||
|
|
|
@ -7,8 +7,8 @@ const multerS3 = require("multer-s3");
|
||||||
const aws = require("aws-sdk");
|
const aws = require("aws-sdk");
|
||||||
|
|
||||||
aws.config.update({
|
aws.config.update({
|
||||||
secretAccessKey: `${process.env.AWS_SEC}`,
|
secretAccessKey: `${process.env.AWS_SEC}`, //`${process.env.AWS_SEC}`,
|
||||||
accessKeyId: `${process.env.AWS_KEY}`,
|
accessKeyId: `${process.env.AWS_KEY}`, //`${process.env.AWS_KEY}`,
|
||||||
region: "ap-south-1",
|
region: "ap-south-1",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -39,4 +39,6 @@ router.post("/deleteBlog/", BlogController.deleteBlog);
|
||||||
|
|
||||||
router.post("/editBlog/", BlogController.editBlog);
|
router.post("/editBlog/", BlogController.editBlog);
|
||||||
|
|
||||||
|
router.post("/commentBlog/:id", isAuth, BlogController.commentBlog);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
const express = require('express') ;
|
const express = require("express");
|
||||||
|
|
||||||
const authMiddleware = require('../middleware/requirelogin') ;
|
const authMiddleware = require("../middleware/requirelogin");
|
||||||
|
|
||||||
const paymentController = require('../controllers/payment') ;
|
const paymentController = require("../controllers/payment");
|
||||||
|
|
||||||
const router = express.Router() ;
|
const router = express.Router();
|
||||||
|
|
||||||
router.post('/verification' , paymentController.postVerify) ;
|
router.post("/verification", paymentController.postVerify);
|
||||||
|
|
||||||
router.post('/razorpay' ,authMiddleware , paymentController.postRazorpay) ;
|
router.post("/razorpay", authMiddleware, paymentController.postRazorpay);
|
||||||
|
|
||||||
module.exports = router ;
|
router.post("/amount", paymentController.amount);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
let chai = require("chai");
|
||||||
|
let chaiHttp = require("chai-http");
|
||||||
|
let app = require("../app");
|
||||||
|
let request = require("supertest");
|
||||||
|
let authController = require("../controllers/auth");
|
||||||
|
let User = require("../models/User");
|
||||||
|
|
||||||
|
// //Assertion Style
|
||||||
|
// chai.should();
|
||||||
|
// chai.use(chaiHttp);
|
||||||
|
// describe("Testing API", () => {
|
||||||
|
// describe("POST /signup", () => {
|
||||||
|
// it(
|
||||||
|
// "should return User already exist if a record found " +
|
||||||
|
// "with the email provided",
|
||||||
|
// (done) => {
|
||||||
|
// chai
|
||||||
|
// .request(app)
|
||||||
|
// .post("/signup")
|
||||||
|
// .end((err, response) => {
|
||||||
|
// response.should.have.status(422);
|
||||||
|
// response.body.should.be.a(String);
|
||||||
|
// done();
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
|
||||||
|
test("should ", (done) => {
|
||||||
|
request(app)
|
||||||
|
.post("/signup")
|
||||||
|
.send({ email: "testtt@mail.com", password: "password@11" })
|
||||||
|
.then(() => {
|
||||||
|
request(app).get();
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue