FEAT: Abertura de atendimento no GLPI.
- Padronização de titulo, descrição e entidade. - Insert no GLPI.
This commit is contained in:
parent
91550dbbda
commit
89f7bba7b2
@ -31,30 +31,35 @@ const statusAtendimentoGLPI = {
|
|||||||
|
|
||||||
// Formata a descrição do ticket em HTML
|
// Formata a descrição do ticket em HTML
|
||||||
const formatDescription = (ticketData) => {
|
const formatDescription = (ticketData) => {
|
||||||
const { cliente_nome, codigo_cliente, servico_nome, ticket_mundiale, protocolo_hub, description } = ticketData;
|
|
||||||
|
|
||||||
const tableRows = `
|
|
||||||
<tr><td style="padding: 8px; border: 1px solid #ddd;"><strong>Nome do Cliente:</strong></td><td style="padding: 8px; border: 1px solid #ddd;">${cliente_nome}</td></tr>
|
|
||||||
<tr><td style="padding: 8px; border: 1px solid #ddd;"><strong>Codigo Cliente:</strong></td><td style="padding: 8px; border: 1px solid #ddd;">${codigo_cliente}</td></tr>
|
|
||||||
<tr><td style="padding: 8px; border: 1px solid #ddd;"><strong>Serviço:</strong></td><td style="padding: 8px; border: 1px solid #ddd;">${servico_nome}</td></tr>
|
|
||||||
<tr><td style="padding: 8px; border: 1px solid #ddd;"><strong>Ticket Number (Mundiale):</strong></td><td style="padding: 8px; border: 1px solid #ddd;">${ticket_mundiale || 'N/A'}</td></tr>
|
|
||||||
<tr><td style="padding: 8px; border: 1px solid #ddd;"><strong>Protocolo Hub:</strong></td><td style="padding: 8px; border: 1px solid #ddd;">${protocolo_hub || 'N/A'}</td></tr>
|
|
||||||
`;
|
|
||||||
|
|
||||||
const htmlDescription = `
|
|
||||||
<table style="width:100%; border-collapse: collapse;">
|
|
||||||
<tr style="background-color:#f2f2f2;">
|
|
||||||
<th style="padding: 8px; border: 1px solid #ddd; text-align: left;">Campo</th>
|
|
||||||
<th style="padding: 8px; border: 1px solid #ddd; text-align: left;">Valor</th>
|
|
||||||
</tr>
|
|
||||||
${tableRows}
|
|
||||||
</table>
|
|
||||||
<br>
|
|
||||||
<strong>Descrição:</strong>
|
|
||||||
<hr>
|
|
||||||
${description || 'N/A'}
|
|
||||||
`;
|
|
||||||
|
|
||||||
|
let htmlDescription = `
|
||||||
|
<table style="width:100%; border-collapse: collapse;">
|
||||||
|
<tr style="background-color:#f2f2f2;">
|
||||||
|
<th style="padding: 8px; border: 1px solid #ddd; text-align: left;">Campo</th>
|
||||||
|
<th style="padding: 8px; border: 1px solid #ddd; text-align: left;">Valor</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;"><strong>Nome:</strong></td>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;">${ticketData.cliente_nome}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;"><strong>Codigo:</strong></td>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;">${ticketData.codigo_cliente}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;"><strong>Serviço:</strong></td>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;">${ticketData.servico_nome}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;"><strong>Ticket Mundiale</strong></td>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;">${ticketData.ticket_mundiale}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;"><strong>Protocolo Hub (ServiceNow):</strong></td>
|
||||||
|
<td style="padding: 8px; border: 1px solid #ddd;">${ticketData.protocolo_hub || 'N/A'}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
`;
|
||||||
|
|
||||||
console.log(htmlDescription);
|
console.log(htmlDescription);
|
||||||
|
|
||||||
@ -62,14 +67,14 @@ const formatDescription = (ticketData) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Gera o entity_Name baseado nos campos do ticket
|
// // Gera o entity_Name baseado nos campos do ticket
|
||||||
const generateEntityName = (ticketData) => {
|
// const generateEntityName = (ticketData) => {
|
||||||
const codigoClienteParts = (ticketData.codigo_cliente || '').split('-');
|
// const codigoClienteParts = (ticketData.codigo_cliente || '').split('-');
|
||||||
const codigoServicoFirstPart = (ticketData.codigo_servico || '').split('-')[0]?.trim() || '';
|
// const codigoServicoFirstPart = (ticketData.codigo_servico || '').split('-')[0]?.trim() || '';
|
||||||
const clienteNome = ticketData.cliente_nome || '';
|
// const clienteNome = ticketData.cliente_nome || '';
|
||||||
|
|
||||||
return [...codigoClienteParts, codigoServicoFirstPart, clienteNome].join('');
|
// return [...codigoClienteParts, codigoServicoFirstPart, clienteNome].join('');
|
||||||
};
|
// };
|
||||||
|
|
||||||
|
|
||||||
// Formata os dados do ticket para o GLPI
|
// Formata os dados do ticket para o GLPI
|
||||||
@ -79,14 +84,14 @@ const formatTicketDataForGlpi = async (ticketData) => {
|
|||||||
status_atendimento: statusAtendimentoGLPI[ticketData.status_atendimento] || 1,
|
status_atendimento: statusAtendimentoGLPI[ticketData.status_atendimento] || 1,
|
||||||
date_mod: new Date(),
|
date_mod: new Date(),
|
||||||
user_id_recipient: 971,
|
user_id_recipient: 971,
|
||||||
descricao_abertura: toString(formatDescription(ticketData)),
|
descricao_abertura: formatDescription(ticketData),
|
||||||
urgency: 3,
|
urgency: 3,
|
||||||
impact: 3,
|
impact: 3,
|
||||||
priority: 3,
|
priority: 3,
|
||||||
type: 1,
|
type: 1,
|
||||||
itilcategories_id: 1,
|
itilcategories_id: 1,
|
||||||
date_creation: new Date(),
|
date_creation: new Date(),
|
||||||
entidades_id: await glpiModel.selectEntityId() //TODO: Implementar a busca da entidade
|
// entidades_id: 0 //await glpiModel.selectEntityId() //TODO: Implementar a busca da entidade
|
||||||
};
|
};
|
||||||
return formattedData;
|
return formattedData;
|
||||||
};
|
};
|
||||||
@ -100,15 +105,15 @@ const createGlpiTicket = async (ticketData) => {
|
|||||||
const formattedTicketData = await formatTicketDataForGlpi(ticketData);
|
const formattedTicketData = await formatTicketDataForGlpi(ticketData);
|
||||||
console.log('Dados do ticket formatados para GLPI:', formattedTicketData);
|
console.log('Dados do ticket formatados para GLPI:', formattedTicketData);
|
||||||
|
|
||||||
// const glpiTicket = await glpiModel.insertTicket(formattedTicketData);
|
const glpiTicket = await glpiModel.insertTicket(formattedTicketData);
|
||||||
// console.log('Ticket criado no GLPI:', glpiTicket);
|
console.log('Ticket criado no GLPI:', glpiTicket);
|
||||||
|
|
||||||
// const updateSyncData = await hubglpiModel.update_syncData(glpiTicket.id, ticketData.id_atendimento);
|
const updateSyncData = await hubglpiModel.update_syncData(glpiTicket.id, ticketData.id_atendimento);
|
||||||
// logInfo('Sync Data atualizado com o ID do ticket do GLPI:', updateSyncData);
|
logInfo('Sync Data atualizado com o ID do ticket do GLPI:', updateSyncData);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erro ao criar ticket no GLPI:', error);
|
console.error('Erro ao criar ticket no GLPI:', error);
|
||||||
// const updateSyncDataError = await //hubglpiModel.update_syncaDataError(error.message, ticketData.id_atendimento)
|
// const updateSyncDataError = await hubglpiModel.update_syncaDataError(error.message, ticketData.id_atendimento)
|
||||||
logError('Erro ao criar ticket no GLPI. Sync Data atualizado com a mensagem de erro: ', /*updateSyncDataError*/ error);
|
logError('Erro ao criar ticket no GLPI. Sync Data atualizado com a mensagem de erro: ', /*updateSyncDataError*/ error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -157,6 +162,19 @@ const saveTicketToHubGlpi = async (ticketData) => {
|
|||||||
const processAtendimento = async (ticketData) => {
|
const processAtendimento = async (ticketData) => {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
const titulo = `Mundiale - Protocolo: ${ticketData.ticket_mundiale} - ${ticketData.cliente_nome}`;
|
||||||
|
ticketData.titulo = titulo;
|
||||||
|
|
||||||
|
const selectedEntityCodServico = await glpiModel.selectEntityId(ticketData.codigo_servico);
|
||||||
|
if (!selectedEntityCodServico) {
|
||||||
|
const selectedEntityCodCliente = await glpiModel.selectEntityId(ticketData.codigo_cliente);
|
||||||
|
ticketData.entidades_id = selectedEntityCodCliente;
|
||||||
|
} else if (selectedEntityCodServico) {
|
||||||
|
ticketData.entidades_id = selectedEntityCodServico;
|
||||||
|
} else {
|
||||||
|
ticketData.entidades_id = 0;
|
||||||
|
}
|
||||||
|
console.log(ticketData.entidades_id)
|
||||||
await createGlpiTicket(ticketData);
|
await createGlpiTicket(ticketData);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -169,11 +187,6 @@ const processAtendimento = async (ticketData) => {
|
|||||||
// ================================================================================
|
// ================================================================================
|
||||||
|
|
||||||
const processaAtendimentos = async (skipHubSoft = false) => {
|
const processaAtendimentos = async (skipHubSoft = false) => {
|
||||||
|
|
||||||
|
|
||||||
glpiModel.testConnection();
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let atendimentosDB = [];
|
let atendimentosDB = [];
|
||||||
|
|
||||||
@ -208,7 +221,7 @@ const processaAtendimentos = async (skipHubSoft = false) => {
|
|||||||
// Processa o atendimento para o GLPI
|
// Processa o atendimento para o GLPI
|
||||||
|
|
||||||
console.log(atendimento.id_atendimento)
|
console.log(atendimento.id_atendimento)
|
||||||
console.log(atendimento)
|
// console.log(atendimento)
|
||||||
await processAtendimento(atendimento);
|
await processAtendimento(atendimento);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@ -17,24 +17,6 @@ const pool = mysql.createPool({
|
|||||||
|
|
||||||
class GlpiModel {
|
class GlpiModel {
|
||||||
|
|
||||||
static async testConnection() {
|
|
||||||
try {
|
|
||||||
const connection = await pool.getConnection();
|
|
||||||
logInfo('Conexão com o banco de dados do GLPI estabelecida com sucesso!');
|
|
||||||
|
|
||||||
// Executa um select simples na tabela glpi_tickets
|
|
||||||
const [rows, fields] = await connection.execute('SELECT 1 FROM glpi_tickets LIMIT 1');
|
|
||||||
logInfo('Query SELECT 1 FROM glpi_tickets executada com sucesso!');
|
|
||||||
connection.release();
|
|
||||||
return true;
|
|
||||||
} catch (error) {
|
|
||||||
logError('Erro ao testar a conexão com o banco de dados do GLPI:', error);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static async insertTicket(ticketData) {
|
static async insertTicket(ticketData) {
|
||||||
|
|
||||||
const query = `
|
const query = `
|
||||||
@ -44,7 +26,7 @@ static async testConnection() {
|
|||||||
date,
|
date,
|
||||||
date_mod,
|
date_mod,
|
||||||
status,
|
status,
|
||||||
user_id_recipient,
|
users_id_recipient,
|
||||||
content,
|
content,
|
||||||
urgency,
|
urgency,
|
||||||
impact,
|
impact,
|
||||||
@ -59,8 +41,8 @@ static async testConnection() {
|
|||||||
|
|
||||||
const values = [
|
const values = [
|
||||||
ticketData.entidades_id,
|
ticketData.entidades_id,
|
||||||
ticketData.cliente_nome,
|
ticketData.titulo,
|
||||||
ticketData.data_cadastro,
|
ticketData.created_at,
|
||||||
ticketData.date_mod,
|
ticketData.date_mod,
|
||||||
ticketData.status_atendimento,
|
ticketData.status_atendimento,
|
||||||
ticketData.user_id_recipient,
|
ticketData.user_id_recipient,
|
||||||
@ -71,9 +53,9 @@ static async testConnection() {
|
|||||||
ticketData.type,
|
ticketData.type,
|
||||||
ticketData.itilcategories_id,
|
ticketData.itilcategories_id,
|
||||||
ticketData.date_creation,
|
ticketData.date_creation,
|
||||||
ticketData.slas_id_ttr
|
37
|
||||||
];
|
];
|
||||||
|
console.log(query, values);
|
||||||
try {
|
try {
|
||||||
const [rows] = await pool.execute(query, values);
|
const [rows] = await pool.execute(query, values);
|
||||||
logInfo('Ticket inserido com sucesso:', rows);
|
logInfo('Ticket inserido com sucesso:', rows);
|
||||||
@ -84,20 +66,23 @@ static async testConnection() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static async selectEntityId(entity_name) {
|
static async selectEntityId(id) {
|
||||||
|
|
||||||
const query = `SELECT id FROM glpi_entities WHERE name = ?;`;
|
const query = `SELECT id FROM glpi_entities WHERE name LIKE ? OR name LIKE ? LIMIT 1;`;
|
||||||
const values = [entity_name];
|
const values = [`%${id} -%`, `%${id}-%`];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const [rows] = await pool.execute(query, values);
|
const [rows] = await pool.execute(query, values);
|
||||||
|
if (!rows || rows.length === 0) {
|
||||||
|
logInfo('Entidade não encontrada para:', id);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
logInfo('Entidade encontrada:', rows[0]);
|
logInfo('Entidade encontrada:', rows[0]);
|
||||||
return rows[0];
|
return Number(rows[0].id);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logError('Erro ao buscar entidade', err);
|
logError('Erro ao buscar entidade', err);
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
107
node_modules/.package-lock.json
generated
vendored
107
node_modules/.package-lock.json
generated
vendored
@ -46,6 +46,15 @@
|
|||||||
"integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
|
"integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/aws-ssl-profiles": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/call-bind-apply-helpers": {
|
"node_modules/call-bind-apply-helpers": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
||||||
@ -213,6 +222,15 @@
|
|||||||
"url": "https://github.com/sponsors/ljharb"
|
"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==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"is-property": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/get-intrinsic": {
|
"node_modules/get-intrinsic": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
||||||
@ -286,6 +304,22 @@
|
|||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/iconv-lite": {
|
||||||
|
"version": "0.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz",
|
||||||
|
"integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/express"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/inherits": {
|
"node_modules/inherits": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
@ -333,6 +367,36 @@
|
|||||||
"node": ">= 12.0.0"
|
"node": ">= 12.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/long": {
|
||||||
|
"version": "5.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
|
||||||
|
"integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
|
||||||
|
"license": "Apache-2.0"
|
||||||
|
},
|
||||||
|
"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==",
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/lru.min": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-Nv9KddBcQSlQopmBHXSsZVY5xsdlZkdH/Iey0BlcBYggMd4two7cZnKOK9vmy3nY0O5RGH99z1PCeTpPqszUYg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"bun": ">=1.0.0",
|
||||||
|
"deno": ">=1.30.0",
|
||||||
|
"node": ">=8.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/wellwelwel"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/math-intrinsics": {
|
"node_modules/math-intrinsics": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
||||||
@ -348,6 +412,38 @@
|
|||||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/mysql2": {
|
||||||
|
"version": "3.15.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.15.2.tgz",
|
||||||
|
"integrity": "sha512-kFm5+jbwR5mC+lo+3Cy46eHiykWSpUtTLOH3GE+AR7GeLq8PgfJcvpMiyVWk9/O53DjQsqm6a3VOOfq7gYWFRg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"aws-ssl-profiles": "^1.1.1",
|
||||||
|
"denque": "^2.1.0",
|
||||||
|
"generate-function": "^2.3.1",
|
||||||
|
"iconv-lite": "^0.7.0",
|
||||||
|
"long": "^5.2.1",
|
||||||
|
"lru.min": "^1.0.0",
|
||||||
|
"named-placeholders": "^1.1.3",
|
||||||
|
"seq-queue": "^0.0.5",
|
||||||
|
"sqlstring": "^2.3.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 8.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==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"lru-cache": "^7.14.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/object-inspect": {
|
"node_modules/object-inspect": {
|
||||||
"version": "1.13.4",
|
"version": "1.13.4",
|
||||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
|
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
|
||||||
@ -555,6 +651,17 @@
|
|||||||
"node": ">=10"
|
"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==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"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/side-channel": {
|
"node_modules/side-channel": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
|
||||||
|
|||||||
107
package-lock.json
generated
107
package-lock.json
generated
@ -58,6 +58,15 @@
|
|||||||
"integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
|
"integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/aws-ssl-profiles": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/call-bind-apply-helpers": {
|
"node_modules/call-bind-apply-helpers": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
||||||
@ -225,6 +234,15 @@
|
|||||||
"url": "https://github.com/sponsors/ljharb"
|
"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==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"is-property": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/get-intrinsic": {
|
"node_modules/get-intrinsic": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
||||||
@ -298,6 +316,22 @@
|
|||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/iconv-lite": {
|
||||||
|
"version": "0.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz",
|
||||||
|
"integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/express"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/inherits": {
|
"node_modules/inherits": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
@ -345,6 +379,36 @@
|
|||||||
"node": ">= 12.0.0"
|
"node": ">= 12.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/long": {
|
||||||
|
"version": "5.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
|
||||||
|
"integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
|
||||||
|
"license": "Apache-2.0"
|
||||||
|
},
|
||||||
|
"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==",
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/lru.min": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-Nv9KddBcQSlQopmBHXSsZVY5xsdlZkdH/Iey0BlcBYggMd4two7cZnKOK9vmy3nY0O5RGH99z1PCeTpPqszUYg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"bun": ">=1.0.0",
|
||||||
|
"deno": ">=1.30.0",
|
||||||
|
"node": ">=8.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/wellwelwel"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/math-intrinsics": {
|
"node_modules/math-intrinsics": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
||||||
@ -360,6 +424,38 @@
|
|||||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/mysql2": {
|
||||||
|
"version": "3.15.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.15.2.tgz",
|
||||||
|
"integrity": "sha512-kFm5+jbwR5mC+lo+3Cy46eHiykWSpUtTLOH3GE+AR7GeLq8PgfJcvpMiyVWk9/O53DjQsqm6a3VOOfq7gYWFRg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"aws-ssl-profiles": "^1.1.1",
|
||||||
|
"denque": "^2.1.0",
|
||||||
|
"generate-function": "^2.3.1",
|
||||||
|
"iconv-lite": "^0.7.0",
|
||||||
|
"long": "^5.2.1",
|
||||||
|
"lru.min": "^1.0.0",
|
||||||
|
"named-placeholders": "^1.1.3",
|
||||||
|
"seq-queue": "^0.0.5",
|
||||||
|
"sqlstring": "^2.3.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 8.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==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"lru-cache": "^7.14.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/object-inspect": {
|
"node_modules/object-inspect": {
|
||||||
"version": "1.13.4",
|
"version": "1.13.4",
|
||||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
|
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
|
||||||
@ -567,6 +663,17 @@
|
|||||||
"node": ">=10"
|
"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==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"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/side-channel": {
|
"node_modules/side-channel": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user