integradted email engine
This commit is contained in:
		| @@ -1,12 +1,24 @@ | ||||
| // dbConfig.js | ||||
| const mysql = require('mysql'); | ||||
| const nodemailer = require('nodemailer'); | ||||
|  | ||||
| const transporter = nodemailer.createTransport({ | ||||
|   host: process.env.CLOUDRON_MAIL_SMTP_SERVER, // Replace with your email server host | ||||
|   port: process.env.CLOUDRON_MAIL_SMTP_PORT, // Replace with your email server port | ||||
|   secure: false, // false for non-SSL, true for SSL/TLS | ||||
|   auth: { | ||||
|     user: process.env.CLOUDRON_MAIL_SMTP_USERNAME, // Replace with your email username | ||||
|     pass: process.env.CLOUDRON_MAIL_SMTP_PASSWORD // Replace with your email password | ||||
|   }, | ||||
| }); | ||||
|  | ||||
| const connection = mysql.createConnection({ | ||||
|   host: 'localhost', | ||||
|   user: 'root', | ||||
|   password: '', | ||||
|   password: 'your_new_password1!Q', | ||||
|   database: 'community_rule', | ||||
| }); | ||||
|  | ||||
| // const mysql = require('mysql2'); | ||||
|  | ||||
| // const connection = mysql.createConnection({ | ||||
| @@ -21,4 +33,5 @@ connection.connect((err) => { | ||||
|   console.log('Connected to the database'); | ||||
| }); | ||||
|  | ||||
| module.exports = connection; | ||||
| module.exports = connection, transporter; | ||||
|  | ||||
|   | ||||
| @@ -1,24 +1,29 @@ | ||||
| const db = require('../config/dbConfig'); | ||||
| var db, transporter = require('../config/dbConfig'); | ||||
|  | ||||
| const mailOptions = { | ||||
|     from: 'your-email@example.com', // Replace with your email address | ||||
|     to: 'recipient@example.com', // Replace with the recipient's email address | ||||
|     subject: 'OTP to login', | ||||
|     text: 'Body of the email' | ||||
| }; | ||||
|  | ||||
| exports.sendOtp = (req, res) => { | ||||
|     const email = req.body.email; | ||||
|     const otp = generateRandom4DigitNumber(); | ||||
|     try { | ||||
|         db.query( | ||||
|             'INSERT INTO email_otp (email, otp) VALUES (?, ?) ON DUPLICATE KEY UPDATE otp = ?', | ||||
|             [email, otp, otp] | ||||
|         ); | ||||
|     } catch (error) { | ||||
|  | ||||
|         const errorMessage = { | ||||
|             error: true, | ||||
|             message: error.message, | ||||
|         }; | ||||
|         return errorMessage; | ||||
|     } | ||||
|     db.query( | ||||
|         'INSERT INTO email_otp (email, otp) VALUES (?, ?) ON DUPLICATE KEY UPDATE otp = ?', | ||||
|         [email, otp, otp], | ||||
|         (err, results) => { | ||||
|             if (err) { | ||||
|                 console.error('Error executing query:', err); | ||||
|                 res.status(500).json({ success: false, message: 'Internal Server Error' }); | ||||
|                 return; | ||||
|             } | ||||
|             sendMail(otp, email, req); | ||||
|         } | ||||
|     ); | ||||
|  | ||||
|     // send an email using api | ||||
|     res.json({ success: true, message: 'You must have received an email with otp successfully.' }); | ||||
| } | ||||
|  | ||||
| exports.validateOtp = async (req, res) => { | ||||
| @@ -43,6 +48,23 @@ exports.validateOtp = async (req, res) => { | ||||
|     }); | ||||
| }; | ||||
|  | ||||
| function sendMail(otp, email, req) { | ||||
|     const mailOptions = { | ||||
|         from: 'communityrule@medlab.host', // Replace with your email address | ||||
|         to: email, // Replace with the recipient's email address | ||||
|         subject: 'Logging code for community rule', | ||||
|         text: 'Code for logging into commnunity rule is ' + otp, | ||||
|     }; | ||||
|     transporter.sendMail(mailOptions, (error, info) => { | ||||
|         if (error) { | ||||
|             console.error('Error:', error); | ||||
|             req.status(500).json({ success: false, message: 'Internal Server Error' }); | ||||
|             return; | ||||
|         } | ||||
|         res.json({ success: true, message: 'You must have received an email with otp successfully.' }); | ||||
|     }); | ||||
|  | ||||
| } | ||||
| function generateRandom4DigitNumber() { | ||||
|     // Generate a random number between 1000 and 9999 | ||||
|     const random4DigitNumber = Math.floor(Math.random() * 9000) + 1000; | ||||
|   | ||||
							
								
								
									
										186
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										186
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -54,9 +54,11 @@ | ||||
|         "mime-db": "^1.52.0", | ||||
|         "mime-types": "^2.1.35", | ||||
|         "ms": "^2.0.0", | ||||
|         "mysql": "^2.18.1", | ||||
|         "mysql2": "^3.6.5", | ||||
|         "named-placeholders": "^1.1.3", | ||||
|         "negotiator": "^0.6.3", | ||||
|         "nodemailer": "^6.9.7", | ||||
|         "object-inspect": "^1.13.1", | ||||
|         "on-finished": "^2.4.1", | ||||
|         "parseurl": "^1.3.3", | ||||
| @@ -99,6 +101,14 @@ | ||||
|       "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | ||||
|       "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" | ||||
|     }, | ||||
|     "node_modules/bignumber.js": { | ||||
|       "version": "9.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", | ||||
|       "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", | ||||
|       "engines": { | ||||
|         "node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/body-parser": { | ||||
|       "version": "1.20.2", | ||||
|       "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", | ||||
| @@ -175,6 +185,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | ||||
|       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" | ||||
|     }, | ||||
|     "node_modules/core-util-is": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", | ||||
|       "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" | ||||
|     }, | ||||
|     "node_modules/cors": { | ||||
|       "version": "2.8.5", | ||||
|       "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", | ||||
| @@ -499,6 +514,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", | ||||
|       "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" | ||||
|     }, | ||||
|     "node_modules/isarray": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||||
|       "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" | ||||
|     }, | ||||
|     "node_modules/long": { | ||||
|       "version": "5.2.3", | ||||
|       "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", | ||||
| @@ -568,6 +588,33 @@ | ||||
|       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||||
|       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" | ||||
|     }, | ||||
|     "node_modules/mysql": { | ||||
|       "version": "2.18.1", | ||||
|       "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", | ||||
|       "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", | ||||
|       "dependencies": { | ||||
|         "bignumber.js": "9.0.0", | ||||
|         "readable-stream": "2.3.7", | ||||
|         "safe-buffer": "5.1.2", | ||||
|         "sqlstring": "2.3.1" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">= 0.6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/mysql/node_modules/safe-buffer": { | ||||
|       "version": "5.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||||
|       "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||||
|     }, | ||||
|     "node_modules/mysql/node_modules/sqlstring": { | ||||
|       "version": "2.3.1", | ||||
|       "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", | ||||
|       "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==", | ||||
|       "engines": { | ||||
|         "node": ">= 0.6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/mysql2": { | ||||
|       "version": "3.6.5", | ||||
|       "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.6.5.tgz", | ||||
| @@ -624,6 +671,14 @@ | ||||
|         "node": ">= 0.6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/nodemailer": { | ||||
|       "version": "6.9.7", | ||||
|       "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.7.tgz", | ||||
|       "integrity": "sha512-rUtR77ksqex/eZRLmQ21LKVH5nAAsVicAtAYudK7JgwenEDZ0UIQ1adUGqErz7sMkWYxWTTU1aeP2Jga6WQyJw==", | ||||
|       "engines": { | ||||
|         "node": ">=6.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/object-assign": { | ||||
|       "version": "4.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", | ||||
| @@ -664,6 +719,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||||
|       "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" | ||||
|     }, | ||||
|     "node_modules/process-nextick-args": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", | ||||
|       "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" | ||||
|     }, | ||||
|     "node_modules/proxy-addr": { | ||||
|       "version": "2.0.7", | ||||
|       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", | ||||
| @@ -712,6 +772,25 @@ | ||||
|         "node": ">= 0.8" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/readable-stream": { | ||||
|       "version": "2.3.7", | ||||
|       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", | ||||
|       "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", | ||||
|       "dependencies": { | ||||
|         "core-util-is": "~1.0.0", | ||||
|         "inherits": "~2.0.3", | ||||
|         "isarray": "~1.0.0", | ||||
|         "process-nextick-args": "~2.0.0", | ||||
|         "safe-buffer": "~5.1.1", | ||||
|         "string_decoder": "~1.1.1", | ||||
|         "util-deprecate": "~1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/readable-stream/node_modules/safe-buffer": { | ||||
|       "version": "5.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||||
|       "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||||
|     }, | ||||
|     "node_modules/safe-buffer": { | ||||
|       "version": "5.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | ||||
| @@ -831,6 +910,19 @@ | ||||
|         "node": ">= 0.8" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/string_decoder": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||||
|       "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||||
|       "dependencies": { | ||||
|         "safe-buffer": "~5.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/string_decoder/node_modules/safe-buffer": { | ||||
|       "version": "5.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||||
|       "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||||
|     }, | ||||
|     "node_modules/toidentifier": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", | ||||
| @@ -859,6 +951,11 @@ | ||||
|         "node": ">= 0.8" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/util-deprecate": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||
|       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" | ||||
|     }, | ||||
|     "node_modules/utils-merge": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||||
| @@ -891,6 +988,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | ||||
|       "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" | ||||
|     }, | ||||
|     "bignumber.js": { | ||||
|       "version": "9.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", | ||||
|       "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" | ||||
|     }, | ||||
|     "body-parser": { | ||||
|       "version": "1.20.2", | ||||
|       "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", | ||||
| @@ -948,6 +1050,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | ||||
|       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" | ||||
|     }, | ||||
|     "core-util-is": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", | ||||
|       "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" | ||||
|     }, | ||||
|     "cors": { | ||||
|       "version": "2.8.5", | ||||
|       "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", | ||||
| @@ -1197,6 +1304,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", | ||||
|       "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" | ||||
|     }, | ||||
|     "isarray": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||||
|       "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" | ||||
|     }, | ||||
|     "long": { | ||||
|       "version": "5.2.3", | ||||
|       "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", | ||||
| @@ -1245,6 +1357,29 @@ | ||||
|       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||||
|       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" | ||||
|     }, | ||||
|     "mysql": { | ||||
|       "version": "2.18.1", | ||||
|       "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", | ||||
|       "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", | ||||
|       "requires": { | ||||
|         "bignumber.js": "9.0.0", | ||||
|         "readable-stream": "2.3.7", | ||||
|         "safe-buffer": "5.1.2", | ||||
|         "sqlstring": "2.3.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "safe-buffer": { | ||||
|           "version": "5.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||||
|           "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||||
|         }, | ||||
|         "sqlstring": { | ||||
|           "version": "2.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", | ||||
|           "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "mysql2": { | ||||
|       "version": "3.6.5", | ||||
|       "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.6.5.tgz", | ||||
| @@ -1290,6 +1425,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", | ||||
|       "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" | ||||
|     }, | ||||
|     "nodemailer": { | ||||
|       "version": "6.9.7", | ||||
|       "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.7.tgz", | ||||
|       "integrity": "sha512-rUtR77ksqex/eZRLmQ21LKVH5nAAsVicAtAYudK7JgwenEDZ0UIQ1adUGqErz7sMkWYxWTTU1aeP2Jga6WQyJw==" | ||||
|     }, | ||||
|     "object-assign": { | ||||
|       "version": "4.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", | ||||
| @@ -1318,6 +1458,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||||
|       "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" | ||||
|     }, | ||||
|     "process-nextick-args": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", | ||||
|       "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" | ||||
|     }, | ||||
|     "proxy-addr": { | ||||
|       "version": "2.0.7", | ||||
|       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", | ||||
| @@ -1351,6 +1496,27 @@ | ||||
|         "unpipe": "1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "readable-stream": { | ||||
|       "version": "2.3.7", | ||||
|       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", | ||||
|       "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", | ||||
|       "requires": { | ||||
|         "core-util-is": "~1.0.0", | ||||
|         "inherits": "~2.0.3", | ||||
|         "isarray": "~1.0.0", | ||||
|         "process-nextick-args": "~2.0.0", | ||||
|         "safe-buffer": "~5.1.1", | ||||
|         "string_decoder": "~1.1.1", | ||||
|         "util-deprecate": "~1.0.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "safe-buffer": { | ||||
|           "version": "5.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||||
|           "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "safe-buffer": { | ||||
|       "version": "5.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | ||||
| @@ -1440,6 +1606,21 @@ | ||||
|       "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", | ||||
|       "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" | ||||
|     }, | ||||
|     "string_decoder": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||||
|       "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||||
|       "requires": { | ||||
|         "safe-buffer": "~5.1.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "safe-buffer": { | ||||
|           "version": "5.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||||
|           "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "toidentifier": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", | ||||
| @@ -1459,6 +1640,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | ||||
|       "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" | ||||
|     }, | ||||
|     "util-deprecate": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||
|       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" | ||||
|     }, | ||||
|     "utils-merge": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||||
|   | ||||
| @@ -49,9 +49,11 @@ | ||||
|     "mime-db": "^1.52.0", | ||||
|     "mime-types": "^2.1.35", | ||||
|     "ms": "^2.0.0", | ||||
|     "mysql": "^2.18.1", | ||||
|     "mysql2": "^3.6.5", | ||||
|     "named-placeholders": "^1.1.3", | ||||
|     "negotiator": "^0.6.3", | ||||
|     "nodemailer": "^6.9.7", | ||||
|     "object-inspect": "^1.13.1", | ||||
|     "on-finished": "^2.4.1", | ||||
|     "parseurl": "^1.3.3", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user