diff --git a/README.md b/README.md index 1651d8d99..0acf9a99e 100644 Binary files a/README.md and b/README.md differ diff --git a/_helpers/db.js b/_helpers/db.js new file mode 100644 index 000000000..b3f32c07c --- /dev/null +++ b/_helpers/db.js @@ -0,0 +1,34 @@ +const mongoose = require("mongoose"); +const environment = require("../environment"); +const defaultUserSetting = require("../models/defaultUserSetting"); + +mongoose.Promise = global.Promise; + +mongoose + .connect(environment.mongoDbConnectionString, {useNewUrlParser: true}) + .then(() => { + console.log("DB connected"); + }) + .catch((err) => { + console.log(err); + }); + +module.exports = { + members: require("../models/member.model"), + admin: require("../models/admin.model"), + role: require("../models/role.model"), + otp: require("../models/otp.model"), + payment: require("../models/payment"), + feedback: require("../models/feedback.model"), + packages: require("../models/packages.model"), + upis: require("../models/upi"), + wallet: require("../models/wallet"), + withdraw: require("../models/withdraw.model"), + game: require("../models/game.model"), + game2: require("../models/game2.model"), + game1F: require("../models/game1F.model"), + game2F: require("../models/game2F.model"), + profit: require("../models/profit"), + orderId: require("../models/orderId.model"), + subscription: require("../models/subscribedUser"), +}; diff --git a/_helpers/error-handler.js b/_helpers/error-handler.js new file mode 100644 index 000000000..5e48bee72 --- /dev/null +++ b/_helpers/error-handler.js @@ -0,0 +1,21 @@ +module.exports = errorHandler; + +function errorHandler(err, req, res, next) { + if (typeof (err) === 'string') { + // custom application error + return res.status(400).json({ message: err }); + } + + if (err.name === 'ValidationError') { + // mongoose validation error + return res.status(400).json({ message: err.message }); + } + + if (err.name === 'UnauthorizedError') { + // jwt authentication error + return res.status(401).json({ message: 'Invalid Token' }); + } + + // default to 500 server error + return res.status(500).json({ message: err.message }); +} \ No newline at end of file diff --git a/_helpers/helperMethods.js b/_helpers/helperMethods.js new file mode 100644 index 000000000..9dd2b58cd --- /dev/null +++ b/_helpers/helperMethods.js @@ -0,0 +1,88 @@ + +function fn_filter(query) { + query = JSON.parse(query); + // let filter; + // if(query.filterValue!=undefined||query.filterkey!=undefined){ + // var filterkey=JSON.stringify(query.filterkey); + // var filterValue=JSON.stringify(query.filterValue); + // let obj={ + // filterkey, + // filterValue + // } + // delete query.filterValue; delete query.filterkey; + // filter=JSON.parse(`{${obj.filterkey}:${obj.filterValue}}`) + // } + // filter=Object.assign(filter,query); + + + let filter = {}; + for (let i = 0; i < query.length; i++) { + if (query[i].filterValue != undefined || query[i].filterkey != undefined) { + var filterkey = query[i].filterkey; + var filterValue = query[i].filterValue; + let obj = { + filterkey, + filterValue + } + delete query[i].filterValue; delete query[i].filterkey; + // console.log("for Loop",filter); + filter[obj.filterkey] = obj.filterValue; + } + } + let where = []; + for (let [col, data] of Object.entries(filter)) { + //console.log("col",`${col}: ${data}`); + for (let [operator, value] of Object.entries(data)) { + //console.log("Oprator",`${operator}: ${value}`); + switch (operator) { + case 'eq': { + //where.push({ [col]: new RegExp('/^' + value + '/i') }) //exact match case insensitive, i represents insensitive + //where.push({ [col]: { $regex: '/' + value + '/' } }) + where.push({ [col]: new RegExp('^' + value + '') }) + break; + } + case 'ne': { + where.push({ [col]: { $regex: value } }) + break; + } + case 'contains': { + where.push({ [col]: new RegExp(value, "i") })// "like" + break; + } + case 'beginsWith': { + where.push({ [col]: new RegExp('/^O /' + value + '') }) + //where.push({ col: { $regex: /^O /, $options: 'm' } }) + break; + } + case 'ge': { + where.push({ [col]: { $gte: value } }) + break; + } + case 'gt': { + where.push({ [col]: { $gt: value } }) + break; + } + case 'lt': { + where.push({ [col]: { $lt: value } }) + break; + } + case 'lte': { + where.push({ [col]: { $lte: value } }) + break; + } + case 'between': { + where.push({ [col]: { $gte: value[0], $lte: value[1] } }) + break; + } + default: + break; + } + } + } + + return where; +} + +module.exports = { + fn_filter +} \ No newline at end of file diff --git a/_helpers/jwt.js b/_helpers/jwt.js new file mode 100644 index 000000000..1a90e0b55 --- /dev/null +++ b/_helpers/jwt.js @@ -0,0 +1,30 @@ +const expressJwt = require('express-jwt'); +//const config = require('config.json'); +//const userService = require('../users/user.service'); + +module.exports = jwt; + +function jwt() { + const secret = 'SOME SECRET VALUE';// config.secret; + return expressJwt({ secret, isRevoked }).unless({ + path: [ + // public routes that don't require authentication + '/users/authenticate', + '/users/register' + ] + }); +} + +async function isRevoked(req, payload, done) { + // const user = await userService.getById(payload.sub); + + // // revoke token if user no longer exists + // if (!user) { + // return done(null, true); + // } + + + return done(null, true); + + //done(); +}; \ No newline at end of file diff --git a/_helpers/sms.js b/_helpers/sms.js new file mode 100644 index 000000000..7247cffd1 --- /dev/null +++ b/_helpers/sms.js @@ -0,0 +1,45 @@ +var request = require("request"); +const db = require("../_helpers/db"); +const express = require("express"); + + + +function SendOtp(mobile) { + + + const OTP = Math.floor(000000 + Math.random() * 999999); + console.log(OTP) + + var options = { + method: "GET", + url: "https://api.authkey.io/request", + qs: { + authkey: "14f46e8842e516f7", + sms: `Use ${OTP} as your OTP to access your {#company#}, OTP is confidential and valid for {#time#}`, + mobile:`${mobile}`, + sender: "AUTHKY", + template: "Authkey otp message" + + }, + + + }; + console.log(options) + + request(options, function (error, response, body) { + if (error) { + console.log("error sms"); + console.log(error); + } + + console.log(body); + + + }); + + //2. save mobilenumber and otp in smslog table +} + +module.exports = { + SendOtp, +}; diff --git a/controllers/admin.controller.js b/controllers/admin.controller.js new file mode 100644 index 000000000..b1d854569 --- /dev/null +++ b/controllers/admin.controller.js @@ -0,0 +1,80 @@ +const express = require("express"); +const router = express.Router(); +const adminService = require("../service/admin.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/deleted", deletedMember); +router.post("/", add); +router.put("/:id", update); +router.put("/update/:id", update1); +router.delete("/:id", remove); +router.get("/user/:_id", readByUser); +router.post("/user1/:_id", readByUser1); +router.get("/user2/:_id", readByUser2); + +function readByUser(req, res, next) { + adminService + .readByUser(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByUser2(req, res, next) { + adminService + .readByUser2(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByUser1(req, res, next) { + adminService + .readByUser1(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function add(req, res, next) { + console.log(req.body); + adminService + .add(req, res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + adminService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update1(req, res, next) { + adminService + .update1(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + adminService + .remove(req, res, next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + adminService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + adminService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function deletedMember(req, res, next) { + adminService + .deletedMember(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +module.exports = router; diff --git a/controllers/defaultUserSetting.controller.js b/controllers/defaultUserSetting.controller.js new file mode 100644 index 000000000..14bbfb3a0 --- /dev/null +++ b/controllers/defaultUserSetting.controller.js @@ -0,0 +1,51 @@ +const express = require("express"); +const router = express.Router(); +const defaultUserSettingService = require("../service/defaultUserSetting.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.get("/state/:stateId", readByState); +router.post("/", add); +router.put("/:id", update); +router.delete("/:id", remove); + +function add(req, res, next) { + console.log(req.body) + defaultUserSettingService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + function update(req, res, next) { + defaultUserSettingService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + function remove(req, res, next) { + defaultUserSettingService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + + function read(req, res, next) { + defaultUserSettingService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + function readAll(req, res, next) { + defaultUserSettingService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + function readByState(req, res, next) { + defaultUserSettingService + .readByState(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + + module.exports = router; \ No newline at end of file diff --git a/controllers/emailRoutes.js b/controllers/emailRoutes.js new file mode 100644 index 000000000..f9886ea24 --- /dev/null +++ b/controllers/emailRoutes.js @@ -0,0 +1,23 @@ +const express = require("express"); +const router = express.Router(); + +const sendEmail1 = require("../service/sendEmail"); + +router.post("/sendEmail", send); +router.get("/", readAll); + +function send(req, res, next) { + console.log(req.body) + sendEmail1 + .sendEmail(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + function readAll(req, res, next) { + sendEmail1 + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + +module.exports = router; diff --git a/controllers/feedback.controller.js b/controllers/feedback.controller.js new file mode 100644 index 000000000..73182f159 --- /dev/null +++ b/controllers/feedback.controller.js @@ -0,0 +1,44 @@ +const express = require("express"); +const router = express.Router(); +const feedback = require("../service/feedback.service"); + +router.get("/:id", read); +router.get("/", readAll); + +router.post("/", add); +router.delete("/:id", remove); + + + + + +function add(req, res, next) { + console.log(req.body) + feedback + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function remove(req, res, next) { + feedback + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + feedback + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + feedback + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/controllers/game.controller.js b/controllers/game.controller.js new file mode 100644 index 000000000..2fcf87494 --- /dev/null +++ b/controllers/game.controller.js @@ -0,0 +1,126 @@ +const express = require("express"); +const router = express.Router(); +const gameService = require("../service/game.service"); + +router.get("/:id", read); +router.get("/runing/:Userid", readRuningGame); +router.get("/runing1/:Userid", readRuningGame1); +router.get("/runing2/:Userid", readRuningGame2); +router.get("/runing3/:Userid", readRuningGame3); +router.get("/runing4/:Userid", readRuningGame4); +router.get("/runing5/:Userid", readRuningGame5); +router.get("/", readAll); +router.post("/cancel", readAllCancle); +router.post("/success", readAllSuccess); +router.post("/user/status", readByUser); +router.post("/", add); +router.put("/:id", update); +router.delete("/:id", remove); +router.post("/report", successGameReport); +router.post("/report2", cancelGameReport); + + +function readByUser(req, res, next) { + gameService + .readByUser(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + + +function add(req, res, next) { + console.log(req.body) + gameService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + gameService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + gameService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + gameService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame(req, res, next) { + gameService + .readRuningGame(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame1(req, res, next) { + gameService + .readRuningGame1(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame2(req, res, next) { + gameService + .readRuningGame2(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame3(req, res, next) { + gameService + .readRuningGame3(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame4(req, res, next) { + gameService + .readRuningGame4(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame5(req, res, next) { + gameService + .readRuningGame5(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + gameService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllCancle(req, res, next) { + gameService + .readAllCancle(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllSuccess(req, res, next) { + gameService + .readAllSuccess(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function successGameReport(req, res, next) { + gameService + .successGameReport(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function cancelGameReport(req, res, next) { + gameService + .cancelGameReport(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/controllers/game1F.controller.js b/controllers/game1F.controller.js new file mode 100644 index 000000000..08b8f5d11 --- /dev/null +++ b/controllers/game1F.controller.js @@ -0,0 +1,74 @@ +const express = require("express"); +const router = express.Router(); +const gameService = require("../service/game1F.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/cancel", readAllCancle); +router.post("/cancel1", readAllCancle1); +router.post("/success", readAllSuccess); +router.post("/", add); +router.put("/:id", update); +router.delete("/:id", remove); +router.post("/report", unsolvedGame); + + +function add(req, res, next) { + console.log(req.body) + gameService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + gameService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + gameService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + gameService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + gameService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllCancle(req, res, next) { + gameService + .readAllCancle(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllCancle1(req, res, next) { + gameService + .readAllCancle1(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllSuccess(req, res, next) { + gameService + .readAllSuccess(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function unsolvedGame(req, res, next) { + gameService + .unsolvedGame(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/controllers/game2.controller.js b/controllers/game2.controller.js new file mode 100644 index 000000000..960e33fa3 --- /dev/null +++ b/controllers/game2.controller.js @@ -0,0 +1,124 @@ +const express = require("express"); +const router = express.Router(); +const gameService = require("../service/game2.service"); + +router.get("/:id", read); +router.get("/runing/:Userid", readRuningGame); +router.get("/runing1/:Userid", readRuningGame1); +router.get("/runing2/:Userid", readRuningGame2); +router.get("/runing3/:Userid", readRuningGame3); +router.get("/runing4/:Userid", readRuningGame4); +router.get("/runing5/:Userid", readRuningGame5); +router.get("/", readAll); +router.post("/cancel", readAllCancle); +router.post("/success", readAllSuccess); +router.post("/user/status", readByUser); +router.post("/", add); +router.put("/:id", update); +router.delete("/:id", remove); +router.post("/report", successGameReport); +router.post("/report2", cancelGameReport); + +function readByUser(req, res, next) { + gameService + .readByUser(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + + +function add(req, res, next) { + console.log(req.body) + gameService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + gameService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + gameService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + gameService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame(req, res, next) { + gameService + .readRuningGame(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame1(req, res, next) { + gameService + .readRuningGame1(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame2(req, res, next) { + gameService + .readRuningGame2(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame3(req, res, next) { + gameService + .readRuningGame3(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame4(req, res, next) { + gameService + .readRuningGame4(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readRuningGame5(req, res, next) { + gameService + .readRuningGame5(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + gameService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllCancle(req, res, next) { + gameService + .readAllCancle(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllSuccess(req, res, next) { + gameService + .readAllSuccess(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function successGameReport(req, res, next) { + gameService + .successGameReport(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function cancelGameReport(req, res, next) { + gameService + .cancelGameReport(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +module.exports = router; diff --git a/controllers/game2F.controller.js b/controllers/game2F.controller.js new file mode 100644 index 000000000..e538b45a7 --- /dev/null +++ b/controllers/game2F.controller.js @@ -0,0 +1,74 @@ +const express = require("express"); +const router = express.Router(); +const gameService = require("../service/game2F.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/cancel", readAllCancle); +router.post("/cancel1", readAllCancle1); +router.post("/success", readAllSuccess); +router.post("/", add); +router.put("/:id", update); +router.delete("/:id", remove); +router.post("/report", unsolvedGame); + + +function add(req, res, next) { + console.log(req.body) + gameService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + gameService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + gameService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + gameService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + gameService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllCancle(req, res, next) { + gameService + .readAllCancle(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllCancle1(req, res, next) { + gameService + .readAllCancle1(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAllSuccess(req, res, next) { + gameService + .readAllSuccess(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function unsolvedGame(req, res, next) { + gameService + .unsolvedGame(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/controllers/login.controller.js b/controllers/login.controller.js new file mode 100644 index 000000000..e6dc8beb2 --- /dev/null +++ b/controllers/login.controller.js @@ -0,0 +1,20 @@ +const express = require("express"); +const loginService = require("../service/login.service"); +const router = express.Router(); + +router.post("/", validate); +router.post("/mobile", readByMobile); + +function validate(req, res, next) { + loginService + .validate(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByMobile(req, res, next) { + loginService + .readByMobile(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +module.exports = router; diff --git a/controllers/masterLogin.controller.js b/controllers/masterLogin.controller.js new file mode 100644 index 000000000..702572952 --- /dev/null +++ b/controllers/masterLogin.controller.js @@ -0,0 +1,20 @@ +const express = require("express"); +const masterLoginService = require("../service/masterLogin.service"); +const router = express.Router(); + +router.post("/", validate); +router.post("/mobile", readByMobile); + +function validate(req, res, next) { + masterLoginService + .validate(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByMobile(req, res, next) { + masterLoginService + .readByMobile(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +module.exports = router; diff --git a/controllers/masterimport.controller.js b/controllers/masterimport.controller.js new file mode 100644 index 000000000..2bdc3eb48 --- /dev/null +++ b/controllers/masterimport.controller.js @@ -0,0 +1,24 @@ +const express = require("express"); +const router = express.Router(); +const masterImportService = require("../service/masterimport.service"); + + +router.post("/", add); +router.post("/citeis", citeis); + + +function add(req, res, next) { + masterImportService + .bulkStateSave(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function citeis(req, res, next) { + masterImportService + .bulkCitySave(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/controllers/member.controller.js b/controllers/member.controller.js new file mode 100644 index 000000000..0d7d9d15e --- /dev/null +++ b/controllers/member.controller.js @@ -0,0 +1,94 @@ +const express = require("express"); +const router = express.Router(); +const memberService = require("../service/member.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/deleted", deletedMember); +router.post("/", add); +router.put("/:id", update); +router.put("/update/:id", update1); +router.delete("/:id", remove); +router.get("/user/:_id", readByUser); +router.post("/user1/:_id", readByUser1); +router.get("/user2/:_id", readByUser2); +router.post("/report", userCountReport); +router.post("/refral", readByReferalCode); + +function readByUser(req, res, next) { + memberService + .readByUser(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByUser2(req, res, next) { + memberService + .readByUser2(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByUser1(req, res, next) { + memberService + .readByUser1(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function add(req, res, next) { + console.log(req.body); + memberService + .add(req, res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + memberService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update1(req, res, next) { + memberService + .update1(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + memberService + .remove(req, res, next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + memberService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + memberService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function deletedMember(req, res, next) { + memberService + .deletedMember(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function userCountReport(req, res, next) { + memberService + .userCountReport(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByReferalCode(req, res, next) { + memberService + .readByReferalCode(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +module.exports = router; diff --git a/controllers/mobileSms.controller.js b/controllers/mobileSms.controller.js new file mode 100644 index 000000000..6261adb54 --- /dev/null +++ b/controllers/mobileSms.controller.js @@ -0,0 +1,23 @@ +const express = require("express"); +const router = express.Router(); + +const sendEmail1 = require("../service/mobileSms"); + +router.post("/send", send); +router.get("/", readAll); + +function send(req, res, next) { + console.log(req.body) + sendEmail1 + .sendEmail(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + function readAll(req, res, next) { + sendEmail1 + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); + } + +module.exports = router; diff --git a/controllers/orderId.controller.js b/controllers/orderId.controller.js new file mode 100644 index 000000000..0e65a79cc --- /dev/null +++ b/controllers/orderId.controller.js @@ -0,0 +1,41 @@ +const express = require("express"); +const router = express.Router(); +const orderIdService = require("../service/orderId.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/", add); +router.put("/:id", update); + + +function add(req, res, next) { + console.log(req.body) + orderIdService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + orderIdService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +function read(req, res, next) { + orderIdService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + orderIdService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + + +module.exports = router; diff --git a/controllers/packages.controller.js b/controllers/packages.controller.js new file mode 100644 index 000000000..c8b0ef768 --- /dev/null +++ b/controllers/packages.controller.js @@ -0,0 +1,45 @@ +const express = require("express"); +const router = express.Router(); +const packageService = require("../service/packages.services"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/", add); +router.put("/:id", update); +router.delete("/:id", remove); + +function add(req, res, next) { + console.log(req.body) + packageService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + packageService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + packageService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + packageService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + packageService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/controllers/payment.controller.js b/controllers/payment.controller.js new file mode 100644 index 000000000..2d4d9dc84 --- /dev/null +++ b/controllers/payment.controller.js @@ -0,0 +1,67 @@ +const express = require("express"); +const router = express.Router(); +const paymentService = require("../service/payment.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.get("/user/:userid", readByUser); +router.post("/", add); +router.put("/:id", update); +router.delete("/:id", remove); +router.post("/report", reachargeReport); +router.post("/report2", reachargeReport2); + + +function readByUser(req, res, next) { + paymentService + .readByUser(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function add(req, res, next) { + console.log(req.body) + paymentService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + paymentService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + paymentService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + paymentService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + paymentService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function reachargeReport(req, res, next) { + paymentService + .reachargeReport(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function reachargeReport2(req, res, next) { + paymentService + .reachargeReport2(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/controllers/profit.controller.js b/controllers/profit.controller.js new file mode 100644 index 000000000..cff326e7a --- /dev/null +++ b/controllers/profit.controller.js @@ -0,0 +1,48 @@ +const express = require("express"); +const router = express.Router(); +const profitService = require("../service/profit.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/", add); +router.put("/:id", update); +router.post("/report", profitReport); + + + +function add(req, res, next) { + console.log(req.body) + profitService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + profitService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +function read(req, res, next) { + profitService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + profitService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function profitReport(req, res, next) { + profitService + .profitReport(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +module.exports = router; diff --git a/controllers/role.controller.js b/controllers/role.controller.js new file mode 100644 index 000000000..d699e4fef --- /dev/null +++ b/controllers/role.controller.js @@ -0,0 +1,53 @@ +const express = require("express"); +const router = express.Router(); +const roleService = require("../service/role.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.get("/state/:stateId", readByState); +router.post("/", add); +router.put("/:id", update); +router.delete("/:id", remove); + + + +function add(req, res, next) { + console.log(req.body) + roleService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + roleService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + roleService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + roleService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + roleService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByState(req, res, next) { + roleService + .readByState(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +module.exports = router; diff --git a/controllers/sendNotification.controller.js b/controllers/sendNotification.controller.js new file mode 100644 index 000000000..2cb323133 --- /dev/null +++ b/controllers/sendNotification.controller.js @@ -0,0 +1,21 @@ +const express = require("express"); +const router = express.Router(); +const subscriptionService = require("../service/sendNotification.service"); + + +router.post("/", send); + + + + + +function send(req, res, next) { + console.log(req.body) + subscriptionService + .send(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/controllers/subscriptions.controller.js b/controllers/subscriptions.controller.js new file mode 100644 index 000000000..46c4d3d3b --- /dev/null +++ b/controllers/subscriptions.controller.js @@ -0,0 +1,48 @@ +const express = require("express"); +const router = express.Router(); +const subscriptionService = require("../service/subscribedUser.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/active/", readByState); +router.post("/", add); + +router.delete("/:id", remove); + + + +function add(req, res, next) { + console.log(req.body) + subscriptionService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function remove(req, res, next) { + subscriptionService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + subscriptionService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + subscriptionService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByState(req, res, next) { + subscriptionService + .readByState(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +module.exports = router; diff --git a/controllers/upi.controller.js b/controllers/upi.controller.js new file mode 100644 index 000000000..cf60d7da4 --- /dev/null +++ b/controllers/upi.controller.js @@ -0,0 +1,53 @@ +const express = require("express"); +const router = express.Router(); +const upiService = require("../service/upi.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/active/", readByState); +router.post("/", add); +router.put("/:id", update); +router.delete("/:id", remove); + + + +function add(req, res, next) { + console.log(req.body) + upiService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + upiService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function remove(req, res, next) { + upiService + .remove(req,res,next) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +function read(req, res, next) { + upiService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + upiService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readByState(req, res, next) { + upiService + .readByState(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + +module.exports = router; diff --git a/controllers/wallet.controller.js b/controllers/wallet.controller.js new file mode 100644 index 000000000..25ef19564 --- /dev/null +++ b/controllers/wallet.controller.js @@ -0,0 +1,41 @@ +const express = require("express"); +const router = express.Router(); +const walletService = require("../service/wallet.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.post("/", add); +router.put("/:id", update); + + + +function add(req, res, next) { + console.log(req.body) + walletService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + walletService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +function read(req, res, next) { + walletService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + walletService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/controllers/withdraw.controller.js b/controllers/withdraw.controller.js new file mode 100644 index 000000000..20d4fad42 --- /dev/null +++ b/controllers/withdraw.controller.js @@ -0,0 +1,61 @@ +const express = require("express"); +const router = express.Router(); +const withdrawService = require("../service/withdraw.service"); + +router.get("/:id", read); +router.get("/", readAll); +router.get("/user/:userid", readByUser); +router.post("/", add); +router.put("/:id", update); +router.post("/report", reachargeReport); +router.post("/report2", reachargeReport2); + + +function readByUser(req, res, next) { + withdrawService + .readByUser(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function add(req, res, next) { + console.log(req.body) + withdrawService + .add(req,res) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function update(req, res, next) { + withdrawService + .update(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +function read(req, res, next) { + withdrawService + .read(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function readAll(req, res, next) { + withdrawService + .readAll(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function reachargeReport(req, res, next) { + withdrawService + .reachargeReport(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} +function reachargeReport2(req, res, next) { + withdrawService + .reachargeReport2(req) + .then((data) => res.send(data)) + .catch((err) => next(err)); +} + + +module.exports = router; diff --git a/copyserver.js b/copyserver.js new file mode 100644 index 000000000..2b4bd722b --- /dev/null +++ b/copyserver.js @@ -0,0 +1,66 @@ +const express = require('express') +const cors = require('cors') +const bodyParser = require('body-parser') +const errorHandler = require('./_helpers/error-handler') +const environment = require('./environment') +const PORT = process.env.PORT || 6001 +const swaggerUi = require('swagger-ui-express'); +const swaggerDocument = require('./swagger.json'); + +const app = express() + +app.use('/api-docs', swaggerUi.serve); +app.get('/api-docs', swaggerUi.setup(swaggerDocument)); + +app.use(bodyParser.urlencoded({ extended: false })) +app.use(bodyParser.json()) +app.use(cors({ + origin: '*' +})); +app.get('/', (req, res) => { + console.log('Welcome to NODE API (Port: ' + PORT + ' , Environment: ' + environment.env + ')') + res.send('Welcome to NODE API (Port: ' + PORT + ' , Environment: ' + environment.env + ')') +}) + + +app.use('/member', require('./controllers/member.controller')) +app.use('/admin', require('./controllers/admin.controller')) +app.use('/login', require('./controllers/login.controller')) +app.use('/masterLogin', require('./controllers/masterLogin.controller')) +app.use('/role', require('./controllers/role.controller')) +app.use('/email', require('./controllers/emailRoutes')) +app.use('/upi', require('./controllers/upi.controller')) +app.use('/wallet', require('./controllers/wallet.controller')) +app.use('/withdraw', require('./controllers/withdraw.controller')) +app.use('/payment', require('./controllers/payment.controller')) +app.use('/game', require('./controllers/game.controller')) +app.use('/game2', require('./controllers/game2.controller')) +app.use('/sms', require('./controllers/mobileSms.controller')) +app.use('/feedback', require('./controllers/feedback.controller')) +app.use('/packages', require('./controllers/packages.controller')) +app.use('/game1F', require('./controllers/game1F.controller')) +app.use('/game2F', require('./controllers/game2F.controller')) +app.use('/profit', require('./controllers/profit.controller')) +app.use('/orderId', require('./controllers/orderId.controller')) + + + +app.use('/roomeCode', require('./service/roomCode')) + + + + + + +app.use('/upload', require('./fileUpload')) + + + +app.use('/masterimport', require('./controllers/masterimport.controller')) + + +app.use(errorHandler) + +app.listen(PORT, () => { + console.log(`Server started on port ${PORT} , Environment: ${environment.env}`) +}) diff --git a/email.js b/email.js new file mode 100644 index 000000000..4cd96f766 --- /dev/null +++ b/email.js @@ -0,0 +1,24 @@ +var nodemailer = require('nodemailer'); + +var transporter = nodemailer.createTransport({ + service: 'gmail', + auth: { + user: 'orbotsoftwares@gmail.com', + pass: 'orbot@1212' + } +}); + +var mailOptions = { + from: 'orbotsoftwares@gmail.com', + to: 'ashfakshikh@gmail.com', + subject: 'Sending Email using Node.js', + text: 'That was easy!' +}; + +transporter.sendMail(mailOptions, function(error, info){ + if (error) { + console.log(error); + } else { + console.log('Email sent: ' + info.response); + } +}); \ No newline at end of file diff --git a/env.sample b/env.sample deleted file mode 100644 index fafbde598..000000000 --- a/env.sample +++ /dev/null @@ -1,2 +0,0 @@ -CYCLIC_DB=some-long-app-nameCyclicDB -BUCKET=cyclic-some-long-app-name-id-direction-1 diff --git a/environment.js b/environment.js new file mode 100644 index 000000000..0e21cf831 --- /dev/null +++ b/environment.js @@ -0,0 +1,12 @@ +const dev = { + env: process.env.NODE_ENV, +//mongoDbConnectionString: "mongodb://127.0.0.1:27017/realludoking", +mongoDbConnectionString: "mongodb+srv://orbot:orbot@1212@cluster0.grnzrng.mongodb.net/realludoclub", +//mongoDbConnectionString: "mongodb+srv://orbot:orbot@1212@cluster0.grnzrng.mongodb.net/ludokingjaipur", +} + + +const environment = dev + + +module.exports = environment diff --git a/fileUpload.js b/fileUpload.js new file mode 100644 index 000000000..037476208 --- /dev/null +++ b/fileUpload.js @@ -0,0 +1,41 @@ +const express = require("express"); +const db = require("./_helpers/db"); +const multer = require('multer'); +const router = express.Router(); + +const dbRole = db.role; +var filePath ; +// Set up Multer storage +const storage = multer.diskStorage({ + destination: (req, file, cb) => { + // Define the destination directory where files will be saved + cb(null, 'uploads/'); + }, + filename: (req, file, cb) => { + // Define the filename for the saved file + filePath = file.fieldname + '-' + Date.now() + '-' + file.originalname + cb(null, filePath); + + }, + + +} +); + +// Create Multer instance with the configured storage +const upload = multer({ storage: storage }); +router.post('/', upload.single('file'), (req, res) => { + var data ={ + data: filePath, responseCode: 1, responseMessage: "success" + } + res.send(data); + console.log(filePath) + }) + router.get(`/:filename`, (req, res) => { + console.log("hii") + const filename = req.params.filename; + console.log(`${__dirname}/uploads/${filename}`) + res.sendFile(`${__dirname}/uploads/${filename}`); + }); + +module.exports = router diff --git a/ind.js b/ind.js new file mode 100644 index 000000000..d695e584d --- /dev/null +++ b/ind.js @@ -0,0 +1,19 @@ +const axios = require('axios'); + +const options = { + method: 'GET', + url: 'https://ludo-king-room-code-api.p.rapidapi.com/global/checkroom', + params: {code: 'roomcode'}, + headers: { + 'X-RapidAPI-Key': '679a1295edmsh06a539c0ebb34d3p1bf229jsnf3d26418d766', + 'X-RapidAPI-Host': 'ludo-king-room-code-api.p.rapidapi.com' + } +}; + +try { + const response = axios.request(options); + console.log("response.data"); + console.log(response.data); +} catch (error) { + //console.error("error",error); +} \ No newline at end of file diff --git a/index.js b/index.js deleted file mode 100644 index 75bad146a..000000000 --- a/index.js +++ /dev/null @@ -1,72 +0,0 @@ -const express = require('express') -const app = express() -const db = require('@cyclic.sh/dynamodb') - -app.use(express.json()) -app.use(express.urlencoded({ extended: true })) - -// ############################################################################# -// This configures static hosting for files in /public that have the extensions -// listed in the array. -// var options = { -// dotfiles: 'ignore', -// etag: false, -// extensions: ['htm', 'html','css','js','ico','jpg','jpeg','png','svg'], -// index: ['index.html'], -// maxAge: '1m', -// redirect: false -// } -// app.use(express.static('public', options)) -// ############################################################################# - -// Create or Update an item -app.post('/:col/:key', async (req, res) => { - console.log(req.body) - - const col = req.params.col - const key = req.params.key - console.log(`from collection: ${col} delete key: ${key} with params ${JSON.stringify(req.params)}`) - const item = await db.collection(col).set(key, req.body) - console.log(JSON.stringify(item, null, 2)) - res.json(item).end() -}) - -// Delete an item -app.delete('/:col/:key', async (req, res) => { - const col = req.params.col - const key = req.params.key - console.log(`from collection: ${col} delete key: ${key} with params ${JSON.stringify(req.params)}`) - const item = await db.collection(col).delete(key) - console.log(JSON.stringify(item, null, 2)) - res.json(item).end() -}) - -// Get a single item -app.get('/:col/:key', async (req, res) => { - const col = req.params.col - const key = req.params.key - console.log(`from collection: ${col} get key: ${key} with params ${JSON.stringify(req.params)}`) - const item = await db.collection(col).get(key) - console.log(JSON.stringify(item, null, 2)) - res.json(item).end() -}) - -// Get a full listing -app.get('/:col', async (req, res) => { - const col = req.params.col - console.log(`list collection: ${col} with params: ${JSON.stringify(req.params)}`) - const items = await db.collection(col).list() - console.log(JSON.stringify(items, null, 2)) - res.json(items).end() -}) - -// Catch all handler for all other request. -app.use('*', (req, res) => { - res.json({ msg: 'no route handler found' }).end() -}) - -// Start the server -const port = process.env.PORT || 3000 -app.listen(port, () => { - console.log(`index.js listening on ${port}`) -}) diff --git a/lightsail-cmd b/lightsail-cmd new file mode 100644 index 000000000..f97e3efe2 --- /dev/null +++ b/lightsail-cmd @@ -0,0 +1,17 @@ + + +cat vhost.conf +cp vhost.conf /opt/bitnami/apache/conf/vhosts/ +cd /opt/bitnami/apache/conf/ +ls +tail httpd.conf +apachectl configtest +sudo /opt/bitnami/ctlscript.sh restart apache +apachectl -S + + + +sudo /opt/bitnami/bncert-tool + +ls /opt/bitnami/apache/conf/ + diff --git a/models/admin.model.js b/models/admin.model.js new file mode 100644 index 000000000..6c366a881 --- /dev/null +++ b/models/admin.model.js @@ -0,0 +1,29 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Admin = new Schema({ + id: { type: Number, unique: true, min: 1 }, + name: { + type: String, + required: true, + max: [127, "Max Length is 127 characters"], + }, + mobile: { type: String, unique: true, max: [10] }, + email: { type: String }, + registerDate: { type: Date }, + password: { type: String }, + isDeleted: { type: Boolean }, + + role: { type: String }, +}); + +Admin.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("admin", this, next); +}); + +module.exports = mongoose.model("admin", Admin); diff --git a/models/counterModel.js b/models/counterModel.js new file mode 100644 index 000000000..8ddb6644e --- /dev/null +++ b/models/counterModel.js @@ -0,0 +1,29 @@ +var mongoose = require("mongoose"); +var Schema = mongoose.Schema; + +const counterSchema = new Schema({ + _id: { type: String, required: true }, + seq: { type: Number, default: 0 }, +}); + +counterSchema.index({ _id: 1, seq: 1 }, { unique: true }); + +const counterModel = mongoose.model("counter", counterSchema); + +const autoIncrementModelID = function (modelName, doc, next) { + counterModel.findByIdAndUpdate( + // ** Method call begins ** + modelName, // The ID to find for in counters model + { $inc: { seq: 1 } }, // The update + { new: true, upsert: true }, // The options + function (error, counter) { + // The callback + if (error) return next(error); + + doc.id = counter.seq; + next(); + } + ); // ** Method call ends ** +}; + +module.exports = autoIncrementModelID; diff --git a/models/defaultUserSetting.js b/models/defaultUserSetting.js new file mode 100644 index 000000000..dcaff4328 --- /dev/null +++ b/models/defaultUserSetting.js @@ -0,0 +1,24 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const DefaultUserSetting = new Schema({ + id: { type: String, unique: true, min: 1 }, + companyId: { type: Schema.Types.ObjectId, ref: 'company' }, + userId: { type: Number, required: true }, + snf: { type: Number }, + fat: { type: Number }, + dateFormate: { type: String }, + showCompanyName: { type: String }, + showUserName: { type: String }, +}); + +DefaultUserSetting.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("DefaultUserSetting", this, next); +}); + +module.exports = mongoose.model("DefaultUserSetting", DefaultUserSetting); diff --git a/models/feedback.model.js b/models/feedback.model.js new file mode 100644 index 000000000..499492ee1 --- /dev/null +++ b/models/feedback.model.js @@ -0,0 +1,25 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Feedback = new Schema({ + id: { type: Number, unique: true, min: 1 }, + message: { + type: String, + required: true, + max: [127, "Max Length is 127 characters"], + }, + messageDate: { type: Date }, + + memberId: { type: Schema.Types.ObjectId, ref: 'members' }, +}); + +Feedback.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("feedback", this, next); +}); + +module.exports = mongoose.model("feedback", Feedback); diff --git a/models/game.model.js b/models/game.model.js new file mode 100644 index 000000000..8907508ab --- /dev/null +++ b/models/game.model.js @@ -0,0 +1,31 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Game = new Schema({ + id: { type: String, unique: true, min: 1 }, + gameDate: { type: Date }, + gameJoinedDate: { type: Date }, + player1: { type: Schema.Types.ObjectId, ref: "members" }, + player2: { type: Schema.Types.ObjectId, ref: "members" }, + status:{ type: String}, + player1Status:{ type: String}, + player2Status:{ type: String}, + froudStatus:{ type: Boolean}, + winner:{ type: String}, + gameAmount:{ type: Number}, + playerCount:{type:Number}, + winningAmount:{type:Number}, + roomCode:{type:String}, + debitAmount:{type:Boolean}, +}); + +Game.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("game", this, next); +}); + +module.exports = mongoose.model("game", Game); diff --git a/models/game1F.model.js b/models/game1F.model.js new file mode 100644 index 000000000..be62f037e --- /dev/null +++ b/models/game1F.model.js @@ -0,0 +1,27 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Game1F = new Schema({ + id: { type: String, unique: true, min: 1 }, + gameFDate: { type: Date }, + player1: { type: Schema.Types.ObjectId, ref: "members" }, + player2: { type: Schema.Types.ObjectId, ref: "members" }, + game: { type: Schema.Types.ObjectId, ref: "game" }, + status:{ type: String}, + reporter:{ type: Schema.Types.ObjectId, ref: "members" }, + gameAmount:{ type: Number}, + winningAmount:{type:Number}, + roomCode:{type:Number}, + image:{type:String}, +}); + +Game1F.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("game1F", this, next); +}); + +module.exports = mongoose.model("game1F", Game1F); diff --git a/models/game2.model.js b/models/game2.model.js new file mode 100644 index 000000000..10587c389 --- /dev/null +++ b/models/game2.model.js @@ -0,0 +1,32 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Game2 = new Schema({ + id: { type: String, unique: true, min: 1 }, + gameDate: { type: Date }, + gameJoinedDate: { type: Date }, + + player1: { type: Schema.Types.ObjectId, ref: "members" }, + player2: { type: Schema.Types.ObjectId, ref: "members" }, + status:{ type: String}, + player1Status:{ type: String}, + player2Status:{ type: String}, + froudStatus:{ type: Boolean}, + winner:{ type: String}, + gameAmount:{ type: Number}, + playerCount:{type:Number}, + winningAmount:{type:Number}, + roomCode:{type:String}, + debitAmount:{type:Boolean}, +}); + +Game2.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("game2", this, next); +}); + +module.exports = mongoose.model("game2", Game2); diff --git a/models/game2F.model.js b/models/game2F.model.js new file mode 100644 index 000000000..676128bbb --- /dev/null +++ b/models/game2F.model.js @@ -0,0 +1,27 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Game2F = new Schema({ + id: { type: String, unique: true, min: 1 }, + gameFDate: { type: Date }, + player1: { type: Schema.Types.ObjectId, ref: "members" }, + player2: { type: Schema.Types.ObjectId, ref: "members" }, + game: { type: Schema.Types.ObjectId, ref: "game2" }, + status:{ type: String}, + reporter:{ type: Schema.Types.ObjectId, ref: "members" }, + gameAmount:{ type: Number}, + winningAmount:{type:Number}, + roomCode:{type:Number}, + image:{type:String}, +}); + +Game2F.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("game2F", this, next); +}); + +module.exports = mongoose.model("game2F", Game2F); diff --git a/models/member.model.js b/models/member.model.js new file mode 100644 index 000000000..55a06c397 --- /dev/null +++ b/models/member.model.js @@ -0,0 +1,31 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Member = new Schema({ + id: { type: Number, unique: true, min: 1 }, + name: { + type: String, + required: true, + max: [127, "Max Length is 127 characters"], + }, + mobile: { type: String, unique: true, max: [10] }, + email: { type: String }, + registerDate: { type: Date }, + password: { type: String }, + memberReferCode: { type: String }, + referCode: { type: String }, + isDeleted: { type: Boolean }, + wallet: { type: Schema.Types.ObjectId, ref: "wallet" }, + +}); + +Member.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("members", this, next); +}); + +module.exports = mongoose.model("members", Member); diff --git a/models/orderId.model.js b/models/orderId.model.js new file mode 100644 index 000000000..dab900b21 --- /dev/null +++ b/models/orderId.model.js @@ -0,0 +1,19 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const OrderId = new Schema({ + id: { type: String, unique: true, min: 1 }, + orderId:{type:Number} + +}); + +OrderId.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("orderId", this, next); +}); + +module.exports = mongoose.model("orderId", OrderId); diff --git a/models/otp.model.js b/models/otp.model.js new file mode 100644 index 000000000..0df754058 --- /dev/null +++ b/models/otp.model.js @@ -0,0 +1,20 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Otp = new Schema({ + id: { type: Number, unique: true, min: 1 }, + mobile: { type: String ,require:true}, + otp: { type: String ,require:true}, + +}); + +Otp.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("otp", this, next); +}); + +module.exports = mongoose.model("otp", Otp); diff --git a/models/packages.model.js b/models/packages.model.js new file mode 100644 index 000000000..e332c8e74 --- /dev/null +++ b/models/packages.model.js @@ -0,0 +1,21 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Package = new Schema({ + id: { type: String, unique: true, min: 1 }, + packageValue:{ type: Number}, + duration:{ type: String}, + transactionDate: { type: Date }, + +}); + +Package.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("package", this, next); +}); + +module.exports = mongoose.model("package", Package); diff --git a/models/payment.js b/models/payment.js new file mode 100644 index 000000000..c0a64c18a --- /dev/null +++ b/models/payment.js @@ -0,0 +1,25 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Payment = new Schema({ + id: { type: String, unique: true, min: 1 }, + userId: { type: Number, required: true }, + transactionDate: { type: Date }, + member: { type: Schema.Types.ObjectId, ref: "members" }, + amount:{ type: Number}, + + status:{ type: String}, + orderId:{type:String} +}); + + +Payment.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("payment", this, next); +}); + +module.exports = mongoose.model("payment", Payment); diff --git a/models/profit.js b/models/profit.js new file mode 100644 index 000000000..9fbdedc57 --- /dev/null +++ b/models/profit.js @@ -0,0 +1,19 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Profit = new Schema({ + id: { type: String, unique: true, min: 1 }, + amount:{ type: Number}, + date:{type:Date} +}); + +Profit.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("profit", this, next); +}); + +module.exports = mongoose.model("profit", Profit); diff --git a/models/role.model.js b/models/role.model.js new file mode 100644 index 000000000..81bea6daa --- /dev/null +++ b/models/role.model.js @@ -0,0 +1,23 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Role = new Schema({ + id: { type: Number, unique: true, min: 1 }, + name: { + type: String, + required: true, + max: [127, "Max Length is 127 characters"], + }, + +}); + +Role.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("role", this, next); +}); + +module.exports = mongoose.model("role", Role); diff --git a/models/subscribedUser.js b/models/subscribedUser.js new file mode 100644 index 000000000..2e05cacf8 --- /dev/null +++ b/models/subscribedUser.js @@ -0,0 +1,19 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Subscription = new Schema({ + id: { type: String, unique: true, min: 1 }, + subscription:{ type: String , required: true,}, + member:{ type: Schema.Types.ObjectId, ref: "members" }, +}); + +Subscription.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("subscriptions", this, next); +}); + +module.exports = mongoose.model("subscriptions", Subscription); diff --git a/models/upi.js b/models/upi.js new file mode 100644 index 000000000..31fc6779c --- /dev/null +++ b/models/upi.js @@ -0,0 +1,19 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Upi = new Schema({ + id: { type: String, unique: true, min: 1 }, + name:{ type: String}, + status:{ type: String}, +}); + +Upi.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("upis", this, next); +}); + +module.exports = mongoose.model("upis", Upi); diff --git a/models/wallet.js b/models/wallet.js new file mode 100644 index 000000000..01ad3a390 --- /dev/null +++ b/models/wallet.js @@ -0,0 +1,25 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Wallet = new Schema({ + id: { type: String, unique: true, min: 1 }, + member: { type: Schema.Types.ObjectId, ref: "members" }, + amount:{ type: Number}, + winningAmount:{ type: Number}, + RefralWinningAmount:{ type: Number}, + depositeAmount:{ type: Number}, + bonus:{ type: Number}, + winningFreezAmount:{ type: Number}, + totalWinningAmount:{ type: Number}, +}); + +Wallet.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("wallet", this, next); +}); + +module.exports = mongoose.model("wallet", Wallet); diff --git a/models/withdraw.model.js b/models/withdraw.model.js new file mode 100644 index 000000000..5718c150d --- /dev/null +++ b/models/withdraw.model.js @@ -0,0 +1,24 @@ +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const autoIncrementModelID = require("./counterModel"); + +const Withdraw = new Schema({ + id: { type: String, unique: true, min: 1 }, + userId: { type: Number, required: true }, + member: { type: Schema.Types.ObjectId, ref: "members" }, + amount:{ type: Number}, + upi:{ type: String}, + status:{ type: String}, + transactionDate: { type: Date }, + +}); + +Withdraw.pre("save", function (next) { + if (!this.isNew) { + next(); + return; + } + autoIncrementModelID("withdraw", this, next); +}); + +module.exports = mongoose.model("withdraw", Withdraw); diff --git a/myapp-http-vhost.conf b/myapp-http-vhost.conf new file mode 100644 index 000000000..922c340d7 --- /dev/null +++ b/myapp-http-vhost.conf @@ -0,0 +1,17 @@ + + + ServerAlias * + + DocumentRoot "/home/bitnami/htdocs/realludo-api" + + + + Require all granted + + + + ProxyPass / http://localhost:3000/ + + ProxyPassReverse / http://localhost:3000/ + + diff --git a/myapp-https-vhost.conf b/myapp-https-vhost.conf new file mode 100644 index 000000000..ffd8e446d --- /dev/null +++ b/myapp-https-vhost.conf @@ -0,0 +1,12 @@ + + ServerAlias * + SSLEngine on + SSLCertificateFile "/opt/bitnami/apache/conf/bitnami/certs/server.crt" + SSLCertificateKeyFile "/opt/bitnami/apache/conf/bitnami/certs/server.key" + DocumentRoot "/home/bitnami/htdocs/realludo-api" + + Require all granted + + ProxyPass / http://localhost:3000/ + ProxyPassReverse / http://localhost:3000/ + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 7a407504c..000000000 --- a/package-lock.json +++ /dev/null @@ -1,4214 +0,0 @@ -{ - "name": "starter-rest-api", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "starter-rest-api", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@cyclic.sh/dynamodb": "^0.0.33", - "env-cmd": "^10.1.0", - "express": "^4.18.1" - }, - "devDependencies": { - "nodemon": "^2.0.22" - } - }, - "node_modules/@aws-crypto/ie11-detection": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", - "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", - "dependencies": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", - "dependencies": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/supports-web-crypto": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", - "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", - "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", - "dependencies": { - "@aws-sdk/types": "^3.110.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/util/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-sdk/abort-controller": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.78.0.tgz", - "integrity": "sha512-iz1YLwM2feJUj/y97yO4XmDeTxs+yZ1XJwQgoawKuc8IDBKUutnJNCHL5jL04WUKU7Nrlq+Hr2fCTScFh2z9zg==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/abort-controller/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/client-dynamodb": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.82.0.tgz", - "integrity": "sha512-8w4a+v5iVfX+XSTPRFQOtFRrFkZBStnJR5UUhGoF3kHEY8PTb92I3FDFAa1K2bfcbkZjown/mOF/aWMe+DAgHw==", - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.82.0", - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/credential-provider-node": "3.82.0", - "@aws-sdk/fetch-http-handler": "3.78.0", - "@aws-sdk/hash-node": "3.78.0", - "@aws-sdk/invalid-dependency": "3.78.0", - "@aws-sdk/middleware-content-length": "3.78.0", - "@aws-sdk/middleware-endpoint-discovery": "3.80.0", - "@aws-sdk/middleware-host-header": "3.78.0", - "@aws-sdk/middleware-logger": "3.78.0", - "@aws-sdk/middleware-retry": "3.80.0", - "@aws-sdk/middleware-serde": "3.78.0", - "@aws-sdk/middleware-signing": "3.78.0", - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/middleware-user-agent": "3.78.0", - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/node-http-handler": "3.82.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/url-parser": "3.78.0", - "@aws-sdk/util-base64-browser": "3.58.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.78.0", - "@aws-sdk/util-defaults-mode-node": "3.81.0", - "@aws-sdk/util-user-agent-browser": "3.78.0", - "@aws-sdk/util-user-agent-node": "3.80.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", - "@aws-sdk/util-waiter": "3.78.0", - "tslib": "^2.3.1", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/client-dynamodb/node_modules/@aws-sdk/smithy-client": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.78.0.tgz", - "integrity": "sha512-qweaupZtFPm9rFiEgErnVNgB6co/DylJfhC6/UImHBKa7mGzxv6t2JDm6+d8fs8cNnGNXozN+jJG8Lz6C8Roxw==", - "dependencies": { - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/client-dynamodb/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.82.0.tgz", - "integrity": "sha512-zfscjrufPLh1RwdVMDx+5xxZbrY64UD4aSHlmWcPxE8ySj2MVfoE18EBQcCgY82U5QgssT7yxtUirxyI2b92tw==", - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/fetch-http-handler": "3.78.0", - "@aws-sdk/hash-node": "3.78.0", - "@aws-sdk/invalid-dependency": "3.78.0", - "@aws-sdk/middleware-content-length": "3.78.0", - "@aws-sdk/middleware-host-header": "3.78.0", - "@aws-sdk/middleware-logger": "3.78.0", - "@aws-sdk/middleware-retry": "3.80.0", - "@aws-sdk/middleware-serde": "3.78.0", - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/middleware-user-agent": "3.78.0", - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/node-http-handler": "3.82.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/url-parser": "3.78.0", - "@aws-sdk/util-base64-browser": "3.58.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.78.0", - "@aws-sdk/util-defaults-mode-node": "3.81.0", - "@aws-sdk/util-user-agent-browser": "3.78.0", - "@aws-sdk/util-user-agent-node": "3.80.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.78.0.tgz", - "integrity": "sha512-qweaupZtFPm9rFiEgErnVNgB6co/DylJfhC6/UImHBKa7mGzxv6t2JDm6+d8fs8cNnGNXozN+jJG8Lz6C8Roxw==", - "dependencies": { - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/client-sts": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.82.0.tgz", - "integrity": "sha512-gR1dz/a6lMD2U+AUpLUocXDruDDQFCUoknrpzMZPCAVsamrF17dwKKCgKVlz6zseHP6uPMPluuppvYQ16wsYyQ==", - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/credential-provider-node": "3.82.0", - "@aws-sdk/fetch-http-handler": "3.78.0", - "@aws-sdk/hash-node": "3.78.0", - "@aws-sdk/invalid-dependency": "3.78.0", - "@aws-sdk/middleware-content-length": "3.78.0", - "@aws-sdk/middleware-host-header": "3.78.0", - "@aws-sdk/middleware-logger": "3.78.0", - "@aws-sdk/middleware-retry": "3.80.0", - "@aws-sdk/middleware-sdk-sts": "3.78.0", - "@aws-sdk/middleware-serde": "3.78.0", - "@aws-sdk/middleware-signing": "3.78.0", - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/middleware-user-agent": "3.78.0", - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/node-http-handler": "3.82.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/url-parser": "3.78.0", - "@aws-sdk/util-base64-browser": "3.58.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.78.0", - "@aws-sdk/util-defaults-mode-node": "3.81.0", - "@aws-sdk/util-user-agent-browser": "3.78.0", - "@aws-sdk/util-user-agent-node": "3.80.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/smithy-client": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.78.0.tgz", - "integrity": "sha512-qweaupZtFPm9rFiEgErnVNgB6co/DylJfhC6/UImHBKa7mGzxv6t2JDm6+d8fs8cNnGNXozN+jJG8Lz6C8Roxw==", - "dependencies": { - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/config-resolver": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.80.0.tgz", - "integrity": "sha512-vFruNKlmhsaC8yjnHmasi1WW/7EELlEuFTj4mqcqNqR4dfraf0maVvpqF1VSR8EstpFMsGYI5dmoWAnnG4PcLQ==", - "dependencies": { - "@aws-sdk/signature-v4": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-config-provider": "3.55.0", - "@aws-sdk/util-middleware": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/config-resolver/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.78.0.tgz", - "integrity": "sha512-K41VTIzVHm2RyIwtBER8Hte3huUBXdV1WKO+i7olYVgLFmaqcZUNrlyoGDRqZcQ/u4AbxTzBU9jeMIbIfzMOWg==", - "dependencies": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-env/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.81.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.81.0.tgz", - "integrity": "sha512-BHopP+gaovTYj+4tSrwCk8NNCR48gE9CWmpIOLkP9ell0gOL81Qh7aCEiIK0BZBZkccv1s16cYq1MSZZGS7PEQ==", - "dependencies": { - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/url-parser": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-imds/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.82.0.tgz", - "integrity": "sha512-2HrH5Ok/ZpN/81JbIY+HiKjNtGoXP50jyX8a5Dpez41hLuXek7j2ENWRcNOMkPtot+Ri088h661Y7sdzOv1etg==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.78.0", - "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/credential-provider-sso": "3.82.0", - "@aws-sdk/credential-provider-web-identity": "3.78.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.82.0.tgz", - "integrity": "sha512-jjZj5h+tKaFBl/RnZ4Atpdtot6ZK4F2EBC8t+sNnFhPqcnhO42+7tLZ/aXhdY1oCvD54RG3exHFRsY6qDe8MhQ==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.78.0", - "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/credential-provider-ini": "3.82.0", - "@aws-sdk/credential-provider-process": "3.80.0", - "@aws-sdk/credential-provider-sso": "3.82.0", - "@aws-sdk/credential-provider-web-identity": "3.78.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.80.0.tgz", - "integrity": "sha512-3Ro+kMMyLUJHefOhGc5pOO/ibGcJi8bkj0z/Jtqd5I2Sm1qi7avoztST67/k48KMW1OqPnD/FUqxz5T8B2d+FQ==", - "dependencies": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-process/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.82.0.tgz", - "integrity": "sha512-cOIFD6dohrp/cz3bkT0rxbfHgNA4wXRtOciitbBpNnfxOdu51M9bp+XZFb3tdTfhE9fIr4Y+BGqF6AXWZkikLg==", - "dependencies": { - "@aws-sdk/client-sso": "3.82.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.78.0.tgz", - "integrity": "sha512-9/IvqHdJaVqMEABA8xZE3t5YF1S2PepfckVu0Ws9YUglj6oO+2QyVX6aRgMF1xph6781+Yc31TDh8/3eaDja7w==", - "dependencies": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/endpoint-cache": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.55.0.tgz", - "integrity": "sha512-kxDoHFDuQwZEEUZRp+ZLOg68EXuKPzUN86DcpIZantDVcmu7MSPTbbQp9DZd8MnKVEKCP7Sop5f7zCqOPl3LXw==", - "dependencies": { - "mnemonist": "0.38.3", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.78.0.tgz", - "integrity": "sha512-cR6r2h2kJ1DNEZSXC6GknQB7OKmy+s9ZNV+g3AsNqkrUmNNOaHpFoSn+m6SC3qaclcGd0eQBpqzSu/TDn23Ihw==", - "dependencies": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/querystring-builder": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-base64-browser": "3.58.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/fetch-http-handler/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/hash-node": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.78.0.tgz", - "integrity": "sha512-ev48yXaqZVtMeuKy52LUZPHCyKvkKQ9uiUebqkA+zFxIk+eN8SMPFHmsififIHWuS6ZkXBUSctjH9wmLebH60A==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/hash-node/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.78.0.tgz", - "integrity": "sha512-zUo+PbeRMN/Mzj6y+6p9qqk/znuFetT1gmpOcZGL9Rp2T+b9WJWd+daq5ktsL10sVCzIt2UvneJRz6b+aU+bfw==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/invalid-dependency/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", - "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/lib-dynamodb": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.82.0.tgz", - "integrity": "sha512-QPQme4HirCJBqXMjxd59ncTqfRZF1dqArT4aLXv18JkBb+chtTgfPm1dVgVfze3c63SzzGyOM3HDfvM+n7zrtw==", - "dependencies": { - "@aws-sdk/util-dynamodb": "3.82.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "@aws-sdk/client-dynamodb": "^3.0.0", - "@aws-sdk/smithy-client": "^3.0.0", - "@aws-sdk/types": "^3.0.0" - } - }, - "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.78.0.tgz", - "integrity": "sha512-5MpKt6lB9TdFy25/AGrpOjPY0iDHZAKpEHc+jSOJBXLl6xunXA7qHdiYaVqkWodLxy70nIckGNHqQ3drabidkA==", - "dependencies": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-content-length/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-endpoint-discovery": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.80.0.tgz", - "integrity": "sha512-73pKz8ossZKisG684raP1dn2u3fQRktWY29oa9Q3cBvRYdyu5UOhwayt2MObgSC8S6NfNdTGC/DGf7+/JRSY7A==", - "dependencies": { - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/endpoint-cache": "3.55.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-endpoint-discovery/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.78.0.tgz", - "integrity": "sha512-1zL8uaDWGmH50c8B8jjz75e0ePj6/3QeZEhjJgTgL6DTdiqvRt32p3t+XWHW+yDI14fZZUYeTklAaLVxqFrHqQ==", - "dependencies": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-host-header/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.78.0.tgz", - "integrity": "sha512-GBhwxNjhCJUIeQQDaGasX/C23Jay77al2vRyGwmxf8no0DdFsa4J1Ik6/2hhIqkqko+WM4SpCnpZrY4MtnxNvA==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-logger/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-retry": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.80.0.tgz", - "integrity": "sha512-CTk+tA4+WMUNOcUfR6UQrkhwvPYFpnMsQ1vuHlpLFOGG3nCqywA2hueLMRQmVcDXzP0sGeygce6dzRI9dJB/GA==", - "dependencies": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/service-error-classification": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-middleware": "3.78.0", - "tslib": "^2.3.1", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-retry/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.78.0.tgz", - "integrity": "sha512-Lu/kN0J0/Kt0ON1hvwNel+y8yvf35licfIgtedHbBCa/ju8qQ9j+uL9Lla6Y5Tqu29yVaye1JxhiIDhscSwrLA==", - "dependencies": { - "@aws-sdk/middleware-signing": "3.78.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/signature-v4": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-serde": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.78.0.tgz", - "integrity": "sha512-4DPsNOxsl1bxRzfo1WXEZjmD7OEi7qGNpxrDWucVe96Fqj2dH08jR8wxvBIVV1e6bAad07IwdPuCGmivNvwRuQ==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-serde/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.78.0.tgz", - "integrity": "sha512-OEjJJCNhHHSOprLZ9CzjHIXEKFtPHWP/bG9pMhkV3/6Bmscsgcf8gWHcOnmIrjqX+hT1VALDNpl/RIh0J6/eQw==", - "dependencies": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/signature-v4": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-stack": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.78.0.tgz", - "integrity": "sha512-UoNfRh6eAJN3BJHlG1eb+KeuSe+zARTC2cglroJRyHc2j7GxH2i9FD3IJbj5wvzopJEnQzuY/VCs6STFkqWL1g==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.78.0.tgz", - "integrity": "sha512-wdN5uoq8RxxhLhj0EPeuDSRFuXfUwKeEqRzCKMsYAOC0cAm+PryaP2leo0oTGJ9LUK8REK7zyfFcmtC4oOzlkA==", - "dependencies": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/node-config-provider": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.80.0.tgz", - "integrity": "sha512-vyTOMK04huB7n10ZUv0thd2TE6KlY8livOuLqFTMtj99AJ6vyeB5XBNwKnQtJIt/P7CijYgp8KcFvI9fndOmKg==", - "dependencies": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/node-config-provider/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/node-http-handler": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.82.0.tgz", - "integrity": "sha512-yyq/DA/IMzL4fLJhV7zVfP7aUQWPHfOKTCJjWB3KeV5YPiviJtSKb/KyzNi+gQyO7SmsL/8vQbQrf3/s7N/2OA==", - "dependencies": { - "@aws-sdk/abort-controller": "3.78.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/querystring-builder": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/node-http-handler/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/property-provider": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.78.0.tgz", - "integrity": "sha512-PZpLvV0hF6lqg3CSN9YmphrB/t5LVJVWGJLB9d9qm7sJs5ksjTYBb5bY91OQ3zit0F4cqBMU8xt2GQ9J6d4DvQ==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/property-provider/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/protocol-http": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.78.0.tgz", - "integrity": "sha512-SQB26MhEK96yDxyXd3UAaxLz1Y/ZvgE4pzv7V3wZiokdEedM0kawHKEn1UQJlqJLEZcQI9QYyysh3rTvHZ3fyg==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/protocol-http/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/querystring-builder": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.78.0.tgz", - "integrity": "sha512-aib6RW1WAaTQDqVgRU1Ku9idkhm90gJKbCxVaGId+as6QHNUqMChEfK2v+0afuKiPNOs5uWmqvOXI9+Gt+UGDg==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-uri-escape": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/querystring-builder/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/querystring-parser": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.78.0.tgz", - "integrity": "sha512-csaH8YTyN+KMNczeK6fBS8l7iJaqcQcKOIbpQFg5upX4Ly5A56HJn4sVQhY1LSgfSk4xRsNfMy5mu6BlsIiaXA==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/querystring-parser/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/service-error-classification": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.78.0.tgz", - "integrity": "sha512-x7Lx8KWctJa01q4Q72Zb4ol9L/era3vy2daASu8l2paHHxsAPBE0PThkvLdUSLZSzlHSVdh3YHESIsT++VsK4w==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.80.0.tgz", - "integrity": "sha512-3d5EBJjnWWkjLK9skqLLHYbagtFaZZy+3jUTlbTuOKhlOwe8jF7CUM3j6I4JA6yXNcB3w0exDKKHa8w+l+05aA==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.78.0.tgz", - "integrity": "sha512-eePjRYuzKoi3VMr/lgrUEF1ytLeH4fA/NMCykr/uR6NMo4bSJA59KrFLYSM7SlWLRIyB0UvJqygVEvSxFluyDw==", - "dependencies": { - "@aws-sdk/is-array-buffer": "3.55.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-hex-encoding": "3.58.0", - "@aws-sdk/util-middleware": "3.78.0", - "@aws-sdk/util-uri-escape": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/smithy-client": { - "version": "3.234.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz", - "integrity": "sha512-8AtR/k4vsFvjXeQbIzq/Wy7Nbk48Ou0wUEeVYPHWHPSU8QamFWORkOwmKtKMfHAyZvmqiAPeQqHFkq+UJhWyyQ==", - "peer": true, - "dependencies": { - "@aws-sdk/middleware-stack": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/smithy-client/node_modules/@aws-sdk/middleware-stack": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz", - "integrity": "sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug==", - "peer": true, - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/types": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", - "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/url-parser": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.78.0.tgz", - "integrity": "sha512-iQn2AjECUoJE0Ae9XtgHtGGKvUkvE8hhbktGopdj+zsPBe4WrBN2DgVxlKPPrBonG/YlcL1D7a5EXaujWSlUUw==", - "dependencies": { - "@aws-sdk/querystring-parser": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/url-parser/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-base64-browser": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz", - "integrity": "sha512-0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==", - "deprecated": "The package @aws-sdk/util-base64-browser has been renamed to @aws-sdk/util-base64. Please install the renamed package.", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-base64-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", - "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", - "deprecated": "The package @aws-sdk/util-base64-node has been renamed to @aws-sdk/util-base64. Please install the renamed package.", - "dependencies": { - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-body-length-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", - "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-body-length-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", - "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-buffer-from": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", - "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", - "dependencies": { - "@aws-sdk/is-array-buffer": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-config-provider": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", - "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.78.0.tgz", - "integrity": "sha512-fsKEqlRbrztjpdTsMbZTlWxFpo3Av9QeYYpJuFaZbwfE0ElzinUU54kKwUrKbi60HRroQV+itoUNj3JogQDeHw==", - "dependencies": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-browser/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.81.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.81.0.tgz", - "integrity": "sha512-+7YOtl+TxF08oXt2h/ONP5qk6ZZg6GaO1YSAdpjIfco4odhpy7N2AlEGSX0jZyP6Zbfi+8N7yihBa4sOuOf+Cw==", - "dependencies": { - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-node/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-dynamodb": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.82.0.tgz", - "integrity": "sha512-uzFcs5O0lnReJTYvJNCDuwAP3O6Tcl0uLhGPIy0JRJwT02WT1ZdRbB8Y/H73A2WvKIzYyWh0gWpy0Bqu8wehXw==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-hex-encoding": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz", - "integrity": "sha512-Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", - "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-middleware": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.78.0.tgz", - "integrity": "sha512-Hi3wv2b0VogO4mzyeEaeU5KgIt4qeo0LXU5gS6oRrG0T7s2FyKbMBkJW3YDh/Y8fNwqArZ+/QQFujpP0PIKwkA==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-uri-escape": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", - "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.78.0.tgz", - "integrity": "sha512-diGO/Bf4ggBOEnfD7lrrXaaXOwOXGz0bAJ0HhpizwEMlBld5zfDlWXjNpslh+8+u3EHRjPJQ16KGT6mp/Dm+aw==", - "dependencies": { - "@aws-sdk/types": "3.78.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-user-agent-browser/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.80.0.tgz", - "integrity": "sha512-QV26qIXws1m6sZXg65NS+XrQ5NhAzbDVQLtEVE4nC39UN8fuieP6Uet/gZm9mlLI9hllwvcV7EfgBM3GSC7pZg==", - "dependencies": { - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-user-agent-node/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", - "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-utf8-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", - "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", - "dependencies": { - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-waiter": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.78.0.tgz", - "integrity": "sha512-8pWd0XiNOS8AkWQyac8VNEI+gz/cGWlC2TAE2CJp0rOK5XhvlcNBINai4D6TxQ+9foyJXLOI1b8nuXemekoG8A==", - "dependencies": { - "@aws-sdk/abort-controller": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-waiter/node_modules/@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@cyclic.sh/dynamodb": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@cyclic.sh/dynamodb/-/dynamodb-0.0.33.tgz", - "integrity": "sha512-rkqp0VZcFGfNqw3yvyzj38pUGSgWHEqJIf7zsu8xZD5zEOaS7XkpJTx1xfKEgeu+OMdyhCaRyj91UYt+mYvHSw==", - "dependencies": { - "@aws-sdk/client-dynamodb": "3.82.0", - "@aws-sdk/lib-dynamodb": "3.82.0" - }, - "engines": { - "node": ">=14.20.0" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-cmd": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", - "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", - "dependencies": { - "commander": "^4.0.0", - "cross-spawn": "^7.0.0" - }, - "bin": { - "env-cmd": "bin/env-cmd.js" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/fast-xml-parser": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", - "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==", - "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mnemonist": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", - "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", - "dependencies": { - "obliterator": "^1.6.1" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/nodemon/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", - "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obliterator": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", - "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dev": true, - "dependencies": { - "semver": "~7.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - } - }, - "dependencies": { - "@aws-crypto/ie11-detection": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", - "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", - "requires": { - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", - "requires": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", - "requires": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/supports-web-crypto": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", - "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", - "requires": { - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", - "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", - "requires": { - "@aws-sdk/types": "^3.110.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-sdk/abort-controller": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.78.0.tgz", - "integrity": "sha512-iz1YLwM2feJUj/y97yO4XmDeTxs+yZ1XJwQgoawKuc8IDBKUutnJNCHL5jL04WUKU7Nrlq+Hr2fCTScFh2z9zg==", - "requires": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/client-dynamodb": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.82.0.tgz", - "integrity": "sha512-8w4a+v5iVfX+XSTPRFQOtFRrFkZBStnJR5UUhGoF3kHEY8PTb92I3FDFAa1K2bfcbkZjown/mOF/aWMe+DAgHw==", - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.82.0", - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/credential-provider-node": "3.82.0", - "@aws-sdk/fetch-http-handler": "3.78.0", - "@aws-sdk/hash-node": "3.78.0", - "@aws-sdk/invalid-dependency": "3.78.0", - "@aws-sdk/middleware-content-length": "3.78.0", - "@aws-sdk/middleware-endpoint-discovery": "3.80.0", - "@aws-sdk/middleware-host-header": "3.78.0", - "@aws-sdk/middleware-logger": "3.78.0", - "@aws-sdk/middleware-retry": "3.80.0", - "@aws-sdk/middleware-serde": "3.78.0", - "@aws-sdk/middleware-signing": "3.78.0", - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/middleware-user-agent": "3.78.0", - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/node-http-handler": "3.82.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/url-parser": "3.78.0", - "@aws-sdk/util-base64-browser": "3.58.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.78.0", - "@aws-sdk/util-defaults-mode-node": "3.81.0", - "@aws-sdk/util-user-agent-browser": "3.78.0", - "@aws-sdk/util-user-agent-node": "3.80.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", - "@aws-sdk/util-waiter": "3.78.0", - "tslib": "^2.3.1", - "uuid": "^8.3.2" - }, - "dependencies": { - "@aws-sdk/smithy-client": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.78.0.tgz", - "integrity": "sha512-qweaupZtFPm9rFiEgErnVNgB6co/DylJfhC6/UImHBKa7mGzxv6t2JDm6+d8fs8cNnGNXozN+jJG8Lz6C8Roxw==", - "requires": { - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/client-sso": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.82.0.tgz", - "integrity": "sha512-zfscjrufPLh1RwdVMDx+5xxZbrY64UD4aSHlmWcPxE8ySj2MVfoE18EBQcCgY82U5QgssT7yxtUirxyI2b92tw==", - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/fetch-http-handler": "3.78.0", - "@aws-sdk/hash-node": "3.78.0", - "@aws-sdk/invalid-dependency": "3.78.0", - "@aws-sdk/middleware-content-length": "3.78.0", - "@aws-sdk/middleware-host-header": "3.78.0", - "@aws-sdk/middleware-logger": "3.78.0", - "@aws-sdk/middleware-retry": "3.80.0", - "@aws-sdk/middleware-serde": "3.78.0", - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/middleware-user-agent": "3.78.0", - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/node-http-handler": "3.82.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/url-parser": "3.78.0", - "@aws-sdk/util-base64-browser": "3.58.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.78.0", - "@aws-sdk/util-defaults-mode-node": "3.81.0", - "@aws-sdk/util-user-agent-browser": "3.78.0", - "@aws-sdk/util-user-agent-node": "3.80.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/smithy-client": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.78.0.tgz", - "integrity": "sha512-qweaupZtFPm9rFiEgErnVNgB6co/DylJfhC6/UImHBKa7mGzxv6t2JDm6+d8fs8cNnGNXozN+jJG8Lz6C8Roxw==", - "requires": { - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/client-sts": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.82.0.tgz", - "integrity": "sha512-gR1dz/a6lMD2U+AUpLUocXDruDDQFCUoknrpzMZPCAVsamrF17dwKKCgKVlz6zseHP6uPMPluuppvYQ16wsYyQ==", - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/credential-provider-node": "3.82.0", - "@aws-sdk/fetch-http-handler": "3.78.0", - "@aws-sdk/hash-node": "3.78.0", - "@aws-sdk/invalid-dependency": "3.78.0", - "@aws-sdk/middleware-content-length": "3.78.0", - "@aws-sdk/middleware-host-header": "3.78.0", - "@aws-sdk/middleware-logger": "3.78.0", - "@aws-sdk/middleware-retry": "3.80.0", - "@aws-sdk/middleware-sdk-sts": "3.78.0", - "@aws-sdk/middleware-serde": "3.78.0", - "@aws-sdk/middleware-signing": "3.78.0", - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/middleware-user-agent": "3.78.0", - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/node-http-handler": "3.82.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/url-parser": "3.78.0", - "@aws-sdk/util-base64-browser": "3.58.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.78.0", - "@aws-sdk/util-defaults-mode-node": "3.81.0", - "@aws-sdk/util-user-agent-browser": "3.78.0", - "@aws-sdk/util-user-agent-node": "3.80.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/smithy-client": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.78.0.tgz", - "integrity": "sha512-qweaupZtFPm9rFiEgErnVNgB6co/DylJfhC6/UImHBKa7mGzxv6t2JDm6+d8fs8cNnGNXozN+jJG8Lz6C8Roxw==", - "requires": { - "@aws-sdk/middleware-stack": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/config-resolver": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.80.0.tgz", - "integrity": "sha512-vFruNKlmhsaC8yjnHmasi1WW/7EELlEuFTj4mqcqNqR4dfraf0maVvpqF1VSR8EstpFMsGYI5dmoWAnnG4PcLQ==", - "requires": { - "@aws-sdk/signature-v4": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-config-provider": "3.55.0", - "@aws-sdk/util-middleware": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/credential-provider-env": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.78.0.tgz", - "integrity": "sha512-K41VTIzVHm2RyIwtBER8Hte3huUBXdV1WKO+i7olYVgLFmaqcZUNrlyoGDRqZcQ/u4AbxTzBU9jeMIbIfzMOWg==", - "requires": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/credential-provider-imds": { - "version": "3.81.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.81.0.tgz", - "integrity": "sha512-BHopP+gaovTYj+4tSrwCk8NNCR48gE9CWmpIOLkP9ell0gOL81Qh7aCEiIK0BZBZkccv1s16cYq1MSZZGS7PEQ==", - "requires": { - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/url-parser": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/credential-provider-ini": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.82.0.tgz", - "integrity": "sha512-2HrH5Ok/ZpN/81JbIY+HiKjNtGoXP50jyX8a5Dpez41hLuXek7j2ENWRcNOMkPtot+Ri088h661Y7sdzOv1etg==", - "requires": { - "@aws-sdk/credential-provider-env": "3.78.0", - "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/credential-provider-sso": "3.82.0", - "@aws-sdk/credential-provider-web-identity": "3.78.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/credential-provider-node": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.82.0.tgz", - "integrity": "sha512-jjZj5h+tKaFBl/RnZ4Atpdtot6ZK4F2EBC8t+sNnFhPqcnhO42+7tLZ/aXhdY1oCvD54RG3exHFRsY6qDe8MhQ==", - "requires": { - "@aws-sdk/credential-provider-env": "3.78.0", - "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/credential-provider-ini": "3.82.0", - "@aws-sdk/credential-provider-process": "3.80.0", - "@aws-sdk/credential-provider-sso": "3.82.0", - "@aws-sdk/credential-provider-web-identity": "3.78.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/credential-provider-process": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.80.0.tgz", - "integrity": "sha512-3Ro+kMMyLUJHefOhGc5pOO/ibGcJi8bkj0z/Jtqd5I2Sm1qi7avoztST67/k48KMW1OqPnD/FUqxz5T8B2d+FQ==", - "requires": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/credential-provider-sso": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.82.0.tgz", - "integrity": "sha512-cOIFD6dohrp/cz3bkT0rxbfHgNA4wXRtOciitbBpNnfxOdu51M9bp+XZFb3tdTfhE9fIr4Y+BGqF6AXWZkikLg==", - "requires": { - "@aws-sdk/client-sso": "3.82.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/credential-provider-web-identity": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.78.0.tgz", - "integrity": "sha512-9/IvqHdJaVqMEABA8xZE3t5YF1S2PepfckVu0Ws9YUglj6oO+2QyVX6aRgMF1xph6781+Yc31TDh8/3eaDja7w==", - "requires": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/endpoint-cache": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.55.0.tgz", - "integrity": "sha512-kxDoHFDuQwZEEUZRp+ZLOg68EXuKPzUN86DcpIZantDVcmu7MSPTbbQp9DZd8MnKVEKCP7Sop5f7zCqOPl3LXw==", - "requires": { - "mnemonist": "0.38.3", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/fetch-http-handler": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.78.0.tgz", - "integrity": "sha512-cR6r2h2kJ1DNEZSXC6GknQB7OKmy+s9ZNV+g3AsNqkrUmNNOaHpFoSn+m6SC3qaclcGd0eQBpqzSu/TDn23Ihw==", - "requires": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/querystring-builder": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-base64-browser": "3.58.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/hash-node": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.78.0.tgz", - "integrity": "sha512-ev48yXaqZVtMeuKy52LUZPHCyKvkKQ9uiUebqkA+zFxIk+eN8SMPFHmsififIHWuS6ZkXBUSctjH9wmLebH60A==", - "requires": { - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/invalid-dependency": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.78.0.tgz", - "integrity": "sha512-zUo+PbeRMN/Mzj6y+6p9qqk/znuFetT1gmpOcZGL9Rp2T+b9WJWd+daq5ktsL10sVCzIt2UvneJRz6b+aU+bfw==", - "requires": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/is-array-buffer": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", - "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/lib-dynamodb": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.82.0.tgz", - "integrity": "sha512-QPQme4HirCJBqXMjxd59ncTqfRZF1dqArT4aLXv18JkBb+chtTgfPm1dVgVfze3c63SzzGyOM3HDfvM+n7zrtw==", - "requires": { - "@aws-sdk/util-dynamodb": "3.82.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-content-length": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.78.0.tgz", - "integrity": "sha512-5MpKt6lB9TdFy25/AGrpOjPY0iDHZAKpEHc+jSOJBXLl6xunXA7qHdiYaVqkWodLxy70nIckGNHqQ3drabidkA==", - "requires": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/middleware-endpoint-discovery": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.80.0.tgz", - "integrity": "sha512-73pKz8ossZKisG684raP1dn2u3fQRktWY29oa9Q3cBvRYdyu5UOhwayt2MObgSC8S6NfNdTGC/DGf7+/JRSY7A==", - "requires": { - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/endpoint-cache": "3.55.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/middleware-host-header": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.78.0.tgz", - "integrity": "sha512-1zL8uaDWGmH50c8B8jjz75e0ePj6/3QeZEhjJgTgL6DTdiqvRt32p3t+XWHW+yDI14fZZUYeTklAaLVxqFrHqQ==", - "requires": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/middleware-logger": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.78.0.tgz", - "integrity": "sha512-GBhwxNjhCJUIeQQDaGasX/C23Jay77al2vRyGwmxf8no0DdFsa4J1Ik6/2hhIqkqko+WM4SpCnpZrY4MtnxNvA==", - "requires": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/middleware-retry": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.80.0.tgz", - "integrity": "sha512-CTk+tA4+WMUNOcUfR6UQrkhwvPYFpnMsQ1vuHlpLFOGG3nCqywA2hueLMRQmVcDXzP0sGeygce6dzRI9dJB/GA==", - "requires": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/service-error-classification": "3.78.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-middleware": "3.78.0", - "tslib": "^2.3.1", - "uuid": "^8.3.2" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/middleware-sdk-sts": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.78.0.tgz", - "integrity": "sha512-Lu/kN0J0/Kt0ON1hvwNel+y8yvf35licfIgtedHbBCa/ju8qQ9j+uL9Lla6Y5Tqu29yVaye1JxhiIDhscSwrLA==", - "requires": { - "@aws-sdk/middleware-signing": "3.78.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/signature-v4": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/middleware-serde": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.78.0.tgz", - "integrity": "sha512-4DPsNOxsl1bxRzfo1WXEZjmD7OEi7qGNpxrDWucVe96Fqj2dH08jR8wxvBIVV1e6bAad07IwdPuCGmivNvwRuQ==", - "requires": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/middleware-signing": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.78.0.tgz", - "integrity": "sha512-OEjJJCNhHHSOprLZ9CzjHIXEKFtPHWP/bG9pMhkV3/6Bmscsgcf8gWHcOnmIrjqX+hT1VALDNpl/RIh0J6/eQw==", - "requires": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/signature-v4": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/middleware-stack": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.78.0.tgz", - "integrity": "sha512-UoNfRh6eAJN3BJHlG1eb+KeuSe+zARTC2cglroJRyHc2j7GxH2i9FD3IJbj5wvzopJEnQzuY/VCs6STFkqWL1g==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-user-agent": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.78.0.tgz", - "integrity": "sha512-wdN5uoq8RxxhLhj0EPeuDSRFuXfUwKeEqRzCKMsYAOC0cAm+PryaP2leo0oTGJ9LUK8REK7zyfFcmtC4oOzlkA==", - "requires": { - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/node-config-provider": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.80.0.tgz", - "integrity": "sha512-vyTOMK04huB7n10ZUv0thd2TE6KlY8livOuLqFTMtj99AJ6vyeB5XBNwKnQtJIt/P7CijYgp8KcFvI9fndOmKg==", - "requires": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/shared-ini-file-loader": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/node-http-handler": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.82.0.tgz", - "integrity": "sha512-yyq/DA/IMzL4fLJhV7zVfP7aUQWPHfOKTCJjWB3KeV5YPiviJtSKb/KyzNi+gQyO7SmsL/8vQbQrf3/s7N/2OA==", - "requires": { - "@aws-sdk/abort-controller": "3.78.0", - "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/querystring-builder": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/property-provider": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.78.0.tgz", - "integrity": "sha512-PZpLvV0hF6lqg3CSN9YmphrB/t5LVJVWGJLB9d9qm7sJs5ksjTYBb5bY91OQ3zit0F4cqBMU8xt2GQ9J6d4DvQ==", - "requires": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/protocol-http": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.78.0.tgz", - "integrity": "sha512-SQB26MhEK96yDxyXd3UAaxLz1Y/ZvgE4pzv7V3wZiokdEedM0kawHKEn1UQJlqJLEZcQI9QYyysh3rTvHZ3fyg==", - "requires": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/querystring-builder": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.78.0.tgz", - "integrity": "sha512-aib6RW1WAaTQDqVgRU1Ku9idkhm90gJKbCxVaGId+as6QHNUqMChEfK2v+0afuKiPNOs5uWmqvOXI9+Gt+UGDg==", - "requires": { - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-uri-escape": "3.55.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/querystring-parser": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.78.0.tgz", - "integrity": "sha512-csaH8YTyN+KMNczeK6fBS8l7iJaqcQcKOIbpQFg5upX4Ly5A56HJn4sVQhY1LSgfSk4xRsNfMy5mu6BlsIiaXA==", - "requires": { - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/service-error-classification": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.78.0.tgz", - "integrity": "sha512-x7Lx8KWctJa01q4Q72Zb4ol9L/era3vy2daASu8l2paHHxsAPBE0PThkvLdUSLZSzlHSVdh3YHESIsT++VsK4w==" - }, - "@aws-sdk/shared-ini-file-loader": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.80.0.tgz", - "integrity": "sha512-3d5EBJjnWWkjLK9skqLLHYbagtFaZZy+3jUTlbTuOKhlOwe8jF7CUM3j6I4JA6yXNcB3w0exDKKHa8w+l+05aA==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/signature-v4": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.78.0.tgz", - "integrity": "sha512-eePjRYuzKoi3VMr/lgrUEF1ytLeH4fA/NMCykr/uR6NMo4bSJA59KrFLYSM7SlWLRIyB0UvJqygVEvSxFluyDw==", - "requires": { - "@aws-sdk/is-array-buffer": "3.55.0", - "@aws-sdk/types": "3.78.0", - "@aws-sdk/util-hex-encoding": "3.58.0", - "@aws-sdk/util-middleware": "3.78.0", - "@aws-sdk/util-uri-escape": "3.55.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/smithy-client": { - "version": "3.234.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz", - "integrity": "sha512-8AtR/k4vsFvjXeQbIzq/Wy7Nbk48Ou0wUEeVYPHWHPSU8QamFWORkOwmKtKMfHAyZvmqiAPeQqHFkq+UJhWyyQ==", - "peer": true, - "requires": { - "@aws-sdk/middleware-stack": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/middleware-stack": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz", - "integrity": "sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug==", - "peer": true, - "requires": { - "tslib": "^2.3.1" - } - } - } - }, - "@aws-sdk/types": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", - "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/url-parser": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.78.0.tgz", - "integrity": "sha512-iQn2AjECUoJE0Ae9XtgHtGGKvUkvE8hhbktGopdj+zsPBe4WrBN2DgVxlKPPrBonG/YlcL1D7a5EXaujWSlUUw==", - "requires": { - "@aws-sdk/querystring-parser": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/util-base64-browser": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz", - "integrity": "sha512-0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-base64-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", - "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", - "requires": { - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-body-length-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", - "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-body-length-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", - "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-buffer-from": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", - "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", - "requires": { - "@aws-sdk/is-array-buffer": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-config-provider": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", - "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-defaults-mode-browser": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.78.0.tgz", - "integrity": "sha512-fsKEqlRbrztjpdTsMbZTlWxFpo3Av9QeYYpJuFaZbwfE0ElzinUU54kKwUrKbi60HRroQV+itoUNj3JogQDeHw==", - "requires": { - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/util-defaults-mode-node": { - "version": "3.81.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.81.0.tgz", - "integrity": "sha512-+7YOtl+TxF08oXt2h/ONP5qk6ZZg6GaO1YSAdpjIfco4odhpy7N2AlEGSX0jZyP6Zbfi+8N7yihBa4sOuOf+Cw==", - "requires": { - "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/property-provider": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/util-dynamodb": { - "version": "3.82.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.82.0.tgz", - "integrity": "sha512-uzFcs5O0lnReJTYvJNCDuwAP3O6Tcl0uLhGPIy0JRJwT02WT1ZdRbB8Y/H73A2WvKIzYyWh0gWpy0Bqu8wehXw==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-hex-encoding": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz", - "integrity": "sha512-Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-locate-window": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", - "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-middleware": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.78.0.tgz", - "integrity": "sha512-Hi3wv2b0VogO4mzyeEaeU5KgIt4qeo0LXU5gS6oRrG0T7s2FyKbMBkJW3YDh/Y8fNwqArZ+/QQFujpP0PIKwkA==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-uri-escape": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", - "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-user-agent-browser": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.78.0.tgz", - "integrity": "sha512-diGO/Bf4ggBOEnfD7lrrXaaXOwOXGz0bAJ0HhpizwEMlBld5zfDlWXjNpslh+8+u3EHRjPJQ16KGT6mp/Dm+aw==", - "requires": { - "@aws-sdk/types": "3.78.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/util-user-agent-node": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.80.0.tgz", - "integrity": "sha512-QV26qIXws1m6sZXg65NS+XrQ5NhAzbDVQLtEVE4nC39UN8fuieP6Uet/gZm9mlLI9hllwvcV7EfgBM3GSC7pZg==", - "requires": { - "@aws-sdk/node-config-provider": "3.80.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@aws-sdk/util-utf8-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", - "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-utf8-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", - "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", - "requires": { - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-waiter": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.78.0.tgz", - "integrity": "sha512-8pWd0XiNOS8AkWQyac8VNEI+gz/cGWlC2TAE2CJp0rOK5XhvlcNBINai4D6TxQ+9foyJXLOI1b8nuXemekoG8A==", - "requires": { - "@aws-sdk/abort-controller": "3.78.0", - "@aws-sdk/types": "3.78.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "@aws-sdk/types": { - "version": "3.78.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", - "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" - } - } - }, - "@cyclic.sh/dynamodb": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@cyclic.sh/dynamodb/-/dynamodb-0.0.33.tgz", - "integrity": "sha512-rkqp0VZcFGfNqw3yvyzj38pUGSgWHEqJIf7zsu8xZD5zEOaS7XkpJTx1xfKEgeu+OMdyhCaRyj91UYt+mYvHSw==", - "requires": { - "@aws-sdk/client-dynamodb": "3.82.0", - "@aws-sdk/lib-dynamodb": "3.82.0" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "env-cmd": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", - "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", - "requires": { - "commander": "^4.0.0", - "cross-spawn": "^7.0.0" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "fast-xml-parser": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", - "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==" - }, - "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==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "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==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mnemonist": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", - "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", - "requires": { - "obliterator": "^1.6.1" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "dev": true, - "requires": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.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 - } - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "object-inspect": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", - "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==" - }, - "obliterator": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", - "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dev": true, - "requires": { - "semver": "~7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "requires": { - "nopt": "~1.0.10" - } - }, - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } -} diff --git a/package.json b/package.json index a55a875ee..0bbc1411b 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,40 @@ { - "name": "starter-rest-api", + "name": "cm-node-api", "version": "1.0.0", - "description": "", + "description": "common node api", "main": "index.js", "scripts": { - "dev": "env-cmd nodemon index.js", - "repl": "env-cmd node" + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js", + "server": "nodemon server.js" }, - "keywords": [], - "author": "Kam Lasater ", + "author": "teckraft", "license": "ISC", - "devDependencies": { - "nodemon": "^2.0.22" - }, "dependencies": { - "@cyclic.sh/dynamodb": "^0.0.33", - "env-cmd": "^10.1.0", - "express": "^4.18.1" + "@sendgrid/mail": "^6.5.2", + "axios": "^0.19.2", + "bcrypt": "^5.1.0", + "cors": "^2.8.5", + "dotenv": "^16.0.1", + "express": "^4.17.1", + "express-async-handler": "^1.2.0", + "express-jwt": "^5.3.1", + "fast-two-sms": "^3.0.0", + "json-to-pivot-json": "^1.0.1", + "jsonfile": "^5.0.0", + "jsonwebtoken": "^9.0.2", + "mailtrap": "^3.0.1", + "moment": "^2.29.4", + "mongoose": "^5.7.6", + "multer": "^1.4.5-lts.1", + "node-cron": "^3.0.3", + "nodemailer": "^6.8.0", + "nodemon": "^2.0.20", + "otp-generator": "^4.0.1", + "qs": "^6.11.2", + "sendgrid": "^5.2.3", + "swagger-ui-express": "^4.5.0", + "unirest": "^0.6.0", + "web-push": "^3.6.7" } } diff --git a/server.js b/server.js new file mode 100644 index 000000000..09745d9a7 --- /dev/null +++ b/server.js @@ -0,0 +1,76 @@ +const express = require('express') +const cors = require('cors') +const bodyParser = require('body-parser') +const errorHandler = require('./_helpers/error-handler') +const environment = require('./environment') +const PORT = process.env.PORT || 6001 +const swaggerUi = require('swagger-ui-express'); +const swaggerDocument = require('./swagger.json'); + + +const app = express() + +app.use('/api-docs', swaggerUi.serve); +app.get('/api-docs', swaggerUi.setup(swaggerDocument)); + +app.use(bodyParser.urlencoded({ extended: false })) +app.use(bodyParser.json()) +app.use(cors({ + origin: '*' +})); +app.get('/', (req, res) => { + console.log('Welcome to NODE API (Port: ' + PORT + ' , Environment: ' + environment.env + ')') + res.send('Welcome to NODE API (Port: ' + PORT + ' , Environment: ' + environment.env + ')') +}) + +// Generate VAPID keys + +const publicVapidKey = "BEKPLQAEHd_3zRpN2m-BM0tXaePeRODsKc_UBh75ptZwUo4Wtg7AJCklz_caWCcB3S6iTAntMlH6CK_PdUxqem4"; +const privateVapidKey = "V6m2WCVjEcciyazC0oNgBvivkLx1pZWREwoxgw8-6xY"; + + +app.use('/member', require('./controllers/member.controller')) +app.use('/admin', require('./controllers/admin.controller')) +app.use('/login', require('./controllers/login.controller')) +app.use('/masterLogin', require('./controllers/masterLogin.controller')) +app.use('/role', require('./controllers/role.controller')) +app.use('/email', require('./controllers/emailRoutes')) +app.use('/upi', require('./controllers/upi.controller')) +app.use('/subscription', require('./controllers/subscriptions.controller')) +app.use('/wallet', require('./controllers/wallet.controller')) +app.use('/withdraw', require('./controllers/withdraw.controller')) +app.use('/payment', require('./controllers/payment.controller')) +app.use('/game', require('./controllers/game.controller')) +app.use('/game2', require('./controllers/game2.controller')) +app.use('/sms', require('./controllers/mobileSms.controller')) +app.use('/feedback', require('./controllers/feedback.controller')) +app.use('/packages', require('./controllers/packages.controller')) +app.use('/game1F', require('./controllers/game1F.controller')) +app.use('/game2F', require('./controllers/game2F.controller')) +app.use('/profit', require('./controllers/profit.controller')) +app.use('/orderId', require('./controllers/orderId.controller')) +app.use('/notification', require('./controllers/sendNotification.controller')) + + + +app.use('/roomeCode', require('./service/roomCode')) + + + + + + +app.use('/upload', require('./fileUpload')) + + + +app.use('/masterimport', require('./controllers/masterimport.controller')) + + +app.use(errorHandler) + +app.listen(PORT, () => { + console.log(`Server started on port ${PORT} , Environment: ${environment.env}`) +}) + + diff --git a/service/admin.service.js b/service/admin.service.js new file mode 100644 index 000000000..a738e43af --- /dev/null +++ b/service/admin.service.js @@ -0,0 +1,143 @@ +const db = require("../_helpers/db"); +const dbAdmin = db.admin; +const smsObj = require("../_helpers/sms"); +const bcrypt = require("bcrypt"); +const otpGenerator = require("otp-generator"); + + + +async function add(req, res) { + var existsMatch = await dbAdmin.find({ mobile: req.body.mobile }); + if (existsMatch !== null && existsMatch.length > 0) { + return { responseCode: -1 }; + } + const member = { + email: req.body.email, + name: req.body.name, + mobile: req.body.mobile, + password: req.body.password, + role: req.body.role, + registerDate:req.body.registerDate, + isDeleted:false + }; + var result; + bcrypt.hash(req.body.password, 10, async function (err, hash) { + if (err) { + throw err; + } + member.password = hash; + result = await dbAdmin(member).save(); + }); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + + if (req.body.password.length > 0) { + bcrypt.hash(req.body.password, 10, async function (err, hash) { + if (err) { + throw err; + } + req.body.password = hash; + + var result = await dbAdmin.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; + }); + return { data: result, responseCode: 1, responseMessage: "Updated" }; + } else { + var result = await dbAdmin.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; + } +} +async function update1(req, res, next) { + var existsMatch = await dbAdmin.find({ mobile: req.body.mobile }); + if (existsMatch !== null && existsMatch.length > 0) { + return { responseCode: -1 }; + } + var result = await dbAdmin.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbAdmin + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + console.log(req.params.id); + var result = await dbAdmin + .findOne({ _id: req.params.id }) + console.log(result); + + var outputObj = { + name: result.name, + mobile: result.mobile, + address: result.address, + id: result.id, + email: result.email, + }; + return { data: outputObj }; +} +async function readByUser(req) { + var result = await dbAdmin + .find({ _id: req.params._id,isDeleted:false }) + .populate(["companyId","role"]); + return { data: result }; +} +async function readByUser1(req) { + var result = await dbAdmin + .find({_id: req.params._id,role:req.body.roleId,isDeleted:false }) + return { data: result }; +} +async function readByUser2(req) { + var result = await dbAdmin + .find({ _id: req.params._id,isDeleted:true }) + .populate("role"); + return { data: result }; +} + +async function readAll(req) { + var result = await dbAdmin.find(); + return { data: result }; +} +async function deletedMember(req) { + var result = await dbAdmin.find(); + return { data: result }; +} + +module.exports = { + add, + update, + update1, + read, + readAll, + deletedMember, + remove, + readByUser, + readByUser1, + readByUser2 +}; diff --git a/service/defaultUserSetting.service.js b/service/defaultUserSetting.service.js new file mode 100644 index 000000000..d2d732277 --- /dev/null +++ b/service/defaultUserSetting.service.js @@ -0,0 +1,66 @@ +const db= require("../_helpers/db"); +const dbDefaultUserSetting = db.defaultUserSetting; + + +async function add(req, res) { + var existsMatch = await dbDefaultUserSetting.find(); + // if (existsMatch !== null && existsMatch.length > 0) { + // return { responseCode: -1 }; + // } + + var result = await dbDefaultUserSetting(req.body).save().then(d => { + return comp = db.company.findByIdAndUpdate( + req.body.companyId, + { $push: { DefaultUserSetting: d._id } }, + { new: true, useFindAndModify: false } + )}); + + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; + } + async function update(req, res, next) { + var result = await dbDefaultUserSetting.updateOne( + { id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; + } + + async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbDefaultUserSetting + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; + } + async function read(req) { + var result = await dbDefaultUserSetting.findOne({ id: req.params.id }).populate('companyId'); + return { data: result }; + } + async function readByState(req) { + + var result = await dbDefaultUserSetting.find({ stateId: req.params.stateId }).populate('companyId'); + return { data: result }; + } + async function readAll(req) { + var result = await dbDefaultUserSetting.find().populate('companyId'); + return { data: result }; + } + + module.exports = { + add, + update, + read, + readAll, + remove, + readByState + }; \ No newline at end of file diff --git a/service/feedback.service.js b/service/feedback.service.js new file mode 100644 index 000000000..6910e7a95 --- /dev/null +++ b/service/feedback.service.js @@ -0,0 +1,47 @@ +const db = require("../_helpers/db"); +const dbFeedback = db.feedback; +const smsObj = require("../_helpers/sms"); + +async function add(req, res) { + + var result = await dbFeedback(req.body) + .save() + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} + + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbFeedback + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbFeedback + .findOne({ _id: req.params.id }) + .populate("memberId"); + + return { data: result }; +} + +async function readAll(req) { + var result = await dbFeedback.find().populate("memberId"); + return { data: result }; + } + + + +module.exports = { + add, + read, + readAll, + remove, +}; diff --git a/service/game.service.js b/service/game.service.js new file mode 100644 index 000000000..cd45718f9 --- /dev/null +++ b/service/game.service.js @@ -0,0 +1,332 @@ +const moment = require("moment"); +const db = require("../_helpers/db"); +const cron = require('node-cron'); +const dbGame = db.game; +const smsObj = require("../_helpers/sms"); +const dbSubscription = db.subscription; +const webpush = require('web-push'); + + +const task = async() => { + // console.log('Task executed at:', new Date()); + gameTableCheck(); + //gameTableCheck1(); +//console.log(new Date()) + +}; +const cronExpression = '*/5 * * * * *'; // Every 30 seconds +cron.schedule(cronExpression, task); +console.log('Scheduler started. Task will run every 30 seconds.'); + +async function gameTableCheck(req, res) { + var result = await dbGame.findOne({status: "created"}); + if (result !== null){ + var gameTime = result.gameDate + const updatedDate =await new Date(gameTime.getTime() + 4 * 60000) + if(updatedDate { + var result = await dbSubscription.find() +const results = await Promise.all(result.map(async (k, v) => { + + const publicVapidKey = "BEKPLQAEHd_3zRpN2m-BM0tXaePeRODsKc_UBh75ptZwUo4Wtg7AJCklz_caWCcB3S6iTAntMlH6CK_PdUxqem4"; + const privateVapidKey = "V6m2WCVjEcciyazC0oNgBvivkLx1pZWREwoxgw8-6xY"; + + webpush.setVapidDetails("mailto: ", publicVapidKey, privateVapidKey); + + + const subscription = JSON.parse(k.subscription); + + const payload = JSON.stringify({ + "title": "Ludo king Jaipur", + "body": `🤑 New Challenge of Rs-${req} ⚔️`, + "icon": "https://realludoking.com/static/media/Realludokinglogo.png", + "image": "https://realludoking.com/static/media/Realludokinglogo.png", + "badge": "https://realludoking.com/static/media/Realludokinglogo.png", + + }); + webpush.sendNotification(subscription, payload).catch(console.log); + // console.log("result",JSON.parse(k.subscription)) + +}) +) + +} + + + +async function add(req, res) { + send(req.body.gameAmount) + + var result = await dbGame(req.body) + .save() + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbGame.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return (err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbGame + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbGame + .findOne({ _id: req.params.id }) + .populate(['player1','player2']); + + return { data: result }; +} +async function readRuningGame(req) { + var result = await dbGame + .findOne({ player1: req.params.Userid ,status:"created" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame2(req) { + var result = await dbGame + .findOne({ player1: req.params.Userid ,status:"joined" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame3(req) { + var result = await dbGame + .findOne({ player2: req.params.Userid ,status:"joined" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame4(req) { + var result = await dbGame + .find({ player1: req.params.Userid ,status:"success" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame5(req) { + var result = await dbGame + .find({ player2: req.params.Userid ,status:"success" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame1(req) { + var result = await dbGame + .findOne({ player2: req.params.Userid ,status:"created"}) + .populate(['player1','player2']); + return { data: result }; +} +async function readByUser(req) { + var result = await dbGame + .findOne({ status: "created",playerCount : "1",gameAmount:req.body.gameAmount}) + .populate(['player1','player2']); + return { data: result }; +} +async function readAll(req) { + var result = await dbGame.find({ status: "created"}).populate(['player1','player2']); + return { data: result }; +} +async function readAllCancle(req) { + var result = await dbGame.find({status :"cancelled"}).populate(["player1"]); + return { data: result }; +} +async function readAllSuccess(req) { + var result = await dbGame.find({status :"success"}).populate(["player1","player2"]); + return { data: result }; +} + + +async function monthlyReport(req) { + var fromDate = req.body.fromDate; + var toDate = req.body.toDate; + var successGameCount = ''; + + if (fromDate === null || fromDate === undefined || toDate === null || toDate === undefined) { + toDate = new Date(); + + successGameCount = await dbGame.aggregate([ + + { + $match: { + status: "success" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + ]); + + } + else { + successGameCount = await dbGame.aggregate([ + { + $match: { + "gameDate": { + $gte: moment(req.body.fromDate).endOf("day").toDate(), + $lte: moment(req.body.toDate).endOf("day").toDate() + } + } + }, + { + $match: { + status: "success" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + + ]); + + } + return successGameCount; +} +async function monthlyReport2(req) { + var fromDate = req.body.fromDate; + var toDate = req.body.toDate; + var cancelGameCount = ''; + + if (fromDate === null || fromDate === undefined || toDate === null || toDate === undefined) { + toDate = new Date(); + + cancelGameCount = await dbGame.aggregate([ + + { + $match: { + status: "cancelled" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + ]); + + } + else { + cancelGameCount = await dbGame.aggregate([ + { + $match: { + "gameDate": { + $gte: moment(req.body.fromDate).endOf("day").toDate(), + $lte: moment(req.body.toDate).endOf("day").toDate() + } + } + }, + { + $match: { + status: "cancelled" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + + ]); + console.log("cancelGameCount",cancelGameCount) + + } + return cancelGameCount; +} +async function successGameReport(req, res) { + var result = await monthlyReport(req, res); + return { data: result }; +} +async function cancelGameReport(req, res) { + var result = await monthlyReport2(req, res); + return { data: result }; +} + + + + +module.exports = { + add, + update, + read, + readAll, + readByUser, + remove, + readRuningGame, + readRuningGame1, + readRuningGame2, + readRuningGame3, + readRuningGame4, + readRuningGame5, + readAllCancle, + readAllSuccess, + successGameReport, + cancelGameReport, +}; diff --git a/service/game1F.service.js b/service/game1F.service.js new file mode 100644 index 000000000..add9ddd8a --- /dev/null +++ b/service/game1F.service.js @@ -0,0 +1,96 @@ +const db = require("../_helpers/db"); +const dbGame = db.game1F; +const smsObj = require("../_helpers/sms"); + +async function add(req, res) { + console.log("hyy") + var result = await dbGame(req.body).save() + //smsObj.SendOtp(req.body.mobile); + console.log("result",result) + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbGame.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbGame + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbGame + .findOne({ _id: req.params.id }) + .populate(['player1','player2']); + + return { data: result }; +} + +async function readAll(req) { + var result = await dbGame.find().populate(["player1","player2"]); + return { data: result }; +} +async function readAllCancle(req) { + var result = await dbGame.find({status :"unsolved"}).populate(["player1","player2","game","reporter"]); + return { data: result }; +} +async function readAllCancle1(req) { + var result = await dbGame.find({status :"unsolved1"}).populate(["player1","player2","game","reporter"]); + return { data: result }; +} +async function readAllSuccess(req) { + var result = await dbGame.find({status :"solved"}).populate(["player1","player2"]); + return { data: result }; +} +async function monthlyReport(req) { + + var unsolvedGame = ''; + + + unsolvedGame = await dbGame.aggregate([ + + { + $match: { + status: "unsolved" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + + ]); + return unsolvedGame; +} +async function unsolvedGame(req, res) { + var result = await monthlyReport(req, res); + return { data: result }; +} +module.exports = { + add, + update, + read, + readAll, + remove, + readAllCancle, + readAllCancle1, + readAllSuccess, + unsolvedGame, +}; diff --git a/service/game2.service.js b/service/game2.service.js new file mode 100644 index 000000000..bd57d9dff --- /dev/null +++ b/service/game2.service.js @@ -0,0 +1,322 @@ +const moment = require("moment"); +const db = require("../_helpers/db"); +const cron = require('node-cron'); +const dbGame = db.game2; +const smsObj = require("../_helpers/sms"); +const dbSubscription = db.subscription; +const webpush = require('web-push'); + +const task = async() => { + //console.log('Task executed at:', new Date()); + gameTableCheck(); + //gameTableCheck1(); +}; +const cronExpression = '*/5 * * * * *'; // Every 30 seconds +cron.schedule(cronExpression, task); + +console.log('Scheduler started. Task will run every 30 seconds.'); + +async function gameTableCheck(req, res) { + var result = await dbGame.findOne({status: "created"}); + if (result !== null){ + var gameTime = result.gameDate + const updatedDate =await new Date(gameTime.getTime() + 4 * 60000) + if(updatedDate { + var result = await dbSubscription.find() +const results = await Promise.all(result.map(async (k, v) => { + + const publicVapidKey = "BEKPLQAEHd_3zRpN2m-BM0tXaePeRODsKc_UBh75ptZwUo4Wtg7AJCklz_caWCcB3S6iTAntMlH6CK_PdUxqem4"; + const privateVapidKey = "V6m2WCVjEcciyazC0oNgBvivkLx1pZWREwoxgw8-6xY"; + + webpush.setVapidDetails("mailto: ", publicVapidKey, privateVapidKey); + + + const subscription = JSON.parse(k.subscription); + + const payload = JSON.stringify({ + "title": "Ludo king Jaipur", + "body": `🤑 New Challenge of Rs-${req} ⚔️`, + "icon": "https://realludoking.com/static/media/Realludokinglogo.png", + "image": "https://realludoking.com/static/media/Realludokinglogo.png", + "badge": "https://realludoking.com/static/media/Realludokinglogo.png", + + }); + webpush.sendNotification(subscription, payload).catch(console.log); + // console.log("result",JSON.parse(k.subscription)) + +}) +) + +} + + + +async function add(req, res) { + send(req.body.gameAmount) + + var result = await dbGame(req.body) + .save() + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbGame.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbGame + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbGame + .findOne({ _id: req.params.id }) + .populate(['player1','player2']); + + return { data: result }; +} +async function readRuningGame(req) { + var result = await dbGame + .findOne({ player1: req.params.Userid ,status:"created" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame2(req) { + var result = await dbGame + .findOne({ player1: req.params.Userid ,status:"joined" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame3(req) { + var result = await dbGame + .findOne({ player2: req.params.Userid ,status:"joined" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame4(req) { + var result = await dbGame + .find({ player1: req.params.Userid ,status:"success" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame5(req) { + var result = await dbGame + .find({ player2: req.params.Userid ,status:"success" }) + .populate(['player1','player2']); + return { data: result }; +} +async function readRuningGame1(req) { + var result = await dbGame + .findOne({ player2: req.params.Userid ,status:"created"}) + .populate(['player1','player2']); + return { data: result }; +} +async function readByUser(req) { + var result = await dbGame + .findOne({ status: "created",playerCount : "1",gameAmount:req.body.gameAmount}) + .populate(['player1','player2']); + return { data: result }; +} +async function readAll(req) { + var result = await dbGame.find({ status: "created"}).populate(['player1','player2']); + return { data: result }; +} +async function readAllCancle(req) { + var result = await dbGame.find({status :"cancelled"}).populate(["player1"]); + return { data: result }; +} +async function readAllSuccess(req) { + var result = await dbGame.find({status :"success"}).populate(["player1","player2"]); + return { data: result }; +} + +async function monthlyReport(req) { + var fromDate = req.body.fromDate; + var toDate = req.body.toDate; + var successGameCount = ''; + + if (fromDate === null || fromDate === undefined || toDate === null || toDate === undefined) { + toDate = new Date(); + + successGameCount = await dbGame.aggregate([ + + { + $match: { + status: "success" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + ]); + + } + else { + successGameCount = await dbGame.aggregate([ + { + $match: { + "gameDate": { + $gte: moment(req.body.fromDate).endOf("day").toDate(), + $lte: moment(req.body.toDate).endOf("day").toDate() + } + } + }, + { + $match: { + status: "success" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + + ]); + + } + return successGameCount; +} +async function monthlyReport2(req) { + var fromDate = req.body.fromDate; + var toDate = req.body.toDate; + var cancelGameCount = ''; + + if (fromDate === null || fromDate === undefined || toDate === null || toDate === undefined) { + toDate = new Date(); + + cancelGameCount = await dbGame.aggregate([ + + { + $match: { + status: "cancelled" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + ]); + + } + else { + cancelGameCount = await dbGame.aggregate([ + { + $match: { + "gameDate": { + $gte: moment(req.body.fromDate).endOf("day").toDate(), + $lte: moment(req.body.toDate).endOf("day").toDate() + } + } + }, + { + $match: { + status: "cancelled" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + + ]); + + } + return cancelGameCount; +} +async function successGameReport(req, res) { + var result = await monthlyReport(req, res); + return { data: result }; +} +async function cancelGameReport(req, res) { + var result = await monthlyReport2(req, res); + return { data: result }; +} + + + + + +module.exports = { + add, + update, + read, + readAll, + readByUser, + remove, + readRuningGame, + readRuningGame1, + readRuningGame2, + readRuningGame3, + readRuningGame4, + readRuningGame5, + readAllCancle, + readAllSuccess, + successGameReport, + cancelGameReport +}; diff --git a/service/game2F.service.js b/service/game2F.service.js new file mode 100644 index 000000000..05ac5c388 --- /dev/null +++ b/service/game2F.service.js @@ -0,0 +1,96 @@ +const db = require("../_helpers/db"); +const dbGame = db.game2F; +const smsObj = require("../_helpers/sms"); + +async function add(req, res) { + console.log("hyy") + var result = await dbGame(req.body).save() + //smsObj.SendOtp(req.body.mobile); + console.log("result",result) + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbGame.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbGame + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbGame + .findOne({ _id: req.params.id }) + .populate(['player1','player2']); + + return { data: result }; +} + +async function readAll(req) { + var result = await dbGame.find().populate(["player1","player2"]); + return { data: result }; +} +async function readAllCancle(req) { + var result = await dbGame.find({status :"unsolved"}).populate(["player1","player2","game","reporter"]); + return { data: result }; +} +async function readAllCancle1(req) { + var result = await dbGame.find({status :"unsolved2"}).populate(["player1","player2","game","reporter"]); + return { data: result }; +} +async function readAllSuccess(req) { + var result = await dbGame.find({status :"solved"}).populate(["player1","player2"]); + return { data: result }; +} +async function monthlyReport(req) { + + var unsolvedGame = ''; + + + unsolvedGame = await dbGame.aggregate([ + + { + $match: { + status: "unsolved" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + + ]); + return unsolvedGame; +} +async function unsolvedGame(req, res) { + var result = await monthlyReport(req, res); + return { data: result }; +} +module.exports = { + add, + update, + read, + readAll, + remove, + readAllCancle, + readAllCancle1, + readAllSuccess, + unsolvedGame, +}; diff --git a/service/generateOTP.js b/service/generateOTP.js new file mode 100644 index 000000000..18c14a820 --- /dev/null +++ b/service/generateOTP.js @@ -0,0 +1,13 @@ +const otpGenerator = require("otp-generator"); + +const generateOTP = () => { + const OTP = otpGenerator.generate(6, { + upperCaseAlphabets: false, + lowerCaseAlphabets: false, + specialChars: false, + }); + + return OTP; +}; + +module.exports = generateOTP; diff --git a/service/login.service.js b/service/login.service.js new file mode 100644 index 000000000..bd75f271e --- /dev/null +++ b/service/login.service.js @@ -0,0 +1,99 @@ +const db = require("../_helpers/db"); +const dbMembers = db.members; +const bcrypt = require("bcrypt"); +const dotenv = require('dotenv'); +const jwt = require('jsonwebtoken'); +const JWT_SECRET_KEY = "asdf_orbit_orbot" + +const TOKEN_HEADER_KEY = "fdsa_orbit_orbot" + +async function comparePassword(plaintextPassword, hash) { + const result = await bcrypt.compare(plaintextPassword, hash); + return result; +} + +async function validate(req, res) { + var result = await dbMembers.findOne({ + mobile: req.body.mobile + }).populate(['role', 'member', 'companyId']); + + var dbpwd = result.password; + var returnResponse = {}; + var isValid = await comparePassword(req.body.password,dbpwd); + result.password= ''; + let data = { + address:result.address, + email:result.email, + id:result.id, + mobile:result.mobile, + _id:result._id, + name:result.name, + registerDate:result.registerDate, + memberReferCode:result.memberReferCode, + referCode:result.referCode, + password:"", +} + let jwtSecretKey =JWT_SECRET_KEY; + const token = jwt.sign(data, jwtSecretKey); + + if (isValid) { + if(result.isDeleted===false){ + return { + responseCode: 1, + responseMessage: "success", + auth: token, + }; + } + else{ + return { + responseCode: -2, + responseMessage: "Deleted", + auth: null, + }; + } + + } else { + return { + responseCode: -1, + responseMessage: "Member Not Found", + auth: null, + }; + } +} + +async function readByMobile(req, res) { + var result = await dbMembers.findOne({ + mobile: req.body.mobile, + }); + if (result) { + let data1 = { + address:result.address, + email:result.email, + id:result.id, + mobile:result.mobile, + _id:result._id, + name:result.name, + registerDate:result.registerDate, + memberReferCode:result.memberReferCode, + referCode:result.referCode, + password:"", + } + let jwtSecretKey =JWT_SECRET_KEY; + const token = jwt.sign(data1, jwtSecretKey); + return { + responseCode: 1, + responseMessage: "success", + auth: token, + }; + } else { + return { + responseCode: -1, + responseMessage: "Member Not Found", + + }; + } +} +module.exports = { + validate, + readByMobile, +}; diff --git a/service/masterLogin.service.js b/service/masterLogin.service.js new file mode 100644 index 000000000..6fd2c2177 --- /dev/null +++ b/service/masterLogin.service.js @@ -0,0 +1,96 @@ +const db = require("../_helpers/db"); +const dbAdmin = db.admin; +const bcrypt = require("bcrypt"); +const dotenv = require('dotenv'); +const jwt = require('jsonwebtoken'); +const JWT_SECRET_KEY = "asdf_orbit_orbot" + +const TOKEN_HEADER_KEY = "fdsa_orbit_orbot" + +async function comparePassword(plaintextPassword, hash) { + const result = await bcrypt.compare(plaintextPassword, hash); + return result; +} + +async function validate(req, res) { + var result = await dbAdmin.findOne({ + mobile: req.body.mobile + }); + + var dbpwd = result.password; + var returnResponse = {}; + var isValid = await comparePassword(req.body.password,dbpwd); + result.password= ''; + let data = { + address:result.address, + email:result.email, + id:result.id, + mobile:result.mobile, + _id:result._id, + name:result.name, + registerDate:result.registerDate, + password:"", +} + let jwtSecretKey =JWT_SECRET_KEY; + const token = jwt.sign(data, jwtSecretKey); + + if (isValid) { + if(result.isDeleted===false){ + return { + responseCode: 1, + responseMessage: "success", + auth: token, + }; + } + else{ + return { + responseCode: -2, + responseMessage: "Deleted", + auth: null, + }; + } + + } else { + return { + responseCode: -1, + responseMessage: "Member Not Found", + auth: null, + }; + } +} + +async function readByMobile(req, res) { + var result = await dbAdmin.findOne({ + mobile: req.body.mobile, + }).populate(['role', 'member', 'companyId']); + if (result) { + let data1 = { + address:result.address, + email:result.email, + id:result.id, + mobile:result.mobile, + _id:result._id, + name:result.name, + route:result.route, + registerDate:result.registerDate, + password:"", + } + let jwtSecretKey =JWT_SECRET_KEY; + const token = jwt.sign(data1, jwtSecretKey); + return { + responseCode: 1, + responseMessage: "success", + auth: token, + }; + } else { + return { + responseCode: -1, + responseMessage: "Member Not Found", + + }; + } +} +module.exports = { + validate, + readByMobile, +}; diff --git a/service/masterimport.service.js b/service/masterimport.service.js new file mode 100644 index 000000000..3a7770fd3 --- /dev/null +++ b/service/masterimport.service.js @@ -0,0 +1,42 @@ + +const db = require("../_helpers/db"); +const dbState = db.state; +const dbCity = db.city; + + +async function bulkStateSave(req, res, next) { + let arrStates = req.body; + + var res = arrStates.map((k,v) => { + + dbState({code:k.key, name: k.name}).save(); + }); + + return { data: "success", responseCode: 1, responseMessage: "updated" }; + } + + async function bulkCitySave(req, res, next) { + let arrStates = req.body; + + var res = arrStates.map(async(k,v) => { + + var stateId =await dbState.find({name : k.state}) + if(stateId){ + var cit = k.districts.map((r,s) => { + dbCity({stateId:stateId[0]._id, name: r}).save(); + }) + + } + + + + }); + + return { data: "success", responseCode: 1, responseMessage: "updated" }; + } + + module.exports = { + bulkStateSave, + bulkCitySave + }; + \ No newline at end of file diff --git a/service/member.service.js b/service/member.service.js new file mode 100644 index 000000000..6889d8cac --- /dev/null +++ b/service/member.service.js @@ -0,0 +1,216 @@ +const moment = require("moment"); +const db = require("../_helpers/db"); +const dbMembers = db.members; +const dbCompany = db.company; +const smsObj = require("../_helpers/sms"); +const bcrypt = require("bcrypt"); +const otpGenerator = require("otp-generator"); + + +async function add(req, res) { + var existsMatch = await dbMembers.find({ mobile: req.body.mobile }); + if (existsMatch !== null && existsMatch.length > 0) { + return { responseCode: -1 }; + } + //create company before member, and use companyId in member table. + const ReferCode = otpGenerator.generate(10, { + upperCaseAlphabets: true, + lowerCaseAlphabets: false, + specialChars: false, + }); + const member = { + email: req.body.email, + name: req.body.name, + mobile: req.body.mobile, + password: req.body.password, + memberReferCode: ReferCode, + registerDate: req.body.registerDate, + referCode: req.body.referCode, + isDeleted: false + }; +var result; + bcrypt.hash(req.body.password, 10, async function (err, hash) { + if (err) { + throw err; + } + member.password = hash; + result = await dbMembers(member).save() + + }); + return { data: result, responseCode: 1, responseMessage: "success" }; + + //smsObj.SendOtp(req.body.mobile); + +} +async function update(req, res, next) { + + if (req.body.password.length > 0) { + bcrypt.hash(req.body.password, 10, async function (err, hash) { + if (err) { + throw err; + } + req.body.password = hash; + + var result = await dbMembers.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; + }); + return { data: result, responseCode: 1, responseMessage: "Updated" }; + } else { + var result = await dbMembers.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; + } +} +async function update1(req, res, next) { + var existsMatch = await dbMembers.find({ mobile: req.body.mobile }); + if (existsMatch !== null && existsMatch.length > 0) { + return { responseCode: -1 }; + } + var result = await dbMembers.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbMembers + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + console.log(req.params.id); + var result = await dbMembers + .findOne({ _id: req.params.id }).populate("wallet") + console.log(result); + + var outputObj = { + name: result.name, + mobile: result.mobile, + address: result.address, + id: result.id, + email: result.email, + }; + return { data: result }; +} +async function readByUser(req) { + var result = await dbMembers + .find({ _id: req.params._id, isDeleted: false }) + .populate(["wallet"]); + return { data: result }; +} +async function readByUser1(req) { + var result = await dbMembers + .find({ _id: req.params._id, role: req.body.roleId, isDeleted: false }) + return { data: result }; +} +async function readByUser2(req) { + var result = await dbMembers + .find({ _id: req.params._id, isDeleted: true }) + .populate("wallet"); + return { data: result }; +} + +async function readAll(req) { + var result = await dbMembers.find({ isDeleted: false }).populate("wallet");; + return { data: result }; +} +async function deletedMember(req) { + var result = await dbMembers.find({ isDeleted: true }).populate("wallet");; + return { data: result }; +} +async function readByReferalCode(req) { + var result = await dbMembers.find({memberReferCode: req.body.memberReferCode}); + return { data: result }; +} + + + + +async function monthlyReport(req) { + var fromDate = req.body.fromDate; + var toDate = req.body.toDate; + var userSummery = ''; + + if (fromDate === null || fromDate === undefined || toDate === null || toDate === undefined) { + toDate = new Date(); + + userSummery = await dbMembers.aggregate([ + + + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + ]); + + } + else { + userSummery = await dbMembers.aggregate([ + { + $match: { + "registerDate": { + $gte: moment(req.body.fromDate).endOf("day").toDate(), + $lte: moment(req.body.toDate).endOf("day").toDate() + } + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + + ]); + + } + return userSummery; +} +async function userCountReport(req, res) { + var result = await monthlyReport(req, res); + return { data: result }; +} + + + + + + +module.exports = { + add, + update, + update1, + read, + readAll, + deletedMember, + remove, + readByUser, + readByUser1, + readByUser2, + userCountReport, + readByReferalCode +}; diff --git a/service/mobileSms.js b/service/mobileSms.js new file mode 100644 index 000000000..115ccc92e --- /dev/null +++ b/service/mobileSms.js @@ -0,0 +1,55 @@ +const generateOTP = require("./generateOTP"); +var express = require("express"); +const router = express.Router(); +var db = require("./../_helpers/db"); +var unirest = require("unirest"); + + +const sendEmail = async (request, res) => { + const { mobile } = request.body; + console.log(mobile); + + const otp = generateOTP(); + + var req = unirest("POST","https://www.fast2sms.com/dev/bulkV2"); + + req.headers({ + "authorization": "OVBWKNTi6YHjUIeMAgv13xdLEXCyt5owcs8fnzJ9hD0Q4m7bZlca2Gzqi9jsVkrt0u6ZPNQpJ3ARdyIO" + }); + + req.form({ + + "route":"otp", + "variables_values":otp, + "numbers": mobile, + }); + var savedata = { + mobile: mobile, + otp: otp, + } + req.end(async function (res) { + if (res.error) { + console.log(res) + } + else { + console.log(res.body); + var existsMatch = await db.otp.find({ mobile: mobile }); + if (existsMatch !== null && existsMatch.length > 0) { + + await db.otp.findByIdAndUpdate(existsMatch[0]._id, savedata); + //return { responseCode: -1 }; + } + else{ + db.otp(savedata).save(); + } + + } + }); + return { data: "otp", responseCode: 1, responseMessage: "otpupdated" }; +}; +async function readAll(req) { + var result = await db.otp.find(); + return { data: result }; +} + +module.exports = { sendEmail,readAll }; diff --git a/service/orderId.service.js b/service/orderId.service.js new file mode 100644 index 000000000..9f00d3e7d --- /dev/null +++ b/service/orderId.service.js @@ -0,0 +1,60 @@ +const moment = require("moment"); +const db = require("../_helpers/db"); +const dbOrderId = db.orderId; +const smsObj = require("../_helpers/sms"); + +async function add(req, res) { + var result = await dbOrderId(req.body) + .save() + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbOrderId.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbOrderId + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbOrderId + .findOne({ _id: req.params.id }) + .populate(); + + return { data: result }; +} + +async function readAll(req) { + var result = await dbOrderId.find(); + return { data: result }; +} + + + + +module.exports = { + add, + update, + read, + readAll, + + remove, + +}; diff --git a/service/packages.services.js b/service/packages.services.js new file mode 100644 index 000000000..b7396eea9 --- /dev/null +++ b/service/packages.services.js @@ -0,0 +1,53 @@ +const db = require("../_helpers/db"); +const dbPackage = db.packages; +const smsObj = require("../_helpers/sms"); + +async function add(req, res) { + var result = await dbPackage(req.body) + .save() + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbPackage.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbPackage + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbPackage + .findOne({ _id: req.params.id }); + + return { data: result }; +} + +async function readAll(req) { + var result = await dbPackage.find(); + return { data: result }; +} + +module.exports = { + add, + update, + read, + readAll, + remove, +}; diff --git a/service/payment.service.js b/service/payment.service.js new file mode 100644 index 000000000..627f57925 --- /dev/null +++ b/service/payment.service.js @@ -0,0 +1,258 @@ +const moment = require("moment"); +const db = require("../_helpers/db"); +const dbPayment = db.payment; +const dbWallet = db.wallet; +const dbMember = db.members; +const smsObj = require("../_helpers/sms"); +const axios = require('axios'); +const qs = require('qs'); +const cron = require('node-cron'); + +const task = async() => { + paymentUpdateC(); +}; +const cronExpression = '*/1 * * * * *'; // Every 30 seconds +cron.schedule(cronExpression, task); + +async function paymentUpdateC(req, res) { + var result = await dbPayment.find({status:"requested"}) + +const results = await Promise.all(result.map(async (k, v) => { + +const data1 = { + user_token: "eb0c44f223f310f7a6bc94432b44d9e9", + order_id: k.orderId, +} + + const url = 'https://payment.ludokingjaipur.com/api/check-order-status'; + + const data = qs.stringify(data1); + + const config = { + method: 'post', + url: url, + data : data + }; + + axios(config) + .then(function (response) { + +if(response.data.result.status==="PENDING"){ + var gameTime = k.transactionDate + const updatedDate =new Date(gameTime.getTime() + 5 * 60000) + if(updatedDate 0) { + return { responseCode: -1 }; + } + + var result = await dbRole(req.body).save(); + + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbRole.updateOne( + { id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbRole + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbRole.findOne({ id: req.params.id }); + return { data: result }; +} +async function readByState(req) { + + var result = await dbRole.find({ stateId: req.params.stateId }); + return { data: result }; +} +async function readAll(req) { + var result = await dbRole.find(); + return { data: result }; +} + +module.exports = { + add, + update, + read, + readAll, + remove, + readByState +}; diff --git a/service/roomCode.js b/service/roomCode.js new file mode 100644 index 000000000..f7bdaa505 --- /dev/null +++ b/service/roomCode.js @@ -0,0 +1,73 @@ +const express = require("express"); +const axios = require('axios'); +const router = express.Router(); +const qs = require('qs'); +router.get('/', async (req, res) => { + const options = { + method: 'GET', + url: 'https://ludo-king-room-code-api.p.rapidapi.com/roomcode/c', + headers: { + 'X-RapidAPI-Key': '679a1295edmsh06a539c0ebb34d3p1bf229jsnf3d26418d766', + 'X-RapidAPI-Host': 'ludo-king-room-code-api.p.rapidapi.com' + } + }; + + try { + const response = await axios.request(options); + res.json(response.data); + } catch (error) { + console.error(error); + res.status(500).json({ error: 'Internal Server Error' }); + } + +}); +router.post('/payment', async (req, res) => { + const url = 'https://payment.ludokingjaipur.com/api/create-order'; + + const data = qs.stringify(req.body); + + const config = { + method: 'post', + url: url, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + data : data + }; + + axios(config) + .then(function (response) { + console.log(JSON.stringify(response.data)); + res.send(JSON.stringify(response.data)); + }) + .catch(function (error) { + console.log(error); + }); + + +}); +router.post('/payment/check', async (req, res) => { + + const url = 'https://payment.ludokingjaipur.com/api/check-order-status'; + + const data = qs.stringify(req.body); + + const config = { + method: 'post', + url: url, + data : data + }; + + // Making the request + axios(config) + .then(function (response) { + console.log("JSON.stringify(response.data)",response.data); + res.send(JSON.stringify(response.data)); + }) + .catch(function (error) { + console.log(error); + }); + + +}); +module.exports = router diff --git a/service/sendEmail.js b/service/sendEmail.js new file mode 100644 index 000000000..c9c594d76 --- /dev/null +++ b/service/sendEmail.js @@ -0,0 +1,62 @@ +const expressAsyncHandler = require("express-async-handler"); +const dotenv = require("dotenv"); +const nodemailer = require("nodemailer"); +const generateOTP = require("./generateOTP"); +dotenv.config(); +var express = require("express"); +const router = express.Router(); +var db = require("./../_helpers/db"); + + +let transporter = nodemailer.createTransport({ + host: "smtp.gmail.com", + port: 587, + secure: false, + auth: { + user: "callbackcoding08@gmail.com", + pass: "lzwrknuwnbqgojbn", + }, +}); + +const sendEmail = expressAsyncHandler(async (req, res) => { + const { email } = req.body; + console.log(email); + + const otp = generateOTP(); + + var mailOptions = { + from: "callbackcoding08@gmail.com", + to: email, + subject: "OTP form Milkvan", + text: `Your OTP is: ${otp}`, + }; + var savedata = { + email: email, + otp: otp, + } + + transporter.sendMail(mailOptions, async function (error, info) { + if (error) { + console.log(error); + } else { + console.log("Email sent successfully!"); + var existsMatch = await db.otp.find({ email: email }); + if (existsMatch !== null && existsMatch.length > 0) { + + await db.otp.findByIdAndUpdate(existsMatch[0]._id, savedata); + //return { responseCode: -1 }; + } + else{ + db.otp(savedata).save(); + } + + } + }); + return { data: "otp", responseCode: 1, responseMessage: 1 }; +}); +async function readAll(req) { + var result = await db.otp.find(); + return { data: result }; +} + +module.exports = { sendEmail,readAll }; diff --git a/service/sendNotification.service.js b/service/sendNotification.service.js new file mode 100644 index 000000000..c25d520e6 --- /dev/null +++ b/service/sendNotification.service.js @@ -0,0 +1,36 @@ +const db = require("../_helpers/db"); +const dbSubscription = db.subscription; +const webpush = require('web-push'); +var count = 1; +async function send(req, res) { + var result = await dbSubscription.find() + const results = await Promise.all(result.map(async (k, v) => { + count = count +1 + const publicVapidKey = "BEKPLQAEHd_3zRpN2m-BM0tXaePeRODsKc_UBh75ptZwUo4Wtg7AJCklz_caWCcB3S6iTAntMlH6CK_PdUxqem4"; + const privateVapidKey = "V6m2WCVjEcciyazC0oNgBvivkLx1pZWREwoxgw8-6xY"; + + webpush.setVapidDetails("mailto: ", publicVapidKey, privateVapidKey); + + + const subscription = JSON.parse(k.subscription); + + const payload = JSON.stringify({ + "title": "Real Ludo king", + "body": "🤑 New Challenge of Rs-2000 ⚔️", + "icon": "https://realludoking.com/static/media/Realludokinglogo.png", + "image": "https://realludoking.com/static/media/Realludokinglogo.png", + "badge": "https://realludoking.com/static/media/Realludokinglogo.png", + + }); + webpush.sendNotification(subscription, payload).catch(console.log); + // console.log("result",JSON.parse(k.subscription)) + console.log("count",count) + }) + ) + + } + +module.exports = { + send, + +}; diff --git a/service/subscribedUser.service.js b/service/subscribedUser.service.js new file mode 100644 index 000000000..dbbead876 --- /dev/null +++ b/service/subscribedUser.service.js @@ -0,0 +1,45 @@ +const db = require("../_helpers/db"); +const dbSubscription = db.subscription; + +async function add(req, res) { + const data = req.body +console.log("req.body",data) + var result = await dbSubscription(req.body).save(); + + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbSubscription + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbSubscription.findOne({ member: req.params.id }); + return { data: result }; +} +async function readByState(req) { + + var result = await dbSubscription.find({ status: "activate" }); + return { data: result }; +} +async function readAll(req) { + var result = await dbSubscription.find(); + return { data: result }; +} + +module.exports = { + add, + read, + readAll, + remove, + readByState +}; diff --git a/service/upi.service.js b/service/upi.service.js new file mode 100644 index 000000000..ec102e170 --- /dev/null +++ b/service/upi.service.js @@ -0,0 +1,60 @@ +const db = require("../_helpers/db"); +const dbUpi = db.upis; + +async function add(req, res) { + var existsMatch = await dbUpi.find({ name: req.body.name }); + if (existsMatch !== null && existsMatch.length > 0) { + return { responseCode: -1 }; + } + + var result = await dbUpi(req.body).save(); + + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbUpi.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} + +async function remove(req, res, next) { + let _id = parseInt(req.params.id); + + var result = await dbUpi + .deleteOne({ id: _id }) + .then(function () { + // Success + }) + .catch(function (error) { + console.log(error); // Failure + }); + return { data: result, responseCode: 1, responseMessage: "Deleted" }; +} +async function read(req) { + var result = await dbUpi.findOne({ id: req.params.id }); + return { data: result }; +} +async function readByState(req) { + + var result = await dbUpi.find({ status: "activate" }); + return { data: result }; +} +async function readAll(req) { + var result = await dbUpi.find(); + return { data: result }; +} + +module.exports = { + add, + update, + read, + readAll, + remove, + readByState +}; diff --git a/service/wallet.service.js b/service/wallet.service.js new file mode 100644 index 000000000..19a46b3b6 --- /dev/null +++ b/service/wallet.service.js @@ -0,0 +1,41 @@ +const db = require("../_helpers/db"); +const dbWallet = db.wallet; + +async function add(req, res) { + var result = await dbWallet(req.body).save().then(d => { + return db.members.findByIdAndUpdate( + req.body.member, + { $push: { wallet: d._id } }, + { new: true, useFindAndModify: false } + ); + }); + + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbWallet.updateOne( + { member: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} +async function read(req) { + var result = await dbWallet.findOne({ member: req.params.id }); + return { data: result }; +} + +async function readAll(req) { + var result = await dbWallet.find(); + return { data: result }; +} + +module.exports = { + add, + update, + read, + readAll, +}; diff --git a/service/withdraw.service.js b/service/withdraw.service.js new file mode 100644 index 000000000..b8fce6782 --- /dev/null +++ b/service/withdraw.service.js @@ -0,0 +1,124 @@ +const moment = require("moment"); +const db = require("../_helpers/db"); +const dbWithdraw = db.withdraw; + +async function add(req, res) { + var result = await dbWithdraw(req.body).save(); + + //smsObj.SendOtp(req.body.mobile); + return { data: result, responseCode: 1, responseMessage: "success" }; +} +async function update(req, res, next) { + var result = await dbWithdraw.updateOne( + { _id: req.params.id }, + req.body, + function (err) { + if (err) return next(err); + } + ); + return { data: result, responseCode: 1, responseMessage: "Updated" }; +} +async function read(req) { + var result = await dbWithdraw.findOne({ member: req.params.id }); + return { data: result }; +} + +async function readAll(req) { + var result = await dbWithdraw.find().populate('member'); + return { data: result }; +} +async function readByUser(req) { + var result = await dbWithdraw + .find({ member: req.params.userid }); + return { data: result }; +} +async function monthlyReport(req) { + var fromDate = req.body.fromDate; + var toDate = req.body.toDate; + var milkSummary = ''; + + if (fromDate === null || fromDate === undefined || toDate === null || toDate === undefined) { + toDate = new Date(); + + milkSummary = await dbWithdraw.aggregate([ + + { + $match: { + status: "success" // Specify your condition here + } + }, + { + $group: { + _id: null, + amount: { $sum: "$amount" }, + }, + }, + ]); + + } + else { + milkSummary = await dbWithdraw.aggregate([ + { + $match: { + "transactionDate": { + $gte: moment(req.body.fromDate).endOf("day").toDate(), + $lte: moment(req.body.toDate).endOf("day").toDate() + } + } + }, + { + $match: { + status: "success" // Specify your condition here + } + }, + { + $group: { + _id: null, + amount: { $sum: "$amount" }, + }, + }, + + ]); + + } + return milkSummary; +} +async function monthlyReport2(req) { + var withdrawRequest = ''; + + withdrawRequest = await dbWithdraw.aggregate([ + + { + $match: { + status: "requested" // Specify your condition here + } + }, + { + $group: { + _id: null, + count: { $sum: 1 } + } + } + + ]); + + + return withdrawRequest; + } +async function reachargeReport(req, res) { + var result = await monthlyReport(req, res); + return { data: result }; +} +async function reachargeReport2(req, res) { + var result = await monthlyReport2(req, res); + return { data: result }; +} +module.exports = { + add, + update, + read, + readAll, + reachargeReport, + reachargeReport2, + readByUser, +}; diff --git a/swagger.json b/swagger.json new file mode 100644 index 000000000..6023e59b2 --- /dev/null +++ b/swagger.json @@ -0,0 +1,51 @@ +{ + "swagger": "2.0", + "info": { + "title": "Blah", + "description": "", + "version": "1.0" + }, + "produces": ["application/json"], + "paths": { + "/test": { + "post": { + "x-swagger-router-controller": "home", + "operationId": "index", + "tags": ["/test"], + "description": "[Login 123](https://www.google.com)", + "parameters": [{ + "name": "test", + "in": "formData", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "integer" + } + }, + { "name": "profileId", "in": "formData", "required": true, "type": "string" }, + { "name": "file", "in": "formData", "type": "file", "required": "true" }], + "responses": {} + } + }, + "/bar": { + "get": { + "x-swagger-router-controller": "bar", + "operationId": "impossible", + "tags": ["/test"], + "description": "", + "parameters": [], + "responses": {} + } + }, + "/member": { + "get": { + "x-swagger-router-controller": "member", + "operationId": "impossible", + "tags": ["/member"], + "description": "", + "parameters": [], + "responses": {} + } + } + } + } \ No newline at end of file diff --git a/uploads/file-1704691606013-gameWin.jpg b/uploads/file-1704691606013-gameWin.jpg new file mode 100644 index 000000000..f0683c516 Binary files /dev/null and b/uploads/file-1704691606013-gameWin.jpg differ diff --git a/uploads/file-1704735637868-IMG-20231230-WA0012.jpg b/uploads/file-1704735637868-IMG-20231230-WA0012.jpg new file mode 100644 index 000000000..f0683c516 Binary files /dev/null and b/uploads/file-1704735637868-IMG-20231230-WA0012.jpg differ diff --git a/uploads/file-1704743977206-IMG-20231230-WA0012.jpg b/uploads/file-1704743977206-IMG-20231230-WA0012.jpg new file mode 100644 index 000000000..f0683c516 Binary files /dev/null and b/uploads/file-1704743977206-IMG-20231230-WA0012.jpg differ diff --git a/uploads/file-1704805617626-Screenshot_20231230_180940_com.ludo.king.jpg b/uploads/file-1704805617626-Screenshot_20231230_180940_com.ludo.king.jpg new file mode 100644 index 000000000..384dcc7a8 Binary files /dev/null and b/uploads/file-1704805617626-Screenshot_20231230_180940_com.ludo.king.jpg differ diff --git a/uploads/file-1704805627257-Screenshot_20231230_180940_com.ludo.king.jpg b/uploads/file-1704805627257-Screenshot_20231230_180940_com.ludo.king.jpg new file mode 100644 index 000000000..384dcc7a8 Binary files /dev/null and b/uploads/file-1704805627257-Screenshot_20231230_180940_com.ludo.king.jpg differ diff --git a/vhost.conf b/vhost.conf new file mode 100644 index 000000000..60e02e1fa --- /dev/null +++ b/vhost.conf @@ -0,0 +1,10 @@ + + + ServerName api.realludoking.com + SSLEngine on + # SSLCertificateFile "/opt/bitnami/apache/conf/api.milkvan.in.crt" + # SSLCertificateKeyFile "/opt/bitnami/apache/conf/api.milkvan.in.key" + ProxyPass / http://localhost:6001/ + ProxyPassReverse / http://localhost:6001/ + # other directories here + diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..4b45fcd5a --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2702 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@mapbox/node-pre-gyp@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" + integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + +"@sendgrid/client@^6.5.5": + version "6.5.5" + resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-6.5.5.tgz#66cf569445d98a795998a894bb432a9939ead7c3" + integrity sha512-Nbfgo94gbWSL8PIgJfuHoifyOJJepvV8NQkkglctAEfb1hyozKhrzE6v1kPG/z4j0RodaTtXD5LJj/t0q/VhLA== + dependencies: + "@sendgrid/helpers" "^6.5.5" + "@types/request" "^2.48.4" + request "^2.88.0" + +"@sendgrid/helpers@^6.5.5": + version "6.5.5" + resolved "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-6.5.5.tgz#de6de9b94794fbf834b4f66a7d44af84bf736459" + integrity sha512-uRFEanalfss5hDsuzVXZ1wm7i7eEXHh1py80piOXjobiQ+MxmtR19EU+gDSXZ+uMcEehBGhxnb7QDNN0q65qig== + dependencies: + chalk "^2.0.1" + deepmerge "^4.2.2" + +"@sendgrid/mail@^6.5.2": + version "6.5.5" + resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-6.5.5.tgz#45bef4e4878144304b6688867baa13179deecc4b" + integrity sha512-DSu8oTPI0BJFH60jMOG9gM+oeNMoRALFmdAYg2PIXpL+Zbxd7L2GzQZtmf1jLy/8UBImkbB3D74TjiOBiLRK1w== + dependencies: + "@sendgrid/client" "^6.5.5" + "@sendgrid/helpers" "^6.5.5" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/bson@*": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@types/bson/-/bson-4.2.0.tgz#a2f71e933ff54b2c3bf267b67fa221e295a33337" + integrity sha512-ELCPqAdroMdcuxqwMgUpifQyRoTpyYCNr1V9xKyF40VsBobsj+BbWNRvwGchMgBPGqkw655ypkjj2MEF5ywVwg== + dependencies: + bson "*" + +"@types/bson@1.x || 4.0.x": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/bson/-/bson-4.0.5.tgz#9e0e1d1a6f8866483f96868a9b33bc804926b1fc" + integrity sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg== + dependencies: + "@types/node" "*" + +"@types/caseless@*": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.2.tgz#f65d3d6389e01eeb458bd54dc8f52b95a9463bc8" + integrity sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w== + +"@types/mongodb@^3.5.27": + version "3.6.20" + resolved "https://registry.yarnpkg.com/@types/mongodb/-/mongodb-3.6.20.tgz#b7c5c580644f6364002b649af1c06c3c0454e1d2" + integrity sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ== + dependencies: + "@types/bson" "*" + "@types/node" "*" + +"@types/node@*": + version "18.7.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.18.tgz#633184f55c322e4fb08612307c274ee6d5ed3154" + integrity sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg== + +"@types/request@^2.48.4": + version "2.48.8" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.8.tgz#0b90fde3b655ab50976cb8c5ac00faca22f5a82c" + integrity sha512-whjk1EDJPcAR2kYHRbFl/lKeeKYTi05A15K9bnLInCVroNDCtXce57xKdI0/rQaA3K+6q0eFyUBPmqfSndUZdQ== + dependencies: + "@types/caseless" "*" + "@types/node" "*" + "@types/tough-cookie" "*" + form-data "^2.5.0" + +"@types/tough-cookie@*": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" + integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +addressparser@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746" + integrity sha512-aQX7AISOMM7HFE0iZ3+YnD07oIeJqWGVnJ+ZIKaBZAk03ftmVYVqsGas/rbXKR21n4D/hKCSHypvcyOkds/xzg== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agent-base@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +asn1.js@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +async.ensureasync@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.ensureasync/-/async.ensureasync-0.5.2.tgz#c3c7e4a4e9b31d96875d56b8504598446e1e305d" + integrity sha512-eez/kJFHbnnHUBWpYlmWcjZpho/Oh7SHwnnnuscM8nOZcIJ41t+ACMSYTfNtdrES+XfbGVQtyw+6YK2evQgV5w== + dependencies: + async.util.ensureasync "0.5.2" + +async.queue@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.queue/-/async.queue-0.5.2.tgz#8d5d90812e1481066bc0904e8cc1712b17c3bd7c" + integrity sha512-SX5gCWh47bIRLqHAt/zfJmRl2xpCF4OM4kkT3HehVJLmgQfLzYjL6QhLHe+SS4e7FOYU6NgMy2kXPB2wVchncg== + dependencies: + async.util.queue "0.5.2" + +async.util.arrayeach@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.arrayeach/-/async.util.arrayeach-0.5.2.tgz#58c4e98028d55d69bfb05aeb3af44e0a555a829c" + integrity sha512-PIb4rVYjwzLqb93XX2wj0+mA9YTgSWtxQRKxtuLqxXvGj1xZMB6qJUfr1NhS+FSaMPJIE1tF40Gl/o/vlfIz/A== + +async.util.ensureasync@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.ensureasync/-/async.util.ensureasync-0.5.2.tgz#10907f2cbd067a061f99ae6d22e08ced30db0d68" + integrity sha512-sQufNz4JYLHO/7ZUklaTGJtiX36gCp28McNNcMZfVYPm/wqi1pKk4xRCPr2DOZDM6KfA54zjG36jQjBU2mLzXg== + dependencies: + async.util.restparam "0.5.2" + async.util.setimmediate "0.5.2" + +async.util.isarray@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.isarray/-/async.util.isarray-0.5.2.tgz#e62dac8f2636f65875dcf7521c2d24d0dfb2bbdf" + integrity sha512-wbUzlrwON8RUgi+v/rhF0U99Ce8Osjcn+JP/mFNg6ymvShcobAOvE6cvLajSY5dPqKCOE1xfdhefgBif11zZgw== + +async.util.map@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.map/-/async.util.map-0.5.2.tgz#e588ef86e0b3ab5f027d97af4d6835d055ca69d6" + integrity sha512-uXZhyNIH9Jo25jn35lUoEwFLAdZWC2ZQKjLO5PLq8VAisfW6qvSfgDLH4H57/WQSKZSo6OOmuqGhtdvIHDTi1Q== + +async.util.noop@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.noop/-/async.util.noop-0.5.2.tgz#bdd62b97cb0aa3f60b586ad148468698975e58b9" + integrity sha512-AdwShXwE0KoskgqVJAck8zcM32nIHj3AC8ZN62ZaR5srhrY235Nw18vOJZWxcOfhxdVM0hRVKM8kMx7lcl7cCQ== + +async.util.onlyonce@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.onlyonce/-/async.util.onlyonce-0.5.2.tgz#b8e6fc004adc923164d79e32f2813ee465c24ff2" + integrity sha512-UgQvkU9JZ+I0Cm1f56XyGXcII+J3d/5XWUuHpcevlItuA3WFSJcqZrsyAUck2FkRSD8BwYQX1zUTDp3SJMVESg== + +async.util.queue@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.queue/-/async.util.queue-0.5.2.tgz#57f65abe1a3cdf273d31abd28ab95425f8222ee5" + integrity sha512-DlKOFnhCzERL9D3bLKlNdgXwSckckcj+XkCvNuX4KMs4brBc2lHvPg8MK4NoPIhwAvUBGvE4NECdNRY0I5UOEQ== + dependencies: + async.util.arrayeach "0.5.2" + async.util.isarray "0.5.2" + async.util.map "0.5.2" + async.util.noop "0.5.2" + async.util.onlyonce "0.5.2" + async.util.setimmediate "0.5.2" + +async.util.restparam@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.restparam/-/async.util.restparam-0.5.2.tgz#03efebf3c0277b97220e525aba750f5e04fc80cd" + integrity sha512-Q9Z+zgmtMxFX5i7CnBvNOkgrL5hptztCqwarQluyNudUUk4iCmyjmsQl8MuQEjNh3gGqP5ayvDaextL1VXXgIg== + +async.util.setimmediate@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.setimmediate/-/async.util.setimmediate-0.5.2.tgz#2812ebabf2a58027758d4bc7793d1ccfaf10255f" + integrity sha512-aCYF85ZFCQ9Xn0106GcOVx+LvFguIIzfbfRTOlQoie3G4KeSjURfA6f7CfpFAF09FNP2A1MtdjeFdvYeTGDebw== + +async@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== + +async@~0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axios@>=0.27: + version "1.1.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" + integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +axios@^0.19.2: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +axios@^0.21.1: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +bcrypt@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-5.1.0.tgz#bbb27665dbc400480a524d8991ac7434e8529e17" + integrity sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.10" + node-addon-api "^5.0.0" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/bl/-/bl-2.2.1.tgz#8c11a7b730655c5d56898cdc871224f40fd901d5" + integrity sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bluebird@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== + +bn.js@^4.0.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +bottleneck@^1.12.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-1.16.0.tgz#d6ce13808527afc80b69092f15606655e5b21f1a" + integrity sha512-HinT6aCt+ZLPVvMtOy8Vd1vQtR2R/Qi06fKRCa4oGiIuFF+CQwNYR/KZTjrEynkER7y9WaY8fhwWKqZp+/aXeg== + +boxen@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +bson@*: + version "4.7.0" + resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.0.tgz#7874a60091ffc7a45c5dd2973b5cad7cded9718a" + integrity sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA== + dependencies: + buffer "^5.6.0" + +bson@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.6.tgz#fb819be9a60cd677e0853aee4ca712a785d6618a" + integrity sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg== + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +busboy@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +call-bind@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +chalk@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cli-boxes@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + integrity sha512-qfexlmLp9MyrkajQVyjEDb0Vj+KhRgR/rxLiVhaihlT+ZkX0lReqtH6Ack40CvMDERR4b5eFp3CreskpBs1Pig== + dependencies: + delayed-stream "0.0.5" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +core-js@^3.5.0: + version "3.25.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.1.tgz#5818e09de0db8956e16bf10e2a7141e931b7c69c" + integrity sha512-sr0FY4lnO1hkQ4gLDr24K0DGnweGO1QwSj5BpfQjpSJPdqWalja4cTps29Y/PJVG/P7FYlPDkH3hO+Tr0CvDgQ== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0, debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + integrity sha512-v+7uBd1pqe5YtgPacIIbZ8HuHeLFVNe4mUEyFDXL6KiqzEykjbw+5mXZXpGFgNVasdL4jWKgaKIXrEHiynN1LA== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +denque@^1.4.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf" + integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv@^16.0.1: + version "16.0.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.2.tgz#0b0f8652c016a3858ef795024508cddc4bffc5bf" + integrity sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA== + +dotenv@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" + integrity sha512-XcaMACOr3JMVcEv0Y/iUM2XaOsATRZ3U1In41/1jjK6vJZ2PZbQ1bzCG8uvaByfaBpl9gqc9QWJovpUGBXLLYQ== + +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.12, encoding@~0.1.12: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +express-async-handler@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/express-async-handler/-/express-async-handler-1.2.0.tgz#ffc9896061d90f8d2e71a2d2b8668db5b0934391" + integrity sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w== + +express-jwt@^5.3.1: + version "5.3.3" + resolved "https://registry.yarnpkg.com/express-jwt/-/express-jwt-5.3.3.tgz#e557b4a63dd34c5ddd6ad81452738386314cc243" + integrity sha512-UdB8p5O8vGYTKm3SfREnLgVGIGEHcL3lrVyi3ebEX2qhMuagN623ju7ywWis+qYL+CXE7G1qPc2bCPBAg2MxZQ== + dependencies: + async "^1.5.0" + express-unless "^0.3.0" + jsonwebtoken "^8.1.0" + lodash.set "^4.0.0" + +express-unless@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/express-unless/-/express-unless-0.3.1.tgz#2557c146e75beb903e2d247f9b5ba01452696e20" + integrity sha512-MPF0KbUOTUMvTQ8/1+bewiYGdCbSL4FvkuVNe2ydjZ0HE/Uq2+NPfKLb1vA5DbcvVPrrAg6GB0ULURUALzzgqw== + +express@^4.17.1: + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.0" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.10.3" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@~3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-two-sms@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fast-two-sms/-/fast-two-sms-3.0.0.tgz#8f49755830b32aa598eee4d5b575da58467e595f" + integrity sha512-xaVI9g+Px26Q91gSns9ScBuYDkhLFIFOU8avqT6uJ4ConX2jPJm3xxoCk6t2xUNYpNukdsQyGc8YzFmtbsCNvw== + dependencies: + axios "^0.21.1" + chalk "^4.0.0" + update-notifier "^4.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +follow-redirects@^1.14.0, follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.2.0.tgz#26f8bc26da6440e299cbdcfb69035c4f77a6e466" + integrity sha512-LkinaG6JazVhYj2AKi67NOIAhqXcBOQACraT0WdhWW4ZO3kTiS0X7C1nJ1jFZf6wak4bVHIA/oOzWkh2ThAipg== + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime-types "~2.0.3" + +form-data@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +get-intrinsic@^1.0.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" + integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== + dependencies: + ini "1.3.7" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http_ece@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http_ece/-/http_ece-1.2.0.tgz#84d5885f052eae8c9b075eee4d2eb5105f114479" + integrity sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA== + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168" + integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== + dependencies: + agent-base "^7.0.2" + debug "4" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json-to-pivot-json@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-to-pivot-json/-/json-to-pivot-json-1.0.1.tgz#6e108f3ea50eec23a8cdb6ecf0c4323d5996ad29" + integrity sha512-w+/gaLUYvudZTZB5D3QLYfGpP8Dw74uaH5EvcNk26jZftNyc6c0KJeU+G3TwULqV3zA3lqsuDqd9dq09Gzw49g== + +jsonfile@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-5.0.0.tgz#e6b718f73da420d612823996fdf14a03f6ff6922" + integrity sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w== + dependencies: + universalify "^0.1.2" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^8.1.0: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + 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" + +jsonwebtoken@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + 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 "^7.5.4" + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + +kareem@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.2.tgz#78c4508894985b8d38a0dc15e1a8e11078f2ca93" + integrity sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ== + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +lodash.chunk@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" + integrity sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash.set@^4.0.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg== + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +mailparser@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/mailparser/-/mailparser-0.6.2.tgz#03c486039bdf4df6cd3b6adcaaac4107dfdbc068" + integrity sha512-5Z5nv7TYojrdrKHjhCOKKFaYs0Lo7PCja4RnLZ2kFE1Fskqg+rRVwFpG9Oqx3YjosGM2QEItjHo7+Jc9qvxGqw== + dependencies: + encoding "^0.1.12" + mime "^1.3.4" + mimelib "^0.3.0" + uue "^3.1.0" + +mailtrap@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mailtrap/-/mailtrap-3.0.1.tgz#b405f938fa0442e331d524229a487b038945425b" + integrity sha512-hAiiMzUQ5orh1JaprPzeVC8/ILeJ9V2qXmCgt6i/5LBPSJZAdStJDgzlWfu0Vf7Qht2RVu4NYLSvwcwBVt1RsQ== + dependencies: + axios ">=0.27" + +make-dir@^3.0.0, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-db@~1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" + integrity sha512-5aMAW7I4jZoZB27fXRuekqc4DVvJ7+hM8UcWrNj2mqibE54gXgPSonBYBdQW5hyaVNGmiYjY0ZMqn9fBefWYvA== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@~2.0.3: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" + integrity sha512-2ZHUEstNkIf2oTWgtODr6X0Cc4Ns/RN/hktdozndiEhhAC2wxXejF1FH0XLHTEImE9h6gr/tcnr3YOnSGsxc7Q== + dependencies: + mime-db "~1.12.0" + +mime@1.6.0, mime@^1.3.4: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimelib@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/mimelib/-/mimelib-0.3.1.tgz#787add2415d827acb3af6ec4bca1ea9596418853" + integrity sha512-ipzNp6TBsNfD3hButGlPVlGmuCgybIM9SBf8YwIG+SYmBgtU0u8wjf+BSrJX0mvqtv59SLmwphw/XiCbkLWv7w== + dependencies: + addressparser "~1.0.1" + encoding "~0.1.12" + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.0.0: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^0.5.4: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +moment@^2.29.4: + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +mongodb@3.7.3: + version "3.7.3" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.7.3.tgz#b7949cfd0adc4cc7d32d3f2034214d4475f175a5" + integrity sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw== + dependencies: + bl "^2.2.1" + bson "^1.1.4" + denque "^1.4.1" + optional-require "^1.1.8" + safe-buffer "^5.1.2" + optionalDependencies: + saslprep "^1.0.0" + +mongoose-legacy-pluralize@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4" + integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ== + +mongoose@^5.7.6: + version "5.13.15" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.13.15.tgz#ba2cd0f22c1a5dd9ae15aaf6b10f03c59a4202dd" + integrity sha512-cxp1Gbb8yUWkaEbajdhspSaKzAvsIvOtRlYD87GN/P2QEUhpd6bIvebi36T6M0tIVAMauNaK9SPA055N3PwF8Q== + dependencies: + "@types/bson" "1.x || 4.0.x" + "@types/mongodb" "^3.5.27" + bson "^1.1.4" + kareem "2.3.2" + mongodb "3.7.3" + mongoose-legacy-pluralize "1.0.2" + mpath "0.8.4" + mquery "3.2.5" + ms "2.1.2" + optional-require "1.0.x" + regexp-clone "1.0.0" + safe-buffer "5.2.1" + sift "13.5.2" + sliced "1.0.1" + +mpath@0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.8.4.tgz#6b566d9581621d9e931dd3b142ed3618e7599313" + integrity sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g== + +mquery@3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-3.2.5.tgz#8f2305632e4bb197f68f60c0cffa21aaf4060c51" + integrity sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A== + dependencies: + bluebird "3.5.1" + debug "3.1.0" + regexp-clone "^1.0.0" + safe-buffer "5.1.2" + sliced "1.0.1" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multer@^1.4.5-lts.1: + version "1.4.5-lts.1" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" + integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== + dependencies: + append-field "^1.0.0" + busboy "^1.0.0" + concat-stream "^1.5.2" + mkdirp "^0.5.4" + object-assign "^4.1.1" + type-is "^1.6.4" + xtend "^4.0.0" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-cron@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/node-cron/-/node-cron-3.0.3.tgz#c4bc7173dd96d96c50bdb51122c64415458caff2" + integrity sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A== + dependencies: + uuid "8.3.2" + +node-fetch@^2.6.7: + version "2.6.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" + integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + dependencies: + whatwg-url "^5.0.0" + +nodemailer@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.8.0.tgz#804bcc5256ee5523bc914506ee59f8de8f0b1cd5" + integrity sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ== + +nodemon@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.20.tgz#e3537de768a492e8d74da5c5813cb0c7486fc701" + integrity sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw== + dependencies: + chokidar "^3.5.2" + debug "^3.2.7" + ignore-by-default "^1.0.1" + minimatch "^3.1.2" + pstree.remy "^1.1.8" + semver "^5.7.1" + simple-update-notifier "^1.0.7" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optional-require@1.0.x: + version "1.0.3" + resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.0.3.tgz#275b8e9df1dc6a17ad155369c2422a440f89cb07" + integrity sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA== + +optional-require@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.8.tgz#16364d76261b75d964c482b2406cb824d8ec44b7" + integrity sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA== + dependencies: + require-at "^1.0.6" + +otp-generator@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/otp-generator/-/otp-generator-4.0.1.tgz#ec6bb8d0d14c171318e8eb731fdfcd2dd1ad83e7" + integrity sha512-2TJ52vUftA0+J3eque4wwVtpaL4/NdIXDL0gFWFJFVUAZwAN7+9tltMhL7GCNYaHJtuONoier8Hayyj4HLbSag== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +qs@^6.11.2: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@1.2.8, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +readable-stream@^2.2.2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^2.3.5: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regexp-clone@1.0.0, regexp-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63" + integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw== + +registry-auth-token@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" + integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== + dependencies: + rc "1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-at@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/require-at/-/require-at-1.0.6.tgz#9eb7e3c5e00727f5a4744070a7f560d4de4f6e6a" + integrity sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g== + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +saslprep@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" + integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== + dependencies: + sparse-bitfield "^3.0.3" + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver@^5.6.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.5: + version "7.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" + integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +sendgrid-rest@^2.3.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/sendgrid-rest/-/sendgrid-rest-2.6.1.tgz#7efa357068ccb172dbe310f2811abe4f01737102" + integrity sha512-W7gPROAPkEiD3+XQh+jeiU5mTNWqfgn45y1Xi8WiFA3CYKGOvHn+U0d62pTWjjynNqsmQIq9AJ0+93Bq67gbSQ== + dependencies: + core-js "^3.5.0" + dotenv "^4.0.0" + +sendgrid@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/sendgrid/-/sendgrid-5.2.3.tgz#37cd28ddd93fca2d3fa7dda10a323b1f43ffecfc" + integrity sha512-FD7oR9TbJFUew1p0Vw9JX0wBetDyq634LzylSXz4n9+hwaf+6a9dNloZl8CcjpsX4NuEc3HJanTN4GjDwNyi4A== + dependencies: + async.ensureasync "^0.5.2" + async.queue "^0.5.2" + bottleneck "^1.12.0" + debug "^2.2.0" + lodash.chunk "^4.2.0" + mailparser "^0.6.1" + sendgrid-rest "^2.3.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +sift@13.5.2: + version "13.5.2" + resolved "https://registry.yarnpkg.com/sift/-/sift-13.5.2.tgz#24a715e13c617b086166cd04917d204a591c9da6" + integrity sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-update-notifier@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz#7edf75c5bdd04f88828d632f762b2bc32996a9cc" + integrity sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew== + dependencies: + semver "~7.0.0" + +sliced@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" + integrity sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA== + +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== + dependencies: + memory-pager "^1.0.2" + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +swagger-ui-dist@>=4.11.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-4.14.0.tgz#e34d807464eb84578c43902e393084a1a6fbda52" + integrity sha512-TBzhheU15s+o54Cgk9qxuYcZMiqSm/SkvKnapoGHOF66kz0Y5aGjpzj5BT/vpBbn6rTPJ9tUYXQxuDWfsjiGMw== + +swagger-ui-express@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/swagger-ui-express/-/swagger-ui-express-4.5.0.tgz#feb1314627092eb9c7e6b65ee018927011445530" + integrity sha512-DHk3zFvsxrkcnurGvQlAcLuTDacAVN1JHKDgcba/gr2NFRE4HGwP1YeHIXMiGznkWR4AeS7X5vEblNn4QljuNA== + dependencies: + swagger-ui-dist ">=4.11.0" + +tar@^6.1.11: + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^4.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +term-size@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@^1.6.4, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +unirest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/unirest/-/unirest-0.6.0.tgz#289b5ae59cc9fa9fdfff3b5866e0dd50bf5eb280" + integrity sha512-BdYdcYJHXACqZ53k8Zz7QlNK/1W/HjCZlmg1OaaN/oTSp4FTWh0upXGSJsG88PljDBpSrNc2R649drasUA9NEg== + dependencies: + form-data "^0.2.0" + mime "^2.4.0" + request "^2.88.0" + +universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-notifier@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== + dependencies: + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== + dependencies: + prepend-http "^2.0.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uue@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/uue/-/uue-3.1.2.tgz#e99368414e87200012eb37de4dbaebaa1c742ad2" + integrity sha512-axKLXVqwtdI/czrjG0X8hyV1KLgeWx8F4KvSbvVCnS+RUvsQMGRjx0kfuZDXXqj0LYvVJmx3B9kWlKtEdRrJLg== + dependencies: + escape-string-regexp "~1.0.5" + extend "~3.0.0" + +uuid@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +web-push@^3.6.7: + version "3.6.7" + resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.6.7.tgz#5f5e645951153e37ef90a6ddea5c150ea0f709e1" + integrity sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A== + dependencies: + asn1.js "^5.3.0" + http_ece "1.2.0" + https-proxy-agent "^7.0.0" + jws "^4.0.0" + minimist "^1.2.5" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==