From 41b16210f2f0cc79dfb4e4d47dca2f9b3eceb739 Mon Sep 17 00:00:00 2001 From: Soka_jplr Date: Fri, 24 May 2024 23:38:51 -0600 Subject: [PATCH] cambio de frameWork --- Server/ActasNacimiento/SIU241000_ActaN.pdf | Bin 0 -> 100194 bytes Server/ActasNacimiento/SIU241008_ActaN.pdf | Bin 0 -> 100194 bytes Server/Controller/Conexion.js | 38 + Server/Controller/DAO.js | 160 ++ Server/Controller/DAOCarrera.js | 22 + Server/Controller/DAODocumento.js | 22 + Server/Controller/DAORegistro.js | 20 + Server/Controller/DAOTutor.js | 57 + Server/Model/Carrera.js | 80 + Server/Model/Mensaje.js | 29 + Server/Model/Registro.js | 39 + Server/Model/Tutor.js | 51 + Server/Model/Usuario.js | 139 ++ Server/package-lock.json | 1663 ++++++++++++++++++++ Server/package.json | 26 + Server/routes/routes.js | 29 + Server/server.js | 180 +++ 17 files changed, 2555 insertions(+) create mode 100644 Server/ActasNacimiento/SIU241000_ActaN.pdf create mode 100644 Server/ActasNacimiento/SIU241008_ActaN.pdf create mode 100644 Server/Controller/Conexion.js create mode 100644 Server/Controller/DAO.js create mode 100644 Server/Controller/DAOCarrera.js create mode 100644 Server/Controller/DAODocumento.js create mode 100644 Server/Controller/DAORegistro.js create mode 100644 Server/Controller/DAOTutor.js create mode 100644 Server/Model/Carrera.js create mode 100644 Server/Model/Mensaje.js create mode 100644 Server/Model/Registro.js create mode 100644 Server/Model/Tutor.js create mode 100644 Server/Model/Usuario.js create mode 100644 Server/package-lock.json create mode 100644 Server/package.json create mode 100644 Server/routes/routes.js create mode 100644 Server/server.js diff --git a/Server/ActasNacimiento/SIU241000_ActaN.pdf b/Server/ActasNacimiento/SIU241000_ActaN.pdf new file mode 100644 index 0000000000000000000000000000000000000000..36464c78a6fe5b1d5096e90c0034c20217012ef2 GIT binary patch literal 100194 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 { + if (err) { + console.error('Error al cerrar la conexión con la base de datos:', err.message); + return; + } + console.log('Se desconectó de la base de datos'); + }); + } + } +} + +export default Conexion; diff --git a/Server/Controller/DAO.js b/Server/Controller/DAO.js new file mode 100644 index 0000000..63008dd --- /dev/null +++ b/Server/Controller/DAO.js @@ -0,0 +1,160 @@ +import Conexion from './Conexion.js'; // Asegúrate de tener la ruta correcta al archivo de conexión +import Usuario from '../Model/Usuario.js'; // Asegúrate de tener la ruta correcta al archivo de Usuario +import Mensaje from '../Model/Mensaje.js'; // Asegúrate de tener la ruta correcta al archivo de Mensaje +import DAORegistro from './DAORegistro.js'; + +class DAO { + static async dameAlumnos() { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = `SELECT id, nombre, apellido, matricula FROM usuario`; + const [rows] = await conexionEstablecida.query(sql); + const resultado = rows.map(row => new Usuario(row.id, row.nombre, row.apellido, row.matricula)); + return resultado; + } catch (error) { + console.error(error); + return []; + } finally { + conexion.cerrarConexion(); + } + } + + static async validarAlumno(alumno) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = `SELECT * FROM usuario WHERE matricula = ? AND contrasena = ?`; + const [rows] = await conexionEstablecida.query(sql, [alumno.getMatricula(), alumno.getContrasena()]); + return rows.length > 0; + } catch (error) { + console.error(error); + return false; + } finally { + conexion.cerrarConexion(); + } + } + + static async agregarAlumno(usuario) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const ultimoID = await this.obtenerUltimoID(); + const matricula = "SIU24" + (1000 + ultimoID); + const password = this.crearContrasena(); + usuario.contrasena = password; + usuario.matricula = matricula; + const sql = `INSERT INTO usuario (nombre, apellido, nacionalidad, matricula, contrasena, correo, rol) VALUES (?, ?, ?, ?, ?, ?, ?)`; + const [result] = await conexionEstablecida.query(sql, [ + usuario.nombre, usuario.apellido, usuario.nacionalidad, + usuario.matricula, usuario.contrasena, usuario.correo, usuario.rol + ]); + return result.affectedRows > 0 ? new Mensaje(true, usuario.matricula, usuario.contrasena) : new Mensaje(false, null); + } catch (error) { + console.error(error); + return new Mensaje(false, null); + } finally { + conexion.cerrarConexion(); + } + } + + static async editarAlumno(usuario) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = `UPDATE usuario SET nombre = ?, apellido = ?, correo = ?, nacionalidad = ?, tipoSangre = ?, fecha_nacimiento = ?, curp = ?, idCarrera = ? WHERE id = ?`; + const [result] = await conexionEstablecida.query(sql, [ + usuario.nombre, usuario.apellido, usuario.correo, + usuario.nacionalidad, usuario.tipoSangre, usuario.fecha_nacimiento, + usuario.curp, usuario.idCarrera, usuario.id + ]); + return result.affectedRows > 0; + } catch (error) { + console.error(error); + return false; + } finally { + conexion.cerrarConexion(); + } + } + + static async alumnoIniciado(matricula, contrasena) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = `SELECT * FROM usuario WHERE matricula = ? AND contrasena = ?`; + const [rows] = await conexionEstablecida.query(sql, [matricula, contrasena]); + if (rows.length > 0) { + const row = rows[0]; + const usuario = new Usuario( + row.id, row.nombre, row.apellido, row.matricula, row.contrasena, + row.correo, row.nacionalidad, + row.tipoSangre, row.fecha_nacimiento, row.curp, + row.rol, row.idCarrera, row.inscrito + ); + await DAORegistro.registrar(usuario, "Inicio Sesión", new Date()); + return usuario; + } + return null; + } catch (error) { + console.error(error); + return null; + } finally { + conexion.cerrarConexion(); + } + } + + static async obtenerUltimoID() { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = `SELECT MAX(id) AS ultimo_id FROM usuario`; + const [rows] = await conexionEstablecida.query(sql); + return rows[0].ultimo_id || -1; + } catch (error) { + console.error(error); + return -1; + } finally { + conexion.cerrarConexion(); + } + } + + static crearContrasena() { + const CARACTERES_PERMITIDOS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#"; + let contrasena = ''; + for (let i = 0; i < 10; i++) { + const index = Math.floor(Math.random() * CARACTERES_PERMITIDOS.length); + contrasena += CARACTERES_PERMITIDOS.charAt(index); + } + return contrasena; + } + + static async traeUsuario(id) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + let usuario = null; + try { + const sql = `SELECT id, nombre, apellido, matricula, correo, nacionalidad, tipoSangre, fecha_nacimiento, curp, rol, idCarrera, inscrito FROM usuario WHERE id = ?`; + const [rows] = await conexionEstablecida.query(sql, [id]); + if (rows.length > 0) { + const row = rows[0]; + + // Convertir la fecha al formato "yyyy-MM-dd" + const fechaNacimiento = new Date(row.fecha_nacimiento); + const formattedDate = fechaNacimiento.toISOString().split('T')[0]; // "yyyy-MM-dd" + + usuario = new Usuario( + row.id, row.nombre, row.apellido, row.matricula, "", row.correo, + row.nacionalidad, row.tipoSangre, formattedDate, row.curp, + row.rol, row.idCarrera, row.inscrito + ); + } + } catch (error) { + console.error(error); + } finally { + conexion.cerrarConexion(); + } + return usuario; + } +} + +export default DAO; diff --git a/Server/Controller/DAOCarrera.js b/Server/Controller/DAOCarrera.js new file mode 100644 index 0000000..d18ea20 --- /dev/null +++ b/Server/Controller/DAOCarrera.js @@ -0,0 +1,22 @@ +import Conexion from './Conexion.js'; // Asegúrate de tener la ruta correcta al archivo de conexión +import Carrera from '../Model/Carrera.js'; // Asegúrate de tener la ruta correcta al archivo de Carrera + +class DAOCarrera { + static async dameCarreras() { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = "SELECT * FROM carrera"; + const [rows] = await conexionEstablecida.query(sql); + const resultado = rows.map(row => new Carrera(row.id, row.nombre, row.area, row.campus, row.descripcion, row.mision, row.vision, row.objetivo)); + return resultado; + } catch (error) { + console.error(error); + return []; + } finally { + conexion.cerrarConexion(); + } + } +} + +export default DAOCarrera; diff --git a/Server/Controller/DAODocumento.js b/Server/Controller/DAODocumento.js new file mode 100644 index 0000000..4d1dede --- /dev/null +++ b/Server/Controller/DAODocumento.js @@ -0,0 +1,22 @@ +import Conexion from './Conexion.js'; + +class DAODocumento { + static async agregarDocumento(req, file) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar() + try { + const sql = "INSERT INTO `documento`(`titulo`,`archivo`,`idUsuario`,`valido`) VALUES(?,?,?,?);"; + const [result] = await conexionEstablecida.query(sql, [ + req.titulo, file, req.idUsuario, 0 + ]); + return result.affectedRows > 0; + } catch (error) { + console.log(error); + throw error; + } finally { + conexion.cerrarConexion(); + } + } +} + +export default DAODocumento; diff --git a/Server/Controller/DAORegistro.js b/Server/Controller/DAORegistro.js new file mode 100644 index 0000000..290a668 --- /dev/null +++ b/Server/Controller/DAORegistro.js @@ -0,0 +1,20 @@ +import Conexion from './Conexion.js'; // Asegúrate de tener la ruta correcta al archivo de conexión + +class DAORegistro { + static async registrar(usuario, descripcion, day) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = "INSERT INTO registro (matricula, descripcion) VALUES (?, ?)"; + const stm = await conexionEstablecida.query(sql, [usuario.getMatricula(), descripcion + day]); + return stm.affectedRows > 0; + } catch (error) { + console.error(error); + return false; + } finally { + conexion.cerrarConexion(); + } + } +} + +export default DAORegistro; diff --git a/Server/Controller/DAOTutor.js b/Server/Controller/DAOTutor.js new file mode 100644 index 0000000..b1f8e65 --- /dev/null +++ b/Server/Controller/DAOTutor.js @@ -0,0 +1,57 @@ +import Conexion from './Conexion.js'; // Asegúrate de tener la ruta correcta al archivo de conexión +import Tutor from '../Model/Tutor.js'; // Asegúrate de tener la ruta correcta al archivo de Tutor + +class DAOTutor { + + static async agregarTutor(tutor) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = `INSERT INTO tutor (nombre,apellido,numeroDeTelefono,idUsuario)VALUES(?,?,?,?);`; + const [result] = await conexionEstablecida.query(sql, [tutor.nombre, tutor.apellido, tutor.numeroDeTelefono, tutor.idUsuario]); + return result.affectedRows > 0; + } catch (error) { + console.error(error); + return false; + } finally { + conexion.cerrarConexion(); + } + } + + static async editarTutor(tutor) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = `UPDATE tutor SET nombre = ?, apellido = ?, numeroDeTelefono = ? WHERE idUsuario = ?`; + const [result] = await conexionEstablecida.query(sql, [tutor.nombre, tutor.apellido, tutor.numeroDeTelefono, tutor.idUsuario]); + return result.affectedRows > 0; + } catch (error) { + console.error(error); + return false; + } finally { + conexion.cerrarConexion(); + } + } + + static async traerTutor(id) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = `SELECT id, nombre, apellido, numeroDeTelefono, idUsuario FROM tutor WHERE idUsuario = ?`; + const [rows] = await conexionEstablecida.query(sql, [id]); + if (rows.length > 0) { + const row = rows[0]; + const tutor = new Tutor(row.id, row.nombre, row.apellido, row.numeroDeTelefono, row.idUsuario); + return tutor; + } + return null; + } catch (error) { + console.error(error); + return null; + } finally { + conexion.cerrarConexion(); + } + } +} + +export default DAOTutor; diff --git a/Server/Model/Carrera.js b/Server/Model/Carrera.js new file mode 100644 index 0000000..6e16ae7 --- /dev/null +++ b/Server/Model/Carrera.js @@ -0,0 +1,80 @@ +class Carrera { + constructor(id, nombre, area, campus, descripcion, mision, vision, objetivo) { + this.id = id; + this.nombre = nombre; + this.area = area; + this.campus = campus; + this.descripcion = descripcion; + this.mision = mision; + this.vision = vision; + this.objetivo = objetivo; + } + + // Getters + getId() { + return this.id; + } + + getNombre() { + return this.nombre; + } + + getArea() { + return this.area; + } + + getCampus() { + return this.campus; + } + + getDescripcion() { + return this.descripcion; + } + + getMision() { + return this.mision; + } + + getVision() { + return this.vision; + } + + getObjetivo() { + return this.objetivo; + } + + // Setters + setId(id) { + this.id = id; + } + + setNombre(nombre) { + this.nombre = nombre; + } + + setArea(area) { + this.area = area; + } + + setCampus(campus) { + this.campus = campus; + } + + setDescripcion(descripcion) { + this.descripcion = descripcion; + } + + setMision(mision) { + this.mision = mision; + } + + setVision(vision) { + this.vision = vision; + } + + setObjetivo(objetivo) { + this.objetivo = objetivo; + } +} + +export default Carrera; diff --git a/Server/Model/Mensaje.js b/Server/Model/Mensaje.js new file mode 100644 index 0000000..6e93c2a --- /dev/null +++ b/Server/Model/Mensaje.js @@ -0,0 +1,29 @@ +class Mensaje { + constructor(verificacion, matricula, contrasena) { + this.verificacion = verificacion; + this.matricula = matricula; + this.contrasena = contrasena; + } + + // Getter para la propiedad 'verificacion' + isVerificacion() { + return this.verificacion; + } + + // Getter para la propiedad 'usuario' + getUsuario() { + return this.usuario; + } + + // Setter para la propiedad 'verificacion' + setVerificacion(verificacion) { + this.verificacion = verificacion; + } + + // Setter para la propiedad 'usuario' + setUsuario(usuario) { + this.usuario = usuario; + } +} + +export default Mensaje; diff --git a/Server/Model/Registro.js b/Server/Model/Registro.js new file mode 100644 index 0000000..e79358c --- /dev/null +++ b/Server/Model/Registro.js @@ -0,0 +1,39 @@ +class Registro { + constructor(id, matricula, descripcion) { + this.id = id; + this.matricula = matricula; + this.descripcion = descripcion; + } + + // Getter para la propiedad 'id' + getId() { + return this.id; + } + + // Getter para la propiedad 'matricula' + getMatricula() { + return this.matricula; + } + + // Getter para la propiedad 'descripcion' + getDescripcion() { + return this.descripcion; + } + + // Setter para la propiedad 'id' + setId(id) { + this.id = id; + } + + // Setter para la propiedad 'matricula' + setMatricula(matricula) { + this.matricula = matricula; + } + + // Setter para la propiedad 'descripcion' + setDescripcion(descripcion) { + this.descripcion = descripcion; + } +} + +module.exports = Registro; diff --git a/Server/Model/Tutor.js b/Server/Model/Tutor.js new file mode 100644 index 0000000..f2c7d0e --- /dev/null +++ b/Server/Model/Tutor.js @@ -0,0 +1,51 @@ +class Tutor { + constructor(id, nombre, apellido, numeroDeTelefono, idUsuario) { + this.id = id; + this.nombre = nombre; + this.apellido = apellido; + this.numeroDeTelefono = numeroDeTelefono; + this.idUsuario = idUsuario; + } + + getId() { + return this.id; + } + + getNombre() { + return this.nombre; + } + + getApellido() { + return this.apellido; + } + + getNumeroDeTelefono() { + return this.numeroDeTelefono; + } + + getIdUsuario() { + return this.idUsuario; + } + + setId(id) { + this.id = id; + } + + setNombre(nombre) { + this.nombre = nombre; + } + + setApellido(apellido) { + this.apellido = apellido; + } + + setNumeroDeTelefono(numeroDeTelefono) { + this.numeroDeTelefono = numeroDeTelefono; + } + + setIdUsuario(idUsuario) { + this.idUsuario = idUsuario; + } +} + +export default Tutor; diff --git a/Server/Model/Usuario.js b/Server/Model/Usuario.js new file mode 100644 index 0000000..029f233 --- /dev/null +++ b/Server/Model/Usuario.js @@ -0,0 +1,139 @@ +class Usuario { + constructor( + id, nombre, apellido, matricula, contrasena, correo, + nacionalidad, tipoSangre, fecha_nacimiento, curp, + rol, idCarrera, inscrito + ) { + this.id = id; + this.nombre = nombre; + this.apellido = apellido; + this.matricula = matricula; + this.contrasena = contrasena || ''; // Valor predeterminado para contrasena + this.correo = correo; + this.nacionalidad = nacionalidad; + this.tipoSangre = tipoSangre; + this.fecha_nacimiento = fecha_nacimiento; + this.curp = curp; + this.rol = rol; + this.idCarrera = idCarrera; + this.inscrito = inscrito; + } + + // Getters + getId() { + return this.id; + } + + getNombre() { + return this.nombre; + } + + getApellido() { + return this.apellido; + } + + getMatricula() { + return this.matricula; + } + + getContrasena() { + return this.contrasena; + } + + getCorreo() { + return this.correo; + } + + getNacionalidad() { + return this.nacionalidad; + } + + getTipoSangre() { + return this.tipoSangre; + } + + getFecha_nacimiento() { + return this.fecha_nacimiento; + } + + getCurp() { + return this.curp; + } + + getRol() { + return this.rol; + } + + getIdCarrera() { + return this.idCarrera; + } + + getInscrito() { + return this.inscrito; + } + + // Setters + setId(id) { + this.id = id; + } + + setNombre(nombre) { + this.nombre = nombre; + } + + setApellido(apellido) { + this.apellido = apellido; + } + + setMatricula(matricula) { + this.matricula = matricula; + } + + setContrasena(contrasena) { + this.contrasena = contrasena; + } + + setCorreo(correo) { + this.correo = correo; + } + + setNacionalidad(nacionalidad) { + this.nacionalidad = nacionalidad; + } + + setTipoSangre(tipoSangre) { + this.tipoSangre = tipoSangre; + } + + setFecha_nacimiento(fecha_nacimiento) { + this.fecha_nacimiento = fecha_nacimiento; + } + + setCurp(curp) { + this.curp = curp; + } + + setRol(rol) { + this.rol = rol; + } + + setIdCarrera(idCarrera) { + this.idCarrera = idCarrera; + } + + setInscrito(inscrito) { + this.inscrito = inscrito; + } + + crearToken() { + const CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + let token = ''; + for (let i = 0; i < 15; i++) { + const index = Math.floor(Math.random() * CHARACTERS.length); + token += CHARACTERS.charAt(index); + } + return token; + } +} + +export default Usuario; diff --git a/Server/package-lock.json b/Server/package-lock.json new file mode 100644 index 0000000..270ce5a --- /dev/null +++ b/Server/package-lock.json @@ -0,0 +1,1663 @@ +{ + "name": "server", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "server", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "body-parser": "^1.20.2", + "cors": "^2.8.5", + "express": "^4.19.2", + "jsonwebtoken": "^9.0.2", + "multer": "^1.4.5-lts.1", + "mysql": "^2.18.1", + "mysql2": "^3.9.7", + "winston": "^3.13.0" + }, + "devDependencies": { + "nodemon": "^3.1.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "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/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/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/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "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.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "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.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "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/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", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "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/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "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/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + }, + "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/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "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.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.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/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + }, + "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/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/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/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/logform": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/logform/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/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "engines": { + "node": ">=16.14" + } + }, + "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/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/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "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.9.7", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.7.tgz", + "integrity": "sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw==", + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nodemon": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz", + "integrity": "sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nodemon/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==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "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/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "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/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/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", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/qs": { + "version": "6.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.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "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/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/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "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/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "engines": { + "node": "*" + } + }, + "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/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "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/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } + }, + "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/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "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", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "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/winston": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.0.tgz", + "integrity": "sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.7.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + } + } +} diff --git a/Server/package.json b/Server/package.json new file mode 100644 index 0000000..af45cba --- /dev/null +++ b/Server/package.json @@ -0,0 +1,26 @@ +{ + "name": "server", + "version": "1.0.0", + "main": "index.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "body-parser": "^1.20.2", + "cors": "^2.8.5", + "express": "^4.19.2", + "jsonwebtoken": "^9.0.2", + "multer": "^1.4.5-lts.1", + "mysql": "^2.18.1", + "mysql2": "^3.9.7", + "winston": "^3.13.0" + }, + "devDependencies": { + "nodemon": "^3.1.0" + } +} diff --git a/Server/routes/routes.js b/Server/routes/routes.js new file mode 100644 index 0000000..668a9a9 --- /dev/null +++ b/Server/routes/routes.js @@ -0,0 +1,29 @@ +import express from 'express'; +import DAO from '../Controller/dao.js';// Asegúrate de que la ruta sea correcta + +const router = express.Router(); + +router.post('/alumnoIniciado', async (req, res) => { + const { matricula, contrasena } = req.body; + try { + // Verificar si el alumno está en la base de datos + const usuario = await DAO.alumnoIniciado(matricula, contrasena); + if (usuario) { + // El alumno está autenticado correctamente + const authToken = usuario.crearToken(); + const authRol = usuario.getRol(); + const authId = usuario.getId(); + const message = `Bienvenido ${usuario.getNombre()}`; + res.json({ matricula, authToken, authRol, authId, message }); + } else { + // El alumno no está autenticado + res.status(401).json({ error: "Credenciales inválidas" }); + } + } catch (error) { + console.error('Error al iniciar sesión:', error); + res.status(500).json({ error: "Error al iniciar sesión" }); + } +}); + + +export default router; diff --git a/Server/server.js b/Server/server.js new file mode 100644 index 0000000..edc4cb4 --- /dev/null +++ b/Server/server.js @@ -0,0 +1,180 @@ +import express from 'express'; +import bodyParser from 'body-parser'; +import DAO from './Controller/DAO.js'; // Importa tus controladores DAO +import DAOTutor from './Controller/DAOTutor.js'; +import DAOCarreras from './Controller/DAOCarrera.js'; +import Usuario from './Model/Usuario.js'; // Importa tus modelos +import multer from 'multer'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import DAODocumento from './Controller/DAODocumento.js'; +import fs from 'fs'; + +const app = express(); +const port = 3000; + +// Obtener el directorio actual +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const diskStorage = multer.diskStorage({ + destination: path.join(__dirname, '/ActasNacimiento'), + filename: (req, file, cb) => { + cb(null, file.originalname); + } +}); + +const fileUpload = multer({ + storage: diskStorage +}).single('archivo'); + +app.use(bodyParser.json()); + +// Configuración de CORS +app.use((req, res, next) => { + res.header("Access-Control-Allow-Origin", "http://localhost:5173"); + res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); + res.header("Access-Control-Allow-Credentials", "true"); + next(); +}); + +// Rutas +app.get("/todosLosAlumnos", async (req, res) => { + try { + const alumnos = await DAO.dameAlumnos(); + res.json(alumnos); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.post("/agregarAlumno", async (req, res) => { + try { + const usuario = req.body; + usuario.rol = "estudiante"; + const msj = await DAO.agregarAlumno(usuario); + res.json(msj); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.put("/editarUsuario", async (req, res) => { + try { + const usuario = req.body; + const verificado = await DAO.editarAlumno(usuario); + res.json({ Editado: verificado }); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.put("/editarTutor", async (req, res) => { + try { + const tutor = req.body; + const verificado = await DAOTutor.editarTutor(tutor); + res.json({ Editado: verificado }); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.post("/agregarTutor", async (req, res) => { + try { + const tutor = req.body; + const agregado = await DAOTutor.agregarTutor(tutor); + res.json({ msj: agregado }); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.post("/alumnoIniciado", async (req, res) => { + try { + const alumno = req.body; + const matricula = alumno.matricula; + if (!alumno.matricula || !alumno.contrasena) { + return res.status(400).json({ error: "Missing matricula or contrasena" }); + } + const usuario = await DAO.alumnoIniciado(alumno.matricula, alumno.contrasena); + const user = new Usuario(); + if (usuario) { + const authToken = user.crearToken(); + const authRol = usuario.getRol(); + const authId = usuario.getId(); + const message = `Bienvenido ${usuario.getNombre()}`; + res.json({ matricula, authToken, authRol, authId, message }); + } else { + res.status(401).json({ error: "Credenciales inválidas" }); + } + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.post("/usuarioValido", async (req, res) => { + try { + const usuario = req.body; + const verificado = await DAO.validarAlumno(usuario); + res.json({ existe: verificado }); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.post("/traerDatosAlumno", async (req, res) => { + try { + const usuario = req.body; + const datos = await DAO.traeUsuario(usuario.id); + res.json(datos); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.get("/carreras", async (req, res) => { + try { + const carreras = await DAOCarreras.dameCarreras(); + res.json(carreras); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.post("/traerDatosTutor", async (req, res) => { + try { + const usuario = req.body; + const datos = await DAOTutor.traerTutor(usuario.id); + res.json(datos); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +app.post("/agregarDocumentoAN", fileUpload, async (req, res) => { + try { + const data = req.body; + const file = fs.readFileSync(path.join(__dirname, '/ActasNacimiento/' + req.file.filename)) + const guardado = await DAODocumento.agregarDocumento(data, file); + + if (guardado) { + res.json({ message: "Archivo guardado correctamente" }); + } else { + res.json({ message: "No se pudo guardar el archivo" }); + } + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); + +// Manejo de errores +app.use((err, req, res, next) => { + console.error(err.stack); + res.status(500).send('Something broke!'); +}); + +// Iniciar el servidor +app.listen(port, () => { + console.log(`App listening at http://localhost:${port}`); +});