diff --git a/bun.lockb b/bun.lockb index 5097926..7a988b4 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/dist/package-shared/functions/backend/dbHandler.d.ts b/dist/package-shared/functions/backend/dbHandler.d.ts index f4f62d5..4bcc056 100644 --- a/dist/package-shared/functions/backend/dbHandler.d.ts +++ b/dist/package-shared/functions/backend/dbHandler.d.ts @@ -1,10 +1,6 @@ -import { DSQL_TableSchemaType, PostInsertReturn } from "../../types"; +import { DSQL_TableSchemaType } from "../../types"; import { ConnectionConfig } from "mariadb"; -type Param = { +type Param = { query: string; values?: string[] | object; noErrorLogs?: boolean; @@ -18,5 +14,7 @@ type Param({ query, values, noErrorLogs, database, config, }: Param): Promise; +} = { + [k: string]: any; +}>({ query, values, noErrorLogs, database, config, }: Param): Promise; export {}; diff --git a/dist/package-shared/functions/backend/dbHandler.js b/dist/package-shared/functions/backend/dbHandler.js index a8301d8..bbabe39 100644 --- a/dist/package-shared/functions/backend/dbHandler.js +++ b/dist/package-shared/functions/backend/dbHandler.js @@ -27,16 +27,16 @@ function dbHandler(_a) { try { CONNECTION = yield (0, grab_dsql_connection_1.default)({ database, config }); if (query && values) { - const queryResults = (yield CONNECTION.query(query, values)); - results = queryResults; + const queryResults = yield CONNECTION.query(query, values); + results = queryResults[0]; } else { - const queryResults = (yield CONNECTION.query(query)); - results = queryResults; + const queryResults = yield CONNECTION.query(query); + results = queryResults[0]; } } catch (error) { - console.log("Connection Info =>", CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.getConfig()); + console.log("Connection Info =>", CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.info); if (error.message && typeof error.message == "string" && error.message.match(/Access denied for user.*password/i)) { diff --git a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-creation.d.ts b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-creation.d.ts index 19effbc..4fd9e8f 100644 --- a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-creation.d.ts +++ b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-creation.d.ts @@ -15,5 +15,9 @@ type CreateNewUserParams = { host?: string; password?: string; }; -export declare function createNewSQLUser({ host, password, username, }: CreateNewUserParams): Promise; +export declare function createNewSQLUser({ host, password, username, }: CreateNewUserParams): Promise<{ + [k: string]: any; +} | { + [k: string]: any; +}[] | null>; export {}; diff --git a/dist/package-shared/shell/checkDb.js b/dist/package-shared/shell/checkDb.js index 9458eee..80105da 100644 --- a/dist/package-shared/shell/checkDb.js +++ b/dist/package-shared/shell/checkDb.js @@ -28,7 +28,7 @@ const grab_dsql_connection_1 = __importDefault(require("../utils/grab-dsql-conne (() => __awaiter(void 0, void 0, void 0, function* () { const CONNECTION = yield (0, grab_dsql_connection_1.default)(); try { - const result = yield CONNECTION.query("SELECT id,first_name,last_name FROM users LIMIT 3"); + const [result] = yield CONNECTION.query("SELECT id,first_name,last_name FROM users LIMIT 3"); console.log("Connection Query Success =>", result); } catch (error) { diff --git a/dist/package-shared/shell/test-external-server.js b/dist/package-shared/shell/test-external-server.js index 92f84e9..51e6183 100644 --- a/dist/package-shared/shell/test-external-server.js +++ b/dist/package-shared/shell/test-external-server.js @@ -33,7 +33,7 @@ const grab_dsql_connection_1 = __importDefault(require("../utils/grab-dsql-conne * @description If a database is provided, switch to it */ try { - const result = yield CONNECTION.query("SHOW DATABASES"); + const [result] = yield CONNECTION.query("SHOW DATABASES"); const parsedResults = JSON.parse(JSON.stringify(result)); console.log("parsedResults =>", parsedResults); } diff --git a/dist/package-shared/shell/updateSSLUsers.js b/dist/package-shared/shell/updateSSLUsers.js index d6d45c9..fde4ac0 100644 --- a/dist/package-shared/shell/updateSSLUsers.js +++ b/dist/package-shared/shell/updateSSLUsers.js @@ -30,7 +30,7 @@ const grab_sql_key_name_1 = __importDefault(require("../utils/grab-sql-key-name" var _a; const CONNECTION = yield (0, grab_dsql_connection_1.default)(); try { - const result = (yield CONNECTION.query("SELECT user,host,ssl_type FROM mysql.user")); + const [result] = yield CONNECTION.query("SELECT user,host,ssl_type FROM mysql.user"); for (let i = 0; i < result.length; i++) { const user = result[i]; if (user.User !== process.env.DSQL_DB_READ_ONLY_USERNAME || @@ -42,7 +42,7 @@ const grab_sql_key_name_1 = __importDefault(require("../utils/grab-sql-key-name" if (ssl_type === "ANY") { continue; } - const addUserSSL = yield CONNECTION.query(`ALTER USER '${User}'@'${Host}'`); + const [addUserSSL] = yield CONNECTION.query(`ALTER USER '${User}'@'${Host}'`); console.log(`addUserSSL => ${User}@${Host}`, addUserSSL); } } diff --git a/dist/package-shared/utils/backend/grabDbSSL.d.ts b/dist/package-shared/utils/backend/grabDbSSL.d.ts index 77ad19c..d507388 100644 --- a/dist/package-shared/utils/backend/grabDbSSL.d.ts +++ b/dist/package-shared/utils/backend/grabDbSSL.d.ts @@ -1,4 +1,7 @@ +import type { ConnectionConfig } from "mariadb"; +type Return = ConnectionConfig["ssl"] | undefined; /** * # Grab SSL */ -export default function grabDbSSL(): any; +export default function grabDbSSL(): Return; +export {}; diff --git a/dist/package-shared/utils/backend/grabDbSSL.js b/dist/package-shared/utils/backend/grabDbSSL.js index dcd40a5..b6996f2 100644 --- a/dist/package-shared/utils/backend/grabDbSSL.js +++ b/dist/package-shared/utils/backend/grabDbSSL.js @@ -7,7 +7,6 @@ exports.default = grabDbSSL; const fs_1 = __importDefault(require("fs")); const grab_dir_names_1 = __importDefault(require("./names/grab-dir-names")); const path_1 = __importDefault(require("path")); -// type Return = ConnectionConfig["ssl"] | undefined; /** * # Grab SSL */ diff --git a/dist/package-shared/utils/db/conn-db-handler.js b/dist/package-shared/utils/db/conn-db-handler.js index 0f09dd6..a533ca1 100644 --- a/dist/package-shared/utils/db/conn-db-handler.js +++ b/dist/package-shared/utils/db/conn-db-handler.js @@ -42,7 +42,7 @@ values, debug) { throw new Error("Query String Required!"); let queryErrorArray = []; if (typeof query == "string") { - const results = (yield finalConnection.query(trimQuery(query), values)); + const [results] = yield finalConnection.query(trimQuery(query), values); if (debug) { (0, debug_log_1.default)({ log: results, @@ -61,7 +61,7 @@ values, debug) { currentQueryError.sql = queryObj.query; currentQueryError.sqlValues = queryObj.values; const queryObjRes = yield finalConnection.query(trimQuery(queryObj.query), queryObj.values); - const results = queryObjRes; + const results = queryObjRes[0]; if (debug) { (0, debug_log_1.default)({ log: results, diff --git a/dist/package-shared/utils/grab-dsql-connection-config.d.ts b/dist/package-shared/utils/grab-dsql-connection-config.d.ts index 4a805c6..5341bd9 100644 --- a/dist/package-shared/utils/grab-dsql-connection-config.d.ts +++ b/dist/package-shared/utils/grab-dsql-connection-config.d.ts @@ -1,6 +1,6 @@ +import { ConnectionConfig } from "mariadb"; import { DsqlConnectionParam } from "../types"; -import serverlessMysql from "serverless-mysql"; /** * # Grab General CONNECTION for DSQL */ -export default function grabDSQLConnectionConfig(param?: DsqlConnectionParam): serverlessMysql.Config; +export default function grabDSQLConnectionConfig(param?: DsqlConnectionParam): ConnectionConfig; diff --git a/dist/package-shared/utils/grab-dsql-connection-config.js b/dist/package-shared/utils/grab-dsql-connection-config.js index f445f5d..8d3677b 100644 --- a/dist/package-shared/utils/grab-dsql-connection-config.js +++ b/dist/package-shared/utils/grab-dsql-connection-config.js @@ -5,35 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.default = grabDSQLConnectionConfig; const grabDbSSL_1 = __importDefault(require("./backend/grabDbSSL")); -const lodash_1 = __importDefault(require("lodash")); /** * # Grab General CONNECTION for DSQL */ function grabDSQLConnectionConfig(param) { const CONN_TIMEOUT = 10000; - const config = { - config: { - host: process.env.DSQL_DB_HOST, - user: process.env.DSQL_DB_USERNAME, - password: process.env.DSQL_DB_PASSWORD, - database: (param === null || param === void 0 ? void 0 : param.database) || - ((param === null || param === void 0 ? void 0 : param.noDb) ? undefined : process.env.DSQL_DB_NAME), - port: process.env.DSQL_DB_PORT - ? Number(process.env.DSQL_DB_PORT) - : undefined, - charset: "utf8mb4", - ssl: (0, grabDbSSL_1.default)(), - connectTimeout: CONN_TIMEOUT, - dateStrings: true, - compress: true, - decimalNumbers: true, - // supportBigNumbers: true, - // bigNumberStrings: false, - // bigIntAsNumber: true, - // metaAsArray: true, - // socketTimeout: CONN_TIMEOUT, - // ...param?.config, - }, - }; - return lodash_1.default.merge(config, param === null || param === void 0 ? void 0 : param.config); + const config = Object.assign({ host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_USERNAME, password: process.env.DSQL_DB_PASSWORD, database: (param === null || param === void 0 ? void 0 : param.database) || + ((param === null || param === void 0 ? void 0 : param.noDb) ? undefined : process.env.DSQL_DB_NAME), port: process.env.DSQL_DB_PORT + ? Number(process.env.DSQL_DB_PORT) + : undefined, charset: "utf8mb4", ssl: (0, grabDbSSL_1.default)(), bigIntAsNumber: true, supportBigNumbers: true, bigNumberStrings: false, dateStrings: true, metaAsArray: true, socketTimeout: CONN_TIMEOUT, connectTimeout: CONN_TIMEOUT, compress: true }, param === null || param === void 0 ? void 0 : param.config); + return config; } diff --git a/dist/package-shared/utils/grab-dsql-connection.d.ts b/dist/package-shared/utils/grab-dsql-connection.d.ts index ceb0a5f..990d4c7 100644 --- a/dist/package-shared/utils/grab-dsql-connection.d.ts +++ b/dist/package-shared/utils/grab-dsql-connection.d.ts @@ -1,6 +1,6 @@ +import { Connection } from "mariadb"; import { DsqlConnectionParam } from "../types"; -import { ServerlessMysql } from "serverless-mysql"; /** * # Grab General CONNECTION for DSQL */ -export default function grabDSQLConnection(param?: DsqlConnectionParam): Promise; +export default function grabDSQLConnection(param?: DsqlConnectionParam): Promise; diff --git a/dist/package-shared/utils/grab-dsql-connection.js b/dist/package-shared/utils/grab-dsql-connection.js index b08fc39..4a2c9fc 100644 --- a/dist/package-shared/utils/grab-dsql-connection.js +++ b/dist/package-shared/utils/grab-dsql-connection.js @@ -13,8 +13,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = grabDSQLConnection; +const mariadb_1 = __importDefault(require("mariadb")); const grab_dsql_connection_config_1 = __importDefault(require("./grab-dsql-connection-config")); -const serverless_mysql_1 = __importDefault(require("serverless-mysql")); /** * # Grab General CONNECTION for DSQL */ @@ -22,8 +22,7 @@ function grabDSQLConnection(param) { return __awaiter(this, void 0, void 0, function* () { const config = (0, grab_dsql_connection_config_1.default)(param); try { - const sql = (0, serverless_mysql_1.default)(config); - return sql; + return yield mariadb_1.default.createConnection(config); } catch (error) { console.log(`Error Grabbing DSQL Connection =>`, config); diff --git a/package-shared/functions/backend/dbHandler.ts b/package-shared/functions/backend/dbHandler.ts index 628cf1e..7593bba 100644 --- a/package-shared/functions/backend/dbHandler.ts +++ b/package-shared/functions/backend/dbHandler.ts @@ -1,11 +1,10 @@ import fs from "fs"; import path from "path"; import grabDSQLConnection from "../../utils/grab-dsql-connection"; -import { DSQL_TableSchemaType, PostInsertReturn } from "../../types"; +import { DSQL_TableSchemaType } from "../../types"; import { Connection, ConnectionConfig } from "mariadb"; -import { ServerlessMysql } from "serverless-mysql"; -type Param = { +type Param = { query: string; values?: string[] | object; noErrorLogs?: boolean; @@ -19,31 +18,29 @@ type Param = { * @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database */ export default async function dbHandler< - T extends { [k: string]: any } = PostInsertReturn + T extends { [k: string]: any } = { [k: string]: any } >({ query, values, noErrorLogs, database, config, -}: Param): Promise { - let CONNECTION: ServerlessMysql | undefined; +}: Param): Promise { + let CONNECTION: Connection | undefined; let results: T[] | T | null; try { CONNECTION = await grabDSQLConnection({ database, config }); if (query && values) { - const queryResults = (await CONNECTION.query(query, values)) as - | T - | T[]; - results = queryResults; + const queryResults = await CONNECTION.query(query, values); + results = queryResults[0]; } else { - const queryResults = (await CONNECTION.query(query)) as T | T[]; - results = queryResults; + const queryResults = await CONNECTION.query(query); + results = queryResults[0]; } } catch (error: any) { - console.log("Connection Info =>", CONNECTION?.getConfig()); + console.log("Connection Info =>", CONNECTION?.info); if ( error.message && diff --git a/package-shared/shell/checkDb.ts b/package-shared/shell/checkDb.ts index 33f33d1..76a84c8 100644 --- a/package-shared/shell/checkDb.ts +++ b/package-shared/shell/checkDb.ts @@ -16,7 +16,7 @@ import grabDSQLConnection from "../utils/grab-dsql-connection"; const CONNECTION = await grabDSQLConnection(); try { - const result = await CONNECTION.query( + const [result] = await CONNECTION.query( "SELECT id,first_name,last_name FROM users LIMIT 3" ); console.log("Connection Query Success =>", result); diff --git a/package-shared/shell/test-external-server.ts b/package-shared/shell/test-external-server.ts index f959c04..38ba677 100644 --- a/package-shared/shell/test-external-server.ts +++ b/package-shared/shell/test-external-server.ts @@ -21,7 +21,7 @@ import grabDSQLConnection from "../utils/grab-dsql-connection"; * @description If a database is provided, switch to it */ try { - const result = await CONNECTION.query("SHOW DATABASES"); + const [result] = await CONNECTION.query("SHOW DATABASES"); const parsedResults = JSON.parse(JSON.stringify(result)); diff --git a/package-shared/shell/updateSSLUsers.ts b/package-shared/shell/updateSSLUsers.ts index 5087c7f..bba2877 100644 --- a/package-shared/shell/updateSSLUsers.ts +++ b/package-shared/shell/updateSSLUsers.ts @@ -17,9 +17,9 @@ import grabSQLKeyName from "../utils/grab-sql-key-name"; const CONNECTION = await grabDSQLConnection(); try { - const result = (await CONNECTION.query( + const [result] = await CONNECTION.query( "SELECT user,host,ssl_type FROM mysql.user" - )) as any[]; + ); for (let i = 0; i < result.length; i++) { const user = result[i]; @@ -38,7 +38,7 @@ import grabSQLKeyName from "../utils/grab-sql-key-name"; continue; } - const addUserSSL = await CONNECTION.query( + const [addUserSSL] = await CONNECTION.query( `ALTER USER '${User}'@'${Host}'` ); diff --git a/package-shared/utils/backend/grabDbSSL.ts b/package-shared/utils/backend/grabDbSSL.ts index 254556d..74801de 100644 --- a/package-shared/utils/backend/grabDbSSL.ts +++ b/package-shared/utils/backend/grabDbSSL.ts @@ -2,15 +2,13 @@ import fs from "fs"; import grabDirNames from "./names/grab-dir-names"; import type { ConnectionConfig } from "mariadb"; import path from "path"; -import serverlessMysql from "serverless-mysql"; -import { ConnectionOptions } from "tls"; -// type Return = ConnectionConfig["ssl"] | undefined; +type Return = ConnectionConfig["ssl"] | undefined; /** * # Grab SSL */ -export default function grabDbSSL(): any { +export default function grabDbSSL(): Return { let maxscaleSSLCaCertFileFinal; try { diff --git a/package-shared/utils/db/conn-db-handler.ts b/package-shared/utils/db/conn-db-handler.ts index ea10b33..44babfa 100644 --- a/package-shared/utils/db/conn-db-handler.ts +++ b/package-shared/utils/db/conn-db-handler.ts @@ -43,10 +43,10 @@ export default async function connDbHandler( let queryErrorArray: DSQLErrorObject[] = []; if (typeof query == "string") { - const results = (await finalConnection.query( + const [results] = await finalConnection.query( trimQuery(query), values - )) as any; + ); if (debug) { debugLog({ @@ -74,7 +74,7 @@ export default async function connDbHandler( queryObj.values ); - const results = queryObjRes; + const results = queryObjRes[0]; if (debug) { debugLog({ @@ -106,7 +106,7 @@ export default async function connDbHandler( }; } - return resArray as ReturnType; + return resArray; } else { return null; } diff --git a/package-shared/utils/grab-dsql-connection-config.ts b/package-shared/utils/grab-dsql-connection-config.ts index 4910b66..f58f5fa 100644 --- a/package-shared/utils/grab-dsql-connection-config.ts +++ b/package-shared/utils/grab-dsql-connection-config.ts @@ -1,43 +1,37 @@ import { ConnectionConfig } from "mariadb"; import grabDbSSL from "./backend/grabDbSSL"; import { DsqlConnectionParam } from "../types"; -import serverlessMysql from "serverless-mysql"; -import { ConnectionOptions } from "tls"; -import _ from "lodash"; /** * # Grab General CONNECTION for DSQL */ export default function grabDSQLConnectionConfig( param?: DsqlConnectionParam -): serverlessMysql.Config { +): ConnectionConfig { const CONN_TIMEOUT = 10000; - const config: serverlessMysql.Config = { - config: { - host: process.env.DSQL_DB_HOST, - user: process.env.DSQL_DB_USERNAME, - password: process.env.DSQL_DB_PASSWORD, - database: - param?.database || - (param?.noDb ? undefined : process.env.DSQL_DB_NAME), - port: process.env.DSQL_DB_PORT - ? Number(process.env.DSQL_DB_PORT) - : undefined, - charset: "utf8mb4", - ssl: grabDbSSL(), - connectTimeout: CONN_TIMEOUT, - dateStrings: true, - compress: true, - decimalNumbers: true, - // supportBigNumbers: true, - // bigNumberStrings: false, - // bigIntAsNumber: true, - // metaAsArray: true, - // socketTimeout: CONN_TIMEOUT, - // ...param?.config, - }, + const config: ConnectionConfig = { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_USERNAME, + password: process.env.DSQL_DB_PASSWORD, + database: + param?.database || + (param?.noDb ? undefined : process.env.DSQL_DB_NAME), + port: process.env.DSQL_DB_PORT + ? Number(process.env.DSQL_DB_PORT) + : undefined, + charset: "utf8mb4", + ssl: grabDbSSL(), + bigIntAsNumber: true, + supportBigNumbers: true, + bigNumberStrings: false, + dateStrings: true, + metaAsArray: true, + socketTimeout: CONN_TIMEOUT, + connectTimeout: CONN_TIMEOUT, + compress: true, + ...param?.config, }; - return _.merge(config, param?.config); + return config; } diff --git a/package-shared/utils/grab-dsql-connection.ts b/package-shared/utils/grab-dsql-connection.ts index 50918bf..7860998 100644 --- a/package-shared/utils/grab-dsql-connection.ts +++ b/package-shared/utils/grab-dsql-connection.ts @@ -2,19 +2,17 @@ import mariadb, { Connection, ConnectionConfig } from "mariadb"; import grabDbSSL from "./backend/grabDbSSL"; import { DsqlConnectionParam } from "../types"; import grabDSQLConnectionConfig from "./grab-dsql-connection-config"; -import serverlessMysql, { ServerlessMysql } from "serverless-mysql"; /** * # Grab General CONNECTION for DSQL */ export default async function grabDSQLConnection( param?: DsqlConnectionParam -): Promise { +): Promise { const config = grabDSQLConnectionConfig(param); try { - const sql = serverlessMysql(config); - return sql; + return await mariadb.createConnection(config); } catch (error) { console.log(`Error Grabbing DSQL Connection =>`, config); throw error; diff --git a/package.json b/package.json index 6811831..23581b4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "5.1.6", + "version": "5.1.7", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": { @@ -45,7 +45,6 @@ "lodash": "^4.17.21", "mariadb": "^3.4.4", "nodemailer": "^6.9.14", - "sanitize-html": "^2.13.1", - "serverless-mysql": "^2.1.0" + "sanitize-html": "^2.13.1" } }