From c38f646bb92e53d9a3689c9c178b6bbbfc8c1ab3 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 14:38:24 +1000 Subject: [PATCH 01/16] refactor(database): add new connection class and misc tweaks Use disposable symbol to ensure connection cleanup. Improvements to internal types. Code splitting and removal of redundant variables. --- src/config.ts | 9 +-- src/database/connection.ts | 95 +++++++++++++++++--------------- src/database/index.ts | 7 ++- src/database/pool.ts | 40 ++++++++++++++ src/database/rawExecute.ts | 11 ++-- src/database/rawQuery.ts | 10 ++-- src/database/rawTransaction.ts | 6 +- src/database/startTransaction.ts | 23 ++++---- src/index.ts | 15 ++--- src/logger/index.ts | 10 ++-- src/tsconfig.json | 2 +- src/types/index.ts | 13 +++-- src/utils/parseResponse.ts | 22 ++------ src/utils/typeCast.ts | 2 +- 14 files changed, 151 insertions(+), 114 deletions(-) create mode 100644 src/database/pool.ts diff --git a/src/config.ts b/src/config.ts index 5bb2047..0c2cea5 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,3 +1,4 @@ +import type { ConnectionOptions } from 'mysql2'; import { typeCast } from './utils/typeCast'; export const mysql_connection_string = GetConvar('mysql_connection_string', ''); @@ -39,7 +40,7 @@ export const mysql_transaction_isolation_level = (() => { } })(); -const parseUri = (connectionString: string) => { +function parseUri(connectionString: string) { const splitMatchGroups = connectionString.match( new RegExp( '^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?$' @@ -65,11 +66,11 @@ const parseUri = (connectionString: string) => { }; return options; -}; +} export let convertNamedPlaceholders: null | ((query: string, parameters: Record) => [string, any[]]); -export const connectionOptions = (() => { +export function getConnectionOptions(): ConnectionOptions { const options: Record = mysql_connection_string.includes('mysql://') ? parseUri(mysql_connection_string) : mysql_connection_string @@ -110,7 +111,7 @@ export const connectionOptions = (() => { namedPlaceholders: false, // we use our own named-placeholders patch, disable mysql2s flags: flags, }; -})(); +} RegisterCommand( 'oxmysql_debug', diff --git a/src/database/connection.ts b/src/database/connection.ts index e5e3145..ba371a6 100644 --- a/src/database/connection.ts +++ b/src/database/connection.ts @@ -1,65 +1,70 @@ -import { createPool, Pool, PoolConnection, RowDataPacket } from 'mysql2/promise'; -import { connectionOptions, mysql_transaction_isolation_level } from '../config'; +import type { Connection, PoolConnection } from 'mysql2/promise'; import { scheduleTick } from '../utils/scheduleTick'; import { sleep } from '../utils/sleep'; +import { pool } from './pool'; +import type { CFXParameters } from 'types'; -export let pool: Pool; -export let isServerConnected = false; -export let dbVersion = ''; +(Symbol as any).dispose ??= Symbol('Symbol.dispose'); -export async function waitForConnection() { - while (!isServerConnected) { - await sleep(0); - } +const activeConnections: Record = {}; + +interface PromisePoolConnection extends Connection { + connection: PoolConnection; + release: PoolConnection['release']; } -const activeConnections: Record = {}; +export class MySql { + id: number; + connection: PromisePoolConnection; + transaction?: boolean; -export async function createConnectionPool() { - try { - pool = createPool(connectionOptions); + constructor(connection: PromisePoolConnection) { + this.id = connection.connection.threadId; + this.connection = connection; + activeConnections[this.id] = this; + } - pool.on('connection', (connection) => { - connection.query(mysql_transaction_isolation_level); - }); + async query(query: string, values: CFXParameters = []) { + scheduleTick(); + + const [result] = await this.connection.query(query, values); + return result; + } - pool.on('acquire', (conn) => { - const connectionId: number = (conn as any).connectionId; - activeConnections[connectionId] = conn; - }); + async execute(query: string, values: CFXParameters = []) { + scheduleTick(); - pool.on('release', (conn) => { - const connectionId: number = (conn as any).connectionId; - delete activeConnections[connectionId]; - }); + const [result] = await this.connection.execute(query, values); + return result; + } - const connection = await pool.getConnection(); - const [result] = await (>connection.query('SELECT VERSION() as version')); - dbVersion = `^5[${result[0].version}]`; + beginTransaction() { + this.transaction = true; + return this.connection.beginTransaction(); + } - connection.release(); - console.log(`${dbVersion} ^2Database server connection established!^0`); + rollback() { + delete this.transaction; + return this.connection.rollback(); + } - isServerConnected = true; - } catch (err: any) { - isServerConnected = false; + commit() { + delete this.transaction; + this.connection.commit(); + } - const message = err.message.includes('auth_gssapi_client') - ? `Server requests authentication using unknown plugin auth_gssapi_client.\nSee https://github.com/overextended/oxmysql/issues/213.` - : err.message; + [Symbol.dispose]() { + if (this.transaction) this.commit(); - console.log( - `^3Unable to establish a connection to the database (${err.code})!\n^1Error${ - err.errno ? ` ${err.errno}` : '' - }: ${message}^0` - ); + delete activeConnections[this.id]; + this.connection.release(); } } -export async function getPoolConnection(id?: number) { - if (!isServerConnected) await waitForConnection(); - - scheduleTick(); +export async function getConnection(connectionId?: number) { + while (!pool) await sleep(0); - return id ? activeConnections[id] : pool.getConnection(); + return connectionId + ? activeConnections[connectionId] + : new MySql((await pool.getConnection()) as unknown as PromisePoolConnection); } diff --git a/src/database/index.ts b/src/database/index.ts index 80c00b9..0ed8c3f 100644 --- a/src/database/index.ts +++ b/src/database/index.ts @@ -1,14 +1,14 @@ import { setDebug } from '../config'; import { sleep } from '../utils/sleep'; -import { createConnectionPool, isServerConnected } from './connection'; +import { pool, createConnectionPool } from './pool'; setTimeout(async () => { setDebug(); - while (!isServerConnected) { + while (!pool) { await createConnectionPool(); - if (!isServerConnected) await sleep(30000); + if (!pool) await sleep(30000); } }); @@ -20,3 +20,4 @@ export * from './connection'; export * from './rawQuery'; export * from './rawExecute'; export * from './rawTransaction'; +export * from './pool'; diff --git a/src/database/pool.ts b/src/database/pool.ts new file mode 100644 index 0000000..6b4b242 --- /dev/null +++ b/src/database/pool.ts @@ -0,0 +1,40 @@ +import { getConnectionOptions, mysql_transaction_isolation_level } from 'config'; +import { createPool } from 'mysql2/promise'; +import type { Pool, RowDataPacket } from 'mysql2/promise'; +import { getConnection } from './connection'; + +export let pool: Pool; +export let dbVersion = ''; + +export async function createConnectionPool() { + const config = getConnectionOptions(); + + try { + pool = createPool(config); + + pool.on('connection', (connection) => { + connection.query(mysql_transaction_isolation_level); + }); + + using conn = await getConnection(); + + const result = await conn.query('SELECT VERSION() as version') as RowDataPacket[]; + dbVersion = `^5[${result[0].version}]`; + + console.log(`${dbVersion} ^2Database server connection established!^0`); + } catch (err: any) { + const message = err.message.includes('auth_gssapi_client') + ? `Server requests authentication using unknown plugin auth_gssapi_client.\nSee https://github.com/overextended/oxmysql/issues/213.` + : err.message; + + console.log( + `^3Unable to establish a connection to the database (${err.code})!\n^1Error${ + err.errno ? ` ${err.errno}` : '' + }: ${message}^0` + ); + + if (config.password) config.password = '******'; + + console.log(config); + } +} diff --git a/src/database/rawExecute.ts b/src/database/rawExecute.ts index 5ae92af..c132a7d 100644 --- a/src/database/rawExecute.ts +++ b/src/database/rawExecute.ts @@ -2,10 +2,11 @@ import { logError, logQuery, profileBatchStatements, runProfiler } from '../logg import { CFXCallback, CFXParameters, QueryType } from '../types'; import { parseResponse } from '../utils/parseResponse'; import { executeType, parseExecute } from '../utils/parseExecute'; -import { getPoolConnection } from './connection'; +import { getConnection } from './connection'; import { setCallback } from '../utils/setCallback'; import { performance } from 'perf_hooks'; import validateResultSet from 'utils/validateResultSet'; +import { RowDataPacket } from 'mysql2'; export const rawExecute = async ( invokingResource: string, @@ -29,7 +30,7 @@ export const rawExecute = async ( return logError(invokingResource, cb, isPromise, err, query, parameters); } - const connection = await getPoolConnection(connectionId); + using connection = await getConnection(connectionId); if (!connection) return; @@ -48,11 +49,11 @@ export const rawExecute = async ( } const startTime = !hasProfiler && performance.now(); - const [result] = await connection.execute(query, values); + const result = await connection.execute(query, values); if (Array.isArray(result) && result.length > 1) { for (const value of result) { - response.push(unpack ? parseResponse(type, value) : value); + response.push(unpack ? parseResponse(type, value as RowDataPacket[]) : value); } } else response.push(unpack ? parseResponse(type, result) : result); @@ -87,7 +88,5 @@ export const rawExecute = async ( } } catch (err: any) { logError(invokingResource, cb, isPromise, err, query, parameters); - } finally { - connection.release(); } }; diff --git a/src/database/rawQuery.ts b/src/database/rawQuery.ts index 0f257e3..88cecd3 100644 --- a/src/database/rawQuery.ts +++ b/src/database/rawQuery.ts @@ -4,7 +4,7 @@ import { parseResponse } from '../utils/parseResponse'; import { logQuery, logError, runProfiler } from '../logger'; import type { CFXCallback, CFXParameters } from '../types'; import type { QueryType } from '../types'; -import { getPoolConnection } from './connection'; +import { getConnection } from './connection'; import { RowDataPacket } from 'mysql2'; import { performance } from 'perf_hooks'; import validateResultSet from 'utils/validateResultSet'; @@ -25,17 +25,17 @@ export const rawQuery = async ( return logError(invokingResource, cb, isPromise, err, query, parameters); } - const connection = await getPoolConnection(connectionId); + using connection = await getConnection(connectionId); if (!connection) return; try { const hasProfiler = await runProfiler(connection, invokingResource); const startTime = !hasProfiler && performance.now(); - const [result] = await connection.query(query, parameters); + const result = await connection.query(query, parameters); if (hasProfiler) { - const [profiler] = ( + const profiler = ( await connection.query('SELECT FORMAT(SUM(DURATION) * 1000, 4) AS `duration` FROM INFORMATION_SCHEMA.PROFILING') ); @@ -58,7 +58,5 @@ export const rawQuery = async ( } } catch (err: any) { logError(invokingResource, cb, isPromise, err, query, parameters, true); - } finally { - connection.release(); } }; diff --git a/src/database/rawTransaction.ts b/src/database/rawTransaction.ts index 8df125c..7ec2425 100644 --- a/src/database/rawTransaction.ts +++ b/src/database/rawTransaction.ts @@ -1,4 +1,4 @@ -import { getPoolConnection } from './connection'; +import { getConnection } from './connection'; import { logError, logQuery, profileBatchStatements, runProfiler } from '../logger'; import { CFXCallback, CFXParameters, TransactionQuery } from '../types'; import { parseTransaction } from '../utils/parseTransaction'; @@ -27,7 +27,7 @@ export const rawTransaction = async ( return logError(invokingResource, cb, isPromise, err); } - const connection = await getPoolConnection(); + using connection = await getConnection(); if (!connection) return; @@ -68,8 +68,6 @@ export const rawTransaction = async ( err: err, resource: invokingResource, }); - } finally { - connection.release(); } if (cb) diff --git a/src/database/startTransaction.ts b/src/database/startTransaction.ts index 26bca71..062dc79 100644 --- a/src/database/startTransaction.ts +++ b/src/database/startTransaction.ts @@ -1,17 +1,15 @@ -import { getPoolConnection } from './connection'; +import { MySql, getConnection } from './connection'; import { logError } from '../logger'; import { CFXCallback, CFXParameters } from '../types'; import { parseArguments } from 'utils/parseArguments'; -import { PoolConnection } from 'mysql2/promise'; -async function runQuery(conn: PoolConnection | null, sql: string, values: CFXParameters) { +async function runQuery(conn: MySql | null, sql: string, values: CFXParameters) { [sql, values] = parseArguments(sql, values); try { if (!conn) throw new Error(`Connection used by transaction timed out after 30 seconds.`); - const [rows] = await conn.query(sql, values); - return rows; + return await conn.query(sql, values); } catch (err: any) { throw new Error(`Query: ${sql}\n${JSON.stringify(values)}\n${err.message}`); } @@ -23,30 +21,31 @@ export const startTransaction = async ( cb?: CFXCallback, isPromise?: boolean ) => { - let conn: PoolConnection | null = await getPoolConnection(); + using conn: MySql = await getConnection(); let response: boolean | null = false; + let closed = false; if (!conn) return; - setTimeout(() => (response = null), 30000); + setTimeout(() => (closed = true), 30000); try { await conn.beginTransaction(); const commit = await queries((sql: string, values: CFXParameters) => - runQuery(response === null ? null : conn, sql, values) + runQuery(closed ? null : conn, sql, values) ); - if (response === null) throw new Error(`Transaction has timed out after 30 seconds.`); + if (closed) throw new Error(`Transaction has timed out after 30 seconds.`); response = commit === false ? false : true; - response ? conn.commit() : conn.rollback(); + + if (!response) conn.rollback(); } catch (err: any) { conn.rollback(); logError(invokingResource, cb, isPromise, err); } finally { - conn.release(); - conn = null; + closed = true; } return cb ? cb(response) : response; diff --git a/src/index.ts b/src/index.ts index c9b5487..5d17578 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,15 +1,20 @@ import type { CFXCallback, CFXParameters, TransactionQuery } from './types'; -import { rawQuery, rawExecute, rawTransaction, isServerConnected, waitForConnection } from './database'; +import { rawQuery, rawExecute, rawTransaction, pool } from './database'; +import { startTransaction } from 'database/startTransaction'; +import { sleep } from 'utils/sleep'; +import ghmatti from './compatibility/ghmattimysql'; +import mysqlAsync from './compatibility/mysql-async'; import('./update'); const MySQL = {} as Record; MySQL.isReady = () => { - return isServerConnected; + return pool ? true : false; }; MySQL.awaitConnection = async () => { - await waitForConnection(); + while (!pool) await sleep(0); + return true; }; @@ -118,10 +123,6 @@ function provide(resourceName: string, method: string, cb: Function) { on(`__cfx_export_${resourceName}_${method}`, (setCb: Function) => setCb(cb)); } -import ghmatti from './compatibility/ghmattimysql'; -import mysqlAsync from './compatibility/mysql-async'; -import { startTransaction } from 'database/startTransaction'; - for (const key in MySQL) { const exp = MySQL[key]; diff --git a/src/logger/index.ts b/src/logger/index.ts index 47cbe76..6dc6d73 100644 --- a/src/logger/index.ts +++ b/src/logger/index.ts @@ -1,7 +1,7 @@ -import { PoolConnection, RowDataPacket } from 'mysql2/promise'; +import type { RowDataPacket } from 'mysql2/promise'; import { mysql_debug, mysql_log_size, mysql_slow_query_warning, mysql_ui } from '../config'; import type { CFXCallback, CFXParameters } from '../types'; -import { dbVersion } from '../database'; +import { MySql, dbVersion } from '../database'; export function logError( invokingResource: string, @@ -41,7 +41,7 @@ export const profilerStatements = [ /** * Executes MySQL queries to fetch accurate query profiling results when `mysql_debug` is enabled. */ -export async function runProfiler(connection: PoolConnection, invokingResource: string) { +export async function runProfiler(connection: MySql, invokingResource: string) { if (!mysql_debug) return; if (Array.isArray(mysql_debug) && !mysql_debug.includes(invokingResource)) return; @@ -52,13 +52,13 @@ export async function runProfiler(connection: PoolConnection, invokingResource: } export async function profileBatchStatements( - connection: PoolConnection, + connection: MySql, invokingResource: string, query: string | { query: string; params?: CFXParameters }[], parameters: CFXParameters | null, offset: number ) { - const [profiler] = ( + const profiler = ( await connection.query( 'SELECT FORMAT(SUM(DURATION) * 1000, 4) AS `duration` FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID' ) diff --git a/src/tsconfig.json b/src/tsconfig.json index f08f7bc..dcc6a21 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -4,7 +4,7 @@ "noImplicitAny": true, "module": "es2020", "target": "es2021", - "lib": ["es2021"], + "lib": ["es2021", "esnext.disposable"], "resolveJsonModule": true, "esModuleInterop": true, "noEmit": true, diff --git a/src/types/index.ts b/src/types/index.ts index 00880c9..aacf22a 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,8 +1,13 @@ -import { RowDataPacket, ResultSetHeader, OkPacket } from 'mysql2'; +import type { OkPacket, ResultSetHeader, RowDataPacket, ProcedureCallPacket } from 'mysql2'; -type SQLResponse = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader; - -export type QueryResponse = SQLResponse | SQLResponse[] | RowDataPacket; +export type QueryResponse = + | OkPacket + | ResultSetHeader + | ResultSetHeader[] + | RowDataPacket[] + | RowDataPacket[][] + | OkPacket[] + | ProcedureCallPacket; export type QueryType = 'execute' | 'insert' | 'update' | 'scalar' | 'single' | null; diff --git a/src/utils/parseResponse.ts b/src/utils/parseResponse.ts index 0a3d0f6..a9a1dc2 100644 --- a/src/utils/parseResponse.ts +++ b/src/utils/parseResponse.ts @@ -1,30 +1,20 @@ -import { OkPacket, RowDataPacket } from 'mysql2'; +import { ResultSetHeader, RowDataPacket } from 'mysql2'; import type { QueryResponse, QueryType } from '../types'; -const isOkPacket = (result: QueryResponse, insertId?: boolean): result is OkPacket => - insertId ? (result as OkPacket).insertId !== undefined : (result as OkPacket).affectedRows !== undefined; - -const isRowDataPacket = (result: QueryResponse): result is RowDataPacket[] => - (result as RowDataPacket[]).length !== undefined; - -const isRowDataPacketArray = (result: QueryResponse): result is RowDataPacket[][] => - (result as RowDataPacket[][]).length !== undefined && - (result as RowDataPacket[][])[0] !== undefined && - Object.values((result as RowDataPacket[][])[0])[0] !== undefined; - export const parseResponse = (type: QueryType, result: QueryResponse): any => { switch (type) { case 'insert': - return isOkPacket(result) ? result.insertId : null; + return (result as ResultSetHeader)?.insertId || null; case 'update': - return isOkPacket(result) ? result.affectedRows : null; + return (result as ResultSetHeader)?.affectedRows || null; case 'single': - return isRowDataPacket(result) ? result[0] : null; + return (result as RowDataPacket[])?.[0] || null; case 'scalar': - return isRowDataPacketArray(result) ? Object.values(result[0])[0] : null; + const row = (result as RowDataPacket[])?.[0]; + return (row && Object.values(row)[0]) || null; default: return result || null; diff --git a/src/utils/typeCast.ts b/src/utils/typeCast.ts index ecfb7d9..eff3cc6 100644 --- a/src/utils/typeCast.ts +++ b/src/utils/typeCast.ts @@ -31,7 +31,7 @@ export const typeCast = (field: Field, next: () => void) => { case 'BLOB': if (field.charset === BINARY_CHARSET) { const value = field.buffer(); - if (value === null) return [value] + if (value === null) return [value]; return [...value]; } return field.string(); From 35c6a9ee7f108c553f78ec525145d4bda909f2ab Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:44:27 +1000 Subject: [PATCH 02/16] refactor(profiler): move from logger module --- src/database/rawExecute.ts | 3 +- src/database/rawQuery.ts | 3 +- src/database/rawTransaction.ts | 3 +- src/logger/index.ts | 53 +--------------------------- src/profiler/index.ts | 64 ++++++++++++++++++++++++++++++++++ 5 files changed, 71 insertions(+), 55 deletions(-) create mode 100644 src/profiler/index.ts diff --git a/src/database/rawExecute.ts b/src/database/rawExecute.ts index c132a7d..fdb737b 100644 --- a/src/database/rawExecute.ts +++ b/src/database/rawExecute.ts @@ -1,4 +1,4 @@ -import { logError, logQuery, profileBatchStatements, runProfiler } from '../logger'; +import { logError, logQuery } from '../logger'; import { CFXCallback, CFXParameters, QueryType } from '../types'; import { parseResponse } from '../utils/parseResponse'; import { executeType, parseExecute } from '../utils/parseExecute'; @@ -7,6 +7,7 @@ import { setCallback } from '../utils/setCallback'; import { performance } from 'perf_hooks'; import validateResultSet from 'utils/validateResultSet'; import { RowDataPacket } from 'mysql2'; +import { profileBatchStatements, runProfiler } from 'profiler'; export const rawExecute = async ( invokingResource: string, diff --git a/src/database/rawQuery.ts b/src/database/rawQuery.ts index 88cecd3..c559725 100644 --- a/src/database/rawQuery.ts +++ b/src/database/rawQuery.ts @@ -1,13 +1,14 @@ import { parseArguments } from '../utils/parseArguments'; import { setCallback } from '../utils/setCallback'; import { parseResponse } from '../utils/parseResponse'; -import { logQuery, logError, runProfiler } from '../logger'; +import { logQuery, logError } from '../logger'; import type { CFXCallback, CFXParameters } from '../types'; import type { QueryType } from '../types'; import { getConnection } from './connection'; import { RowDataPacket } from 'mysql2'; import { performance } from 'perf_hooks'; import validateResultSet from 'utils/validateResultSet'; +import { runProfiler } from 'profiler'; export const rawQuery = async ( type: QueryType, diff --git a/src/database/rawTransaction.ts b/src/database/rawTransaction.ts index 7ec2425..14cb046 100644 --- a/src/database/rawTransaction.ts +++ b/src/database/rawTransaction.ts @@ -1,9 +1,10 @@ import { getConnection } from './connection'; -import { logError, logQuery, profileBatchStatements, runProfiler } from '../logger'; +import { logError, logQuery } from '../logger'; import { CFXCallback, CFXParameters, TransactionQuery } from '../types'; import { parseTransaction } from '../utils/parseTransaction'; import { setCallback } from '../utils/setCallback'; import { performance } from 'perf_hooks'; +import { profileBatchStatements, runProfiler } from 'profiler'; const transactionError = (queries: { query: string; params?: CFXParameters }[], parameters: CFXParameters) => { `${queries.map((query) => `${query.query} ${JSON.stringify(query.params || [])}`).join('\n')}\n${JSON.stringify( diff --git a/src/logger/index.ts b/src/logger/index.ts index 6dc6d73..a14bf16 100644 --- a/src/logger/index.ts +++ b/src/logger/index.ts @@ -1,7 +1,6 @@ -import type { RowDataPacket } from 'mysql2/promise'; import { mysql_debug, mysql_log_size, mysql_slow_query_warning, mysql_ui } from '../config'; import type { CFXCallback, CFXParameters } from '../types'; -import { MySql, dbVersion } from '../database'; +import { dbVersion } from '../database'; export function logError( invokingResource: string, @@ -31,56 +30,6 @@ export function logError( console.error(output); } -export const profilerStatements = [ - 'SET profiling_history_size = 0', - 'SET profiling = 0', - 'SET profiling_history_size = 100', - 'SET profiling = 1', -]; - -/** - * Executes MySQL queries to fetch accurate query profiling results when `mysql_debug` is enabled. - */ -export async function runProfiler(connection: MySql, invokingResource: string) { - if (!mysql_debug) return; - - if (Array.isArray(mysql_debug) && !mysql_debug.includes(invokingResource)) return; - - for (const statement of profilerStatements) await connection.query(statement); - - return true; -} - -export async function profileBatchStatements( - connection: MySql, - invokingResource: string, - query: string | { query: string; params?: CFXParameters }[], - parameters: CFXParameters | null, - offset: number -) { - const profiler = ( - await connection.query( - 'SELECT FORMAT(SUM(DURATION) * 1000, 4) AS `duration` FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID' - ) - ); - - for (const statement of profilerStatements) await connection.query(statement); - - if (profiler.length === 0) return; - - if (typeof query === 'string' && parameters) - for (let i = 0; i < profiler.length; i++) { - logQuery(invokingResource, query, parseFloat(profiler[i].duration), parameters[offset + i]); - } - else if (typeof query === 'object') - for (let i = 0; i < profiler.length; i++) { - const transaction = query[offset + i]; - if (transaction) - logQuery(invokingResource, transaction.query, parseFloat(profiler[i].duration), transaction.params); - else break; - } -} - interface QueryData { date: number; query: string; diff --git a/src/profiler/index.ts b/src/profiler/index.ts new file mode 100644 index 0000000..c42c263 --- /dev/null +++ b/src/profiler/index.ts @@ -0,0 +1,64 @@ +import { mysql_debug } from 'config'; +import type { MySql } from 'database'; +import { logQuery } from 'logger'; +import type { RowDataPacket } from 'mysql2'; +import type { CFXParameters } from 'types'; + +const profilerStatements = [ + 'SET profiling_history_size = 0', + 'SET profiling = 0', + 'SET profiling_history_size = 100', + 'SET profiling = 1', +]; + +/** + * Executes MySQL queries to enable accurate query profiling results when `mysql_debug` is enabled. + */ +export async function runProfiler(connection: MySql, invokingResource: string) { + if (!mysql_debug) return; + + if (Array.isArray(mysql_debug) && !mysql_debug.includes(invokingResource)) return; + + for (const statement of profilerStatements) await connection.query(statement); + + return true; +} + +/** + * Fetches the duration of the last 100 queries and resets profiling history. + */ +export async function profileBatchStatements( + connection: MySql, + invokingResource: string, + query: string | { query: string; params?: CFXParameters }[], + parameters: CFXParameters | null, + offset: number +) { + const profiler = ( + await connection.query( + 'SELECT FORMAT(SUM(DURATION) * 1000, 4) AS `duration` FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID' + ) + ); + + for (const statement of profilerStatements) await connection.query(statement); + + if (profiler.length === 0) return; + + if (typeof query === 'string' && parameters) { + for (let i = 0; i < profiler.length; i++) { + logQuery(invokingResource, query, parseFloat(profiler[i].duration), parameters[offset + i]); + } + + return; + } + + if (typeof query === 'object') { + for (let i = 0; i < profiler.length; i++) { + const transaction = query[offset + i]; + + if (!transaction) break; + + logQuery(invokingResource, transaction.query, parseFloat(profiler[i].duration), transaction.params); + } + } +} From 78be0238f565ece0e187260c00914fc63b8d329f Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:51:39 +1000 Subject: [PATCH 03/16] fix(database/connection): return promise from commit method --- src/database/connection.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/database/connection.ts b/src/database/connection.ts index ba371a6..6c51eed 100644 --- a/src/database/connection.ts +++ b/src/database/connection.ts @@ -50,7 +50,7 @@ export class MySql { commit() { delete this.transaction; - this.connection.commit(); + return this.connection.commit(); } [Symbol.dispose]() { From cea371c90ce954ea08eb29c6a039dc476635e126 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:58:32 +1000 Subject: [PATCH 04/16] refactor(database/pool): warn if using multipleStatements --- src/database/pool.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/database/pool.ts b/src/database/pool.ts index 6b4b242..a6ecf27 100644 --- a/src/database/pool.ts +++ b/src/database/pool.ts @@ -22,6 +22,11 @@ export async function createConnectionPool() { dbVersion = `^5[${result[0].version}]`; console.log(`${dbVersion} ^2Database server connection established!^0`); + + if (config.multipleStatements) { + console.warn(`multipleStatements is enabled. Used incorrectly, this option may cause SQL injection.\nSee https://github.com/overextended/oxmysql/issues/102)`) + } + } catch (err: any) { const message = err.message.includes('auth_gssapi_client') ? `Server requests authentication using unknown plugin auth_gssapi_client.\nSee https://github.com/overextended/oxmysql/issues/213.` From 0f385900b4c781bfcb849b94372fca1907fbd849 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 16:15:50 +1000 Subject: [PATCH 05/16] chore: update dependencies --- package.json | 10 +- ...mysql2+3.5.1.patch => mysql2+3.10.1.patch} | 42 +- pnpm-lock.yaml | 1363 ++++++++++------- 3 files changed, 822 insertions(+), 593 deletions(-) rename patches/{mysql2+3.5.1.patch => mysql2+3.10.1.patch} (78%) diff --git a/package.json b/package.json index e9bd877..d0544ef 100644 --- a/package.json +++ b/package.json @@ -28,16 +28,16 @@ "@citizenfx/server": "2.0.5132-1", "@milahu/patch-package": "^6.4.14", "@types/node": "^17.0.45", - "mysql2": "3.5.1", + "mysql2": "3.10.1", "named-placeholders": "^1.1.3", - "node-fetch": "^3.3.1", + "node-fetch": "^3.3.2", "prettier": "^2.8.8" }, "devDependencies": { - "esbuild": "^0.20.0", + "esbuild": "^0.21.5", "lerna": "^4.0.0", "postinstall-postinstall": "^2.1.0", - "pretty-quick": "^3.1.3", - "typescript": "^5.3.3" + "pretty-quick": "^3.3.1", + "typescript": "^5.4.5" } } \ No newline at end of file diff --git a/patches/mysql2+3.5.1.patch b/patches/mysql2+3.10.1.patch similarity index 78% rename from patches/mysql2+3.5.1.patch rename to patches/mysql2+3.10.1.patch index 08e72a2..ea186b4 100644 --- a/patches/mysql2+3.5.1.patch +++ b/patches/mysql2+3.10.1.patch @@ -1,10 +1,10 @@ # generated by patch-package 6.4.14 # # declared package: -# mysql2: 3.5.1 +# mysql2: 3.10.1 # diff --git a/node_modules/mysql2/lib/connection.js b/node_modules/mysql2/lib/connection.js -index d6ad7a4..ceac670 100644 +index 113fc7d..3a997a4 100644 --- a/node_modules/mysql2/lib/connection.js +++ b/node_modules/mysql2/lib/connection.js @@ -32,7 +32,7 @@ const CharsetToEncoding = require('./constants/charset_encodings.js'); @@ -16,7 +16,7 @@ index d6ad7a4..ceac670 100644 class Connection extends EventEmitter { constructor(opts) { -@@ -521,7 +521,7 @@ class Connection extends EventEmitter { +@@ -524,7 +524,7 @@ class Connection extends EventEmitter { sql: sql, values: values }; @@ -25,7 +25,7 @@ index d6ad7a4..ceac670 100644 return SqlString.format( opts.sql, opts.values, -@@ -543,20 +543,20 @@ class Connection extends EventEmitter { +@@ -546,20 +546,20 @@ class Connection extends EventEmitter { } _resolveNamedPlaceholders(options) { @@ -60,7 +60,7 @@ index d6ad7a4..ceac670 100644 } query(sql, values, cb) { -@@ -566,7 +566,7 @@ class Connection extends EventEmitter { +@@ -569,7 +569,7 @@ class Connection extends EventEmitter { } else { cmdQuery = Connection.createQuery(sql, values, cb, this.config); } @@ -69,7 +69,7 @@ index d6ad7a4..ceac670 100644 const rawSql = this.format(cmdQuery.sql, cmdQuery.values !== undefined ? cmdQuery.values : []); cmdQuery.sql = rawSql; return this.addCommand(cmdQuery); -@@ -634,26 +634,27 @@ class Connection extends EventEmitter { +@@ -644,26 +644,27 @@ class Connection extends EventEmitter { options.sql = sql; options.values = values; } @@ -128,10 +128,10 @@ index daf1df9..0862ce1 100644 case 'number': type = Types.DOUBLE; diff --git a/node_modules/mysql2/lib/parsers/binary_parser.js b/node_modules/mysql2/lib/parsers/binary_parser.js -index bbd2959..80ab00d 100644 +index bf0995d..3e3ce6d 100644 --- a/node_modules/mysql2/lib/parsers/binary_parser.js +++ b/node_modules/mysql2/lib/parsers/binary_parser.js -@@ -72,7 +72,7 @@ function readCodeFor(field, config, options, fieldNum) { +@@ -75,7 +75,7 @@ function readCodeFor(field, config, options, fieldNum) { default: if (field.characterSet === Charsets.BINARY) { @@ -140,29 +140,3 @@ index bbd2959..80ab00d 100644 } return `packet.readLengthCodedString(fields[${fieldNum}].encoding)`; } -diff --git a/node_modules/mysql2/lib/parsers/text_parser.js b/node_modules/mysql2/lib/parsers/text_parser.js -index 49a128c..7eafb2c 100644 ---- a/node_modules/mysql2/lib/parsers/text_parser.js -+++ b/node_modules/mysql2/lib/parsers/text_parser.js -@@ -85,6 +85,7 @@ function compile(fields, options, config) { - db: field.schema, - table: field.table, - name: field.name, -+ charset: field.characterSet, - string: function(encoding = field.encoding) { - if (field.columnType === Types.JSON && encoding === field.encoding) { - // Since for JSON columns mysql always returns charset 63 (BINARY), -diff --git a/node_modules/mysql2/lib/pool.js b/node_modules/mysql2/lib/pool.js -index db54a7a..f104061 100644 ---- a/node_modules/mysql2/lib/pool.js -+++ b/node_modules/mysql2/lib/pool.js -@@ -155,7 +155,8 @@ class Pool extends EventEmitter { - }); - } catch (e) { - conn.release(); -- throw e; -+ // throw e; -+ return cb(e); - } - }); - return cmdQuery; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70d87cd..dad08f5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,21 +18,21 @@ importers: specifier: ^17.0.45 version: 17.0.45 mysql2: - specifier: 3.5.1 - version: 3.5.1 + specifier: 3.10.1 + version: 3.10.1 named-placeholders: specifier: ^1.1.3 version: 1.1.3 node-fetch: - specifier: ^3.3.1 - version: 3.3.1 + specifier: ^3.3.2 + version: 3.3.2 prettier: specifier: ^2.8.8 version: 2.8.8 devDependencies: esbuild: - specifier: ^0.20.0 - version: 0.20.0 + specifier: ^0.21.5 + version: 0.21.5 lerna: specifier: ^4.0.0 version: 4.0.0(encoding@0.1.13) @@ -40,163 +40,163 @@ importers: specifier: ^2.1.0 version: 2.1.0 pretty-quick: - specifier: ^3.1.3 - version: 3.1.3(prettier@2.8.8) + specifier: ^3.3.1 + version: 3.3.1(prettier@2.8.8) typescript: - specifier: ^5.3.3 - version: 5.3.3 + specifier: ^5.4.5 + version: 5.4.5 packages: - '@babel/code-frame@7.22.5': - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.22.5': - resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.22.5': - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} '@citizenfx/server@2.0.5132-1': resolution: {integrity: sha512-DGqijToliwQdodc9IK5wrqsqVukN12qXLGatJTZhUsxD0m2LfwBtxwqL4VpuYkFhJ+7wna5aotEItYCVZUOVqQ==} - '@esbuild/aix-ppc64@0.20.0': - resolution: {integrity: sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.20.0': - resolution: {integrity: sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q==} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.20.0': - resolution: {integrity: sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g==} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.20.0': - resolution: {integrity: sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ==} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.20.0': - resolution: {integrity: sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ==} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.20.0': - resolution: {integrity: sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw==} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.20.0': - resolution: {integrity: sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ==} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.20.0': - resolution: {integrity: sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ==} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.20.0': - resolution: {integrity: sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw==} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.20.0': - resolution: {integrity: sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg==} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.20.0': - resolution: {integrity: sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w==} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.20.0': - resolution: {integrity: sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw==} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.20.0': - resolution: {integrity: sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ==} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.20.0': - resolution: {integrity: sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw==} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.20.0': - resolution: {integrity: sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA==} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.20.0': - resolution: {integrity: sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.20.0': - resolution: {integrity: sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg==} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.20.0': - resolution: {integrity: sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.20.0': - resolution: {integrity: sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA==} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.20.0': - resolution: {integrity: sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g==} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.20.0': - resolution: {integrity: sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ==} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.20.0': - resolution: {integrity: sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg==} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.20.0': - resolution: {integrity: sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg==} + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -211,18 +211,22 @@ packages: '@lerna/add@4.0.0': resolution: {integrity: sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/bootstrap@4.0.0': resolution: {integrity: sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/changed@4.0.0': resolution: {integrity: sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/check-working-tree@4.0.0': resolution: {integrity: sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/child-process@4.0.0': resolution: {integrity: sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==} @@ -231,30 +235,37 @@ packages: '@lerna/clean@4.0.0': resolution: {integrity: sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/cli@4.0.0': resolution: {integrity: sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/collect-uncommitted@4.0.0': resolution: {integrity: sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/collect-updates@4.0.0': resolution: {integrity: sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/command@4.0.0': resolution: {integrity: sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/conventional-commits@4.0.0': resolution: {integrity: sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/create-symlink@4.0.0': resolution: {integrity: sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/create@4.0.0': resolution: {integrity: sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag==} @@ -263,186 +274,232 @@ packages: '@lerna/describe-ref@4.0.0': resolution: {integrity: sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/diff@4.0.0': resolution: {integrity: sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/exec@4.0.0': resolution: {integrity: sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/filter-options@4.0.0': resolution: {integrity: sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/filter-packages@4.0.0': resolution: {integrity: sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/get-npm-exec-opts@4.0.0': resolution: {integrity: sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/get-packed@4.0.0': resolution: {integrity: sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/github-client@4.0.0': resolution: {integrity: sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/gitlab-client@4.0.0': resolution: {integrity: sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/global-options@4.0.0': resolution: {integrity: sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/has-npm-version@4.0.0': resolution: {integrity: sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/import@4.0.0': resolution: {integrity: sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/info@4.0.0': resolution: {integrity: sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/init@4.0.0': resolution: {integrity: sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/link@4.0.0': resolution: {integrity: sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/list@4.0.0': resolution: {integrity: sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/listable@4.0.0': resolution: {integrity: sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/log-packed@4.0.0': resolution: {integrity: sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/npm-conf@4.0.0': resolution: {integrity: sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/npm-dist-tag@4.0.0': resolution: {integrity: sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/npm-install@4.0.0': resolution: {integrity: sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/npm-publish@4.0.0': resolution: {integrity: sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/npm-run-script@4.0.0': resolution: {integrity: sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/otplease@4.0.0': resolution: {integrity: sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/output@4.0.0': resolution: {integrity: sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/pack-directory@4.0.0': resolution: {integrity: sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/package-graph@4.0.0': resolution: {integrity: sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/package@4.0.0': resolution: {integrity: sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/prerelease-id-from-version@4.0.0': resolution: {integrity: sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/profiler@4.0.0': resolution: {integrity: sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/project@4.0.0': resolution: {integrity: sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/prompt@4.0.0': resolution: {integrity: sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/publish@4.0.0': resolution: {integrity: sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/pulse-till-done@4.0.0': resolution: {integrity: sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/query-graph@4.0.0': resolution: {integrity: sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/resolve-symlink@4.0.0': resolution: {integrity: sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/rimraf-dir@4.0.0': resolution: {integrity: sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/run-lifecycle@4.0.0': resolution: {integrity: sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/run-topologically@4.0.0': resolution: {integrity: sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/run@4.0.0': resolution: {integrity: sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/symlink-binary@4.0.0': resolution: {integrity: sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/symlink-dependencies@4.0.0': resolution: {integrity: sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/timer@4.0.0': resolution: {integrity: sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/validation-error@4.0.0': resolution: {integrity: sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/version@4.0.0': resolution: {integrity: sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@lerna/write-log-file@4.0.0': resolution: {integrity: sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg==} engines: {node: '>= 10.18.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@milahu/patch-package@6.4.14': resolution: {integrity: sha512-sfjl5rZPGu8T7Yl3oSnpwCLp7WGK1rKoSMkC2iZCI7M5y1lijF1GFAuJl2xKCGB4SubgChm+HGJ3YkWYLc3xVg==} @@ -539,23 +596,23 @@ packages: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} - '@types/dashdash@1.14.1': - resolution: {integrity: sha512-3UAiw52g6LARDS9I5lpYwUzj/nBuMvor/0BWiza7ibuOIEaNIo+m3whnVBLLj/ue0DzlcX+96c24YdZCuDwOiQ==} + '@types/dashdash@1.14.3': + resolution: {integrity: sha512-1BKd5kepSM4R+92c1SV1V0tcCletn2RDHh7QnuI9pTUVpVPwGJPi/3JPdaXR9l7TmwRlV9Zn24hiwxybjWR3Lw==} '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@types/minimist@1.2.2': - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/normalize-package-data@2.4.1': - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/parse-json@4.0.0': - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -574,8 +631,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agentkeepalive@4.3.0: - resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} engines: {node: '>= 8.0.0'} aggregate-error@3.1.0: @@ -613,9 +670,11 @@ packages: are-we-there-yet@1.1.7: resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} + deprecated: This package is no longer supported. - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} array-differ@3.0.0: resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} @@ -628,8 +687,12 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.reduce@1.0.5: - resolution: {integrity: sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==} + array.prototype.reduce@1.0.7: + resolution: {integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} arrify@1.0.1: @@ -657,15 +720,15 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + aws4@1.13.0: + resolution: {integrity: sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -679,8 +742,8 @@ packages: brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} buffer-from@1.1.2: @@ -701,8 +764,9 @@ packages: resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} engines: {node: '>= 10'} - call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -723,10 +787,6 @@ packages: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -744,8 +804,8 @@ packages: ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - ci-info@3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} clean-stack@2.2.0: @@ -804,7 +864,7 @@ packages: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} concat-stream@2.0.0: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} @@ -877,11 +937,23 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -911,12 +983,16 @@ packages: defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} - define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} delayed-stream@1.0.0: @@ -930,10 +1006,6 @@ packages: resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} engines: {node: '>=0.10'} - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} @@ -979,8 +1051,8 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - envinfo@7.10.0: - resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==} + envinfo@7.13.0: + resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} engines: {node: '>=4'} hasBin: true @@ -990,28 +1062,40 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild@0.20.0: - resolution: {integrity: sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} escape-string-regexp@1.0.5: @@ -1043,15 +1127,15 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.0: - resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} @@ -1061,8 +1145,8 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} filter-obj@1.1.0: @@ -1112,11 +1196,11 @@ packages: fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -1124,6 +1208,7 @@ packages: gauge@2.7.4: resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} + deprecated: This package is no longer supported. generate-function@2.3.1: resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} @@ -1132,8 +1217,9 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} get-pkg-repo@4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} @@ -1152,8 +1238,8 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} getpass@0.1.7: @@ -1188,9 +1274,10 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} globby@11.1.0: @@ -1203,8 +1290,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true @@ -1232,27 +1319,27 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -1298,8 +1385,8 @@ packages: ignore-walk@3.0.4: resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} - ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} import-fresh@3.3.0: @@ -1324,6 +1411,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -1339,15 +1427,17 @@ packages: resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} engines: {node: '>=8.0.0'} - internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} - ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -1371,8 +1461,12 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true - is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} @@ -1402,8 +1496,8 @@ packages: is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} is-number-object@1.0.7: @@ -1441,8 +1535,9 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} is-ssh@1.4.0: resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} @@ -1463,8 +1558,8 @@ packages: resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} engines: {node: '>=0.10.0'} - is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} is-typedarray@1.0.0: @@ -1499,6 +1594,9 @@ packages: jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -1629,8 +1727,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} mime-db@1.52.0: @@ -1727,10 +1825,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multimatch@4.0.0: - resolution: {integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==} - engines: {node: '>=8'} - multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} @@ -1738,8 +1832,8 @@ packages: mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - mysql2@3.5.1: - resolution: {integrity: sha512-RyaeUBqMiFR1ivk78JToPz0MhwN/sUWCKwPZszbXaFNZ6wmP/EJNPDU6gbZkF+qtLjr3sULQb0Y7JuFrNblnDg==} + mysql2@3.10.1: + resolution: {integrity: sha512-6zo1T3GILsXMCex3YEu7hCz2OXLUarxFsxvFcUHWMpkPtmZLeTTWgRdc1gWyNJiYt6AxITmIf9bZDRy/jAfWew==} engines: {node: '>= 8.0'} named-placeholders@1.1.3: @@ -1757,8 +1851,8 @@ packages: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - node-fetch@2.6.12: - resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -1766,8 +1860,8 @@ packages: encoding: optional: true - node-fetch@3.3.1: - resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} node-gyp@5.1.1: @@ -1809,6 +1903,7 @@ packages: npm-lifecycle@3.1.5: resolution: {integrity: sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==} + deprecated: The lifecycle script runner used in npm is now @npmcli/run-script. Please use that module moving forward npm-normalize-package-bin@1.0.1: resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} @@ -1839,6 +1934,7 @@ packages: npmlog@4.1.2: resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} + deprecated: This package is no longer supported. number-is-nan@1.0.1: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} @@ -1851,19 +1947,19 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - object.getownpropertydescriptors@2.1.6: - resolution: {integrity: sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==} + object.getownpropertydescriptors@2.1.8: + resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} engines: {node: '>= 0.8'} once@1.4.0: @@ -1887,6 +1983,7 @@ packages: osenv@0.1.5: resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} + deprecated: This package is no longer supported. p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} @@ -1997,10 +2094,17 @@ packages: performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -2021,6 +2125,10 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + postinstall-postinstall@2.1.0: resolution: {integrity: sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==} @@ -2029,12 +2137,12 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - pretty-quick@3.1.3: - resolution: {integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==} + pretty-quick@3.3.1: + resolution: {integrity: sha512-3b36UXfYQ+IXXqex6mCca89jC8u0mYLqFAN5eTQKoXO6oCQYcIVYZEB/5AlBHI7JPYygReM2Vv6Vom/Gln7fBg==} engines: {node: '>=10.13'} hasBin: true peerDependencies: - prettier: '>=2.0.0' + prettier: ^2.0.0 process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -2069,16 +2177,20 @@ packages: pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} q@1.5.1: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + deprecated: |- + You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. - qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) + + qs@6.12.1: + resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} engines: {node: '>=0.6'} qs@6.5.3: @@ -2105,14 +2217,17 @@ packages: read-package-json@2.1.2: resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==} + deprecated: This package is no longer supported. Please use @npmcli/package-json instead. read-package-json@3.0.1: resolution: {integrity: sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==} engines: {node: '>=10'} + deprecated: This package is no longer supported. Please use @npmcli/package-json instead. read-package-json@4.1.2: resolution: {integrity: sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ==} engines: {node: '>=10'} + deprecated: This package is no longer supported. Please use @npmcli/package-json instead. read-package-tree@5.3.1: resolution: {integrity: sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==} @@ -2153,8 +2268,8 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} request@2.88.2: @@ -2178,8 +2293,8 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true restore-cursor@3.1.0: @@ -2196,10 +2311,12 @@ packages: rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true run-async@2.4.1: @@ -2213,8 +2330,8 @@ packages: resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} - safe-array-concat@1.0.0: - resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} safe-buffer@5.1.2: @@ -2223,8 +2340,9 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -2237,8 +2355,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true @@ -2248,6 +2366,14 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} @@ -2263,8 +2389,9 @@ packages: shlex@2.1.2: resolution: {integrity: sha512-Nz6gtibMVgYeMEhUjp2KuwAgqaJA1K155dU/HuDaEJUGgnmYfVtVZah+uerVWdH8UGnyahhDCgABbYTbs254+w==} - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -2292,9 +2419,9 @@ packages: resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} engines: {node: '>= 10'} - socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} @@ -2311,14 +2438,14 @@ packages: spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + spdx-license-ids@3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} @@ -2330,12 +2457,15 @@ packages: split@1.0.1: resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + sqlstring@2.3.3: resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} engines: {node: '>= 0.6'} - sshpk@1.17.0: - resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} hasBin: true @@ -2355,15 +2485,16 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -2416,8 +2547,8 @@ packages: resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} engines: {node: '>=4.5'} - tar@6.1.15: - resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} temp-dir@1.0.0: @@ -2445,9 +2576,9 @@ packages: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} - tmp@0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} - engines: {node: '>=8.17.0'} + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -2471,6 +2602,9 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -2497,8 +2631,21 @@ packages: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -2506,18 +2653,18 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} hasBin: true - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + uglify-js@3.18.0: + resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} engines: {node: '>=0.8.0'} hasBin: true uid-number@0.0.6: - resolution: {integrity: sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=} + resolution: {integrity: sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w==} umask@1.1.0: resolution: {integrity: sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA==} @@ -2531,11 +2678,11 @@ packages: unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} - universal-user-agent@6.0.0: - resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} upath@2.0.1: @@ -2563,14 +2710,14 @@ packages: resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} verror@1.10.0: - resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} webidl-conversions@3.0.1: @@ -2590,8 +2737,8 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-typed-array@1.1.10: - resolution: {integrity: sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==} + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} which@1.3.1: @@ -2666,87 +2813,89 @@ packages: snapshots: - '@babel/code-frame@7.22.5': + '@babel/code-frame@7.24.7': dependencies: - '@babel/highlight': 7.22.5 + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 - '@babel/helper-validator-identifier@7.22.5': {} + '@babel/helper-validator-identifier@7.24.7': {} - '@babel/highlight@7.22.5': + '@babel/highlight@7.24.7': dependencies: - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 + picocolors: 1.0.1 '@citizenfx/server@2.0.5132-1': {} - '@esbuild/aix-ppc64@0.20.0': + '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/android-arm64@0.20.0': + '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm@0.20.0': + '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-x64@0.20.0': + '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.20.0': + '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-x64@0.20.0': + '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.20.0': + '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.20.0': + '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/linux-arm64@0.20.0': + '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm@0.20.0': + '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-ia32@0.20.0': + '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-loong64@0.20.0': + '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-mips64el@0.20.0': + '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-ppc64@0.20.0': + '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.20.0': + '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-s390x@0.20.0': + '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-x64@0.20.0': + '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.20.0': + '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.20.0': + '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.20.0': + '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/win32-arm64@0.20.0': + '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-ia32@0.20.0': + '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-x64@0.20.0': + '@esbuild/win32-x64@0.21.5': optional: true '@gar/promisify@1.1.3': {} @@ -2764,7 +2913,7 @@ snapshots: npm-package-arg: 8.1.5 p-map: 4.0.0 pacote: 11.3.5 - semver: 7.5.4 + semver: 7.6.2 transitivePeerDependencies: - bluebird - supports-color @@ -2792,7 +2941,7 @@ snapshots: p-map-series: 2.1.0 p-waterfall: 2.1.1 read-package-tree: 5.3.1 - semver: 7.5.4 + semver: 7.6.2 '@lerna/changed@4.0.0': dependencies: @@ -2870,7 +3019,7 @@ snapshots: npm-package-arg: 8.1.5 npmlog: 4.1.2 pify: 5.0.0 - semver: 7.5.4 + semver: 7.6.2 '@lerna/create-symlink@4.0.0': dependencies: @@ -2892,7 +3041,7 @@ snapshots: p-reduce: 2.1.0 pacote: 11.3.5 pify: 5.0.0 - semver: 7.5.4 + semver: 7.6.2 slash: 3.0.0 validate-npm-package-license: 3.0.4 validate-npm-package-name: 3.0.0 @@ -2945,7 +3094,7 @@ snapshots: dependencies: fs-extra: 9.1.0 ssri: 8.0.1 - tar: 6.1.15 + tar: 6.2.1 '@lerna/github-client@4.0.0(encoding@0.1.13)': dependencies: @@ -2959,7 +3108,7 @@ snapshots: '@lerna/gitlab-client@4.0.0(encoding@0.1.13)': dependencies: - node-fetch: 2.6.12(encoding@0.1.13) + node-fetch: 2.7.0(encoding@0.1.13) npmlog: 4.1.2 whatwg-url: 8.7.0 transitivePeerDependencies: @@ -2970,7 +3119,7 @@ snapshots: '@lerna/has-npm-version@4.0.0': dependencies: '@lerna/child-process': 4.0.0 - semver: 7.5.4 + semver: 7.6.2 '@lerna/import@4.0.0': dependencies: @@ -2987,7 +3136,7 @@ snapshots: dependencies: '@lerna/command': 4.0.0 '@lerna/output': 4.0.0 - envinfo: 7.10.0 + envinfo: 7.13.0 '@lerna/init@4.0.0': dependencies: @@ -3085,7 +3234,7 @@ snapshots: '@lerna/run-lifecycle': 4.0.0 npm-packlist: 2.2.2 npmlog: 4.1.2 - tar: 6.1.15 + tar: 6.2.1 temp-write: 4.0.0 '@lerna/package-graph@4.0.0': @@ -3094,7 +3243,7 @@ snapshots: '@lerna/validation-error': 4.0.0 npm-package-arg: 8.1.5 npmlog: 4.1.2 - semver: 7.5.4 + semver: 7.6.2 '@lerna/package@4.0.0': dependencies: @@ -3104,7 +3253,7 @@ snapshots: '@lerna/prerelease-id-from-version@4.0.0': dependencies: - semver: 7.5.4 + semver: 7.6.2 '@lerna/profiler@4.0.0': dependencies: @@ -3161,7 +3310,7 @@ snapshots: p-map: 4.0.0 p-pipe: 3.1.0 pacote: 11.3.5 - semver: 7.5.4 + semver: 7.6.2 transitivePeerDependencies: - bluebird - encoding @@ -3257,7 +3406,7 @@ snapshots: p-pipe: 3.1.0 p-reduce: 2.1.0 p-waterfall: 2.1.1 - semver: 7.5.4 + semver: 7.6.2 slash: 3.0.0 temp-write: 4.0.0 write-json-file: 4.3.0 @@ -3271,7 +3420,7 @@ snapshots: '@milahu/patch-package@6.4.14': dependencies: - '@types/dashdash': 1.14.1 + '@types/dashdash': 1.14.3 '@yarnpkg/lockfile': 1.1.0 chalk: 2.4.2 cross-spawn: 7.0.3 @@ -3282,10 +3431,10 @@ snapshots: klaw-sync: 6.0.0 open: 8.4.2 rimraf: 3.0.2 - semver: 7.5.4 + semver: 7.6.2 shlex: 2.1.2 slash: 2.0.0 - tmp: 0.2.1 + tmp: 0.2.3 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -3297,14 +3446,14 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.17.1 '@npmcli/ci-detect@1.4.0': {} '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 - semver: 7.5.4 + semver: 7.6.2 '@npmcli/git@2.1.0': dependencies: @@ -3314,7 +3463,7 @@ snapshots: npm-pick-manifest: 6.1.1 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.5.4 + semver: 7.6.2 which: 2.0.2 transitivePeerDependencies: - bluebird @@ -3354,7 +3503,7 @@ snapshots: '@octokit/request-error': 2.1.0 '@octokit/types': 6.41.0 before-after-hook: 2.2.3 - universal-user-agent: 6.0.0 + universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding @@ -3362,13 +3511,13 @@ snapshots: dependencies: '@octokit/types': 6.41.0 is-plain-object: 5.0.0 - universal-user-agent: 6.0.0 + universal-user-agent: 6.0.1 '@octokit/graphql@4.8.0(encoding@0.1.13)': dependencies: '@octokit/request': 5.6.3(encoding@0.1.13) '@octokit/types': 6.41.0 - universal-user-agent: 6.0.0 + universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding @@ -3403,8 +3552,8 @@ snapshots: '@octokit/request-error': 2.1.0 '@octokit/types': 6.41.0 is-plain-object: 5.0.0 - node-fetch: 2.6.12(encoding@0.1.13) - universal-user-agent: 6.0.0 + node-fetch: 2.7.0(encoding@0.1.13) + universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding @@ -3423,17 +3572,17 @@ snapshots: '@tootallnate/once@1.1.2': {} - '@types/dashdash@1.14.1': {} + '@types/dashdash@1.14.3': {} '@types/minimatch@3.0.5': {} - '@types/minimist@1.2.2': {} + '@types/minimist@1.2.5': {} '@types/node@17.0.45': {} - '@types/normalize-package-data@2.4.1': {} + '@types/normalize-package-data@2.4.4': {} - '@types/parse-json@4.0.0': {} + '@types/parse-json@4.0.2': {} '@yarnpkg/lockfile@1.1.0': {} @@ -3448,17 +3597,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color - agentkeepalive@4.3.0: + agentkeepalive@4.5.0: dependencies: - debug: 4.3.4 - depd: 2.0.0 humanize-ms: 1.2.1 - transitivePeerDependencies: - - supports-color aggregate-error@3.1.0: dependencies: @@ -3497,10 +3642,10 @@ snapshots: delegates: 1.0.0 readable-stream: 2.3.8 - array-buffer-byte-length@1.0.0: + array-buffer-byte-length@1.0.1: dependencies: - call-bind: 1.0.2 - is-array-buffer: 3.0.2 + call-bind: 1.0.7 + is-array-buffer: 3.0.4 array-differ@3.0.0: {} @@ -3508,14 +3653,27 @@ snapshots: array-union@2.1.0: {} - array.prototype.reduce@1.0.5: + array.prototype.reduce@1.0.7: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 es-array-method-boxes-properly: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 is-string: 1.0.7 + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + arrify@1.0.1: {} arrify@2.0.1: {} @@ -3532,11 +3690,13 @@ snapshots: at-least-node@1.0.0: {} - available-typed-arrays@1.0.5: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 aws-sign2@0.7.0: {} - aws4@1.12.0: {} + aws4@1.13.0: {} balanced-match@1.0.2: {} @@ -3551,9 +3711,9 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - braces@3.0.2: + braces@3.0.3: dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 buffer-from@1.1.2: {} @@ -3581,15 +3741,18 @@ snapshots: promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 8.0.1 - tar: 6.1.15 + tar: 6.2.1 unique-filename: 1.1.1 transitivePeerDependencies: - bluebird - call-bind@1.0.2: + call-bind@1.0.7: dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 + 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.2 callsites@3.1.0: {} @@ -3609,11 +3772,6 @@ snapshots: escape-string-regexp: 1.0.5 supports-color: 5.5.0 - chalk@3.0.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -3627,7 +3785,7 @@ snapshots: ci-info@2.0.0: {} - ci-info@3.8.0: {} + ci-info@3.9.0: {} clean-stack@2.2.0: {} @@ -3727,7 +3885,7 @@ snapshots: dependencies: conventional-commits-filter: 2.0.7 dateformat: 3.0.3 - handlebars: 4.7.7 + handlebars: 4.7.8 json-stringify-safe: 5.0.1 lodash: 4.17.21 meow: 8.1.2 @@ -3766,7 +3924,7 @@ snapshots: cosmiconfig@7.1.0: dependencies: - '@types/parse-json': 4.0.0 + '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 @@ -3790,9 +3948,27 @@ snapshots: data-uri-to-buffer@4.0.1: {} + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dateformat@3.0.3: {} - debug@4.3.4: + debug@4.3.5: dependencies: ms: 2.1.2 @@ -3813,11 +3989,18 @@ snapshots: dependencies: clone: 1.0.4 + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + define-lazy-prop@2.0.0: {} - define-properties@1.2.0: + define-properties@1.2.1: dependencies: - has-property-descriptors: 1.0.0 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 delayed-stream@1.0.0: {} @@ -3826,8 +4009,6 @@ snapshots: denque@2.1.0: {} - depd@2.0.0: {} - deprecation@2.3.1: {} detect-indent@5.0.0: {} @@ -3871,7 +4052,7 @@ snapshots: env-paths@2.2.1: {} - envinfo@7.10.0: {} + envinfo@7.13.0: {} err-code@2.0.3: {} @@ -3879,50 +4060,72 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.21.2: - dependencies: - array-buffer-byte-length: 1.0.0 - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 + es-abstract@1.23.3: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.1 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 is-callable: 1.2.7 - is-negative-zero: 2.0.2 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.12.3 + object-inspect: 1.13.1 object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-length: 1.0.4 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 - which-typed-array: 1.1.10 + which-typed-array: 1.1.15 es-array-method-boxes-properly@1.0.0: {} - es-set-tostringtag@2.0.1: + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - has-tostringtag: 1.0.0 + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 es-to-primitive@1.2.1: dependencies: @@ -3930,33 +4133,33 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild@0.20.0: + esbuild@0.21.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.20.0 - '@esbuild/android-arm': 0.20.0 - '@esbuild/android-arm64': 0.20.0 - '@esbuild/android-x64': 0.20.0 - '@esbuild/darwin-arm64': 0.20.0 - '@esbuild/darwin-x64': 0.20.0 - '@esbuild/freebsd-arm64': 0.20.0 - '@esbuild/freebsd-x64': 0.20.0 - '@esbuild/linux-arm': 0.20.0 - '@esbuild/linux-arm64': 0.20.0 - '@esbuild/linux-ia32': 0.20.0 - '@esbuild/linux-loong64': 0.20.0 - '@esbuild/linux-mips64el': 0.20.0 - '@esbuild/linux-ppc64': 0.20.0 - '@esbuild/linux-riscv64': 0.20.0 - '@esbuild/linux-s390x': 0.20.0 - '@esbuild/linux-x64': 0.20.0 - '@esbuild/netbsd-x64': 0.20.0 - '@esbuild/openbsd-x64': 0.20.0 - '@esbuild/sunos-x64': 0.20.0 - '@esbuild/win32-arm64': 0.20.0 - '@esbuild/win32-ia32': 0.20.0 - '@esbuild/win32-x64': 0.20.0 - - escalade@3.1.1: {} + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + escalade@3.1.2: {} escape-string-regexp@1.0.5: {} @@ -3998,30 +4201,30 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-glob@3.3.0: + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 fast-json-stable-stringify@2.1.0: {} - fastq@1.15.0: + fastq@1.17.1: dependencies: reusify: 1.0.4 fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 - web-streams-polyfill: 3.2.1 + web-streams-polyfill: 3.3.3 figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 - fill-range@7.0.1: + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -4038,7 +4241,7 @@ snapshots: find-yarn-workspace-root@2.0.0: dependencies: - micromatch: 4.0.5 + micromatch: 4.0.7 for-each@0.3.3: dependencies: @@ -4060,14 +4263,14 @@ snapshots: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 fs-minipass@1.2.7: dependencies: @@ -4079,13 +4282,13 @@ snapshots: fs.realpath@1.0.0: {} - function-bind@1.1.1: {} + function-bind@1.1.2: {} - function.prototype.name@1.1.5: + function.prototype.name@1.1.6: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 functions-have-names: 1.2.3 functions-have-names@1.2.3: {} @@ -4107,12 +4310,13 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.1: + get-intrinsic@1.2.4: dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-proto: 1.0.1 + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 has-symbols: 1.0.3 + hasown: 2.0.2 get-pkg-repo@4.2.1: dependencies: @@ -4129,10 +4333,11 @@ snapshots: get-stream@6.0.1: {} - get-symbol-description@1.0.0: + get-symbol-description@1.0.2: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 getpass@0.1.7: dependencies: @@ -4182,33 +4387,34 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - globalthis@1.0.3: + globalthis@1.0.4: dependencies: - define-properties: 1.2.0 + define-properties: 1.2.1 + gopd: 1.0.1 globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.0 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 gopd@1.0.1: dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.4 graceful-fs@4.2.11: {} - handlebars@4.7.7: + handlebars@4.7.8: dependencies: minimist: 1.2.8 neo-async: 2.6.2 source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 + uglify-js: 3.18.0 har-schema@2.0.0: {} @@ -4225,23 +4431,23 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.0: + has-property-descriptors@1.0.2: dependencies: - get-intrinsic: 1.2.1 + es-define-property: 1.0.0 - has-proto@1.0.1: {} + has-proto@1.0.3: {} has-symbols@1.0.3: {} - has-tostringtag@1.0.0: + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 has-unicode@2.0.1: {} - has@1.0.3: + hasown@2.0.2: dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 hosted-git-info@2.8.9: {} @@ -4255,7 +4461,7 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -4263,12 +4469,12 @@ snapshots: dependencies: assert-plus: 1.0.0 jsprim: 1.4.2 - sshpk: 1.17.0 + sshpk: 1.18.0 https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -4292,7 +4498,7 @@ snapshots: dependencies: minimatch: 3.1.2 - ignore@5.2.4: {} + ignore@5.3.1: {} import-fresh@3.3.0: dependencies: @@ -4325,7 +4531,7 @@ snapshots: promzard: 0.3.0 read: 1.0.7 read-package-json: 4.1.2 - semver: 7.5.4 + semver: 7.6.2 validate-npm-package-license: 3.0.4 validate-npm-package-name: 3.0.0 @@ -4345,19 +4551,21 @@ snapshots: strip-ansi: 6.0.1 through: 2.3.8 - internal-slot@1.0.5: + internal-slot@1.0.7: dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - side-channel: 1.0.4 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 - ip@2.0.0: {} + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 - is-array-buffer@3.0.2: + is-array-buffer@3.0.4: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-arrayish@0.2.1: {} @@ -4367,8 +4575,8 @@ snapshots: is-boolean-object@1.1.2: dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 is-callable@1.2.7: {} @@ -4378,15 +4586,19 @@ snapshots: is-ci@3.0.1: dependencies: - ci-info: 3.8.0 + ci-info: 3.9.0 + + is-core-module@2.13.1: + dependencies: + hasown: 2.0.2 - is-core-module@2.12.1: + is-data-view@1.0.1: dependencies: - has: 1.0.3 + is-typed-array: 1.1.13 is-date-object@1.0.5: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-docker@2.2.1: {} @@ -4404,11 +4616,11 @@ snapshots: is-lambda@1.0.1: {} - is-negative-zero@2.0.2: {} + is-negative-zero@2.0.3: {} is-number-object@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -4428,12 +4640,12 @@ snapshots: is-regex@1.1.4: dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 - is-shared-array-buffer@1.0.2: + is-shared-array-buffer@1.0.3: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 is-ssh@1.4.0: dependencies: @@ -4443,7 +4655,7 @@ snapshots: is-string@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-symbol@1.0.4: dependencies: @@ -4453,19 +4665,15 @@ snapshots: dependencies: text-extensions: 1.9.0 - is-typed-array@1.1.10: + is-typed-array@1.1.13: dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 + which-typed-array: 1.1.15 is-typedarray@1.0.0: {} is-weakref@1.0.2: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 is-wsl@2.2.0: dependencies: @@ -4485,6 +4693,8 @@ snapshots: jsbn@0.1.1: {} + jsbn@1.1.0: {} + json-parse-better-errors@1.0.2: {} json-parse-even-better-errors@2.3.1: {} @@ -4497,7 +4707,7 @@ snapshots: jsonfile@6.1.0: dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 @@ -4556,7 +4766,7 @@ snapshots: normalize-package-data: 3.0.3 npm-package-arg: 8.1.5 npm-registry-fetch: 11.0.0 - semver: 7.5.4 + semver: 7.6.2 ssri: 8.0.1 transitivePeerDependencies: - bluebird @@ -4623,7 +4833,7 @@ snapshots: make-fetch-happen@8.0.14: dependencies: - agentkeepalive: 4.3.0 + agentkeepalive: 4.5.0 cacache: 15.3.0 http-cache-semantics: 4.1.1 http-proxy-agent: 4.0.1 @@ -4644,7 +4854,7 @@ snapshots: make-fetch-happen@9.1.0: dependencies: - agentkeepalive: 4.3.0 + agentkeepalive: 4.5.0 cacache: 15.3.0 http-cache-semantics: 4.1.1 http-proxy-agent: 4.0.1 @@ -4670,7 +4880,7 @@ snapshots: meow@8.1.2: dependencies: - '@types/minimist': 1.2.2 + '@types/minimist': 1.2.5 camelcase-keys: 6.2.2 decamelize-keys: 1.1.1 hard-rejection: 2.1.0 @@ -4686,9 +4896,9 @@ snapshots: merge2@1.4.1: {} - micromatch@4.0.5: + micromatch@4.0.7: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 mime-db@1.52.0: {} @@ -4782,14 +4992,6 @@ snapshots: ms@2.1.3: {} - multimatch@4.0.0: - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.2 - multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 @@ -4800,7 +5002,7 @@ snapshots: mute-stream@0.0.8: {} - mysql2@3.5.1: + mysql2@3.10.1: dependencies: denque: 2.1.0 generate-function: 2.3.1 @@ -4821,13 +5023,13 @@ snapshots: node-domexception@1.0.0: {} - node-fetch@2.6.12(encoding@0.1.13): + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 optionalDependencies: encoding: 0.1.13 - node-fetch@3.3.1: + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 @@ -4856,8 +5058,8 @@ snapshots: npmlog: 4.1.2 request: 2.88.2 rimraf: 3.0.2 - semver: 7.5.4 - tar: 6.1.15 + semver: 7.6.2 + tar: 6.2.1 which: 2.0.2 nopt@4.0.3: @@ -4872,15 +5074,15 @@ snapshots: normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.2 + resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.12.1 - semver: 7.5.4 + is-core-module: 2.13.1 + semver: 7.6.2 validate-npm-package-license: 3.0.4 normalize-url@6.1.0: {} @@ -4891,7 +5093,7 @@ snapshots: npm-install-checks@4.0.0: dependencies: - semver: 7.5.4 + semver: 7.6.2 npm-lifecycle@3.1.5: dependencies: @@ -4909,7 +5111,7 @@ snapshots: npm-package-arg@8.1.5: dependencies: hosted-git-info: 4.1.0 - semver: 7.5.4 + semver: 7.6.2 validate-npm-package-name: 3.0.0 npm-packlist@2.2.2: @@ -4924,7 +5126,7 @@ snapshots: npm-install-checks: 4.0.0 npm-normalize-package-bin: 1.0.1 npm-package-arg: 8.1.5 - semver: 7.5.4 + semver: 7.6.2 npm-registry-fetch@11.0.0: dependencies: @@ -4969,24 +5171,26 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.12.3: {} + object-inspect@1.13.1: {} object-keys@1.1.1: {} - object.assign@4.1.4: + object.assign@4.1.5: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 + call-bind: 1.0.7 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - object.getownpropertydescriptors@2.1.6: + object.getownpropertydescriptors@2.1.8: dependencies: - array.prototype.reduce: 1.0.5 - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - safe-array-concat: 1.0.0 + array.prototype.reduce: 1.0.7 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + gopd: 1.0.1 + safe-array-concat: 1.1.2 once@1.4.0: dependencies: @@ -5076,7 +5280,7 @@ snapshots: read-package-json-fast: 2.0.3 rimraf: 3.0.2 ssri: 8.0.1 - tar: 6.1.15 + tar: 6.2.1 transitivePeerDependencies: - bluebird - supports-color @@ -5092,7 +5296,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -5101,7 +5305,7 @@ snapshots: dependencies: is-ssh: 1.4.0 protocols: 1.4.8 - qs: 6.11.2 + qs: 6.12.1 query-string: 6.14.1 parse-url@6.0.5: @@ -5129,8 +5333,12 @@ snapshots: performance-now@2.1.0: {} + picocolors@1.0.1: {} + picomatch@2.3.1: {} + picomatch@3.0.1: {} + pify@2.3.0: {} pify@3.0.0: {} @@ -5143,19 +5351,22 @@ snapshots: dependencies: find-up: 4.1.0 + possible-typed-array-names@1.0.0: {} + postinstall-postinstall@2.1.0: {} prettier@2.8.8: {} - pretty-quick@3.1.3(prettier@2.8.8): + pretty-quick@3.3.1(prettier@2.8.8): dependencies: - chalk: 3.0.0 execa: 4.1.0 find-up: 4.1.0 - ignore: 5.2.4 + ignore: 5.3.1 mri: 1.2.0 - multimatch: 4.0.0 + picocolors: 1.0.1 + picomatch: 3.0.1 prettier: 2.8.8 + tslib: 2.6.3 process-nextick-args@2.0.1: {} @@ -5183,13 +5394,13 @@ snapshots: end-of-stream: 1.4.4 once: 1.4.0 - punycode@2.3.0: {} + punycode@2.3.1: {} q@1.5.1: {} - qs@6.11.2: + qs@6.12.1: dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 qs@6.5.3: {} @@ -5257,7 +5468,7 @@ snapshots: read-pkg@5.2.0: dependencies: - '@types/normalize-package-data': 2.4.1 + '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 @@ -5294,16 +5505,17 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - regexp.prototype.flags@1.5.0: + regexp.prototype.flags@1.5.2: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 request@2.88.2: dependencies: aws-sign2: 0.7.0 - aws4: 1.12.0 + aws4: 1.13.0 caseless: 0.12.0 combined-stream: 1.0.8 extend: 3.0.2 @@ -5333,9 +5545,9 @@ snapshots: resolve-from@5.0.0: {} - resolve@1.22.2: + resolve@1.22.8: dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -5366,10 +5578,10 @@ snapshots: dependencies: tslib: 1.14.1 - safe-array-concat@1.0.0: + safe-array-concat@1.1.2: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 @@ -5377,10 +5589,10 @@ snapshots: safe-buffer@5.2.1: {} - safe-regex-test@1.0.0: + safe-regex-test@1.0.3: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.7 + es-errors: 1.3.0 is-regex: 1.1.4 safer-buffer@2.1.2: {} @@ -5389,14 +5601,28 @@ snapshots: semver@6.3.1: {} - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 + semver@7.6.2: {} seq-queue@0.0.5: {} set-blocking@2.0.0: {} + set-function-length@1.2.2: + 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 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 @@ -5409,11 +5635,12 @@ snapshots: shlex@2.1.2: {} - side-channel@1.0.4: + side-channel@1.0.6: dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 signal-exit@3.0.7: {} @@ -5428,22 +5655,22 @@ snapshots: socks-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4 - socks: 2.7.1 + debug: 4.3.5 + socks: 2.8.3 transitivePeerDependencies: - supports-color socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4 - socks: 2.7.1 + debug: 4.3.5 + socks: 2.8.3 transitivePeerDependencies: - supports-color - socks@2.7.1: + socks@2.8.3: dependencies: - ip: 2.0.0 + ip-address: 9.0.5 smart-buffer: 4.2.0 sort-keys@2.0.0: @@ -5459,16 +5686,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.13 + spdx-license-ids: 3.0.18 - spdx-exceptions@2.3.0: {} + spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.18 - spdx-license-ids@3.0.13: {} + spdx-license-ids@3.0.18: {} split-on-first@1.1.0: {} @@ -5480,9 +5707,11 @@ snapshots: dependencies: through: 2.3.8 + sprintf-js@1.1.3: {} + sqlstring@2.3.3: {} - sshpk@1.17.0: + sshpk@1.18.0: dependencies: asn1: 0.2.6 assert-plus: 1.0.0 @@ -5512,23 +5741,24 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string.prototype.trim@1.2.7: + string.prototype.trim@1.2.9: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 - string.prototype.trimend@1.0.6: + string.prototype.trimend@1.0.8: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 - string.prototype.trimstart@1.0.6: + string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 string_decoder@1.1.1: dependencies: @@ -5582,7 +5812,7 @@ snapshots: safe-buffer: 5.2.1 yallist: 3.1.1 - tar@6.1.15: + tar@6.2.1: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -5618,9 +5848,7 @@ snapshots: dependencies: os-tmpdir: 1.0.2 - tmp@0.2.1: - dependencies: - rimraf: 3.0.2 + tmp@0.2.3: {} to-regex-range@5.0.1: dependencies: @@ -5629,18 +5857,20 @@ snapshots: tough-cookie@2.5.0: dependencies: psl: 1.9.0 - punycode: 2.3.0 + punycode: 2.3.1 tr46@0.0.3: {} tr46@2.1.0: dependencies: - punycode: 2.3.0 + punycode: 2.3.1 trim-newlines@3.0.1: {} tslib@1.14.1: {} + tslib@2.6.3: {} + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -5657,11 +5887,37 @@ snapshots: type-fest@0.8.1: {} - typed-array-length@1.0.4: + typed-array-buffer@1.0.2: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 - is-typed-array: 1.1.10 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 typedarray-to-buffer@3.1.5: dependencies: @@ -5669,9 +5925,9 @@ snapshots: typedarray@0.0.6: {} - typescript@5.3.3: {} + typescript@5.4.5: {} - uglify-js@3.17.4: + uglify-js@3.18.0: optional: true uid-number@0.0.6: {} @@ -5680,7 +5936,7 @@ snapshots: unbox-primitive@1.0.2: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -5693,21 +5949,21 @@ snapshots: dependencies: imurmurhash: 0.1.4 - universal-user-agent@6.0.0: {} + universal-user-agent@6.0.1: {} - universalify@2.0.0: {} + universalify@2.0.1: {} upath@2.0.1: {} uri-js@4.4.1: dependencies: - punycode: 2.3.0 + punycode: 2.3.1 util-deprecate@1.0.2: {} util-promisify@2.1.0: dependencies: - object.getownpropertydescriptors: 2.1.6 + object.getownpropertydescriptors: 2.1.8 uuid@3.4.0: {} @@ -5730,7 +5986,7 @@ snapshots: dependencies: defaults: 1.0.4 - web-streams-polyfill@3.2.1: {} + web-streams-polyfill@3.3.3: {} webidl-conversions@3.0.1: {} @@ -5755,14 +6011,13 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-typed-array@1.1.10: + which-typed-array@1.1.15: dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 + has-tostringtag: 1.0.2 which@1.3.1: dependencies: @@ -5840,7 +6095,7 @@ snapshots: yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 From 0691160aeb6c1d657d9c8d1ecc2e2dec5569c32c Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 16:39:53 +1000 Subject: [PATCH 06/16] fix(database/connection): disable typecasting for execute method --- src/database/connection.ts | 9 +++++++-- src/utils/typeCast.ts | 29 +++++++++++++++++------------ 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/database/connection.ts b/src/database/connection.ts index 6c51eed..92c8380 100644 --- a/src/database/connection.ts +++ b/src/database/connection.ts @@ -1,8 +1,9 @@ -import type { Connection, PoolConnection } from 'mysql2/promise'; +import type { Connection, PoolConnection, TypeCast } from 'mysql2/promise'; import { scheduleTick } from '../utils/scheduleTick'; import { sleep } from '../utils/sleep'; import { pool } from './pool'; import type { CFXParameters } from 'types'; +import { typeCastExecute } from 'utils/typeCast'; (Symbol as any).dispose ??= Symbol('Symbol.dispose'); @@ -34,7 +35,11 @@ export class MySql { async execute(query: string, values: CFXParameters = []) { scheduleTick(); - const [result] = await this.connection.execute(query, values); + const [result] = await this.connection.execute({ + sql: query, + values: values, + typeCast: typeCastExecute as TypeCast, + }); return result; } diff --git a/src/utils/typeCast.ts b/src/utils/typeCast.ts index eff3cc6..fd255a9 100644 --- a/src/utils/typeCast.ts +++ b/src/utils/typeCast.ts @@ -1,30 +1,35 @@ -import { FieldPacket } from 'mysql2'; +import type { TypeCastField, TypeCastNext } from 'mysql2/promise'; const BINARY_CHARSET = 63; -type Field = { - type: string; - length: number; - packet: FieldPacket; +interface Field extends TypeCastField { charset: number; - string: () => string; - buffer: () => number[]; -}; +} -export const typeCast = (field: Field, next: () => void) => { +/** + * node-mysql2 v3.9.0 introduced (breaking) typecasting for execute methods. + */ +export function typeCastExecute(field: Field, next: TypeCastNext) { + return next(); +} + +/** + * mysql-async compatible typecasting. + */ +export function typeCast(field: Field, next: TypeCastNext) { switch (field.type) { case 'DATETIME': case 'DATETIME2': case 'TIMESTAMP': case 'TIMESTAMP2': case 'NEWDATE': - return new Date(field.string()).getTime(); + return new Date(field.string() || '').getTime(); case 'DATE': return new Date(field.string() + ' 00:00:00').getTime(); case 'TINY': return field.length === 1 ? field.string() === '1' : next(); case 'BIT': - return field.length === 1 ? field.buffer()[0] === 1 : field.buffer()[0]; + return field.length === 1 ? field.buffer()?.[0] === 1 : field.buffer()?.[0]; case 'TINY_BLOB': case 'MEDIUM_BLOB': case 'LONG_BLOB': @@ -38,4 +43,4 @@ export const typeCast = (field: Field, next: () => void) => { default: return next(); } -}; +} From 5697326ae97e6df5a83338038784bb86f70f8652 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 18:08:26 +1000 Subject: [PATCH 07/16] feat(logger): add fivemanage logging service --- .github/workflows/release.yml | 6 ++-- README.md | 18 ++++++------ build.js | 5 +++- logger/fivemanage.js | 52 +++++++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+), 14 deletions(-) create mode 100644 logger/fivemanage.js diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bf5ca0b..a7ab0c3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,12 +57,10 @@ jobs: - name: Bundle files run: | - mkdir -p ./temp/oxmysql - mkdir -p ./temp/oxmysql/web/ - mkdir -p ./temp/oxmysql/lib/ + mkdir -p ./temp/oxmysql/{web,lib} cp ./{LICENSE,README.md,fxmanifest.lua,ui.lua} ./temp/oxmysql cp ./lib/MySQL.lua ./temp/oxmysql/lib - cp -r ./dist ./temp/oxmysql + cp -r ./dist ./logger ./temp/oxmysql cp -r ./web/build ./temp/oxmysql/web/ cd ./temp && zip -r ../oxmysql.zip ./oxmysql diff --git a/README.md b/README.md index 38e9019..c9ca245 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,13 @@ A FiveM resource to communicate with a MySQL database using [node-mysql2](https: ![](https://img.shields.io/github/contributors/overextended/oxmysql?logo=github) ![](https://img.shields.io/github/v/release/overextended/oxmysql?logo=github) -## 📚 Documentation - -https://overextended.dev/oxmysql - -## 💾 Download - -https://github.com/overextended/oxmysql/releases/latest/download/oxmysql.zip +## 🔗 Links +- 💾 [Download](https://github.com/overextended/oxmysql/releases/latest/download/oxmysql.zip) + - Download the latest release directly. +- 📚 [Documentation](https://overextended.dev/oxmysql) + - For installation, setup, and everything else. +- 📦 [npm](https://www.npmjs.com/package/@overextended/oxmysql) + - Use our npm package for enhanced functionality and TypeScript support. ## ✨ Features @@ -24,9 +24,9 @@ https://github.com/overextended/oxmysql/releases/latest/download/oxmysql.zip - Support for URI connection strings and semicolon separated values. - Improved parameter checking and error handling. -## npm Package +## 🧾 Logging -https://www.npmjs.com/package/@overextended/oxmysql +We have included a module for submitting error logs to [Fivemanage](https://fivemanage.com/?ref=overextended), a cloud management service tailored for game servers. Additional logging options and support for other services will be available in the future. ## Lua Language Server diff --git a/build.js b/build.js index 047a8c6..1e5524b 100644 --- a/build.js +++ b/build.js @@ -37,7 +37,10 @@ dependencies { } client_script 'ui.lua' -server_script 'dist/build.js' +server_scripts { + 'dist/build.js', + 'logger/fivemanage.js' +} files { 'web/build/index.html', diff --git a/logger/fivemanage.js b/logger/fivemanage.js new file mode 100644 index 0000000..0119fea --- /dev/null +++ b/logger/fivemanage.js @@ -0,0 +1,52 @@ +// https://fivemanage.com/?ref=overextended + +const apiKey = GetConvar('FIVEMANAGE_LOGS_API_KEY', ''); +const endpoint = 'https://api.fivemanage.com/api/logs/batch'; + +const headers = { + ['Content-Type']: 'application/json', + ['Authorization']: apiKey, + ['User-Agent']: 'oxmysql', +}; + +const batchedLogs = []; + +async function sendLogs() { + try { + const body = JSON.stringify(batchedLogs); + batchedLogs.length = 0; + + const response = await fetch(endpoint, { + method: 'POST', + body: body, + headers: headers, + }); + + if (response.ok) return; + + console.error(`Failed to submit logs to fivemanage - ${response.status} ${response.statusText}`); + } catch (err) { + console.error(err); + } +} + +async function logger(level, resource, message, metadata) { + if (!apiKey) return; + + if (batchedLogs.length === 0) setTimeout(sendLogs, 500); + + batchedLogs.push({ + level: level, + message: message, + resource: resource, + metadata: metadata, + }); +} + +function errorEvent(data) { + delete data.err.sqlMessage; + logger('error', data.resource, `${data.resource} was unable to execute a query!`, data.err); +} + +on('oxmysql:error', errorEvent); +on('oxmysql:transaction-error', errorEvent); From e91686c01110040771f835c48089085daf9dd7d2 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 23:01:42 +1000 Subject: [PATCH 08/16] fix(utils/typeCast): correctly parse null date fields --- src/utils/typeCast.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/utils/typeCast.ts b/src/utils/typeCast.ts index fd255a9..9ad8fa9 100644 --- a/src/utils/typeCast.ts +++ b/src/utils/typeCast.ts @@ -22,10 +22,14 @@ export function typeCast(field: Field, next: TypeCastNext) { case 'DATETIME2': case 'TIMESTAMP': case 'TIMESTAMP2': - case 'NEWDATE': - return new Date(field.string() || '').getTime(); - case 'DATE': - return new Date(field.string() + ' 00:00:00').getTime(); + case 'NEWDATE': { + const value = field.string(); + return value ? new Date(value).getTime() : null; + } + case 'DATE': { + const value = field.string(); + return value ? new Date(value + ' 00:00:00').getTime() : null; + } case 'TINY': return field.length === 1 ? field.string() === '1' : next(); case 'BIT': From 75b5e4572524e0f7f054e339aa14828fc5297757 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 23:40:42 +1000 Subject: [PATCH 09/16] fix(patches/mysql): missing charset patch --- patches/mysql2+3.10.1.patch | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/patches/mysql2+3.10.1.patch b/patches/mysql2+3.10.1.patch index ea186b4..02ee701 100644 --- a/patches/mysql2+3.10.1.patch +++ b/patches/mysql2+3.10.1.patch @@ -128,7 +128,7 @@ index daf1df9..0862ce1 100644 case 'number': type = Types.DOUBLE; diff --git a/node_modules/mysql2/lib/parsers/binary_parser.js b/node_modules/mysql2/lib/parsers/binary_parser.js -index bf0995d..3e3ce6d 100644 +index bf0995d..9d52cc4 100644 --- a/node_modules/mysql2/lib/parsers/binary_parser.js +++ b/node_modules/mysql2/lib/parsers/binary_parser.js @@ -75,7 +75,7 @@ function readCodeFor(field, config, options, fieldNum) { @@ -140,3 +140,35 @@ index bf0995d..3e3ce6d 100644 } return `packet.readLengthCodedString(fields[${fieldNum}].encoding)`; } +@@ -92,6 +92,7 @@ function compile(fields, options, config) { + db: field.schema, + table: field.table, + name: field.name, ++ charset: field.characterSet, + string: function (encoding = field.encoding) { + if (field.columnType === Types.JSON && encoding === field.encoding) { + // Since for JSON columns mysql always returns charset 63 (BINARY), +diff --git a/node_modules/mysql2/lib/parsers/text_parser.js b/node_modules/mysql2/lib/parsers/text_parser.js +index f66a185..55c8b63 100644 +--- a/node_modules/mysql2/lib/parsers/text_parser.js ++++ b/node_modules/mysql2/lib/parsers/text_parser.js +@@ -88,6 +88,7 @@ function compile(fields, options, config) { + db: field.schema, + table: field.table, + name: field.name, ++ charset: field.characterSet, + string: function (encoding = field.encoding) { + if (field.columnType === Types.JSON && encoding === field.encoding) { + // Since for JSON columns mysql always returns charset 63 (BINARY), +diff --git a/node_modules/mysql2/typings/mysql/lib/parsers/typeCast.d.ts b/node_modules/mysql2/typings/mysql/lib/parsers/typeCast.d.ts +index 65bfaa8..52ab677 100644 +--- a/node_modules/mysql2/typings/mysql/lib/parsers/typeCast.d.ts ++++ b/node_modules/mysql2/typings/mysql/lib/parsers/typeCast.d.ts +@@ -43,6 +43,7 @@ export type Field = Type & { + db: string; + table: string; + name: string; ++ charset: number; + string: (encoding?: BufferEncoding | string | undefined) => string | null; + buffer: () => Buffer | null; + geometry: () => Geometry | Geometry[] | null; From 9ee0f62d63c9f83a0c141b9bb976dcb9967ccf89 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 17 Jun 2024 23:42:12 +1000 Subject: [PATCH 10/16] chore(utils/typeCast): use patched type --- src/config.ts | 1 + src/database/connection.ts | 2 +- src/utils/typeCast.ts | 8 ++------ 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/config.ts b/src/config.ts index 0c2cea5..4f73fd1 100644 --- a/src/config.ts +++ b/src/config.ts @@ -106,6 +106,7 @@ export function getConnectionOptions(): ConnectionOptions { connectTimeout: 60000, trace: false, supportBigNumbers: true, + jsonStrings: true, ...options, typeCast, namedPlaceholders: false, // we use our own named-placeholders patch, disable mysql2s diff --git a/src/database/connection.ts b/src/database/connection.ts index 92c8380..5233569 100644 --- a/src/database/connection.ts +++ b/src/database/connection.ts @@ -38,7 +38,7 @@ export class MySql { const [result] = await this.connection.execute({ sql: query, values: values, - typeCast: typeCastExecute as TypeCast, + typeCast: typeCastExecute, }); return result; } diff --git a/src/utils/typeCast.ts b/src/utils/typeCast.ts index 9ad8fa9..456ecfe 100644 --- a/src/utils/typeCast.ts +++ b/src/utils/typeCast.ts @@ -2,21 +2,17 @@ import type { TypeCastField, TypeCastNext } from 'mysql2/promise'; const BINARY_CHARSET = 63; -interface Field extends TypeCastField { - charset: number; -} - /** * node-mysql2 v3.9.0 introduced (breaking) typecasting for execute methods. */ -export function typeCastExecute(field: Field, next: TypeCastNext) { +export function typeCastExecute(field: TypeCastField, next: TypeCastNext) { return next(); } /** * mysql-async compatible typecasting. */ -export function typeCast(field: Field, next: TypeCastNext) { +export function typeCast(field: TypeCastField, next: TypeCastNext) { switch (field.type) { case 'DATETIME': case 'DATETIME2': From 08766b7075b0ba2552bb65affaecba5bc915dce8 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Thu, 4 Jul 2024 11:17:28 +1000 Subject: [PATCH 11/16] chore: update dependencies --- package.json | 14 ++-- ...ysql2+3.10.1.patch => mysql2+3.10.2.patch} | 4 +- pnpm-lock.yaml | 68 ++++++++++--------- 3 files changed, 44 insertions(+), 42 deletions(-) rename patches/{mysql2+3.10.1.patch => mysql2+3.10.2.patch} (99%) diff --git a/package.json b/package.json index d0544ef..7a1cd57 100644 --- a/package.json +++ b/package.json @@ -25,19 +25,19 @@ "postinstall": "patch-package && pnpm bootstrap" }, "dependencies": { - "@citizenfx/server": "2.0.5132-1", "@milahu/patch-package": "^6.4.14", - "@types/node": "^17.0.45", - "mysql2": "3.10.1", + "mysql2": "3.10.2", "named-placeholders": "^1.1.3", - "node-fetch": "^3.3.2", - "prettier": "^2.8.8" + "node-fetch": "^3.3.2" }, "devDependencies": { + "@citizenfx/server": "2.0.5132-1", + "@types/node": "^17.0.45", + "prettier": "^2.8.8", "esbuild": "^0.21.5", "lerna": "^4.0.0", "postinstall-postinstall": "^2.1.0", "pretty-quick": "^3.3.1", - "typescript": "^5.4.5" + "typescript": "^5.5.3" } -} \ No newline at end of file +} diff --git a/patches/mysql2+3.10.1.patch b/patches/mysql2+3.10.2.patch similarity index 99% rename from patches/mysql2+3.10.1.patch rename to patches/mysql2+3.10.2.patch index 02ee701..f210a51 100644 --- a/patches/mysql2+3.10.1.patch +++ b/patches/mysql2+3.10.2.patch @@ -1,7 +1,7 @@ # generated by patch-package 6.4.14 # # declared package: -# mysql2: 3.10.1 +# mysql2: 3.10.2 # diff --git a/node_modules/mysql2/lib/connection.js b/node_modules/mysql2/lib/connection.js index 113fc7d..3a997a4 100644 @@ -128,7 +128,7 @@ index daf1df9..0862ce1 100644 case 'number': type = Types.DOUBLE; diff --git a/node_modules/mysql2/lib/parsers/binary_parser.js b/node_modules/mysql2/lib/parsers/binary_parser.js -index bf0995d..9d52cc4 100644 +index c80bf96..da453ca 100644 --- a/node_modules/mysql2/lib/parsers/binary_parser.js +++ b/node_modules/mysql2/lib/parsers/binary_parser.js @@ -75,7 +75,7 @@ function readCodeFor(field, config, options, fieldNum) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dad08f5..dd71c19 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,28 +8,25 @@ importers: .: dependencies: - '@citizenfx/server': - specifier: 2.0.5132-1 - version: 2.0.5132-1 '@milahu/patch-package': specifier: ^6.4.14 version: 6.4.14 - '@types/node': - specifier: ^17.0.45 - version: 17.0.45 mysql2: - specifier: 3.10.1 - version: 3.10.1 + specifier: 3.10.2 + version: 3.10.2 named-placeholders: specifier: ^1.1.3 version: 1.1.3 node-fetch: specifier: ^3.3.2 version: 3.3.2 - prettier: - specifier: ^2.8.8 - version: 2.8.8 devDependencies: + '@citizenfx/server': + specifier: 2.0.5132-1 + version: 2.0.5132-1 + '@types/node': + specifier: ^17.0.45 + version: 17.0.45 esbuild: specifier: ^0.21.5 version: 0.21.5 @@ -39,12 +36,15 @@ importers: postinstall-postinstall: specifier: ^2.1.0 version: 2.1.0 + prettier: + specifier: ^2.8.8 + version: 2.8.8 pretty-quick: specifier: ^3.3.1 version: 3.3.1(prettier@2.8.8) typescript: - specifier: ^5.4.5 - version: 5.4.5 + specifier: ^5.5.3 + version: 5.5.3 packages: @@ -1461,8 +1461,9 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} is-data-view@1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} @@ -1832,8 +1833,8 @@ packages: mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - mysql2@3.10.1: - resolution: {integrity: sha512-6zo1T3GILsXMCex3YEu7hCz2OXLUarxFsxvFcUHWMpkPtmZLeTTWgRdc1gWyNJiYt6AxITmIf9bZDRy/jAfWew==} + mysql2@3.10.2: + resolution: {integrity: sha512-KCXPEvAkO0RcHPr362O5N8tFY2fXvbjfkPvRY/wGumh4EOemo9Hm5FjQZqv/pCmrnuxGu5OxnSENG0gTXqKMgQ==} engines: {node: '>= 8.0'} named-placeholders@1.1.3: @@ -1947,8 +1948,9 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -2189,8 +2191,8 @@ packages: (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) - qs@6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + qs@6.12.2: + resolution: {integrity: sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==} engines: {node: '>=0.6'} qs@6.5.3: @@ -2653,8 +2655,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} engines: {node: '>=14.17'} hasBin: true @@ -4093,7 +4095,7 @@ snapshots: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 @@ -4588,7 +4590,7 @@ snapshots: dependencies: ci-info: 3.9.0 - is-core-module@2.13.1: + is-core-module@2.14.0: dependencies: hasown: 2.0.2 @@ -5002,7 +5004,7 @@ snapshots: mute-stream@0.0.8: {} - mysql2@3.10.1: + mysql2@3.10.2: dependencies: denque: 2.1.0 generate-function: 2.3.1 @@ -5081,7 +5083,7 @@ snapshots: normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.13.1 + is-core-module: 2.14.0 semver: 7.6.2 validate-npm-package-license: 3.0.4 @@ -5171,7 +5173,7 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.1: {} + object-inspect@1.13.2: {} object-keys@1.1.1: {} @@ -5305,7 +5307,7 @@ snapshots: dependencies: is-ssh: 1.4.0 protocols: 1.4.8 - qs: 6.12.1 + qs: 6.12.2 query-string: 6.14.1 parse-url@6.0.5: @@ -5398,7 +5400,7 @@ snapshots: q@1.5.1: {} - qs@6.12.1: + qs@6.12.2: dependencies: side-channel: 1.0.6 @@ -5547,7 +5549,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -5640,7 +5642,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 signal-exit@3.0.7: {} @@ -5925,7 +5927,7 @@ snapshots: typedarray@0.0.6: {} - typescript@5.4.5: {} + typescript@5.5.3: {} uglify-js@3.18.0: optional: true From 71f5c69cd8578be296582ec87dca0b772ba796a7 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Thu, 4 Jul 2024 11:21:57 +1000 Subject: [PATCH 12/16] feat(utils/typeCast): support date typecasting for binary protocol Support for execute typecasting (used by prepare/rawExecute methods) was added recently, but did not support dates until 3.10.2. --- src/utils/typeCast.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/utils/typeCast.ts b/src/utils/typeCast.ts index 456ecfe..bdb8b9c 100644 --- a/src/utils/typeCast.ts +++ b/src/utils/typeCast.ts @@ -6,7 +6,22 @@ const BINARY_CHARSET = 63; * node-mysql2 v3.9.0 introduced (breaking) typecasting for execute methods. */ export function typeCastExecute(field: TypeCastField, next: TypeCastNext) { - return next(); + switch (field.type) { + case 'DATETIME': + case 'DATETIME2': + case 'TIMESTAMP': + case 'TIMESTAMP2': + case 'NEWDATE': { + const value = field.string(); + return value ? new Date(value).getTime() : null; + } + case 'DATE': { + const value = field.string(); + return value ? new Date(value + ' 00:00:00').getTime() : null; + } + default: + return next(); + } } /** From 8c6a14645f737a77eecad2e43787dad239378558 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Fri, 5 Jul 2024 14:38:07 +1000 Subject: [PATCH 13/16] chore: update build target to nodejs 20 --- build.js | 2 +- package.json | 6 +- pnpm-lock.yaml | 269 ++++++++++++++++++++++++---------------------- src/tsconfig.json | 6 +- 4 files changed, 150 insertions(+), 133 deletions(-) diff --git a/build.js b/build.js index 1e5524b..64edbc2 100644 --- a/build.js +++ b/build.js @@ -70,7 +70,7 @@ build({ dropLabels: ['DEV'], legalComments: 'inline', platform: 'node', - target: ['node16'], + target: ['node20.12.2'], format: 'cjs', logLevel: 'info', }); diff --git a/package.json b/package.json index 7a1cd57..f4ab186 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "scripts": { "build": "pnpm build:root && lerna run build", "build:root": "node build.js && cd lib && tsc", - "watch": "esbuild --watch --bundle --platform=node --target=node16.9.1 src/index.ts --outfile=dist/build.js", + "watch": "esbuild --watch --bundle --platform=node --target=node20.12.2 src/index.ts --outfile=dist/build.js", "lib": "tsc --project lib/tsconfig.lib.json", "bootstrap": "lerna bootstrap", "postinstall": "patch-package && pnpm bootstrap" @@ -32,9 +32,9 @@ }, "devDependencies": { "@citizenfx/server": "2.0.5132-1", - "@types/node": "^17.0.45", + "@types/node": "^20.12.2", "prettier": "^2.8.8", - "esbuild": "^0.21.5", + "esbuild": "^0.23.0", "lerna": "^4.0.0", "postinstall-postinstall": "^2.1.0", "pretty-quick": "^3.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd71c19..b05158c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,11 +25,11 @@ importers: specifier: 2.0.5132-1 version: 2.0.5132-1 '@types/node': - specifier: ^17.0.45 - version: 17.0.45 + specifier: ^20.12.2 + version: 20.14.9 esbuild: - specifier: ^0.21.5 - version: 0.21.5 + specifier: ^0.23.0 + version: 0.23.0 lerna: specifier: ^4.0.0 version: 4.0.0(encoding@0.1.13) @@ -63,141 +63,147 @@ packages: '@citizenfx/server@2.0.5132-1': resolution: {integrity: sha512-DGqijToliwQdodc9IK5wrqsqVukN12qXLGatJTZhUsxD0m2LfwBtxwqL4VpuYkFhJ+7wna5aotEItYCVZUOVqQ==} - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.23.0': + resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.23.0': + resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.23.0': + resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.23.0': + resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==} + engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.23.0': + resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.23.0': + resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.23.0': + resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.23.0': + resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.23.0': + resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.23.0': + resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.23.0': + resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.23.0': + resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.23.0': + resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.23.0': + resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.23.0': + resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.23.0': + resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.23.0': + resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.23.0': + resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + '@esbuild/openbsd-arm64@0.23.0': + resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.0': + resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.23.0': + resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.23.0': + resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.23.0': + resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + '@esbuild/win32-x64@0.23.0': + resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==} + engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -605,8 +611,8 @@ packages: '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/node@17.0.45': - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + '@types/node@20.14.9': + resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1089,9 +1095,9 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} + esbuild@0.23.0: + resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==} + engines: {node: '>=18'} hasBin: true escalade@3.1.2: @@ -2674,6 +2680,9 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} @@ -2831,73 +2840,76 @@ snapshots: '@citizenfx/server@2.0.5132-1': {} - '@esbuild/aix-ppc64@0.21.5': + '@esbuild/aix-ppc64@0.23.0': optional: true - '@esbuild/android-arm64@0.21.5': + '@esbuild/android-arm64@0.23.0': optional: true - '@esbuild/android-arm@0.21.5': + '@esbuild/android-arm@0.23.0': optional: true - '@esbuild/android-x64@0.21.5': + '@esbuild/android-x64@0.23.0': optional: true - '@esbuild/darwin-arm64@0.21.5': + '@esbuild/darwin-arm64@0.23.0': optional: true - '@esbuild/darwin-x64@0.21.5': + '@esbuild/darwin-x64@0.23.0': optional: true - '@esbuild/freebsd-arm64@0.21.5': + '@esbuild/freebsd-arm64@0.23.0': optional: true - '@esbuild/freebsd-x64@0.21.5': + '@esbuild/freebsd-x64@0.23.0': optional: true - '@esbuild/linux-arm64@0.21.5': + '@esbuild/linux-arm64@0.23.0': optional: true - '@esbuild/linux-arm@0.21.5': + '@esbuild/linux-arm@0.23.0': optional: true - '@esbuild/linux-ia32@0.21.5': + '@esbuild/linux-ia32@0.23.0': optional: true - '@esbuild/linux-loong64@0.21.5': + '@esbuild/linux-loong64@0.23.0': optional: true - '@esbuild/linux-mips64el@0.21.5': + '@esbuild/linux-mips64el@0.23.0': optional: true - '@esbuild/linux-ppc64@0.21.5': + '@esbuild/linux-ppc64@0.23.0': optional: true - '@esbuild/linux-riscv64@0.21.5': + '@esbuild/linux-riscv64@0.23.0': optional: true - '@esbuild/linux-s390x@0.21.5': + '@esbuild/linux-s390x@0.23.0': optional: true - '@esbuild/linux-x64@0.21.5': + '@esbuild/linux-x64@0.23.0': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@esbuild/netbsd-x64@0.23.0': optional: true - '@esbuild/openbsd-x64@0.21.5': + '@esbuild/openbsd-arm64@0.23.0': optional: true - '@esbuild/sunos-x64@0.21.5': + '@esbuild/openbsd-x64@0.23.0': optional: true - '@esbuild/win32-arm64@0.21.5': + '@esbuild/sunos-x64@0.23.0': optional: true - '@esbuild/win32-ia32@0.21.5': + '@esbuild/win32-arm64@0.23.0': optional: true - '@esbuild/win32-x64@0.21.5': + '@esbuild/win32-ia32@0.23.0': + optional: true + + '@esbuild/win32-x64@0.23.0': optional: true '@gar/promisify@1.1.3': {} @@ -3580,7 +3592,9 @@ snapshots: '@types/minimist@1.2.5': {} - '@types/node@17.0.45': {} + '@types/node@20.14.9': + dependencies: + undici-types: 5.26.5 '@types/normalize-package-data@2.4.4': {} @@ -4135,31 +4149,32 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild@0.21.5: + esbuild@0.23.0: optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 + '@esbuild/aix-ppc64': 0.23.0 + '@esbuild/android-arm': 0.23.0 + '@esbuild/android-arm64': 0.23.0 + '@esbuild/android-x64': 0.23.0 + '@esbuild/darwin-arm64': 0.23.0 + '@esbuild/darwin-x64': 0.23.0 + '@esbuild/freebsd-arm64': 0.23.0 + '@esbuild/freebsd-x64': 0.23.0 + '@esbuild/linux-arm': 0.23.0 + '@esbuild/linux-arm64': 0.23.0 + '@esbuild/linux-ia32': 0.23.0 + '@esbuild/linux-loong64': 0.23.0 + '@esbuild/linux-mips64el': 0.23.0 + '@esbuild/linux-ppc64': 0.23.0 + '@esbuild/linux-riscv64': 0.23.0 + '@esbuild/linux-s390x': 0.23.0 + '@esbuild/linux-x64': 0.23.0 + '@esbuild/netbsd-x64': 0.23.0 + '@esbuild/openbsd-arm64': 0.23.0 + '@esbuild/openbsd-x64': 0.23.0 + '@esbuild/sunos-x64': 0.23.0 + '@esbuild/win32-arm64': 0.23.0 + '@esbuild/win32-ia32': 0.23.0 + '@esbuild/win32-x64': 0.23.0 escalade@3.1.2: {} @@ -5943,6 +5958,8 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + undici-types@5.26.5: {} + unique-filename@1.1.1: dependencies: unique-slug: 2.0.2 diff --git a/src/tsconfig.json b/src/tsconfig.json index dcc6a21..4667d7e 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -2,9 +2,9 @@ "compilerOptions": { "baseUrl": ".", "noImplicitAny": true, - "module": "es2020", - "target": "es2021", - "lib": ["es2021", "esnext.disposable"], + "module": "es2022", + "target": "es2022", + "lib": ["es2022", "esnext.disposable"], "resolveJsonModule": true, "esModuleInterop": true, "noEmit": true, From 34a126be44e93c64622db04478a1d021ee6ea9a6 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Fri, 5 Jul 2024 15:50:19 +1000 Subject: [PATCH 14/16] fix(config): allow database to be undefined in uri --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 4f73fd1..012102e 100644 --- a/src/config.ts +++ b/src/config.ts @@ -56,7 +56,7 @@ function parseUri(connectionString: string) { password: authTarget[1] || undefined, host: splitMatchGroups[3], port: parseInt(splitMatchGroups[4]), - database: splitMatchGroups[5].replace(/^\/+/, ''), + database: splitMatchGroups[5]?.replace(/^\/+/, ''), ...(splitMatchGroups[6] && splitMatchGroups[6].split('&').reduce>((connectionInfo, parameter) => { const [key, value] = parameter.split('='); From 318b4c1845e07c2990eb1ab6178fb631b6298b18 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:16:00 +1000 Subject: [PATCH 15/16] Revert "chore: update build target to nodejs 20" This reverts commit 8c6a14645f737a77eecad2e43787dad239378558. The feature branch for nodejs 20 is still seemingly stuck in limbo. --- build.js | 2 +- package.json | 6 +- pnpm-lock.yaml | 269 ++++++++++++++++++++++------------------------ src/tsconfig.json | 6 +- 4 files changed, 133 insertions(+), 150 deletions(-) diff --git a/build.js b/build.js index 64edbc2..1e5524b 100644 --- a/build.js +++ b/build.js @@ -70,7 +70,7 @@ build({ dropLabels: ['DEV'], legalComments: 'inline', platform: 'node', - target: ['node20.12.2'], + target: ['node16'], format: 'cjs', logLevel: 'info', }); diff --git a/package.json b/package.json index f4ab186..7a1cd57 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "scripts": { "build": "pnpm build:root && lerna run build", "build:root": "node build.js && cd lib && tsc", - "watch": "esbuild --watch --bundle --platform=node --target=node20.12.2 src/index.ts --outfile=dist/build.js", + "watch": "esbuild --watch --bundle --platform=node --target=node16.9.1 src/index.ts --outfile=dist/build.js", "lib": "tsc --project lib/tsconfig.lib.json", "bootstrap": "lerna bootstrap", "postinstall": "patch-package && pnpm bootstrap" @@ -32,9 +32,9 @@ }, "devDependencies": { "@citizenfx/server": "2.0.5132-1", - "@types/node": "^20.12.2", + "@types/node": "^17.0.45", "prettier": "^2.8.8", - "esbuild": "^0.23.0", + "esbuild": "^0.21.5", "lerna": "^4.0.0", "postinstall-postinstall": "^2.1.0", "pretty-quick": "^3.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b05158c..dd71c19 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,11 +25,11 @@ importers: specifier: 2.0.5132-1 version: 2.0.5132-1 '@types/node': - specifier: ^20.12.2 - version: 20.14.9 + specifier: ^17.0.45 + version: 17.0.45 esbuild: - specifier: ^0.23.0 - version: 0.23.0 + specifier: ^0.21.5 + version: 0.21.5 lerna: specifier: ^4.0.0 version: 4.0.0(encoding@0.1.13) @@ -63,147 +63,141 @@ packages: '@citizenfx/server@2.0.5132-1': resolution: {integrity: sha512-DGqijToliwQdodc9IK5wrqsqVukN12qXLGatJTZhUsxD0m2LfwBtxwqL4VpuYkFhJ+7wna5aotEItYCVZUOVqQ==} - '@esbuild/aix-ppc64@0.23.0': - resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} - engines: {node: '>=18'} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.23.0': - resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==} - engines: {node: '>=18'} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.23.0': - resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==} - engines: {node: '>=18'} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.23.0': - resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==} - engines: {node: '>=18'} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.23.0': - resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==} - engines: {node: '>=18'} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.23.0': - resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==} - engines: {node: '>=18'} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.23.0': - resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==} - engines: {node: '>=18'} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.0': - resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==} - engines: {node: '>=18'} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.23.0': - resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==} - engines: {node: '>=18'} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.23.0': - resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==} - engines: {node: '>=18'} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.23.0': - resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==} - engines: {node: '>=18'} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.23.0': - resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==} - engines: {node: '>=18'} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.23.0': - resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==} - engines: {node: '>=18'} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.23.0': - resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==} - engines: {node: '>=18'} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.23.0': - resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==} - engines: {node: '>=18'} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.23.0': - resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==} - engines: {node: '>=18'} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.23.0': - resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==} - engines: {node: '>=18'} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.23.0': - resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==} - engines: {node: '>=18'} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.0': - resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.23.0': - resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==} - engines: {node: '>=18'} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.23.0': - resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==} - engines: {node: '>=18'} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.23.0': - resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==} - engines: {node: '>=18'} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.23.0': - resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==} - engines: {node: '>=18'} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.23.0': - resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==} - engines: {node: '>=18'} + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -611,8 +605,8 @@ packages: '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/node@20.14.9': - resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1095,9 +1089,9 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild@0.23.0: - resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==} - engines: {node: '>=18'} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} hasBin: true escalade@3.1.2: @@ -2680,9 +2674,6 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} @@ -2840,76 +2831,73 @@ snapshots: '@citizenfx/server@2.0.5132-1': {} - '@esbuild/aix-ppc64@0.23.0': + '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/android-arm64@0.23.0': + '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm@0.23.0': + '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-x64@0.23.0': + '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.23.0': + '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-x64@0.23.0': + '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.23.0': + '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.23.0': + '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/linux-arm64@0.23.0': + '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm@0.23.0': + '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-ia32@0.23.0': + '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-loong64@0.23.0': + '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-mips64el@0.23.0': + '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-ppc64@0.23.0': + '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.23.0': + '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-s390x@0.23.0': + '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-x64@0.23.0': + '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.23.0': + '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-arm64@0.23.0': + '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.23.0': + '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.23.0': + '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.23.0': + '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.23.0': - optional: true - - '@esbuild/win32-x64@0.23.0': + '@esbuild/win32-x64@0.21.5': optional: true '@gar/promisify@1.1.3': {} @@ -3592,9 +3580,7 @@ snapshots: '@types/minimist@1.2.5': {} - '@types/node@20.14.9': - dependencies: - undici-types: 5.26.5 + '@types/node@17.0.45': {} '@types/normalize-package-data@2.4.4': {} @@ -4149,32 +4135,31 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild@0.23.0: + esbuild@0.21.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.23.0 - '@esbuild/android-arm': 0.23.0 - '@esbuild/android-arm64': 0.23.0 - '@esbuild/android-x64': 0.23.0 - '@esbuild/darwin-arm64': 0.23.0 - '@esbuild/darwin-x64': 0.23.0 - '@esbuild/freebsd-arm64': 0.23.0 - '@esbuild/freebsd-x64': 0.23.0 - '@esbuild/linux-arm': 0.23.0 - '@esbuild/linux-arm64': 0.23.0 - '@esbuild/linux-ia32': 0.23.0 - '@esbuild/linux-loong64': 0.23.0 - '@esbuild/linux-mips64el': 0.23.0 - '@esbuild/linux-ppc64': 0.23.0 - '@esbuild/linux-riscv64': 0.23.0 - '@esbuild/linux-s390x': 0.23.0 - '@esbuild/linux-x64': 0.23.0 - '@esbuild/netbsd-x64': 0.23.0 - '@esbuild/openbsd-arm64': 0.23.0 - '@esbuild/openbsd-x64': 0.23.0 - '@esbuild/sunos-x64': 0.23.0 - '@esbuild/win32-arm64': 0.23.0 - '@esbuild/win32-ia32': 0.23.0 - '@esbuild/win32-x64': 0.23.0 + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 escalade@3.1.2: {} @@ -5958,8 +5943,6 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - undici-types@5.26.5: {} - unique-filename@1.1.1: dependencies: unique-slug: 2.0.2 diff --git a/src/tsconfig.json b/src/tsconfig.json index 4667d7e..dcc6a21 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -2,9 +2,9 @@ "compilerOptions": { "baseUrl": ".", "noImplicitAny": true, - "module": "es2022", - "target": "es2022", - "lib": ["es2022", "esnext.disposable"], + "module": "es2020", + "target": "es2021", + "lib": ["es2021", "esnext.disposable"], "resolveJsonModule": true, "esModuleInterop": true, "noEmit": true, From a92b958d9b41725c2922dd62ab3950ae4dcd0bfc Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:18:28 +1000 Subject: [PATCH 16/16] chore: update package dependencies --- package.json | 6 +-- pnpm-lock.yaml | 139 ++++++++++++++++++++++++++----------------------- 2 files changed, 76 insertions(+), 69 deletions(-) diff --git a/package.json b/package.json index 7a1cd57..a38b3d6 100644 --- a/package.json +++ b/package.json @@ -26,18 +26,18 @@ }, "dependencies": { "@milahu/patch-package": "^6.4.14", - "mysql2": "3.10.2", + "mysql2": "3.11.0", "named-placeholders": "^1.1.3", "node-fetch": "^3.3.2" }, "devDependencies": { "@citizenfx/server": "2.0.5132-1", "@types/node": "^17.0.45", - "prettier": "^2.8.8", "esbuild": "^0.21.5", "lerna": "^4.0.0", "postinstall-postinstall": "^2.1.0", + "prettier": "^2.8.8", "pretty-quick": "^3.3.1", - "typescript": "^5.5.3" + "typescript": "^5.5.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd71c19..67fd445 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^6.4.14 version: 6.4.14 mysql2: - specifier: 3.10.2 - version: 3.10.2 + specifier: 3.11.0 + version: 3.11.0 named-placeholders: specifier: ^1.1.3 version: 1.1.3 @@ -43,8 +43,8 @@ importers: specifier: ^3.3.1 version: 3.3.1(prettier@2.8.8) typescript: - specifier: ^5.5.3 - version: 5.5.3 + specifier: ^5.5.4 + version: 5.5.4 packages: @@ -727,8 +727,12 @@ packages: aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - aws4@1.13.0: - resolution: {integrity: sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==} + aws-ssl-profiles@1.1.1: + resolution: {integrity: sha512-+H+kuK34PfMaI9PNU/NSjBKL5hh/KDM9J72kwYeYEm0A8B1AC4fuCy3qsjnA7lxklgyXsB68yn8Z2xoZEjgwCQ==} + engines: {node: '>= 6.0.0'} + + aws4@1.13.1: + resolution: {integrity: sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -952,8 +956,8 @@ packages: dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1393,8 +1397,8 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} hasBin: true @@ -1461,8 +1465,8 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} engines: {node: '>= 0.4'} is-data-view@1.0.1: @@ -1770,8 +1774,8 @@ packages: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} - minipass-json-stream@1.0.1: - resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} + minipass-json-stream@1.0.2: + resolution: {integrity: sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==} minipass-pipeline@1.2.4: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} @@ -1833,8 +1837,8 @@ packages: mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - mysql2@3.10.2: - resolution: {integrity: sha512-KCXPEvAkO0RcHPr362O5N8tFY2fXvbjfkPvRY/wGumh4EOemo9Hm5FjQZqv/pCmrnuxGu5OxnSENG0gTXqKMgQ==} + mysql2@3.11.0: + resolution: {integrity: sha512-J9phbsXGvTOcRVPR95YedzVSxJecpW5A5+cQ57rhHIFXteTP10HCs+VBjS7DHIKfEaI1zQ5tlVrquCd64A6YvA==} engines: {node: '>= 8.0'} named-placeholders@1.1.3: @@ -2191,8 +2195,8 @@ packages: (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) - qs@6.12.2: - resolution: {integrity: sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} qs@6.5.3: @@ -2357,8 +2361,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -2655,13 +2659,13 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript@5.5.3: - resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true - uglify-js@3.18.0: - resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} + uglify-js@3.19.1: + resolution: {integrity: sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==} engines: {node: '>=0.8.0'} hasBin: true @@ -2915,7 +2919,7 @@ snapshots: npm-package-arg: 8.1.5 p-map: 4.0.0 pacote: 11.3.5 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - bluebird - supports-color @@ -2943,7 +2947,7 @@ snapshots: p-map-series: 2.1.0 p-waterfall: 2.1.1 read-package-tree: 5.3.1 - semver: 7.6.2 + semver: 7.6.3 '@lerna/changed@4.0.0': dependencies: @@ -3021,7 +3025,7 @@ snapshots: npm-package-arg: 8.1.5 npmlog: 4.1.2 pify: 5.0.0 - semver: 7.6.2 + semver: 7.6.3 '@lerna/create-symlink@4.0.0': dependencies: @@ -3043,7 +3047,7 @@ snapshots: p-reduce: 2.1.0 pacote: 11.3.5 pify: 5.0.0 - semver: 7.6.2 + semver: 7.6.3 slash: 3.0.0 validate-npm-package-license: 3.0.4 validate-npm-package-name: 3.0.0 @@ -3121,7 +3125,7 @@ snapshots: '@lerna/has-npm-version@4.0.0': dependencies: '@lerna/child-process': 4.0.0 - semver: 7.6.2 + semver: 7.6.3 '@lerna/import@4.0.0': dependencies: @@ -3245,7 +3249,7 @@ snapshots: '@lerna/validation-error': 4.0.0 npm-package-arg: 8.1.5 npmlog: 4.1.2 - semver: 7.6.2 + semver: 7.6.3 '@lerna/package@4.0.0': dependencies: @@ -3255,7 +3259,7 @@ snapshots: '@lerna/prerelease-id-from-version@4.0.0': dependencies: - semver: 7.6.2 + semver: 7.6.3 '@lerna/profiler@4.0.0': dependencies: @@ -3312,7 +3316,7 @@ snapshots: p-map: 4.0.0 p-pipe: 3.1.0 pacote: 11.3.5 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - bluebird - encoding @@ -3408,7 +3412,7 @@ snapshots: p-pipe: 3.1.0 p-reduce: 2.1.0 p-waterfall: 2.1.1 - semver: 7.6.2 + semver: 7.6.3 slash: 3.0.0 temp-write: 4.0.0 write-json-file: 4.3.0 @@ -3433,7 +3437,7 @@ snapshots: klaw-sync: 6.0.0 open: 8.4.2 rimraf: 3.0.2 - semver: 7.6.2 + semver: 7.6.3 shlex: 2.1.2 slash: 2.0.0 tmp: 0.2.3 @@ -3455,7 +3459,7 @@ snapshots: '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 - semver: 7.6.2 + semver: 7.6.3 '@npmcli/git@2.1.0': dependencies: @@ -3465,7 +3469,7 @@ snapshots: npm-pick-manifest: 6.1.1 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.6.2 + semver: 7.6.3 which: 2.0.2 transitivePeerDependencies: - bluebird @@ -3599,7 +3603,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -3698,7 +3702,9 @@ snapshots: aws-sign2@0.7.0: {} - aws4@1.13.0: {} + aws-ssl-profiles@1.1.1: {} + + aws4@1.13.1: {} balanced-match@1.0.2: {} @@ -3970,7 +3976,7 @@ snapshots: dateformat@3.0.3: {} - debug@4.3.5: + debug@4.3.6: dependencies: ms: 2.1.2 @@ -4416,7 +4422,7 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.18.0 + uglify-js: 3.19.1 har-schema@2.0.0: {} @@ -4463,7 +4469,7 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -4476,7 +4482,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -4507,7 +4513,7 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-local@3.1.0: + import-local@3.2.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 @@ -4533,7 +4539,7 @@ snapshots: promzard: 0.3.0 read: 1.0.7 read-package-json: 4.1.2 - semver: 7.6.2 + semver: 7.6.3 validate-npm-package-license: 3.0.4 validate-npm-package-name: 3.0.0 @@ -4590,7 +4596,7 @@ snapshots: dependencies: ci-info: 3.9.0 - is-core-module@2.14.0: + is-core-module@2.15.0: dependencies: hasown: 2.0.2 @@ -4746,7 +4752,7 @@ snapshots: '@lerna/publish': 4.0.0(encoding@0.1.13) '@lerna/run': 4.0.0 '@lerna/version': 4.0.0(encoding@0.1.13) - import-local: 3.1.0 + import-local: 3.2.0 npmlog: 4.1.2 transitivePeerDependencies: - bluebird @@ -4768,7 +4774,7 @@ snapshots: normalize-package-data: 3.0.3 npm-package-arg: 8.1.5 npm-registry-fetch: 11.0.0 - semver: 7.6.2 + semver: 7.6.3 ssri: 8.0.1 transitivePeerDependencies: - bluebird @@ -4941,7 +4947,7 @@ snapshots: dependencies: minipass: 3.3.6 - minipass-json-stream@1.0.1: + minipass-json-stream@1.0.2: dependencies: jsonparse: 1.3.1 minipass: 3.3.6 @@ -5004,8 +5010,9 @@ snapshots: mute-stream@0.0.8: {} - mysql2@3.10.2: + mysql2@3.11.0: dependencies: + aws-ssl-profiles: 1.1.1 denque: 2.1.0 generate-function: 2.3.1 iconv-lite: 0.6.3 @@ -5060,7 +5067,7 @@ snapshots: npmlog: 4.1.2 request: 2.88.2 rimraf: 3.0.2 - semver: 7.6.2 + semver: 7.6.3 tar: 6.2.1 which: 2.0.2 @@ -5083,8 +5090,8 @@ snapshots: normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.14.0 - semver: 7.6.2 + is-core-module: 2.15.0 + semver: 7.6.3 validate-npm-package-license: 3.0.4 normalize-url@6.1.0: {} @@ -5095,7 +5102,7 @@ snapshots: npm-install-checks@4.0.0: dependencies: - semver: 7.6.2 + semver: 7.6.3 npm-lifecycle@3.1.5: dependencies: @@ -5113,7 +5120,7 @@ snapshots: npm-package-arg@8.1.5: dependencies: hosted-git-info: 4.1.0 - semver: 7.6.2 + semver: 7.6.3 validate-npm-package-name: 3.0.0 npm-packlist@2.2.2: @@ -5128,14 +5135,14 @@ snapshots: npm-install-checks: 4.0.0 npm-normalize-package-bin: 1.0.1 npm-package-arg: 8.1.5 - semver: 7.6.2 + semver: 7.6.3 npm-registry-fetch@11.0.0: dependencies: make-fetch-happen: 9.1.0 minipass: 3.3.6 minipass-fetch: 1.4.1 - minipass-json-stream: 1.0.1 + minipass-json-stream: 1.0.2 minizlib: 2.1.2 npm-package-arg: 8.1.5 transitivePeerDependencies: @@ -5149,7 +5156,7 @@ snapshots: make-fetch-happen: 8.0.14 minipass: 3.3.6 minipass-fetch: 1.4.1 - minipass-json-stream: 1.0.1 + minipass-json-stream: 1.0.2 minizlib: 2.1.2 npm-package-arg: 8.1.5 transitivePeerDependencies: @@ -5307,7 +5314,7 @@ snapshots: dependencies: is-ssh: 1.4.0 protocols: 1.4.8 - qs: 6.12.2 + qs: 6.13.0 query-string: 6.14.1 parse-url@6.0.5: @@ -5400,7 +5407,7 @@ snapshots: q@1.5.1: {} - qs@6.12.2: + qs@6.13.0: dependencies: side-channel: 1.0.6 @@ -5517,7 +5524,7 @@ snapshots: request@2.88.2: dependencies: aws-sign2: 0.7.0 - aws4: 1.13.0 + aws4: 1.13.1 caseless: 0.12.0 combined-stream: 1.0.8 extend: 3.0.2 @@ -5549,7 +5556,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.14.0 + is-core-module: 2.15.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -5603,7 +5610,7 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} + semver@7.6.3: {} seq-queue@0.0.5: {} @@ -5657,7 +5664,7 @@ snapshots: socks-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -5665,7 +5672,7 @@ snapshots: socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -5927,9 +5934,9 @@ snapshots: typedarray@0.0.6: {} - typescript@5.5.3: {} + typescript@5.5.4: {} - uglify-js@3.18.0: + uglify-js@3.19.1: optional: true uid-number@0.0.6: {}