diff --git a/.gitignore b/.gitignore
index e69de29..b512c09 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+node_modules
\ No newline at end of file
diff --git a/app.js b/app.js
new file mode 100644
index 0000000..08f969d
--- /dev/null
+++ b/app.js
@@ -0,0 +1,235 @@
+const express = require('express'); // importing express
+const app = express(); // initializing espress in the app
+const path = require('path');
+const fs = require('fs');
+const mongoose = require('mongoose');
+mongoose.set('strictQuery', true);
+const bodyParser = require("body-parser")
+app.use(bodyParser.urlencoded({
+ extended: true
+}));
+// Connecting to mongodb server
+main().catch(err => console.log(err));
+async function main() {
+ await mongoose.connect('mongodb://localhost:27017/edTech');
+}
+const db = mongoose.connection;
+db.on('error', console.error.bind(console, 'connection error:'));
+db.once('open', function () {
+ console.log("\t\t\t\t\t\tWe are connected with Database")
+});
+// Define mongoose schema
+const contactSchema = new mongoose.Schema({
+ email: String,
+ password: String,
+ name: String,
+ age: String,
+ time: String
+});
+const Contact = mongoose.model('edTechprofile', contactSchema);
+const port = 3000;
+
+const nodemailer = require('nodemailer'); // adding mail service
+const { exit } = require('process');
+
+const transporter = nodemailer.createTransport({ // host authentication
+ service: 'gmail',
+ auth: {
+ user: 'corona.kobe.jabe@gmail.com',
+ pass: 'urosqsimfwbflnxg'
+ }
+});
+
+
+//serving static file
+app.use('/servingItems', express.static('servingItems'));
+
+
+// Setting home page
+const home = fs.readFileSync('./templates/index.html');
+
+// set the template engine as pug
+app.set("view engine", 'hbs');
+
+// set the views directory
+app.set('views', path.join(__dirname, 'templates'))
+
+
+app.get('/', (req, res) => {
+ res.status(200).end(home);
+})
+
+//Video Streaming
+app.get('/video', function(req, res){
+ const range = req.headers.range;
+ if(!range){
+ res.status(400).send("Requires Range header");
+ }
+ const videoPath = "./servingItems/static/Video/earth.mp4";
+ const videoSize = fs.statSync(videoPath).size;
+
+ const CHUNK_SIZE = 10**6; //1 MB
+ const start = Number(range.replace(/\D/g, ""));
+ const end = Math.min(start + CHUNK_SIZE , videoSize-1);
+ const contentLength = end-start+1;
+ const headers = {
+ "Content-Range": `bytes ${start}-${end}/${videoSize}`,
+ "Accept-Ranges": 'bytes',
+ "Content-Length": contentLength,
+ "Content-Type": "video/mp4"
+ }
+ res.writeHead(206,headers);
+ const videoStream = fs.createReadStream(videoPath,{start, end});
+ videoStream.pipe(res);
+
+})
+
+// Serving page on get request
+app.get('/courses', (req, res) => {
+ res.status(200).end(fs.readFileSync('./templates/login.html'))
+ // res.status(200).end(fs.readFileSync('./templates/otpVerify.pug') )
+})
+// app.get('/d', (req, res) => {
+// app.set("view engine", 'hbs');
+// app.set('views', path.join(__dirname, 'templates'))
+// res.status(200).render('dashboard', { username: "Tamal" });
+// // res.status(200).end(fs.readFileSync('./templates/otpVerify.pug') )
+// })
+
+// Creating temporary sing up varification dictionary
+let usersVerification = []// initially empty
+
+// Collecting data at post request
+app.post("/courses", function (req, res) {
+ const user = req.body;
+
+ // console.log(user.clientEmail )
+
+ // res.send("Addition - " + user);
+
+ // Case 1 : New User Sing up // entry = 2
+ if (user.entry == 2) {
+ // Generating 6 digit OTP
+ const otp = Math.floor(Math.random() * (999999 - 100000)) + 100000;
+ //Sending email
+ var mailOptions = {
+ from: 'corona.kobe.jabe@gmail.com',
+ to: `${user.newUserEmail}`,
+ subject: `Congratulations ReLerner `,
+ text: `Dear ${user.newUserName} , your one time password (OTP) for ReLearn sing up is : ${otp}
+
+ \n\n\n\n\n\tnoreply@ReLearn.com`
+ };
+ // sending OTP through email :
+
+ // transporter.sendMail(mailOptions, function(error, info){
+ // if (error) {
+ // console.log(error);
+ // } else {
+ // console.log('Email sent: ' + info.response);
+ // }
+ // });
+
+ // storing data in temp dictionery
+ usersVerification.push({
+ email: user.newUserEmail,
+ password: user.newUserPassword,
+ name: user.newUserName,
+ age: user.newUserAge,
+ time: new Date(),
+ otp: otp,
+ });
+ console.table(usersVerification);
+
+ // res.send("New user \n Email : " + user.newUserEmail+"\n Name : "+user.newUserName+"\n Age : "+user.newUserAge);
+ // set the template engine as pug
+
+ res.status(200).render('otpVerify', { email: user.newUserEmail })
+ } else if (user.entry == 1) {// Case 2 : Existing User Sing in // value of entry = 1
+
+ // searching in the database
+ Contact.find({ "email": user.clientEmail, "password": user.clientPassword }).then((result) => {
+ if (result == '') { // Not matched
+ console.log('Not found')
+ } else { // matched
+ loadDashboard(res,result[0]); // loadig dashboard based on the
+ }
+ }).catch(err => {
+ console.log(err)
+ })
+ } else if (user.entry == 3) {// Otp verification case 3 entry=3
+ // console.table(user);
+
+ var otpVerificationFound = compareOtp(user.verifyEmail, user.clientOtp);
+ // console.log("comparing : ",user.verifyEmail,user.clientOtp)
+ // console.log("\t Verrr = " + otpVerificationFound);
+ if (otpVerificationFound != null) {
+ var myData = new Contact(usersVerification[otpVerificationFound]);
+ myData.save().then(() => {
+
+ loadDashboard(res,myData);
+ }).catch(() => {
+ res.status(400).send("Item is not saved in the database")
+ });
+ } else {
+ res.status(404).render('otpVerify', { email: user.verifyEmail, round: `Retry` })
+ }
+ }
+ // console.table('otp ='+usersVerification[0].otp);
+ function loadDashboard(res,result){
+ app.set("view engine", 'hbs');
+ app.set('views', path.join(__dirname, 'templates'))
+ res.status(200).render('dashboard', { username: result.name, userage: result.age, useremail: result.email });
+ }
+});
+
+function compareOtp(verifyEmail, clientOtp) {
+ let matched = null;
+ let i = 0;
+ usersVerification.forEach(element => {
+ console.log(element.otp + '=' + clientOtp + '\t' + element.email + "=" + verifyEmail)
+ if (element.otp == clientOtp && element.email == verifyEmail) {
+
+ // Add this user to the database
+ console.log("Email verified for :"); // Database work
+ console.table(element); // Database work
+
+ console.log("Moved to database so deleting from the temporary file")
+ // usersVerification.Remove(element)
+ // usersVerification.delete(i); // deleting the
+
+ console.table(usersVerification);
+ matched = i;
+ }
+ i++;
+ });
+ return matched;
+}
+
+const interval = 60 * 10000; // 60 minutes
+
+// function deleteFirstOTP() {
+// // console.log(usersVerification);
+// if ((usersVerification[0].time) && (new Date().getTime()-usersVerification[0].time >interval)) {
+// console.log("Deleting : \n")
+// console.table(usersVerification[0]);
+// delete usersVerification[0];
+// }
+// }
+let item = 0;
+setInterval(() => {
+ delete usersVerification[item];
+ item++;
+}, interval);
+
+// console.log(new Date().getTime() )
+
+
+
+
+// Server listening at channel :
+app.listen(port, () => {
+ console.log(`Live on port http://127.0.0.1:${port}`)
+ // console.log(`Jump to demo http://127.0.0.1:${port}/demo` )
+})
+// console.log(" Modify otpVerificationFound section Problem in var & const & problem in the comparison");
\ No newline at end of file
diff --git a/css/style.css b/css/style.css
deleted file mode 100644
index e007efd..0000000
--- a/css/style.css
+++ /dev/null
@@ -1,365 +0,0 @@
-@import url('https://fonts.googleapis.com/css2?family=Andika:wght@700&family=Kalam&display=swap');
-@import url('https://fonts.googleapis.com/css2?family=Ubuntu&display=swap');
-@import url('https://fonts.googleapis.com/css2?family=Philosopher:ital,wght@1,700&family=Playfair+Display:ital,wght@1,600&family=Poppins:wght@700&family=Quicksand:wght@500&family=Raleway&display=swap');
-
-* {
- /* background-color: red; */
- margin: 0;
- padding: 0;
- /* font-family: 'Andika', sans-serif; */
- /* font-family: 'Kalam', cursive; */
-
-
-}
-
-html{
- scroll-behavior: smooth;
-}
-
-a {
- text-decoration: none;
- color: black;
-}
-
-li {
- list-style: none;
- /* border:1px solid black; */
-}
-
-.icon {
- height: 36px;
- top: -3px;
- position: absolute;
- cursor: pointer;
-}
-
-
-.searchBox input {
- width: 27vw;
- height: 35px;
- margin: 0 20px;
- border-radius: 10px;
- font-size: 20px;
- border: none;
- outline: none;
- text-align: center;
-}
-
-.searchBox img {
- top: 4px;
- height: 28px;
-}
-
-:root {
- --navMidWidth: 55vw;
- --navLeftWidth: 18vw;
- --navRightWidth: 8vw;
-}
-body{
- background-color:#F2DEBA;
-}
-@media screen and (max-width: 1500px ) {
- :root {
- --navMidWidth: auto;
- --navLeftWidth: 26vw;
- --navRightWidth: 12vw;
- }
-}
-@media screen and (max-width: 900px) {
- :root {
- --navMidWidth: auto;
- --navLeftWidth: 35vw;
- --navRightWidth: 16vw;
- }
-}
-@media screen and (max-width: 740px) {
- body{
- background-color: #f2debae1;
- }
-}
-
-.searchBox {
- width: var(--navMidWidth);
- display: flex;
- font-size: 27px;
- align-items: center;
- position: sticky;
- justify-content: right;
- /* border: 1px solid saddlebrown; */
-}
-
-.left {
- display: flex;
- width: var(--navLeftWidth);
- justify-content: space-between;
- align-items: center;
- font-size: 28px;
- left: 2vw;
- position: sticky;
-}
-
-.right {
- display: flex;
- width: var(--navRightWidth);
- justify-content: space-between;
- /* background-color: azure; */
- align-items: center;
- font-size: 28px;
- position: sticky;
- right: 3vw;
-}
-
-
-nav {
- display: flex;
- justify-content: space-between;
- align-items: center;
- background-color: #3C79F5;
- height: 7vh;
- /* position: -webkit-sticky; Safari */
- position: sticky;
- top: 0;
- font-family: 'Ubuntu', sans-serif;
- box-shadow: rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.04) 0px 10px 10px -5px;
-}
-nav li:hover {
- background-color: #79a6ff;
- border-bottom: 3px solid rgb(37, 35, 82);
- border-radius: 5px;
-}
-
-
-
-
-#firstSection{
-
-
- padding:3vh;
-}
-.background{
- background: linear-gradient(rgba(22, 22, 22, 0.587),rgba(93, 93, 93, 0.649),rgba(0, 0, 0, 0.324)) ,url('../images/banner.jpg');
- background-size: cover;
- padding: 6vw;
-border-radius: 23px;
-}
-.heading{
-
- font-size: 3vw;
- color: rgb(255, 255, 255);
- text-align: center;
- font-family: poppins;
-
-}
-#wlcm{
- font-size: 2vw;
- color: rgb(255, 255, 255);
- text-align: center;
- font-family: raleway;
-
-
-}
-.wsimg{
- max-width: 9vw;
-display: inline-block;
-margin-right: 2vw;
-
- }
-.wsimg img{
-max-width:100%;
-border-radius: 5px;;
-
-
-}
-#whyus{
- background-color: #2DCDDF;
- display: flex;
- flex-direction: column;
- justify-content: center;
- margin: 1vw 1vw;
- flex-wrap: wrap;
- border-radius: 15px;
- padding: 0vh 0vh;
- color: black;
- /* height: 41vw; */
- }
-
-
-.whyusinfo{
- margin-left: 2vw;
- /* height: 6vw; */
-}
-.card{
-
- display: flex;
- align-items: center;
- justify-content: flex-start;
- margin: 0vh 2vw;
- width: 87vw;
- /* height: 9vw; */
- font-family: quicksand,sans-serif;
- /* font-size: 2vh;*/
- padding:2vw;
- }
-
- /* */
- .heading-sm
- {
- font-family: 'Philosopher', sans-serif;
- font-weight: 700;
- font-size: 1.7vw;
- margin: 1vw;
-
- }
- .content{
- font-size: 1.3vw;
-
- }
-
-
-
-
-
-
- /*////////////////////////////SecondSection//////////////////////////////////////////*/
-#secondSection{
- margin: 2vw 2vw;
- text-align: center;
- padding: 2vw;
- width: 92vw;
- display: flex;
- justify-content: center;
-}
-#teacher{
-
- display: flex;
- width: 90vw;
- /* height: 23vw; */
- background-color: #6C00FF;
-
- align-items: center;
- justify-content: flex-start;
- border-radius: 15px;
- padding: 2vh 5vh;
- color:rgb(255, 255, 223);
-
-}
-#teacherimg{
- height: 76%;
- ;
- margin: 2vw;
- display: flex;
- justify-content: center;
- align-items: center;
-}
-#teacherimg img{
-
- width: 89%;
- /* height: 55%; */
- border-radius: 12px;
-
-}
-#teachertxt{
- font-size: 1rem;
- margin-top: 4vw;
- font-family: ubuntu,sans-serif;
-
-}
-#teachertxt span{
- font-size: 1.9em;
-
- font-family: poppins,sans-serif;
-
-}
-.headingteacher{ font-size: 1.6em;
-}
-
-#subwhy{
- text-align: center;
- font-size: 2vw;
- font-family: Verdana, Geneva, Tahoma, sans-serif;
- color: #3a008c;
-}
-.why{
- font-size: 3vw;
- font-family: playfair display;
- margin-top: 5vh;
- text-align: center;
- color:#6C00FF;
-}
-@media screen and (max-width: 810px) {
- .wsimg {
- /*! max-width: 9vw; */
-
- width: 33vw;
- max-width: fit-content;
- margin: 3vw;
- }
- #whyus {
-
- height: auto;
- padding: 2vw 0vw;
- }
- .card {
-
- margin: 2vh 4vw;
- width: 90%;
- height: auto;
-
- /* font-size: 2vh; */
- flex-direction: column;
- }
- #whyusinfo{
- height: auto;
- }
- .heading-sm {
- padding: 2vw;
- font-size: 1.4rem;
- }
- .content{
- font-size: 16px;
- }
- #teacherimg img{
- width: 100%;
-
- }
- #teacher{
- flex-direction: column;
- }
- .heading{
- font-size: 5vw;;
- }
- #wlcm
- {
- font-size: 4vw;
- }
- #subwhy{
- font-size: 3vw ;
- }
- .why{
- font-size: 6vw;
- }
-
-}
-
-
-
-@media screen and (max-width: 1018px) {
- .heading-sm {
- padding: 2vw;
- font-size: 1.3rem;
- }
- .content{
- font-size: 1rem;
- }
-}
-
-
-footer{
- height: 6vh;
- color: white;
- background-color: rgb(0, 0, 0);
- text-align: center;
- padding: 2vh 1vh;
- font-size: 2vw;
- margin-top: 3vh;
-}
diff --git a/javaScript/script.js b/javaScript/script.js
deleted file mode 100644
index 085721c..0000000
--- a/javaScript/script.js
+++ /dev/null
@@ -1,159 +0,0 @@
-function copyPn() {
- var CopyPhone = document.getElementById("copyPn");
- navigator.clipboard.writeText(CopyPhone.alt);
- window.parent.location.href = `tel:+91${CopyPhone.alt}`
- console.log(`tel:+91${CopyPhone.alt}`)
- // alert("Copied Phone no : " + CopyPhone.alt);
-}
-
-
-let toggleBS2 = 1;
-let popupLogin=1;
-
-const whyus = document.getElementById("whyusControl").innerHTML;
-bodySection2 = document.getElementById("whyusControl");
-const loginForm=`
-
-
-
Access Now
- X
-
-
-
-
-
-`;
-function displayLogin() {
- // console.log('feyhr'+whyus)
- // bodySection2.style.display="none";
- if (toggleBS2) {
- bodySection2.innerHTML = loginForm;
-
- console.log('Entering into the Login form');
- toggleBS2=0;
- } else {
- bodySection2.innerHTML = `${whyus}`;
- console.log('Exiting from the Login form');
- toggleBS2=1;
- }
-}
-function displayAbout() {
- if (!toggleBS2) {
- bodySection2.innerHTML = `${whyus}`;
- console.log('Opening Abous [whyus]');
- toggleBS2=1;
- }
-}
-function displayLoginOnce(){
- if (popupLogin && toggleBS2) {
- bodySection2.innerHTML = loginForm;
- console.log('1st login page popup');
- popupLogin--;
- toggleBS2=0;
- }
-}
-
diff --git a/login.html b/login.html
deleted file mode 100644
index c8adb35..0000000
--- a/login.html
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
-
-
- Login
-
-
-
-
-
-
-
-
-
-
Access Now
- X
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..6499862
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2082 @@
+{
+ "name": "githubcurr",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "body-parser": "^1.20.1",
+ "express": "^4.18.2",
+ "hbs": "^4.2.0",
+ "mongoose": "^6.8.4",
+ "nodemailer": "^6.9.0"
+ }
+ },
+ "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==",
+ "optional": true,
+ "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==",
+ "optional": true
+ },
+ "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==",
+ "optional": true,
+ "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==",
+ "optional": true
+ },
+ "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==",
+ "optional": true,
+ "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==",
+ "optional": true
+ },
+ "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==",
+ "optional": true,
+ "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==",
+ "optional": true
+ },
+ "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==",
+ "optional": true,
+ "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==",
+ "optional": true
+ },
+ "node_modules/@aws-sdk/abort-controller": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.226.0.tgz",
+ "integrity": "sha512-cJVzr1xxPBd08voknXvR0RLgtZKGKt6WyDpH/BaPCu3rfSqWCDZKzwqe940eqosjmKrxC6pUZNKASIqHOQ8xxQ==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cognito-identity": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.252.0.tgz",
+ "integrity": "sha512-IHdrzMUGEQcUP7vN/wbVbRCHBXhC0nyaRxnnoHbrJfh5fzPSnkwo7qNf0e8ox+GXq8xgM58dEXefA6/TMYQPFQ==",
+ "optional": true,
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "2.0.0",
+ "@aws-crypto/sha256-js": "2.0.0",
+ "@aws-sdk/client-sts": "3.252.0",
+ "@aws-sdk/config-resolver": "3.234.0",
+ "@aws-sdk/credential-provider-node": "3.252.0",
+ "@aws-sdk/fetch-http-handler": "3.226.0",
+ "@aws-sdk/hash-node": "3.226.0",
+ "@aws-sdk/invalid-dependency": "3.226.0",
+ "@aws-sdk/middleware-content-length": "3.226.0",
+ "@aws-sdk/middleware-endpoint": "3.226.0",
+ "@aws-sdk/middleware-host-header": "3.226.0",
+ "@aws-sdk/middleware-logger": "3.226.0",
+ "@aws-sdk/middleware-recursion-detection": "3.226.0",
+ "@aws-sdk/middleware-retry": "3.235.0",
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/middleware-signing": "3.226.0",
+ "@aws-sdk/middleware-stack": "3.226.0",
+ "@aws-sdk/middleware-user-agent": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/node-http-handler": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/smithy-client": "3.234.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "@aws-sdk/util-body-length-browser": "3.188.0",
+ "@aws-sdk/util-body-length-node": "3.208.0",
+ "@aws-sdk/util-defaults-mode-browser": "3.234.0",
+ "@aws-sdk/util-defaults-mode-node": "3.234.0",
+ "@aws-sdk/util-endpoints": "3.245.0",
+ "@aws-sdk/util-retry": "3.229.0",
+ "@aws-sdk/util-user-agent-browser": "3.226.0",
+ "@aws-sdk/util-user-agent-node": "3.226.0",
+ "@aws-sdk/util-utf8-browser": "3.188.0",
+ "@aws-sdk/util-utf8-node": "3.208.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-sso": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.252.0.tgz",
+ "integrity": "sha512-VgBqJvvCU4y9zAHJwYj5nOeNGcCxKdCO4edUxWQVHcpLsVWu49maOVtWuteq9MOrHYeWfQi8bVWGt8MPvv9+bA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "2.0.0",
+ "@aws-crypto/sha256-js": "2.0.0",
+ "@aws-sdk/config-resolver": "3.234.0",
+ "@aws-sdk/fetch-http-handler": "3.226.0",
+ "@aws-sdk/hash-node": "3.226.0",
+ "@aws-sdk/invalid-dependency": "3.226.0",
+ "@aws-sdk/middleware-content-length": "3.226.0",
+ "@aws-sdk/middleware-endpoint": "3.226.0",
+ "@aws-sdk/middleware-host-header": "3.226.0",
+ "@aws-sdk/middleware-logger": "3.226.0",
+ "@aws-sdk/middleware-recursion-detection": "3.226.0",
+ "@aws-sdk/middleware-retry": "3.235.0",
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/middleware-stack": "3.226.0",
+ "@aws-sdk/middleware-user-agent": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/node-http-handler": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/smithy-client": "3.234.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "@aws-sdk/util-body-length-browser": "3.188.0",
+ "@aws-sdk/util-body-length-node": "3.208.0",
+ "@aws-sdk/util-defaults-mode-browser": "3.234.0",
+ "@aws-sdk/util-defaults-mode-node": "3.234.0",
+ "@aws-sdk/util-endpoints": "3.245.0",
+ "@aws-sdk/util-retry": "3.229.0",
+ "@aws-sdk/util-user-agent-browser": "3.226.0",
+ "@aws-sdk/util-user-agent-node": "3.226.0",
+ "@aws-sdk/util-utf8-browser": "3.188.0",
+ "@aws-sdk/util-utf8-node": "3.208.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-sso-oidc": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.252.0.tgz",
+ "integrity": "sha512-OOwfEXFS+UliGZorEleARsXXUp3ObZSXo9/YY+8XF7/8froAqYjKCEi0tflghgYlh7d6qe7wzD7/6gDL1a/qgA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "2.0.0",
+ "@aws-crypto/sha256-js": "2.0.0",
+ "@aws-sdk/config-resolver": "3.234.0",
+ "@aws-sdk/fetch-http-handler": "3.226.0",
+ "@aws-sdk/hash-node": "3.226.0",
+ "@aws-sdk/invalid-dependency": "3.226.0",
+ "@aws-sdk/middleware-content-length": "3.226.0",
+ "@aws-sdk/middleware-endpoint": "3.226.0",
+ "@aws-sdk/middleware-host-header": "3.226.0",
+ "@aws-sdk/middleware-logger": "3.226.0",
+ "@aws-sdk/middleware-recursion-detection": "3.226.0",
+ "@aws-sdk/middleware-retry": "3.235.0",
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/middleware-stack": "3.226.0",
+ "@aws-sdk/middleware-user-agent": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/node-http-handler": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/smithy-client": "3.234.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "@aws-sdk/util-body-length-browser": "3.188.0",
+ "@aws-sdk/util-body-length-node": "3.208.0",
+ "@aws-sdk/util-defaults-mode-browser": "3.234.0",
+ "@aws-sdk/util-defaults-mode-node": "3.234.0",
+ "@aws-sdk/util-endpoints": "3.245.0",
+ "@aws-sdk/util-retry": "3.229.0",
+ "@aws-sdk/util-user-agent-browser": "3.226.0",
+ "@aws-sdk/util-user-agent-node": "3.226.0",
+ "@aws-sdk/util-utf8-browser": "3.188.0",
+ "@aws-sdk/util-utf8-node": "3.208.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-sts": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.252.0.tgz",
+ "integrity": "sha512-wzfsWOlDFLdmeML8R7DUJWGl9wcRKf2uiunfB1aWzpdlgms0Z7FkHWgkDYHjCPyYHL6EBm84ajGl1UkE7AcmqQ==",
+ "optional": true,
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "2.0.0",
+ "@aws-crypto/sha256-js": "2.0.0",
+ "@aws-sdk/config-resolver": "3.234.0",
+ "@aws-sdk/credential-provider-node": "3.252.0",
+ "@aws-sdk/fetch-http-handler": "3.226.0",
+ "@aws-sdk/hash-node": "3.226.0",
+ "@aws-sdk/invalid-dependency": "3.226.0",
+ "@aws-sdk/middleware-content-length": "3.226.0",
+ "@aws-sdk/middleware-endpoint": "3.226.0",
+ "@aws-sdk/middleware-host-header": "3.226.0",
+ "@aws-sdk/middleware-logger": "3.226.0",
+ "@aws-sdk/middleware-recursion-detection": "3.226.0",
+ "@aws-sdk/middleware-retry": "3.235.0",
+ "@aws-sdk/middleware-sdk-sts": "3.226.0",
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/middleware-signing": "3.226.0",
+ "@aws-sdk/middleware-stack": "3.226.0",
+ "@aws-sdk/middleware-user-agent": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/node-http-handler": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/smithy-client": "3.234.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "@aws-sdk/util-body-length-browser": "3.188.0",
+ "@aws-sdk/util-body-length-node": "3.208.0",
+ "@aws-sdk/util-defaults-mode-browser": "3.234.0",
+ "@aws-sdk/util-defaults-mode-node": "3.234.0",
+ "@aws-sdk/util-endpoints": "3.245.0",
+ "@aws-sdk/util-retry": "3.229.0",
+ "@aws-sdk/util-user-agent-browser": "3.226.0",
+ "@aws-sdk/util-user-agent-node": "3.226.0",
+ "@aws-sdk/util-utf8-browser": "3.188.0",
+ "@aws-sdk/util-utf8-node": "3.208.0",
+ "fast-xml-parser": "4.0.11",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/config-resolver": {
+ "version": "3.234.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.234.0.tgz",
+ "integrity": "sha512-uZxy4wzllfvgCQxVc+Iqhde0NGAnfmV2hWR6ejadJaAFTuYNvQiRg9IqJy3pkyDPqXySiJ8Bom5PoJfgn55J/A==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/signature-v4": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-config-provider": "3.208.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-cognito-identity": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.252.0.tgz",
+ "integrity": "sha512-QW3pBYetF06FOQ85FbsFjK6xpon8feF/UOHsL0lMGi4CxUZE6zshV/ectU7tACcc4QV8uMvN7OgcK947CMEEWA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/client-cognito-identity": "3.252.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-env": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.226.0.tgz",
+ "integrity": "sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-imds": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.226.0.tgz",
+ "integrity": "sha512-//z/COQm2AjYFI1Lb0wKHTQSrvLFTyuKLFQGPJsKS7DPoxGOCKB7hmYerlbl01IDoCxTdyL//TyyPxbZEOQD5Q==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-ini": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.252.0.tgz",
+ "integrity": "sha512-OfpU8xMYK7+6XQ2dUO4rN0gUhhb/ZLV7iwSL6Ji2pI9gglGhKdOSfmbn6fBfCB50kzWZRNoiQJVaBu/d0Kr0EQ==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "3.226.0",
+ "@aws-sdk/credential-provider-imds": "3.226.0",
+ "@aws-sdk/credential-provider-process": "3.226.0",
+ "@aws-sdk/credential-provider-sso": "3.252.0",
+ "@aws-sdk/credential-provider-web-identity": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-node": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.252.0.tgz",
+ "integrity": "sha512-Jt854JnB7izkJ/gb3S0hBFqAQPUNUP3eL8gXX2uqk9A9bQFQdS57/Ci0FXaEPwOXzJwAAPazD8dTf6HXMhnm3w==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "3.226.0",
+ "@aws-sdk/credential-provider-imds": "3.226.0",
+ "@aws-sdk/credential-provider-ini": "3.252.0",
+ "@aws-sdk/credential-provider-process": "3.226.0",
+ "@aws-sdk/credential-provider-sso": "3.252.0",
+ "@aws-sdk/credential-provider-web-identity": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-process": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.226.0.tgz",
+ "integrity": "sha512-iUDMdnrTvbvaCFhWwqyXrhvQ9+ojPqPqXhwZtY1X/Qaz+73S9gXBPJHZaZb2Ke0yKE1Ql3bJbKvmmxC/qLQMng==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-sso": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.252.0.tgz",
+ "integrity": "sha512-2JGoojMOBjG9/DenctEszjdPechq0uDTpH5nx+z1xxIAugA5+HYG/ncNfpwhmUBCrnOxpRaQViTNqXddEPHlAg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/client-sso": "3.252.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/token-providers": "3.252.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-web-identity": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.226.0.tgz",
+ "integrity": "sha512-CCpv847rLB0SFOHz2igvUMFAzeT2fD3YnY4C8jltuJoEkn0ITn1Hlgt13nTJ5BUuvyti2mvyXZHmNzhMIMrIlw==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-providers": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.252.0.tgz",
+ "integrity": "sha512-aA4kwbvSlEcS9QSSlUWoVyoMYEljhkubNxpRhRnObsl4iT9xS06c38lKyhz3m0XIbCVk0lgYTcpue0dlybKS7Q==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/client-cognito-identity": "3.252.0",
+ "@aws-sdk/client-sso": "3.252.0",
+ "@aws-sdk/client-sts": "3.252.0",
+ "@aws-sdk/credential-provider-cognito-identity": "3.252.0",
+ "@aws-sdk/credential-provider-env": "3.226.0",
+ "@aws-sdk/credential-provider-imds": "3.226.0",
+ "@aws-sdk/credential-provider-ini": "3.252.0",
+ "@aws-sdk/credential-provider-node": "3.252.0",
+ "@aws-sdk/credential-provider-process": "3.226.0",
+ "@aws-sdk/credential-provider-sso": "3.252.0",
+ "@aws-sdk/credential-provider-web-identity": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/fetch-http-handler": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.226.0.tgz",
+ "integrity": "sha512-JewZPMNEBXfi1xVnRa7pVtK/zgZD8/lQ/YnD8pq79WuMa2cwyhDtr8oqCoqsPW+WJT5ScXoMtuHxN78l8eKWgg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/querystring-builder": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-base64": "3.208.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@aws-sdk/hash-node": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.226.0.tgz",
+ "integrity": "sha512-MdlJhJ9/Espwd0+gUXdZRsHuostB2WxEVAszWxobP0FTT9PnicqnfK7ExmW+DUAc0ywxtEbR3e0UND65rlSTVw==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-buffer-from": "3.208.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/invalid-dependency": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.226.0.tgz",
+ "integrity": "sha512-QXOYFmap8g9QzRjumcRCIo2GEZkdCwd7ePQW0OABWPhKHzlJ74vvBxywjU3s39EEBEluWXtZ7Iufg6GxZM4ifw==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@aws-sdk/is-array-buffer": {
+ "version": "3.201.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz",
+ "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-content-length": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.226.0.tgz",
+ "integrity": "sha512-ksUzlHJN2JMuyavjA46a4sctvnrnITqt2tbGGWWrAuXY1mel2j+VbgnmJUiwHKUO6bTFBBeft5Vd1TSOb4JmiA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-endpoint": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.226.0.tgz",
+ "integrity": "sha512-EvLFafjtUxTT0AC9p3aBQu1/fjhWdIeK58jIXaNFONfZ3F8QbEYUPuF/SqZvJM6cWfOO9qwYKkRDbCSTYhprIg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/middleware-serde": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/signature-v4": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/url-parser": "3.226.0",
+ "@aws-sdk/util-config-provider": "3.208.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-host-header": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.226.0.tgz",
+ "integrity": "sha512-haVkWVh6BUPwKgWwkL6sDvTkcZWvJjv8AgC8jiQuSl8GLZdzHTB8Qhi3IsfFta9HAuoLjxheWBE5Z/L0UrfhLA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-logger": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.226.0.tgz",
+ "integrity": "sha512-m9gtLrrYnpN6yckcQ09rV7ExWOLMuq8mMPF/K3DbL/YL0TuILu9i2T1W+JuxSX+K9FMG2HrLAKivE/kMLr55xA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-recursion-detection": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.226.0.tgz",
+ "integrity": "sha512-mwRbdKEUeuNH5TEkyZ5FWxp6bL2UC1WbY+LDv6YjHxmSMKpAoOueEdtU34PqDOLrpXXxIGHDFmjeGeMfktyEcA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-retry": {
+ "version": "3.235.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.235.0.tgz",
+ "integrity": "sha512-50WHbJGpD3SNp9763MAlHqIhXil++JdQbKejNpHg7HsJne/ao3ub+fDOfx//mMBjpzBV25BGd5UlfL6blrClSg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/service-error-classification": "3.229.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "@aws-sdk/util-retry": "3.229.0",
+ "tslib": "^2.3.1",
+ "uuid": "^8.3.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-sdk-sts": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.226.0.tgz",
+ "integrity": "sha512-NN9T/qoSD1kZvAT+VLny3NnlqgylYQcsgV3rvi/8lYzw/G/2s8VS6sm/VTWGGZhx08wZRv20MWzYu3bftcyqUg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/middleware-signing": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/signature-v4": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-serde": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.226.0.tgz",
+ "integrity": "sha512-nPuOOAkSfx9TxzdKFx0X2bDlinOxGrqD7iof926K/AEflxGD1DBdcaDdjlYlPDW2CVE8LV/rAgbYuLxh/E/1VA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-signing": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz",
+ "integrity": "sha512-E6HmtPcl+IjYDDzi1xI2HpCbBq2avNWcjvCriMZWuTAtRVpnA6XDDGW5GY85IfS3A8G8vuWqEVPr8JcYUcjfew==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/signature-v4": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "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==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-user-agent": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz",
+ "integrity": "sha512-N1WnfzCW1Y5yWhVAphf8OPGTe8Df3vmV7/LdsoQfmpkCZgLZeK2o0xITkUQhRj1mbw7yp8tVFLFV3R2lMurdAQ==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/node-config-provider": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.226.0.tgz",
+ "integrity": "sha512-B8lQDqiRk7X5izFEUMXmi8CZLOKCTWQJU9HQf3ako+sF0gexo4nHN3jhoRWyLtcgC5S3on/2jxpAcqtm7kuY3w==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/node-http-handler": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.226.0.tgz",
+ "integrity": "sha512-xQCddnZNMiPmjr3W7HYM+f5ir4VfxgJh37eqZwX6EZmyItFpNNeVzKUgA920ka1VPz/ZUYB+2OFGiX3LCLkkaA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/abort-controller": "3.226.0",
+ "@aws-sdk/protocol-http": "3.226.0",
+ "@aws-sdk/querystring-builder": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/property-provider": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.226.0.tgz",
+ "integrity": "sha512-TsljjG+Sg0LmdgfiAlWohluWKnxB/k8xenjeozZfzOr5bHmNHtdbWv6BtNvD/R83hw7SFXxbJHlD5H4u9p2NFg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/protocol-http": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.226.0.tgz",
+ "integrity": "sha512-zWkVqiTA9RXL6y0hhfZc9bcU4DX2NI6Hw9IhQmSPeM59mdbPjJlY4bLlMr5YxywqO3yQ/ylNoAfrEzrDjlOSRg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/querystring-builder": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz",
+ "integrity": "sha512-LVurypuNeotO4lmirKXRC4NYrZRAyMJXuwO0f2a5ZAUJCjauwYrifKue6yCfU7bls7gut7nfcR6B99WBYpHs3g==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-uri-escape": "3.201.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/querystring-parser": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz",
+ "integrity": "sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/service-error-classification": {
+ "version": "3.229.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz",
+ "integrity": "sha512-dnzWWQ0/NoWMUZ5C0DW3dPm0wC1O76Y/SpKbuJzWPkx1EYy6r8p32Ly4D9vUzrKDbRGf48YHIF2kOkBmu21CLg==",
+ "optional": true,
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/shared-ini-file-loader": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.226.0.tgz",
+ "integrity": "sha512-661VQefsARxVyyV2FX9V61V+nNgImk7aN2hYlFKla6BCwZfMng+dEtD0xVGyg1PfRw0qvEv5LQyxMVgHcUSevA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/signature-v4": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz",
+ "integrity": "sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/is-array-buffer": "3.201.0",
+ "@aws-sdk/types": "3.226.0",
+ "@aws-sdk/util-hex-encoding": "3.201.0",
+ "@aws-sdk/util-middleware": "3.226.0",
+ "@aws-sdk/util-uri-escape": "3.201.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.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==",
+ "optional": 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/token-providers": {
+ "version": "3.252.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.252.0.tgz",
+ "integrity": "sha512-xi3pUP31tyKF4lJFCOgtkwSWESE9W1vE23Vybsq53wzXEYfnRql8RP+C9FFkUouAR6ixPHEcEYplB+l92CY49g==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/client-sso-oidc": "3.252.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/shared-ini-file-loader": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "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==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/url-parser": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz",
+ "integrity": "sha512-p5RLE0QWyP0OcTOLmFcLdVgUcUEzmEfmdrnOxyNzomcYb0p3vUagA5zfa1HVK2azsQJFBv28GfvMnba9bGhObg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/querystring-parser": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@aws-sdk/util-base64": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz",
+ "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/util-buffer-from": "3.208.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-body-length-browser": {
+ "version": "3.188.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz",
+ "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@aws-sdk/util-body-length-node": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz",
+ "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-buffer-from": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz",
+ "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/is-array-buffer": "3.201.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-config-provider": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz",
+ "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-defaults-mode-browser": {
+ "version": "3.234.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.234.0.tgz",
+ "integrity": "sha512-IHMKXjTbOD8XMz5+2oCOsVP94BYb9YyjXdns0aAXr2NAo7k2+RCzXQ2DebJXppGda1F6opFutoKwyVSN0cmbMw==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "bowser": "^2.11.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-defaults-mode-node": {
+ "version": "3.234.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.234.0.tgz",
+ "integrity": "sha512-UGjQ+OjBYYhxFVtUY+jtr0ZZgzZh6OHtYwRhFt8IHewJXFCfZTyfsbX20szBj5y1S4HRIUJ7cwBLIytTqMbI5w==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/config-resolver": "3.234.0",
+ "@aws-sdk/credential-provider-imds": "3.226.0",
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/property-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-endpoints": {
+ "version": "3.245.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.245.0.tgz",
+ "integrity": "sha512-UNOFquB1tKx+8RT8n82Zb5tIwDyZHVPBg/m0LB0RsLETjr6krien5ASpqWezsXKIR1hftN9uaxN4bvf2dZrWHg==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-hex-encoding": {
+ "version": "3.201.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz",
+ "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.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==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-middleware": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz",
+ "integrity": "sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-retry": {
+ "version": "3.229.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz",
+ "integrity": "sha512-0zKTqi0P1inD0LzIMuXRIYYQ/8c1lWMg/cfiqUcIAF1TpatlpZuN7umU0ierpBFud7S+zDgg0oemh+Nj8xliJw==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/service-error-classification": "3.229.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-uri-escape": {
+ "version": "3.201.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz",
+ "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-user-agent-browser": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.226.0.tgz",
+ "integrity": "sha512-PhBIu2h6sPJPcv2I7ELfFizdl5pNiL4LfxrasMCYXQkJvVnoXztHA1x+CQbXIdtZOIlpjC+6BjDcE0uhnpvfcA==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/types": "3.226.0",
+ "bowser": "^2.11.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@aws-sdk/util-user-agent-node": {
+ "version": "3.226.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.226.0.tgz",
+ "integrity": "sha512-othPc5Dz/pkYkxH+nZPhc1Al0HndQT8zHD4e9h+EZ+8lkd8n+IsnLfTS/mSJWrfiC6UlNRVw55cItstmJyMe/A==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/node-config-provider": "3.226.0",
+ "@aws-sdk/types": "3.226.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "aws-crt": ">=1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "aws-crt": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@aws-sdk/util-utf8-browser": {
+ "version": "3.188.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz",
+ "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@aws-sdk/util-utf8-node": {
+ "version": "3.208.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz",
+ "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==",
+ "optional": true,
+ "dependencies": {
+ "@aws-sdk/util-buffer-from": "3.208.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "18.11.18",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
+ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
+ },
+ "node_modules/@types/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog=="
+ },
+ "node_modules/@types/whatwg-url": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
+ "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/webidl-conversions": "*"
+ }
+ },
+ "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/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/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "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/body-parser": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+ "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.11.0",
+ "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==",
+ "optional": true
+ },
+ "node_modules/bson": {
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz",
+ "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==",
+ "dependencies": {
+ "buffer": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "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/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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "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": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express": {
+ "version": "4.18.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.1",
+ "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.11.0",
+ "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": "4.0.11",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz",
+ "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==",
+ "optional": true,
+ "dependencies": {
+ "strnum": "^1.0.5"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ },
+ "funding": {
+ "type": "paypal",
+ "url": "https://paypal.me/naturalintelligence"
+ }
+ },
+ "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/foreachasync": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz",
+ "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw=="
+ },
+ "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": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/handlebars": {
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+ "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.0",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.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/hbs": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.2.0.tgz",
+ "integrity": "sha512-dQwHnrfWlTk5PvG9+a45GYpg0VpX47ryKF8dULVd6DtwOE6TEcYQXQ5QM6nyOx/h7v3bvEQbdn19EDAcfUAgZg==",
+ "dependencies": {
+ "handlebars": "4.7.7",
+ "walk": "2.3.15"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "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/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "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/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/ip": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ=="
+ },
+ "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/kareem": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz",
+ "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memory-pager": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
+ "optional": true
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "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/minimist": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/mongodb": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.12.1.tgz",
+ "integrity": "sha512-koT87tecZmxPKtxRQD8hCKfn+ockEL2xBiUvx3isQGI6mFmagWt4f4AyCE9J4sKepnLhMacoCTQQA6SLAI2L6w==",
+ "dependencies": {
+ "bson": "^4.7.0",
+ "mongodb-connection-string-url": "^2.5.4",
+ "socks": "^2.7.1"
+ },
+ "engines": {
+ "node": ">=12.9.0"
+ },
+ "optionalDependencies": {
+ "@aws-sdk/credential-providers": "^3.186.0",
+ "saslprep": "^1.0.3"
+ }
+ },
+ "node_modules/mongodb-connection-string-url": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
+ "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
+ "dependencies": {
+ "@types/whatwg-url": "^8.2.1",
+ "whatwg-url": "^11.0.0"
+ }
+ },
+ "node_modules/mongoose": {
+ "version": "6.8.4",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.8.4.tgz",
+ "integrity": "sha512-19Jk2hbSAPcM4u6ErW0UPwaSO2YfP/cXfBS9YEiNgNzZfXd+jkyemqJ+t2aflaicXeU4VdTP33pZYxqjk2hUYw==",
+ "dependencies": {
+ "bson": "^4.7.0",
+ "kareem": "2.5.1",
+ "mongodb": "4.12.1",
+ "mpath": "0.9.0",
+ "mquery": "4.0.3",
+ "ms": "2.1.3",
+ "sift": "16.0.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mongoose"
+ }
+ },
+ "node_modules/mongoose/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/mpath": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
+ "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mquery": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz",
+ "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==",
+ "dependencies": {
+ "debug": "4.x"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/mquery/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mquery/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "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/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+ },
+ "node_modules/nodemailer": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.0.tgz",
+ "integrity": "sha512-jFaCEGTeT3E/m/5R2MHWiyQH3pSARECRUDM+1hokOYc3lQAAG7ASuy+2jIsYVf+RVa9zePopSQwKNVFH8DKUpA==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "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/punycode": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz",
+ "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "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/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/saslprep": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
+ "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
+ "optional": true,
+ "dependencies": {
+ "sparse-bitfield": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/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/sift": {
+ "version": "16.0.1",
+ "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz",
+ "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ=="
+ },
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socks": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+ "dependencies": {
+ "ip": "^2.0.0",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sparse-bitfield": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+ "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
+ "optional": true,
+ "dependencies": {
+ "memory-pager": "^1.0.2"
+ }
+ },
+ "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/strnum": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==",
+ "optional": true
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
+ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
+ "optional": true
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/uglify-js": {
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "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": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "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==",
+ "optional": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/walk": {
+ "version": "2.3.15",
+ "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz",
+ "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==",
+ "dependencies": {
+ "foreachasync": "^3.0.0"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "dependencies": {
+ "tr46": "^3.0.0",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..40490f6
--- /dev/null
+++ b/package.json
@@ -0,0 +1,10 @@
+{
+ "dependencies": {
+ "body-parser": "^1.20.1",
+ "express": "^4.18.2",
+ "hbs": "^4.2.0",
+ "mongoose": "^6.8.4",
+ "nodemailer": "^6.9.0"
+
+ }
+}
diff --git a/servingItems/Dashboard/app.js b/servingItems/Dashboard/app.js
new file mode 100644
index 0000000..c8a7091
--- /dev/null
+++ b/servingItems/Dashboard/app.js
@@ -0,0 +1,28 @@
+const express=require('express'); // importing express
+const app=express(); // initializing espress in the app
+const path=require('path');
+const port=7000;
+
+//serving static file
+app.use('/static',express.static('staticFolder'));
+
+// set the template engine as pug
+app.set("view engine",'pug');
+
+// set the views directory
+app.set('views',path.join(__dirname,'template'))
+
+// our pug demo endpoint
+app.get('/demo', (req, res) => {
+ res.status(200).render('index',{title:'MY title',message:"Hi Sushanta, ki koris ??"})
+ })
+
+app.get('/',(req,res)=>{
+ res.status(200).render("dashboard");
+})
+
+
+app.listen(port,()=>{
+ console.log(`Live on port http://127.0.0.1:${port}` )
+ console.log(`Jump to demo http://127.0.0.1:${port}/demo` )
+})
\ No newline at end of file
diff --git a/servingItems/Dashboard/staticFolder/dp.png b/servingItems/Dashboard/staticFolder/dp.png
new file mode 100644
index 0000000..824346e
Binary files /dev/null and b/servingItems/Dashboard/staticFolder/dp.png differ
diff --git a/servingItems/Dashboard/staticFolder/stylePugTest.css b/servingItems/Dashboard/staticFolder/stylePugTest.css
new file mode 100644
index 0000000..4d89b51
--- /dev/null
+++ b/servingItems/Dashboard/staticFolder/stylePugTest.css
@@ -0,0 +1,39 @@
+@import url('https://fonts.googleapis.com/css2?family=Kalam&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Bree+Serif&family=Indie+Flower&family=Shadows+Into+Light&display=swap');
+
+*{
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-family: 'Kalam', cursive;
+ font-family: 'Indie Flower', cursive;
+}
+
+#studentSection{
+ display: flex;
+ justify-content: center;
+}
+.student{
+ display: flex;
+ flex-direction: column;
+ background-color: rgb(255, 166, 102);
+ justify-content: center;
+ align-items: center;
+ width: 50vw;
+ margin: 4vw 6vw;
+ padding: 5vw 4vw;
+
+}
+.infoContainer{
+ display: flex;
+ flex-direction: column;
+ background-color: rgb(255, 106, 0);
+ justify-content:left;
+ align-items: center;
+ padding: 2vw 1vw;
+
+}
+.studentInfo{
+ margin: 2vw 3vw;
+ width:40vw;
+}
diff --git a/servingItems/Dashboard/template/dashboard.pug b/servingItems/Dashboard/template/dashboard.pug
new file mode 100644
index 0000000..fa12cd6
--- /dev/null
+++ b/servingItems/Dashboard/template/dashboard.pug
@@ -0,0 +1,25 @@
+doctype html
+html(lang='en')
+ head
+ meta(charset='UTF-8')
+ meta(http-equiv='X-UA-Compatible', content='IE=edge')
+ meta(name='viewport', content='width=device-width, initial-scale=1.0')
+ title Dashboard
+ style
+ include ../staticFolder/stylePugTest.css
+
+ body
+
+
+ section#studentSection
+ .student
+ .dp
+ img(src='../static/dp.png' alt='dp')
+ .infoContainer
+ .name Name:
+ .studentInfo Email:
+ .studentInfo Phone:
+ .studentInfo Age:
+ .studentInfo Gender:
+ .studentInfo Birth Date:
+ .studentInfo Address:
diff --git a/servingItems/Dashboard/template/index.pug b/servingItems/Dashboard/template/index.pug
new file mode 100644
index 0000000..f3c5690
--- /dev/null
+++ b/servingItems/Dashboard/template/index.pug
@@ -0,0 +1,5 @@
+html
+ head
+ title=title
+ body
+ h1=message
\ No newline at end of file
diff --git a/servingItems/css/style.css b/servingItems/css/style.css
new file mode 100644
index 0000000..a3f1f07
--- /dev/null
+++ b/servingItems/css/style.css
@@ -0,0 +1,544 @@
+@import url('https://fonts.googleapis.com/css2?family=Andika:wght@700&family=Kalam&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Ubuntu&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Philosopher:ital,wght@1,700&family=Playfair+Display:ital,wght@1,600&family=Poppins:wght@700&family=Quicksand:wght@500&family=Raleway&display=swap');
+
+* {
+ /* background-color: red; */
+ margin: 0;
+ padding: 0;
+ /* font-family: 'Andika', sans-serif; */
+ /* font-family: 'Kalam', cursive; */
+
+
+}
+
+html {
+ scroll-behavior: smooth;
+}
+
+a {
+ text-decoration: none;
+ color: white;
+
+}
+
+
+li {
+ list-style: none;
+
+ margin: 1vw;
+
+ /* border:1px solid black; */
+}
+
+.phIcon {
+ height: 36px;
+ top: -3px;
+ position: absolute;
+ cursor: pointer;
+}
+
+
+.searchBox input {
+ width: 19vw;
+ height: 35px;
+ margin-right: 7px;
+ border-radius: 18px;
+ font-size: 1rem;
+ border: none;
+ outline: none;
+ text-align: center;
+}
+input[type=text]:focus{
+ box-shadow: 0px 0px 3px 4px #44c9af;
+}
+/* .searchBox img {
+ top: 4px;
+ height: 28px;
+} */
+.login {
+ border: 2px solid #43C6AC;
+ border-radius: 9px;
+ color: white;
+ cursor: pointer;
+ padding: 2px 17px;
+ background-color: #08007500;
+ font-size: 1.2rem;
+
+}
+
+.login-sm {
+
+ border: 2px solid #43C6AC;
+ border-radius: 9px;
+ color: white;
+ cursor: pointer;
+ padding: 2px 7px;
+ background-color: #08007500;
+ font-size: 1.1rem;
+
+}
+
+.login:hover {
+ background-color: #08007500;
+ transform: scale(1.2);
+}
+
+:root {
+ --navMidWidth: 55vw;
+ --navLeftWidth: 18vw;
+ --navRightWidth: 8vw;
+}
+
+body {
+ background-color: #F2DEBA;
+}
+
+@media screen and (max-width: 1500px) {
+ :root {
+ --navMidWidth: auto;
+ --navLeftWidth: 26vw;
+ --navRightWidth: 12vw;
+ }
+}
+
+@media screen and (max-width: 900px) {
+ :root {
+ --navMidWidth: auto;
+ --navLeftWidth: 35vw;
+ --navRightWidth: 16vw;
+ }
+}
+
+.company {
+ font-family: poppins, sans-serif;
+ font-size: 1.5rem;
+
+}
+
+#Re {
+ color: rgb(255, 106, 0);
+}
+
+.top {
+ display: flex;
+ gap: 1vw;
+ align-items: center;
+
+}
+
+.searchBox {
+ width: 24vw;
+ display: flex;
+ font-size: 1.3rem;
+ align-items: center;
+ position: sticky;
+ justify-content: right;
+ margin-right: 3vw;
+}
+
+.search {
+ color: #43C6AC;
+ font-size: 2rem;
+}
+
+.left {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ font-size: 1.2rem;
+ gap: 0;
+
+}
+
+.right {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ font-size: 1.7rem;
+ padding: 1vw 2vw;
+ width: 78%;
+}
+
+.rightElm {
+ display: flex;
+}
+
+.leftlink {
+ display: flex;
+ float: left;
+}
+
+.leftlink a {
+
+ margin-right: 3vw;
+}
+
+.menubar {
+ margin: 2px -11px;
+
+
+}
+
+.menu.material-symbols-rounded {
+ font-size: 1.8rem;
+ margin-left: 7px;
+ color: rgb(255, 255, 255) ;
+
+ border-radius: 3px;
+
+}
+.menu.material-symbols-rounded.active{
+
+ color: rgb(255, 255, 255) ;
+ border: 2px solid #43C6AC ;
+ border-radius: 5px;
+ transition: border 0.1s ease-in;
+}
+
+.mobileView {
+
+ justify-content: space-around;
+ align-items: center;
+ gap: 1vw;
+ margin-right: 10px;
+ margin-left: 5px;
+ width: 77%;
+ display: none;
+}
+
+.leftlinkMobile {
+ display: none;
+ flex-direction: column;
+
+ height: 100vh;
+ padding: 3vw 15vw;
+ gap: 3vh;
+ position: fixed;
+ right: -100%;
+ background-color: #080075;
+ transition: all 0.3s ease-in;
+}
+
+nav {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ background-color: #191645;
+ min-height: 66px;
+ width: 100vw;
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ font-family: 'Ubuntu', sans-serif;
+ box-shadow: rgba(0, 0, 0, 0.1) 0px 20px 25px -5px, rgba(0, 0, 0, 0.04) 0px 10px 10px -5px;
+ color: white;
+
+}
+
+/* nav li:hover {
+ background-color: #79a6ff;
+ border-bottom: 3px solid rgb(37, 35, 82);
+ border-radius: 5px;
+} */
+@media screen and (max-width: 609px) {
+ body {
+ background-color: #f2debae1;
+ }
+
+ ul.left {
+ width: 100vw;
+ font-size: 1.2rem;
+ }
+
+ .mobileView {
+ display: flex;
+ }
+
+ .right {
+ display: none;
+ }
+
+ .leftlinkMobile {
+ display: flex;
+ }
+ .loginContainer{width:100%;}
+ .searchBox input{
+ width: 37vw;
+ display: flex;
+ font-size: 1.3rem;
+ align-items: center;
+ position: sticky;
+ justify-content: right;
+
+ }
+ .searchBox{
+ width: 25vw;
+margin-right: 0vw;
+justify-content: center;
+ }
+
+}
+
+
+
+#firstSection {
+
+
+ padding: 3vh;
+}
+
+.background {
+ background: linear-gradient(rgba(22, 22, 22, 0.587), rgba(93, 93, 93, 0.649), rgba(0, 0, 0, 0.324)), url('../static/images/bannerBackground.jpg');
+ background-size: cover;
+ padding: 6vw;
+ border-radius: 23px;
+}
+
+.heading {
+
+ font-size: 3vw;
+ color: rgb(255, 255, 255);
+ text-align: center;
+ font-family: poppins;
+
+}
+
+#wlcm {
+ font-size: 2vw;
+ color: rgb(255, 255, 255);
+ text-align: center;
+ font-family: raleway;
+
+
+}
+
+.wsimg {
+ max-width: 9vw;
+ display: inline-block;
+ margin-right: 2vw;
+
+}
+
+.wsimg img {
+ max-width: 100%;
+ border-radius: 5px;
+ ;
+
+
+}
+
+#whyus {
+ background: linear-gradient(-4deg, #43C6AC, #2640a6, #080075);
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ margin: 1vw 1vw;
+ flex-wrap: wrap;
+ border-radius: 15px;
+ padding: 0vh 0vh;
+ color: white;
+}
+
+
+.whyusinfo {
+ margin-left: 2vw;
+ /* height: 6vw; */
+}
+
+.card {
+
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+ margin: 0vh 2vw;
+ width: 87vw;
+ /* height: 9vw; */
+ font-family: quicksand, sans-serif;
+ /* font-size: 2vh;*/
+ padding: 2vw;
+}
+
+/* */
+.heading-sm {
+ font-family: 'Philosopher', sans-serif;
+ font-weight: 700;
+ font-size: 1.7vw;
+ margin: 1vw;
+
+}
+
+.content {
+ font-size: 1.3vw;
+
+}
+
+
+
+
+
+
+/*////////////////////////////SecondSection//////////////////////////////////////////*/
+#secondSection {
+ margin: 2vw 2vw;
+ text-align: center;
+ padding: 2vw;
+ width: 92vw;
+ display: flex;
+ justify-content: center;
+}
+
+#teacher {
+
+ display: flex;
+ width: 90vw;
+ /* height: 23vw; */
+ background: linear-gradient(-4deg, #43C6AC, #2640a6, #080075);
+
+ align-items: center;
+ justify-content: flex-start;
+ border-radius: 15px;
+ padding: 2vh 5vh;
+ color: rgb(255, 255, 223);
+
+}
+
+#teacherimg {
+ height: 76%;
+ ;
+ margin: 2vw;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+#teacherimg img {
+
+ width: 89%;
+ /* height: 55%; */
+ border-radius: 12px;
+
+}
+
+#teachertxt {
+ font-size: 1rem;
+ margin-top: 4vw;
+ font-family: ubuntu, sans-serif;
+
+}
+
+#teachertxt span {
+ font-size: 1.9em;
+
+ font-family: poppins, sans-serif;
+
+}
+
+.headingteacher {
+ font-size: 1.8rem;
+}
+
+#subwhy {
+ text-align: center;
+ font-size: 2vw;
+ font-family: Verdana, Geneva, Tahoma, sans-serif;
+ color: #3a008c;
+}
+
+.why {
+ font-size: 3vw;
+ font-family: playfair display;
+ margin-top: 5vh;
+ text-align: center;
+ color: #6C00FF;
+}
+
+@media screen and (max-width: 810px) {
+ .wsimg {
+ /*! max-width: 9vw; */
+
+ width: 33vw;
+ max-width: fit-content;
+ margin: 3vw;
+ }
+
+ #whyus {
+
+ height: auto;
+ padding: 2vw 0vw;
+ }
+
+ .card {
+
+ margin: 2vh 4vw;
+ width: 90%;
+ height: auto;
+
+ /* font-size: 2vh; */
+ flex-direction: column;
+ }
+
+ #whyusinfo {
+ height: auto;
+ }
+
+ .heading-sm {
+ padding: 2vw;
+ font-size: 1.4rem;
+ }
+
+ .content {
+ font-size: 16px;
+ }
+
+ #teacherimg img {
+ width: 100%;
+
+ }
+
+ #teacher {
+ flex-direction: column;
+ }
+
+ .heading {
+ font-size: 5vw;
+ ;
+ }
+
+ #wlcm {
+ font-size: 4vw;
+ }
+
+ #subwhy {
+ font-size: 3vw;
+ }
+
+ .why {
+ font-size: 6vw;
+ }
+
+}
+
+
+
+@media screen and (max-width: 1018px) {
+ .heading-sm {
+ padding: 2vw;
+ font-size: 1.3rem;
+ }
+
+ .content {
+ font-size: 1rem;
+ }
+}
+
+
+footer {
+ height: 6vh;
+ color: white;
+ background-color: rgb(0, 0, 0);
+ text-align: center;
+ padding: 2vh 1vh;
+ font-size: 1.3rem;
+ margin-top: 3vh;
+}
\ No newline at end of file
diff --git a/servingItems/css/styleDashboard.css b/servingItems/css/styleDashboard.css
new file mode 100644
index 0000000..729cdbc
--- /dev/null
+++ b/servingItems/css/styleDashboard.css
@@ -0,0 +1,246 @@
+@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@1,600&family=Poppins:wght@700&family=Quicksand:wght@500&family=Raleway&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Ubuntu&display=swap');
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+/*================== Side Bar =============================*/
+.top {
+ display: flex;
+ gap: 1rem;
+ align-items: center;
+
+}
+
+.sidebar {
+ display: flex;
+ flex-direction: column;
+ margin-top: 3rem;
+ color: rgb(56, 56, 56);
+}
+
+.company {
+ font-family: poppins, sans-serif;
+ font-size: 1.7rem;
+ ;
+}
+
+#Re {
+ color: rgb(255, 106, 0);
+}
+
+#profile {
+ display: flex;
+ gap: 1rem;
+ margin-top: 2rem;
+ border-radius: 10px;
+ align-items: center;
+ padding: 7px 6px;
+}
+
+#profile:hover {
+ transform: scale(1.1);
+ cursor: pointer;
+ transition: all 400ms ease-in-out;
+}
+
+.profileIcon img {
+ width: 3rem;
+ border-radius: 50%;
+ pointer-events: none;
+}
+
+.profileIcon {
+ pointer-events: none;
+}
+
+#profile:active {
+ box-shadow: 0px 0px 11px 5px rgb(0, 120, 232);
+
+
+
+}
+
+.profileName {
+ font-family: quicksand, sans-serif;
+ font-size: 1.1rem;
+ font-weight: 700;
+ pointer-events: none;
+}
+
+.menu {
+ display: flex;
+ gap: 1rem;
+ margin-top: 2rem;
+ font-family: quicksand, Arial, Helvetica, sans-serif;
+ border-radius: 8px;
+padding: 5px 14px;
+}
+
+.material-symbols-rounded {
+ color: rgb(124, 124, 124);
+}
+
+.menu:hover {
+ color: rgb(0, 120, 232);
+ transform: scale(1.1);
+ transition: all 400ms ease-out;
+ cursor: pointer;
+}
+.menu-item.active{
+ color:rgb(255, 255, 255);
+ background-color: #0075db;
+ transition: all 400ms ease-out;
+}
+.material-symbols-rounded.active{
+ color:rgb(255, 255, 255);
+
+ transition: all 400ms ease-out;
+
+}
+.logout{margin-top:14vh;}
+
+aside {
+ margin: 3vw 3vw;
+ width: 18vw;
+
+ background-color: rgb(255, 255, 255);
+ border-radius: 19px;
+ padding: 3vw 2vw;
+ display: inline-block;
+ box-shadow: 5px 5px 16px -2px rgb(4, 13, 0);
+
+}
+
+.container {
+ display: flex;
+ align-items: flex-start;
+}
+
+
+/*================== Courses =============================*/
+.courseCard {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+
+ width: 64vw;
+}
+
+.course {
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+ padding: 2vw 2vw;
+ margin: 2vw 2vw;
+ background: linear-gradient(151deg, rgb(255, 0, 251), rgb(67, 0, 134));
+ border-radius: 12px;
+ flex-direction: column;
+ gap: 2vw;
+ box-shadow: 5px 5px 16px -2px rgb(4, 13, 0);
+ color: white;
+
+}
+
+.course:hover {
+ transform: scale(1.1);
+ transition: all 400ms ease-in-out;
+}
+
+.course .title {
+ font-family: poppins, sans-serif;
+ font-size: 1.3rem;
+}
+
+.course .desc {
+ font-family: quicksand, sans-serif;
+}
+
+.component {
+ display: none;
+}
+
+.component.active {
+ display: flex;
+ margin:2.2vw 0vw;
+ transition: all 400ms ease-out;
+}
+
+#videoPlayer{
+ width:90%;
+}
+.videoFrame{
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ border: 2px solid rgb(122, 0, 108);
+ border-radius: 5px;
+ width: 34vw;
+ padding: 1vw 1vw;
+}
+/*//////////////////////// Student Profile /////////////////////////*/
+
+
+#RightSection {
+ display: flex;
+ justify-content: center;
+ margin: -1vw 0vw;
+
+
+}
+
+.student {
+ display: flex;
+ flex-direction: column;
+ background-color: rgb(224, 240, 255);
+ justify-content: flex-start;
+ align-items: center;
+ width: 50vw;
+
+ margin: 2.2vw 3vw;
+ padding: 5vw 4vw;
+ border-radius: 12px;
+ box-shadow: 5px 5px 16px -2px rgb(4, 13, 0);
+}
+
+.name {
+ font-size: 3vw;
+ font-family: 'poppins', sans-serif;
+}
+
+.infoContainer {
+ color: white;
+ font-family: quicksand, Arial, Helvetica, sans-serif;
+ display: flex;
+ flex-direction: column;
+ background-color: rgb(0, 117, 219);
+ justify-content: left;
+ align-items: center;
+ padding: 2vw 1vw;
+ border-radius: 15px;
+}
+
+.studentInfo {
+ margin: 1vw 3vw;
+ width: 40vw;
+}
+
+.dp {
+ margin: 1vw 8vw;
+ width: 10vw;
+ padding: 4px 3px;
+ display: flex;
+ box-sizing: border-box;
+ justify-content: center;
+ align-items: center;
+}
+
+.dp img {
+ width: 96%;
+ border-radius: 50%;
+ box-shadow: 0px 0px 0px 2px #f1f4f7, 0px 0px 0px 3px #0075db;
+}
\ No newline at end of file
diff --git a/servingItems/javaScript/script.js b/servingItems/javaScript/script.js
new file mode 100644
index 0000000..a08a136
--- /dev/null
+++ b/servingItems/javaScript/script.js
@@ -0,0 +1,185 @@
+function copyPn() {
+ var CopyPhone = document.getElementById("copyPn");
+ navigator.clipboard.writeText(CopyPhone.alt);
+ window.parent.location.href = `tel:+91${CopyPhone.alt}`
+ console.log(`tel:+91${CopyPhone.alt}`)
+ // alert("Copied Phone no : " + CopyPhone.alt);
+}
+
+
+let toggleBS2 = 1;
+let popupLogin=1;
+
+const whyus = document.getElementById("whyusControl").innerHTML;
+bodySection2 = document.getElementById("whyusControl");
+const loginForm=`
+
+
+
Access Now
+ X
+
+
+
+
+
+
+
+`;
+function displayLogin() {
+ // console.log('feyhr'+whyus)
+ // bodySection2.style.display="none";
+ if (toggleBS2) {
+ bodySection2.innerHTML = loginForm;
+
+ console.log('Entering into the Login form');
+ toggleBS2=0;
+ } else {
+ bodySection2.innerHTML = `${whyus}`;
+ console.log('Exiting from the Login form');
+ toggleBS2=1;
+ }
+}
+function displayAbout() {
+ if (!toggleBS2) {
+ bodySection2.innerHTML = `${whyus}`;
+ console.log('Opening Abous [whyus]');
+ toggleBS2=1;
+ }
+}
+function displayLoginOnce(){
+ if (popupLogin && toggleBS2) {
+ bodySection2.innerHTML = loginForm;
+ console.log('1st login page popup');
+ popupLogin--;
+ toggleBS2=0;
+ }
+}
+
+
+
+//sideMenuBar
+let toggleMobileView=1
+menu=document.getElementsByClassName("menubar")[0]
+sideBar=document.getElementsByClassName("leftlinkMobile")[0]
+menu.addEventListener("click",toggleSideBar)
+menuIcon=document.querySelector(".material-symbols-rounded.menu")
+function toggleSideBar()
+ {
+ if(toggleMobileView==1)
+ {
+ sideBar.style.right="0px";toggleMobileView=0;
+ menuIcon.classList.add("active");
+ }
+ else {
+ sideBar.style.right="-100%" ; toggleMobileView=1;
+ menuIcon.classList.remove("active");
+ }
+ }
\ No newline at end of file
diff --git a/servingItems/javaScript/scriptDashboard.js b/servingItems/javaScript/scriptDashboard.js
new file mode 100644
index 0000000..74cf5e2
--- /dev/null
+++ b/servingItems/javaScript/scriptDashboard.js
@@ -0,0 +1,26 @@
+
+//================================ Side Menu ===============================//
+const menuItem = document.querySelectorAll(".menu-item");
+
+menuItem.forEach(
+ item => {
+
+ item.addEventListener("click", e => {
+ menuItem.forEach(
+ elm =>{
+ elm.classList.remove("active")
+ elm.children[0].children[0].classList.remove("active")
+ }
+
+ )
+ const compoId = item.getAttribute("data-opt");
+ document.querySelectorAll(".component").forEach(element => {
+ element.classList.remove("active");
+ });
+ item.classList.add("active")
+ item.children[0].children[0].classList.add("active")
+ document.getElementById(compoId).classList.add("active");
+ })
+ }
+)
+document.getElementById("profile").click()
\ No newline at end of file
diff --git a/images/banner.jpg b/servingItems/static/images/bannerBackground.jpg
similarity index 100%
rename from images/banner.jpg
rename to servingItems/static/images/bannerBackground.jpg
diff --git a/servingItems/static/images/dp.jpeg b/servingItems/static/images/dp.jpeg
new file mode 100644
index 0000000..a3eff4f
Binary files /dev/null and b/servingItems/static/images/dp.jpeg differ
diff --git a/images/teacher.jpg b/servingItems/static/images/teacher.jpg
similarity index 100%
rename from images/teacher.jpg
rename to servingItems/static/images/teacher.jpg
diff --git a/static/logo/call.png b/servingItems/static/logo/call.png
similarity index 100%
rename from static/logo/call.png
rename to servingItems/static/logo/call.png
diff --git a/static/logo/icon.png b/servingItems/static/logo/icon.png
similarity index 100%
rename from static/logo/icon.png
rename to servingItems/static/logo/icon.png
diff --git a/static/logo/relearn.jpg b/servingItems/static/logo/relearn.jpg
similarity index 100%
rename from static/logo/relearn.jpg
rename to servingItems/static/logo/relearn.jpg
diff --git a/static/logo/rl.jpg b/servingItems/static/logo/rl.jpg
similarity index 100%
rename from static/logo/rl.jpg
rename to servingItems/static/logo/rl.jpg
diff --git a/static/logo/search b/servingItems/static/logo/search
similarity index 100%
rename from static/logo/search
rename to servingItems/static/logo/search
diff --git a/templates/dashboard.hbs b/templates/dashboard.hbs
new file mode 100644
index 0000000..80af178
--- /dev/null
+++ b/templates/dashboard.hbs
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+ Dashboard
+
+
+
+
+
+
+
+
+
+
+
+ school
+
+
Re learn
+
+
+
+
+
+
+
+
+
+
+
+
+
{{username}}
+
Email: {{useremail}}
+
Phone: 7047352759
+
Age: {{userage}}
+
Gender: male
+
Birth Date: 03/11/2002
+
Address: 1600 Amphitheatre Parkway Mountain View, CA 94043
+
+
+
+
+
+
+
+
IITJEE
+
Crack IITJEE In One Year Course.
+ This is all you need to get seat in Top IITs
+
+
+
+
+
JEE Main
+
Crack JEE Main In One Year Course.
+ This is all you need to get seat in Top NITs
+
+
+
+
+
NEET
+
Crack NEET In One Year Course.
+ This is all you need to get seat in Top Medical Institutes
+
+
+
+
+
GATE
+
Crack GATE In One Year Course.
+ This is all you need to get seat in Top IITs
+
+
+
+
+
Video
+
+
+
+
+
+
+
+
+
Quizes
+
a short test of knowledge This Quiz contains 10 MCQ Questions
+
+
+
+
+
+
IITJEE
+
Test Your Problem Solving Skills This Section Contains 2 papers of 120 marks
+ each . Time : 3hr each paper
+
+
+
JEE Main
+
Test Your Problem Solving Skills This Section Contains 1 papers of 300
+ marks Time : 3hr
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/index.html b/templates/index.html
similarity index 53%
rename from index.html
rename to templates/index.html
index f70eff0..82e37c4 100644
--- a/index.html
+++ b/templates/index.html
@@ -6,28 +6,68 @@
+
ReLearn
-
-
+
+
-
-
+
+
For every student,
@@ -38,17 +78,17 @@
the courses we provide to select the one best for you.
- Why iEducate ?
+ Why Relearn ?
Your One Stop
Destination For Success
-
-
-
+
+
+
-
+
Live / Scheduled Lectures
-
+
Learning is an important step for achieving dreams in a student's journey. We
encourage the student
to explore the concept in depth instead of memorizing. The live lectures help us in learning the
@@ -58,17 +98,17 @@
-
+
Live Doubt Solving Sessions
-
At iEducate we always encourage students to ask questions. We have created an
+
At Relearn we always encourage students to ask questions. We have created an
atmosphere where students don't hesitate to ask their doubts. We firmly believe in More you ask,
the more you learn.
-
+
Structured And Targeted Study Material
Explore the art of concept with our structured material with intelligent
@@ -77,7 +117,7 @@
-
+
Tests On Regular Basis For Progress Tracking
It is a set of test papers designed to make the student comfortable with all
@@ -95,19 +135,20 @@
-
+
TEACHERS
“I'm finally able to truly differentiate my classroom. This has been
priceless for my students' engagement.”
We empower teachers to support their entire classroom. 90% of teachers who have used
- iEducate
+ Relearn
have found us effective.
-
copyright © iEducate . All rights reserved.
+
copyright © Relearn . All rights reserved.
+