diff --git a/dist/client/auth/github/getAccessToken.js b/dist/client/auth/github/getAccessToken.js index c947eb1..9b8ea89 100644 --- a/dist/client/auth/github/getAccessToken.js +++ b/dist/client/auth/github/getAccessToken.js @@ -1,9 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getAccessToken; /** * Login with Github Function * =============================================================================== * @description This function uses github api to login a user with datasquirel */ -export default function getAccessToken({ clientId, redirectUrl, setLoading, scopes, }) { +function getAccessToken({ clientId, redirectUrl, setLoading, scopes, }) { if (setLoading) setLoading(true); const scopeString = scopes ? scopes.join("%20") : "read:user"; diff --git a/dist/client/auth/google/getAccessToken.js b/dist/client/auth/google/getAccessToken.js index 1adbbdc..7c53bbe 100644 --- a/dist/client/auth/google/getAccessToken.js +++ b/dist/client/auth/google/getAccessToken.js @@ -1,29 +1,44 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getAccessToken; +exports.googleLogin = googleLogin; let interval; /** * Login with Google Function * =============================================================================== * @description This function uses google identity api to login a user with datasquirel */ -export default async function getAccessToken(params) { - var _a, _b; - (_a = params.setLoading) === null || _a === void 0 ? void 0 : _a.call(params, true); - const response = (await new Promise((resolve, reject) => { - interval = setInterval(() => { - // @ts-ignore - let google = window.google; - if (google) { - window.clearInterval(interval); - resolve(googleLogin(Object.assign(Object.assign({}, params), { google }))); - } - }, 500); - })); - (_b = params.setLoading) === null || _b === void 0 ? void 0 : _b.call(params, false); - return response; +function getAccessToken(params) { + return __awaiter(this, void 0, void 0, function* () { + var _a, _b; + (_a = params.setLoading) === null || _a === void 0 ? void 0 : _a.call(params, true); + const response = (yield new Promise((resolve, reject) => { + interval = setInterval(() => { + // @ts-ignore + let google = window.google; + if (google) { + window.clearInterval(interval); + resolve(googleLogin(Object.assign(Object.assign({}, params), { google }))); + } + }, 500); + })); + (_b = params.setLoading) === null || _b === void 0 ? void 0 : _b.call(params, false); + return response; + }); } /** * # Google Login Function */ -export function googleLogin({ google, clientId, setLoading, triggerPrompt, }) { +function googleLogin({ google, clientId, setLoading, triggerPrompt, }) { setTimeout(() => { setLoading === null || setLoading === void 0 ? void 0 : setLoading(false); }, 3000); diff --git a/dist/client/auth/logout.js b/dist/client/auth/logout.js index 8d61446..a8d3390 100644 --- a/dist/client/auth/logout.js +++ b/dist/client/auth/logout.js @@ -1,86 +1,103 @@ -import getCsrfHeaderName from "../../package-shared/actions/get-csrf-header-name"; -import parseClientCookies from "../utils/parseClientCookies"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = logout; +const get_csrf_header_name_1 = __importDefault(require("../../package-shared/actions/get-csrf-header-name")); +const parseClientCookies_1 = __importDefault(require("../utils/parseClientCookies")); /** * Login with Google Function * =============================================================================== * @description This function uses google identity api to login a user with datasquirel */ -export default async function logout(params) { - try { - const localUser = localStorage.getItem("user"); - let targetUser; +function logout(params) { + return __awaiter(this, void 0, void 0, function* () { try { - targetUser = JSON.parse(localUser || ""); - } - catch (error) { - console.log(error); - } - if (!targetUser) { - return false; - } - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - const cookies = parseClientCookies(); - const socialId = (cookies === null || cookies === void 0 ? void 0 : cookies.datasquirel_social_id) && - typeof cookies.datasquirel_social_id == "string" && - !cookies.datasquirel_social_id.match(/^null$/i) - ? cookies.datasquirel_social_id - : null; - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - localStorage.setItem("user", "{}"); - localStorage.removeItem(getCsrfHeaderName()); - document.cookie = `datasquirel_social_id=null;samesite=strict;path=/`; - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - const response = await new Promise((resolve, reject) => { - if (socialId && !(socialId === null || socialId === void 0 ? void 0 : socialId.match(/^null$/i))) { - const googleClientId = params === null || params === void 0 ? void 0 : params.googleClientId; - if (googleClientId) { - const googleScript = document.createElement("script"); - googleScript.src = "https://accounts.google.com/gsi/client"; - googleScript.className = "social-script-tag"; - document.body.appendChild(googleScript); + const localUser = localStorage.getItem("user"); + let targetUser; + try { + targetUser = JSON.parse(localUser || ""); + } + catch (error) { + console.log(error); + } + if (!targetUser) { + return false; + } + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + const cookies = (0, parseClientCookies_1.default)(); + const socialId = (cookies === null || cookies === void 0 ? void 0 : cookies.datasquirel_social_id) && + typeof cookies.datasquirel_social_id == "string" && + !cookies.datasquirel_social_id.match(/^null$/i) + ? cookies.datasquirel_social_id + : null; + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + localStorage.setItem("user", "{}"); + localStorage.removeItem((0, get_csrf_header_name_1.default)()); + document.cookie = `datasquirel_social_id=null;samesite=strict;path=/`; + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + const response = yield new Promise((resolve, reject) => { + if (socialId && !(socialId === null || socialId === void 0 ? void 0 : socialId.match(/^null$/i))) { + const googleClientId = params === null || params === void 0 ? void 0 : params.googleClientId; + if (googleClientId) { + const googleScript = document.createElement("script"); + googleScript.src = "https://accounts.google.com/gsi/client"; + googleScript.className = "social-script-tag"; + document.body.appendChild(googleScript); + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + googleScript.onload = function (e) { + // @ts-ignore + const google = window.google; + if (google) { + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + google.accounts.id.initialize({ + client_id: googleClientId, + }); + google.accounts.id.revoke(socialId, (done) => { + console.log(done.error); + resolve(true); + }); + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + } + }; + } + else { + resolve(true); + } //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// - googleScript.onload = function (e) { - // @ts-ignore - const google = window.google; - if (google) { - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - google.accounts.id.initialize({ - client_id: googleClientId, - }); - google.accounts.id.revoke(socialId, (done) => { - console.log(done.error); - resolve(true); - }); - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - } - }; } else { resolve(true); } - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - } - else { - resolve(true); - } - }); - return response; - } - catch (error) { - return false; - } + }); + return response; + } + catch (error) { + return false; + } + }); } diff --git a/dist/client/auth/post-login.js b/dist/client/auth/post-login.js index 1ced89b..8730b84 100644 --- a/dist/client/auth/post-login.js +++ b/dist/client/auth/post-login.js @@ -1,4 +1,10 @@ -import getCsrfHeaderName from "../../package-shared/actions/get-csrf-header-name"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = postLogin; +const get_csrf_header_name_1 = __importDefault(require("../../package-shared/actions/get-csrf-header-name")); /** * Client Setup After Login * =============================================================================== @@ -6,13 +12,13 @@ import getCsrfHeaderName from "../../package-shared/actions/get-csrf-header-name * is logged in. Use this in conjunction with the `datasquirel.user.loginUser` * function */ -export default function postLogin(res) { +function postLogin(res) { try { if (!res.payload) return false; if (!res.payload.csrf_k) return false; - localStorage.setItem(getCsrfHeaderName(), res.payload.csrf_k); + localStorage.setItem((0, get_csrf_header_name_1.default)(), res.payload.csrf_k); localStorage.setItem("user", JSON.stringify(res.payload)); return true; } diff --git a/dist/client/fetch/index.js b/dist/client/fetch/index.js index 7dfff2f..c3f49c4 100644 --- a/dist/client/fetch/index.js +++ b/dist/client/fetch/index.js @@ -1,8 +1,23 @@ -import _ from "lodash"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = fetchApi; +const lodash_1 = __importDefault(require("lodash")); /** * # Fetch API */ -export default async function fetchApi(url, options, csrf, +function fetchApi(url, options, csrf, /** * Key to use to grab local Storage csrf value. */ @@ -12,69 +27,71 @@ localStorageCSRFKey, * value */ csrfHeaderKey) { - let data; - const csrfKey = "x-dsql-csrf-key"; - const csrfValue = localStorage.getItem(localStorageCSRFKey || csrfKey); - let finalHeaders = { - "Content-Type": "application/json", - }; - if (csrf && csrfValue) { - finalHeaders[localStorageCSRFKey || csrfKey] = csrfValue; - } - if (typeof options === "string") { - try { - let fetchData; - switch (options) { - case "post": - fetchData = await fetch(url, { - method: options, - headers: finalHeaders, - }); - data = fetchData.json(); - break; - default: - fetchData = await fetch(url); - data = fetchData.json(); - break; + return __awaiter(this, void 0, void 0, function* () { + let data; + const csrfKey = "x-dsql-csrf-key"; + const csrfValue = localStorage.getItem(localStorageCSRFKey || csrfKey); + let finalHeaders = { + "Content-Type": "application/json", + }; + if (csrf && csrfValue) { + finalHeaders[localStorageCSRFKey || csrfKey] = csrfValue; + } + if (typeof options === "string") { + try { + let fetchData; + switch (options) { + case "post": + fetchData = yield fetch(url, { + method: options, + headers: finalHeaders, + }); + data = fetchData.json(); + break; + default: + fetchData = yield fetch(url); + data = fetchData.json(); + break; + } + } + catch (error) { + console.log("FetchAPI error #1:", error.message); + data = null; } } - catch (error) { - console.log("FetchAPI error #1:", error.message); - data = null; - } - } - else if (typeof options === "object") { - try { - let fetchData; - if (options.body && typeof options.body === "object") { - let oldOptionsBody = _.cloneDeep(options.body); - options.body = JSON.stringify(oldOptionsBody); + else if (typeof options === "object") { + try { + let fetchData; + if (options.body && typeof options.body === "object") { + let oldOptionsBody = lodash_1.default.cloneDeep(options.body); + options.body = JSON.stringify(oldOptionsBody); + } + if (options.headers) { + options.headers = lodash_1.default.merge(options.headers, finalHeaders); + const finalOptions = Object.assign({}, options); + fetchData = yield fetch(url, finalOptions); + } + else { + const finalOptions = Object.assign(Object.assign({}, options), { headers: finalHeaders }); + fetchData = yield fetch(url, finalOptions); + } + data = fetchData.json(); } - if (options.headers) { - options.headers = _.merge(options.headers, finalHeaders); - const finalOptions = Object.assign({}, options); - fetchData = await fetch(url, finalOptions); + catch (error) { + console.log("FetchAPI error #2:", error.message); + data = null; } - else { - const finalOptions = Object.assign(Object.assign({}, options), { headers: finalHeaders }); - fetchData = await fetch(url, finalOptions); + } + else { + try { + let fetchData = yield fetch(url); + data = yield fetchData.json(); + } + catch (error) { + console.log("FetchAPI error #3:", error.message); + data = null; } - data = fetchData.json(); } - catch (error) { - console.log("FetchAPI error #2:", error.message); - data = null; - } - } - else { - try { - let fetchData = await fetch(url); - data = await fetchData.json(); - } - catch (error) { - console.log("FetchAPI error #3:", error.message); - data = null; - } - } - return data; + return data; + }); } diff --git a/dist/client/index.js b/dist/client/index.js index 82be759..680a86b 100644 --- a/dist/client/index.js +++ b/dist/client/index.js @@ -1,55 +1,60 @@ -import imageInputFileToBase64 from "./media/imageInputFileToBase64"; -import imageInputToBase64 from "./media/imageInputToBase64"; -import inputFileToBase64 from "./media/inputFileToBase64"; -import getAccessToken from "./auth/google/getAccessToken"; -import getGithubAccessToken from "./auth/github/getAccessToken"; -import logout from "./auth/logout"; -import fetchApi from "./fetch"; -import clientFetch from "./fetch"; -import serializeQuery from "../package-shared/utils/serialize-query"; -import serializeCookies from "../package-shared/utils/serialize-cookies"; -import EJSON from "../package-shared/utils/ejson"; -import numberfy from "../package-shared/utils/numberfy"; -import slugify from "../package-shared/utils/slugify"; -import postLogin from "./auth/post-login"; -import deserializeQuery from "../package-shared/utils/deserialize-query"; -import debugLog from "../package-shared/utils/logging/debug-log"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const imageInputFileToBase64_1 = __importDefault(require("./media/imageInputFileToBase64")); +const imageInputToBase64_1 = __importDefault(require("./media/imageInputToBase64")); +const inputFileToBase64_1 = __importDefault(require("./media/inputFileToBase64")); +const getAccessToken_1 = __importDefault(require("./auth/google/getAccessToken")); +const getAccessToken_2 = __importDefault(require("./auth/github/getAccessToken")); +const logout_1 = __importDefault(require("./auth/logout")); +const fetch_1 = __importDefault(require("./fetch")); +const fetch_2 = __importDefault(require("./fetch")); +const serialize_query_1 = __importDefault(require("../package-shared/utils/serialize-query")); +const serialize_cookies_1 = __importDefault(require("../package-shared/utils/serialize-cookies")); +const ejson_1 = __importDefault(require("../package-shared/utils/ejson")); +const numberfy_1 = __importDefault(require("../package-shared/utils/numberfy")); +const slugify_1 = __importDefault(require("../package-shared/utils/slugify")); +const post_login_1 = __importDefault(require("./auth/post-login")); +const deserialize_query_1 = __importDefault(require("../package-shared/utils/deserialize-query")); +const debug_log_1 = __importDefault(require("../package-shared/utils/logging/debug-log")); const media = { - imageInputToBase64, - imageInputFileToBase64, - inputFileToBase64, + imageInputToBase64: imageInputToBase64_1.default, + imageInputFileToBase64: imageInputFileToBase64_1.default, + inputFileToBase64: inputFileToBase64_1.default, }; /** * User Auth Object */ const auth = { google: { - getAccessToken: getAccessToken, + getAccessToken: getAccessToken_1.default, }, github: { - getAccessToken: getGithubAccessToken, + getAccessToken: getAccessToken_2.default, }, - logout, - postLogin, + logout: logout_1.default, + postLogin: post_login_1.default, }; const utils = { - deserializeQuery, - serializeQuery, - serializeCookies, - EJSON, - numberfy, - slugify, - debugLog, + deserializeQuery: deserialize_query_1.default, + serializeQuery: serialize_query_1.default, + serializeCookies: serialize_cookies_1.default, + EJSON: ejson_1.default, + numberfy: numberfy_1.default, + slugify: slugify_1.default, + debugLog: debug_log_1.default, }; /** * Fetch */ const fetch = { - fetchApi, - clientFetch, + fetchApi: fetch_1.default, + clientFetch: fetch_2.default, }; /** * Main Export */ const datasquirelClient = { media, auth, fetch, utils }; -export default datasquirelClient; +exports.default = datasquirelClient; diff --git a/dist/client/media/client.js b/dist/client/media/client.js index 78f5339..5bdfeae 100644 --- a/dist/client/media/client.js +++ b/dist/client/media/client.js @@ -1,13 +1,18 @@ -import imageInputFileToBase64 from "./imageInputFileToBase64"; -import imageInputToBase64 from "./imageInputToBase64"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const imageInputFileToBase64_1 = __importDefault(require("./imageInputFileToBase64")); +const imageInputToBase64_1 = __importDefault(require("./imageInputToBase64")); /** * ========================== * Media Functions Object * ========================== */ const media = { - imageInputToBase64: imageInputToBase64, - imageInputFileToBase64: imageInputFileToBase64, + imageInputToBase64: imageInputToBase64_1.default, + imageInputFileToBase64: imageInputFileToBase64_1.default, }; /** * ========================== @@ -15,8 +20,8 @@ const media = { * ========================== */ const auth = { - imageInputToBase64: imageInputToBase64, - imageInputFileToBase64: imageInputFileToBase64, + imageInputToBase64: imageInputToBase64_1.default, + imageInputFileToBase64: imageInputFileToBase64_1.default, }; /** * ========================== @@ -26,4 +31,4 @@ const auth = { const datasquirelClient = { media: media, }; -export default datasquirelClient; +exports.default = datasquirelClient; diff --git a/dist/client/media/imageInputFileToBase64.js b/dist/client/media/imageInputFileToBase64.js index 479cabc..05417f9 100644 --- a/dist/client/media/imageInputFileToBase64.js +++ b/dist/client/media/imageInputFileToBase64.js @@ -1,78 +1,92 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = imageInputFileToBase64; /** * # Image input File top Base64 */ -export default async function imageInputFileToBase64({ imageInputFile, maxWidth, imagePreviewNode, }) { - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - try { - let imageName = imageInputFile.name.replace(/\..*/, ""); - let imageDataBase64; - let imageSize; - let canvas = document.createElement("canvas"); - const MIME_TYPE = imageInputFile.type; - const QUALITY = 0.95; - const MAX_WIDTH = maxWidth ? maxWidth : null; - const file = imageInputFile; - const blobURL = URL.createObjectURL(file); - const img = new Image(); - /** ********************* Add source to new image */ - img.src = blobURL; - imageDataBase64 = await new Promise((res, rej) => { - /** ********************* Handle Errors in loading image */ - img.onerror = function () { - URL.revokeObjectURL(this.src); - console.log("Cannot load image"); +function imageInputFileToBase64(_a) { + return __awaiter(this, arguments, void 0, function* ({ imageInputFile, maxWidth, imagePreviewNode, }) { + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + try { + let imageName = imageInputFile.name.replace(/\..*/, ""); + let imageDataBase64; + let imageSize; + let canvas = document.createElement("canvas"); + const MIME_TYPE = imageInputFile.type; + const QUALITY = 0.95; + const MAX_WIDTH = maxWidth ? maxWidth : null; + const file = imageInputFile; + const blobURL = URL.createObjectURL(file); + const img = new Image(); + /** ********************* Add source to new image */ + img.src = blobURL; + imageDataBase64 = yield new Promise((res, rej) => { + /** ********************* Handle Errors in loading image */ + img.onerror = function () { + URL.revokeObjectURL(this.src); + console.log("Cannot load image"); + }; + /** ********************* Handle new image when loaded */ + img.onload = function (e) { + const imgEl = e.target; + URL.revokeObjectURL(imgEl.src); + if (MAX_WIDTH) { + const scaleSize = MAX_WIDTH / img.naturalWidth; + canvas.width = + img.naturalWidth < MAX_WIDTH + ? img.naturalWidth + : MAX_WIDTH; + canvas.height = + img.naturalWidth < MAX_WIDTH + ? img.naturalHeight + : img.naturalHeight * scaleSize; + } + else { + canvas.width = img.naturalWidth; + canvas.height = img.naturalHeight; + } + const ctx = canvas.getContext("2d"); + ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + const srcEncoded = canvas.toDataURL(MIME_TYPE, QUALITY); + if (imagePreviewNode) { + imagePreviewNode.src = srcEncoded; + } + res(srcEncoded); + }; + }); + imageSize = yield new Promise((res, rej) => { + canvas.toBlob((blob) => { + res(blob === null || blob === void 0 ? void 0 : blob.size); + }, MIME_TYPE, QUALITY); + }); + return { + imageBase64: imageDataBase64 === null || imageDataBase64 === void 0 ? void 0 : imageDataBase64.replace(/.*?base64,/, ""), + imageBase64Full: imageDataBase64, + imageName: imageName, + imageSize: imageSize, }; - /** ********************* Handle new image when loaded */ - img.onload = function (e) { - const imgEl = e.target; - URL.revokeObjectURL(imgEl.src); - if (MAX_WIDTH) { - const scaleSize = MAX_WIDTH / img.naturalWidth; - canvas.width = - img.naturalWidth < MAX_WIDTH - ? img.naturalWidth - : MAX_WIDTH; - canvas.height = - img.naturalWidth < MAX_WIDTH - ? img.naturalHeight - : img.naturalHeight * scaleSize; - } - else { - canvas.width = img.naturalWidth; - canvas.height = img.naturalHeight; - } - const ctx = canvas.getContext("2d"); - ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, 0, 0, canvas.width, canvas.height); - const srcEncoded = canvas.toDataURL(MIME_TYPE, QUALITY); - if (imagePreviewNode) { - imagePreviewNode.src = srcEncoded; - } - res(srcEncoded); + } + catch (error) { + console.log("Image Processing Error! =>", error.message); + return { + imageBase64: undefined, + imageBase64Full: undefined, + imageName: undefined, + imageSize: undefined, }; - }); - imageSize = await new Promise((res, rej) => { - canvas.toBlob((blob) => { - res(blob === null || blob === void 0 ? void 0 : blob.size); - }, MIME_TYPE, QUALITY); - }); - return { - imageBase64: imageDataBase64 === null || imageDataBase64 === void 0 ? void 0 : imageDataBase64.replace(/.*?base64,/, ""), - imageBase64Full: imageDataBase64, - imageName: imageName, - imageSize: imageSize, - }; - } - catch (error) { - console.log("Image Processing Error! =>", error.message); - return { - imageBase64: undefined, - imageBase64Full: undefined, - imageName: undefined, - imageSize: undefined, - }; - } + } + }); } diff --git a/dist/client/media/imageInputToBase64.js b/dist/client/media/imageInputToBase64.js index 7b8a98e..8e8decb 100644 --- a/dist/client/media/imageInputToBase64.js +++ b/dist/client/media/imageInputToBase64.js @@ -1,76 +1,90 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = imageInputToBase64; /** * # Image Input Element to Base 64 */ -export default async function imageInputToBase64({ imageInput, maxWidth, mimeType, }) { - var _a, _b; - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - try { - let imagePreviewNode = document.querySelector(`[data-imagepreview='image']`); - let imageName = (_a = imageInput.files) === null || _a === void 0 ? void 0 : _a[0].name.replace(/\..*/, ""); - let imageDataBase64; - const MIME_TYPE = mimeType ? mimeType : "image/jpeg"; - const QUALITY = 0.95; - const MAX_WIDTH = maxWidth ? maxWidth : null; - const file = (_b = imageInput.files) === null || _b === void 0 ? void 0 : _b[0]; - const blobURL = file ? URL.createObjectURL(file) : undefined; - const img = new Image(); - if (blobURL) { - img.src = blobURL; - imageDataBase64 = await new Promise((res, rej) => { - /** ********************* Handle Errors in loading image */ - img.onerror = function () { - URL.revokeObjectURL(this.src); - window.alert("Cannot load image!"); +function imageInputToBase64(_a) { + return __awaiter(this, arguments, void 0, function* ({ imageInput, maxWidth, mimeType, }) { + var _b, _c; + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + try { + let imagePreviewNode = document.querySelector(`[data-imagepreview='image']`); + let imageName = (_b = imageInput.files) === null || _b === void 0 ? void 0 : _b[0].name.replace(/\..*/, ""); + let imageDataBase64; + const MIME_TYPE = mimeType ? mimeType : "image/jpeg"; + const QUALITY = 0.95; + const MAX_WIDTH = maxWidth ? maxWidth : null; + const file = (_c = imageInput.files) === null || _c === void 0 ? void 0 : _c[0]; + const blobURL = file ? URL.createObjectURL(file) : undefined; + const img = new Image(); + if (blobURL) { + img.src = blobURL; + imageDataBase64 = yield new Promise((res, rej) => { + /** ********************* Handle Errors in loading image */ + img.onerror = function () { + URL.revokeObjectURL(this.src); + window.alert("Cannot load image!"); + }; + img.onload = function (e) { + const imgEl = e.target; + URL.revokeObjectURL(imgEl.src); + const canvas = document.createElement("canvas"); + if (MAX_WIDTH) { + const scaleSize = MAX_WIDTH / img.naturalWidth; + canvas.width = + img.naturalWidth < MAX_WIDTH + ? img.naturalWidth + : MAX_WIDTH; + canvas.height = + img.naturalWidth < MAX_WIDTH + ? img.naturalHeight + : img.naturalHeight * scaleSize; + } + else { + canvas.width = img.naturalWidth; + canvas.height = img.naturalHeight; + } + const ctx = canvas.getContext("2d"); + ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + const srcEncoded = canvas.toDataURL(MIME_TYPE, QUALITY); + if (imagePreviewNode) { + document + .querySelectorAll(`[data-imagepreview='image']`) + .forEach((_img) => { + const _imgEl = _img; + _imgEl.src = srcEncoded; + }); + } + res(srcEncoded); + }; + }); + return { + imageBase64: imageDataBase64 === null || imageDataBase64 === void 0 ? void 0 : imageDataBase64.replace(/.*?base64,/, ""), + imageBase64Full: imageDataBase64, + imageName: imageName, }; - img.onload = function (e) { - const imgEl = e.target; - URL.revokeObjectURL(imgEl.src); - const canvas = document.createElement("canvas"); - if (MAX_WIDTH) { - const scaleSize = MAX_WIDTH / img.naturalWidth; - canvas.width = - img.naturalWidth < MAX_WIDTH - ? img.naturalWidth - : MAX_WIDTH; - canvas.height = - img.naturalWidth < MAX_WIDTH - ? img.naturalHeight - : img.naturalHeight * scaleSize; - } - else { - canvas.width = img.naturalWidth; - canvas.height = img.naturalHeight; - } - const ctx = canvas.getContext("2d"); - ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, 0, 0, canvas.width, canvas.height); - const srcEncoded = canvas.toDataURL(MIME_TYPE, QUALITY); - if (imagePreviewNode) { - document - .querySelectorAll(`[data-imagepreview='image']`) - .forEach((_img) => { - const _imgEl = _img; - _imgEl.src = srcEncoded; - }); - } - res(srcEncoded); - }; - }); - return { - imageBase64: imageDataBase64 === null || imageDataBase64 === void 0 ? void 0 : imageDataBase64.replace(/.*?base64,/, ""), - imageBase64Full: imageDataBase64, - imageName: imageName, - }; + } + else { + return {}; + } } - else { + catch ( /** @type {*} */error) { + console.log("Image Processing Error! =>", error.message); return {}; } - } - catch ( /** @type {*} */error) { - console.log("Image Processing Error! =>", error.message); - return {}; - } + }); } diff --git a/dist/client/media/inputFileToBase64.js b/dist/client/media/inputFileToBase64.js index 76c7323..5ef9e13 100644 --- a/dist/client/media/inputFileToBase64.js +++ b/dist/client/media/inputFileToBase64.js @@ -1,3 +1,15 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = inputFileToBase64; /** * Input File to base64 * ============================================================================== @@ -6,40 +18,42 @@ * HTML file input elements usually return an array of input objects, so be sure to select the target * file from the array. */ -export default async function inputFileToBase64({ inputFile, allowedRegex, }) { - var _a; - const allowedTypesRegex = allowedRegex ? allowedRegex : /image\/*|\/pdf/; - if (!((_a = inputFile === null || inputFile === void 0 ? void 0 : inputFile.type) === null || _a === void 0 ? void 0 : _a.match(allowedTypesRegex))) { - window.alert(`We currently don't support ${inputFile.type} file types. Support is coming soon. For now we support only images and PDFs.`); - return { - fileName: inputFile.name, - }; - } - try { - let fileName = inputFile.name.replace(/\..*/, ""); - const fileData = await new Promise((resolve, reject) => { - var reader = new FileReader(); - reader.readAsDataURL(inputFile); - reader.onload = function () { - var _a; - resolve((_a = reader.result) === null || _a === void 0 ? void 0 : _a.toString()); +function inputFileToBase64(_a) { + return __awaiter(this, arguments, void 0, function* ({ inputFile, allowedRegex, }) { + var _b; + const allowedTypesRegex = allowedRegex ? allowedRegex : /image\/*|\/pdf/; + if (!((_b = inputFile === null || inputFile === void 0 ? void 0 : inputFile.type) === null || _b === void 0 ? void 0 : _b.match(allowedTypesRegex))) { + window.alert(`We currently don't support ${inputFile.type} file types. Support is coming soon. For now we support only images and PDFs.`); + return { + fileName: inputFile.name, }; - reader.onerror = function (/** @type {*} */ error) { - console.log("Error: ", error.message); + } + try { + let fileName = inputFile.name.replace(/\..*/, ""); + const fileData = yield new Promise((resolve, reject) => { + var reader = new FileReader(); + reader.readAsDataURL(inputFile); + reader.onload = function () { + var _a; + resolve((_a = reader.result) === null || _a === void 0 ? void 0 : _a.toString()); + }; + reader.onerror = function (/** @type {*} */ error) { + console.log("Error: ", error.message); + }; + }); + return { + fileBase64: fileData === null || fileData === void 0 ? void 0 : fileData.replace(/.*?base64,/, ""), + fileBase64Full: fileData, + fileName: fileName, + fileSize: inputFile.size, + fileType: inputFile.type, }; - }); - return { - fileBase64: fileData === null || fileData === void 0 ? void 0 : fileData.replace(/.*?base64,/, ""), - fileBase64Full: fileData, - fileName: fileName, - fileSize: inputFile.size, - fileType: inputFile.type, - }; - } - catch (error) { - console.log("File Processing Error! =>", error.message); - return { - fileName: inputFile.name, - }; - } + } + catch (error) { + console.log("File Processing Error! =>", error.message); + return { + fileName: inputFile.name, + }; + } + }); } diff --git a/dist/client/utils/parseClientCookies.js b/dist/client/utils/parseClientCookies.js index beb516a..a9d31be 100644 --- a/dist/client/utils/parseClientCookies.js +++ b/dist/client/utils/parseClientCookies.js @@ -1,9 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = default_1; /** * Parse request cookies * ============================================================================== * * @description This function takes in a request object and returns the cookies as a JS object */ -export default function () { +function default_1() { /** * Check inputs * diff --git a/dist/console-colors.js b/dist/console-colors.js index 04fa226..f1d612e 100644 --- a/dist/console-colors.js +++ b/dist/console-colors.js @@ -1,3 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const colors = { Reset: "\x1b[0m", Bright: "\x1b[1m", @@ -25,4 +27,4 @@ const colors = { BgWhite: "\x1b[47m", BgGray: "\x1b[100m", }; -export default colors; +exports.default = colors; diff --git a/dist/engine/dsql.js b/dist/engine/dsql.js index 963ea32..84070f5 100644 --- a/dist/engine/dsql.js +++ b/dist/engine/dsql.js @@ -1,13 +1,28 @@ #! /usr/bin/env node -import fs from "fs"; -import path from "path"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = run; +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); require("dotenv").config({ - path: path.resolve(process.cwd(), ".env"), + path: path_1.default.resolve(process.cwd(), ".env"), }); -import datasquirel from "../index"; -import colors from "../console-colors"; -import createDbFromSchema from "../package-shared/shell/createDbFromSchema"; -if (!fs.existsSync(path.resolve(process.cwd(), ".env"))) { +const index_1 = __importDefault(require("../index")); +const console_colors_1 = __importDefault(require("../console-colors")); +const createDbFromSchema_1 = __importDefault(require("../package-shared/shell/createDbFromSchema")); +if (!fs_1.default.existsSync(path_1.default.resolve(process.cwd(), ".env"))) { console.log(".env file not found"); process.exit(); } @@ -24,74 +39,76 @@ if (!(DSQL_PASS === null || DSQL_PASS === void 0 ? void 0 : DSQL_PASS.match(/./) console.log("DSQL_PASS is required in your `.env` file"); process.exit(); } -const dbSchemaLocalFilePath = path.resolve(process.cwd(), "dsql.schema.json"); -export default async function run() { - let schemaData; - if (DSQL_KEY && (DSQL_REF_DB_NAME === null || DSQL_REF_DB_NAME === void 0 ? void 0 : DSQL_REF_DB_NAME.match(/./))) { - const dbSchemaDataResponse = await datasquirel.getSchema({ - key: DSQL_KEY, - database: DSQL_REF_DB_NAME || undefined, - }); - if (!dbSchemaDataResponse.payload || - Array.isArray(dbSchemaDataResponse.payload)) { - console.log("DSQL_KEY+DSQL_REF_DB_NAME => Error in fetching DB schema"); - console.log(dbSchemaDataResponse); +const dbSchemaLocalFilePath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); +function run() { + return __awaiter(this, void 0, void 0, function* () { + let schemaData; + if (DSQL_KEY && (DSQL_REF_DB_NAME === null || DSQL_REF_DB_NAME === void 0 ? void 0 : DSQL_REF_DB_NAME.match(/./))) { + const dbSchemaDataResponse = yield index_1.default.getSchema({ + key: DSQL_KEY, + database: DSQL_REF_DB_NAME || undefined, + }); + if (!dbSchemaDataResponse.payload || + Array.isArray(dbSchemaDataResponse.payload)) { + console.log("DSQL_KEY+DSQL_REF_DB_NAME => Error in fetching DB schema"); + console.log(dbSchemaDataResponse); + process.exit(); + } + let fetchedDbSchemaObject = dbSchemaDataResponse.payload; + if (DSQL_DB_NAME) + fetchedDbSchemaObject.dbFullName = DSQL_DB_NAME; + schemaData = [fetchedDbSchemaObject]; + } + else if (DSQL_KEY) { + const dbSchemaDataResponse = yield index_1.default.getSchema({ + key: DSQL_KEY, + database: DSQL_REF_DB_NAME || undefined, + }); + if (!dbSchemaDataResponse.payload || + !Array.isArray(dbSchemaDataResponse.payload)) { + console.log("DSQL_KEY => Error in fetching DB schema"); + console.log(dbSchemaDataResponse); + process.exit(); + } + let fetchedDbSchemaObject = dbSchemaDataResponse.payload; + // fetchedDbSchemaObject.forEach((db, index) => { + // db.dbFullName = db.dbFullName?.replace(/^datasquirel_user_\d+_/, ""); + // }); + schemaData = fetchedDbSchemaObject; + } + else if (fs_1.default.existsSync(dbSchemaLocalFilePath)) { + schemaData = [ + JSON.parse(fs_1.default.readFileSync(dbSchemaLocalFilePath, "utf8")), + ]; + } + else { + console.log("No source for DB Schema. Please provide a local `dsql.schema.json` file, or provide `DSQL_KEY` and `DSQL_REF_DB_NAME` environment variables."); process.exit(); } - let fetchedDbSchemaObject = dbSchemaDataResponse.payload; - if (DSQL_DB_NAME) - fetchedDbSchemaObject.dbFullName = DSQL_DB_NAME; - schemaData = [fetchedDbSchemaObject]; - } - else if (DSQL_KEY) { - const dbSchemaDataResponse = await datasquirel.getSchema({ - key: DSQL_KEY, - database: DSQL_REF_DB_NAME || undefined, - }); - if (!dbSchemaDataResponse.payload || - !Array.isArray(dbSchemaDataResponse.payload)) { - console.log("DSQL_KEY => Error in fetching DB schema"); - console.log(dbSchemaDataResponse); + if (!schemaData) { + console.log("No schema found"); process.exit(); } - let fetchedDbSchemaObject = dbSchemaDataResponse.payload; - // fetchedDbSchemaObject.forEach((db, index) => { - // db.dbFullName = db.dbFullName?.replace(/^datasquirel_user_\d+_/, ""); - // }); - schemaData = fetchedDbSchemaObject; - } - else if (fs.existsSync(dbSchemaLocalFilePath)) { - schemaData = [ - JSON.parse(fs.readFileSync(dbSchemaLocalFilePath, "utf8")), - ]; - } - else { - console.log("No source for DB Schema. Please provide a local `dsql.schema.json` file, or provide `DSQL_KEY` and `DSQL_REF_DB_NAME` environment variables."); - process.exit(); - } - if (!schemaData) { - console.log("No schema found"); - process.exit(); - } - if (DSQL_FULL_SYNC === null || DSQL_FULL_SYNC === void 0 ? void 0 : DSQL_FULL_SYNC.match(/true/i)) { - fs.writeFileSync(dbSchemaLocalFilePath, JSON.stringify(schemaData[0], null, 4), "utf8"); - } - console.log(` - ${colors.FgBlue}Info:${colors.Reset} Now generating and mapping databases ...`); - await createDbFromSchema({ - dbSchemaData: schemaData, + if (DSQL_FULL_SYNC === null || DSQL_FULL_SYNC === void 0 ? void 0 : DSQL_FULL_SYNC.match(/true/i)) { + fs_1.default.writeFileSync(dbSchemaLocalFilePath, JSON.stringify(schemaData[0], null, 4), "utf8"); + } + console.log(` - ${console_colors_1.default.FgBlue}Info:${console_colors_1.default.Reset} Now generating and mapping databases ...`); + yield (0, createDbFromSchema_1.default)({ + dbSchemaData: schemaData, + }); + console.log(` - ${console_colors_1.default.FgGreen}Success:${console_colors_1.default.Reset} Databases created Successfully!`); }); - console.log(` - ${colors.FgGreen}Success:${colors.Reset} Databases created Successfully!`); } let interval; -if (fs.existsSync(dbSchemaLocalFilePath) && !(DSQL_KEY === null || DSQL_KEY === void 0 ? void 0 : DSQL_KEY.match(/....../))) { - fs.watchFile(dbSchemaLocalFilePath, { interval: 1000 }, (curr, prev) => { - console.log(` - ${colors.FgBlue}Info:${colors.Reset} Syncing Databases Locally ...`); +if (fs_1.default.existsSync(dbSchemaLocalFilePath) && !(DSQL_KEY === null || DSQL_KEY === void 0 ? void 0 : DSQL_KEY.match(/....../))) { + fs_1.default.watchFile(dbSchemaLocalFilePath, { interval: 1000 }, (curr, prev) => { + console.log(` - ${console_colors_1.default.FgBlue}Info:${console_colors_1.default.Reset} Syncing Databases Locally ...`); run(); }); } else if (DSQL_KEY === null || DSQL_KEY === void 0 ? void 0 : DSQL_KEY.match(/....../)) { interval = setInterval(() => { - console.log(` - ${colors.FgMagenta}Info:${colors.Reset} Syncing Databases from the cloud ...`); + console.log(` - ${console_colors_1.default.FgMagenta}Info:${console_colors_1.default.Reset} Syncing Databases from the cloud ...`); run(); }, 20000); } diff --git a/dist/engine/dump.js b/dist/engine/dump.js index c213187..da8e3b3 100644 --- a/dist/engine/dump.js +++ b/dist/engine/dump.js @@ -1,9 +1,14 @@ #! /usr/bin/env node +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; var _a, _b, _c; -import path from "path"; -import { execSync } from "child_process"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path_1 = __importDefault(require("path")); +const child_process_1 = require("child_process"); require("dotenv").config({ - path: path.resolve(process.cwd(), ".env"), + path: path_1.default.resolve(process.cwd(), ".env"), }); const mysqlPath = ((_a = process.platform) === null || _a === void 0 ? void 0 : _a.match(/win/i)) ? "'" + "C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql.exe" + "'" @@ -34,7 +39,7 @@ try { cwd: process.cwd(), }; // if (process.platform.match(/win/i)) execSyncOptions.shell = "bash.exe"; - const dump = execSync(`${mysqlPath} -u ${DSQL_USER} -p${DSQL_PASS} ${dbName} < ${dumpFilePath}`, execSyncOptions); + const dump = (0, child_process_1.execSync)(`${mysqlPath} -u ${DSQL_USER} -p${DSQL_PASS} ${dbName} < ${dumpFilePath}`, execSyncOptions); console.log("Dumped successfully", dump.toString()); //////////////////////////////////////// //////////////////////////////////////// diff --git a/dist/engine/schema-to-typedef.js b/dist/engine/schema-to-typedef.js index b0e087e..8d36683 100644 --- a/dist/engine/schema-to-typedef.js +++ b/dist/engine/schema-to-typedef.js @@ -1,12 +1,26 @@ #! /usr/bin/env node -import fs from "fs"; -import datasquirel from ".."; -import { parseArgs } from "util"; -import dbSchemaToType from "../package-shared/functions/dsql/db-schema-to-type"; -import path from "path"; -import debugLog from "../package-shared/utils/logging/debug-log"; -import parseEnv from "../package-shared/utils/parse-env"; -const args = parseArgs({ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = __importDefault(require("fs")); +const __1 = __importDefault(require("..")); +const util_1 = require("util"); +const db_schema_to_type_1 = __importDefault(require("../package-shared/functions/dsql/db-schema-to-type")); +const path_1 = __importDefault(require("path")); +const debug_log_1 = __importDefault(require("../package-shared/utils/logging/debug-log")); +const parse_env_1 = __importDefault(require("../package-shared/utils/parse-env")); +const args = (0, util_1.parseArgs)({ args: process.argv, options: { apiKey: { @@ -41,12 +55,12 @@ const args = parseArgs({ }); let appendedEnv = {}; if (args.values.envfile && typeof args.values.envfile == "string") { - const finalEnvPath = path.resolve(process.cwd(), args.values.envfile); - if (fs.existsSync(finalEnvPath)) { - const parsedEnv = parseEnv(finalEnvPath); + const finalEnvPath = path_1.default.resolve(process.cwd(), args.values.envfile); + if (fs_1.default.existsSync(finalEnvPath)) { + const parsedEnv = (0, parse_env_1.default)(finalEnvPath); appendedEnv = (parsedEnv || {}); if (args.values.debug) { - debugLog({ + (0, debug_log_1.default)({ log: appendedEnv, label: "Appended env", title: "Schema to Typedef", @@ -57,25 +71,25 @@ if (args.values.envfile && typeof args.values.envfile == "string") { } const finalEnv = Object.assign(Object.assign({}, process.env), appendedEnv); process.env = Object.assign(Object.assign({}, process.env), appendedEnv); -(async () => { +(() => __awaiter(void 0, void 0, void 0, function* () { try { const key = args.values.apiKey || finalEnv["DSQL_FULL_ACCESS_API_KEY"]; const database = args.values.database || finalEnv["DSQL_DB_NAME"]; const user_id = args.values.userid || finalEnv["DSQL_API_USER_ID"] || "1"; if (args.values.debug) { - debugLog({ + (0, debug_log_1.default)({ log: args.values, label: "Arguments", title: "Schema to Typedef", addTime: true, }); - debugLog({ + (0, debug_log_1.default)({ log: process.env.DSQL_FULL_ACCESS_API_KEY, label: "process.env.DSQL_FULL_ACCESS_API_KEY", title: "Schema to Typedef", addTime: true, }); - debugLog({ + (0, debug_log_1.default)({ log: process.env.DSQL_DB_NAME, label: "process.env.DSQL_DB_NAME", title: "Schema to Typedef", @@ -90,7 +104,7 @@ process.env = Object.assign(Object.assign({}, process.env), appendedEnv); throw new Error("Outfile are required"); if (!user_id || typeof user_id !== "string") throw new Error("Outfile are required"); - const schema = await datasquirel.getSchema({ + const schema = yield __1.default.getSchema({ key, database, user_id, @@ -98,7 +112,7 @@ process.env = Object.assign(Object.assign({}, process.env), appendedEnv); }); const dbSchema = schema.payload; if (args.values.debug) { - debugLog({ + (0, debug_log_1.default)({ log: schema, label: "schema", title: "Schema to Typedef", @@ -107,16 +121,16 @@ process.env = Object.assign(Object.assign({}, process.env), appendedEnv); } if (!dbSchema) throw new Error("No schema found"); - const definitions = dbSchemaToType({ dbSchema }); - const finalOutfile = path.resolve(process.cwd(), args.values.outfile); - const ourfileDir = path.dirname(finalOutfile); - if (!fs.existsSync(ourfileDir)) { - fs.mkdirSync(ourfileDir, { recursive: true }); + const definitions = (0, db_schema_to_type_1.default)({ dbSchema }); + const finalOutfile = path_1.default.resolve(process.cwd(), args.values.outfile); + const ourfileDir = path_1.default.dirname(finalOutfile); + if (!fs_1.default.existsSync(ourfileDir)) { + fs_1.default.mkdirSync(ourfileDir, { recursive: true }); } - fs.writeFileSync(finalOutfile, (definitions === null || definitions === void 0 ? void 0 : definitions.join("\n\n")) || "", "utf-8"); + fs_1.default.writeFileSync(finalOutfile, (definitions === null || definitions === void 0 ? void 0 : definitions.join("\n\n")) || "", "utf-8"); } catch (error) { - debugLog({ + (0, debug_log_1.default)({ log: error.message, label: "Error", title: "Schema to Typedef", @@ -125,4 +139,4 @@ process.env = Object.assign(Object.assign({}, process.env), appendedEnv); }); process.exit(1); } -})(); +}))(); diff --git a/dist/index.js b/dist/index.js index 21db350..0422fcc 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,72 +1,77 @@ -import get from "./package-shared/actions/get"; -import post from "./package-shared/actions/post"; -import getSchema from "./package-shared/actions/get-schema"; -import createUser from "./package-shared/actions/users/add-user"; -import updateUser from "./package-shared/actions/users/update-user"; -import loginUser from "./package-shared/actions/users/login-user"; -import sendEmailCode from "./package-shared/actions/users/send-email-code"; -import logoutUser from "./package-shared/actions/users/logout-user"; -import userAuth from "./package-shared/actions/users/user-auth"; -import reAuthUser from "./package-shared/actions/users/reauth-user"; -import getUser from "./package-shared/actions/users/get-user"; -import loginWithGoogle from "./package-shared/actions/users/social/google-auth"; -import loginWithGithub from "./package-shared/actions/users/social/github-auth"; -import getToken from "./package-shared/actions/users/get-token"; -import validateToken from "./package-shared/actions/users/validate-token"; -import datasquirelClient from "./client"; -import sqlGenerator from "./package-shared/functions/dsql/sql/sql-generator"; -import sqlInsertGenerator from "./package-shared/functions/dsql/sql/sql-insert-generator"; -import sqlDeleteGenerator from "./package-shared/functions/dsql/sql/sql-delete-generator"; -import trimSql from "./package-shared/utils/trim-sql"; -import parseCookies from "./package-shared/utils/backend/parseCookies"; -import connDbHandler from "./package-shared/utils/db/conn-db-handler"; -import encrypt from "./package-shared/functions/dsql/encrypt"; -import decrypt from "./package-shared/functions/dsql/decrypt"; -import hashPassword from "./package-shared/functions/dsql/hashPassword"; -import validateTempEmailCode from "./package-shared/actions/users/validate-temp-email-code"; -import deleteUser from "./package-shared/actions/users/delete-user"; -import dsqlCrud from "./package-shared/utils/data-fetching/crud"; -import dsqlMethodCrud from "./package-shared/utils/data-fetching/method-crud"; -import debugLog from "./package-shared/utils/logging/debug-log"; -import parseEnv from "./package-shared/utils/parse-env"; -import crud from "./package-shared/api/crud"; -import media from "./package-shared/api/media"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const get_1 = __importDefault(require("./package-shared/actions/get")); +const post_1 = __importDefault(require("./package-shared/actions/post")); +const get_schema_1 = __importDefault(require("./package-shared/actions/get-schema")); +const add_user_1 = __importDefault(require("./package-shared/actions/users/add-user")); +const update_user_1 = __importDefault(require("./package-shared/actions/users/update-user")); +const login_user_1 = __importDefault(require("./package-shared/actions/users/login-user")); +const send_email_code_1 = __importDefault(require("./package-shared/actions/users/send-email-code")); +const logout_user_1 = __importDefault(require("./package-shared/actions/users/logout-user")); +const user_auth_1 = __importDefault(require("./package-shared/actions/users/user-auth")); +const reauth_user_1 = __importDefault(require("./package-shared/actions/users/reauth-user")); +const get_user_1 = __importDefault(require("./package-shared/actions/users/get-user")); +const google_auth_1 = __importDefault(require("./package-shared/actions/users/social/google-auth")); +const github_auth_1 = __importDefault(require("./package-shared/actions/users/social/github-auth")); +const get_token_1 = __importDefault(require("./package-shared/actions/users/get-token")); +const validate_token_1 = __importDefault(require("./package-shared/actions/users/validate-token")); +const client_1 = __importDefault(require("./client")); +const sql_generator_1 = __importDefault(require("./package-shared/functions/dsql/sql/sql-generator")); +const sql_insert_generator_1 = __importDefault(require("./package-shared/functions/dsql/sql/sql-insert-generator")); +const sql_delete_generator_1 = __importDefault(require("./package-shared/functions/dsql/sql/sql-delete-generator")); +const trim_sql_1 = __importDefault(require("./package-shared/utils/trim-sql")); +const parseCookies_1 = __importDefault(require("./package-shared/utils/backend/parseCookies")); +const conn_db_handler_1 = __importDefault(require("./package-shared/utils/db/conn-db-handler")); +const encrypt_1 = __importDefault(require("./package-shared/functions/dsql/encrypt")); +const decrypt_1 = __importDefault(require("./package-shared/functions/dsql/decrypt")); +const hashPassword_1 = __importDefault(require("./package-shared/functions/dsql/hashPassword")); +const validate_temp_email_code_1 = __importDefault(require("./package-shared/actions/users/validate-temp-email-code")); +const delete_user_1 = __importDefault(require("./package-shared/actions/users/delete-user")); +const crud_1 = __importDefault(require("./package-shared/utils/data-fetching/crud")); +const method_crud_1 = __importDefault(require("./package-shared/utils/data-fetching/method-crud")); +const debug_log_1 = __importDefault(require("./package-shared/utils/logging/debug-log")); +const parse_env_1 = __importDefault(require("./package-shared/utils/parse-env")); +const crud_2 = __importDefault(require("./package-shared/api/crud")); +const media_1 = __importDefault(require("./package-shared/api/media")); /** * User Functions Object */ const user = { - createUser: createUser, - deleteUser, - loginUser: loginUser, - sendEmailCode: sendEmailCode, - logoutUser: logoutUser, - userAuth: userAuth, - reAuthUser: reAuthUser, - updateUser: updateUser, - getUser: getUser, - getToken: getToken, - validateToken: validateToken, - validateTempEmailCode, + createUser: add_user_1.default, + deleteUser: delete_user_1.default, + loginUser: login_user_1.default, + sendEmailCode: send_email_code_1.default, + logoutUser: logout_user_1.default, + userAuth: user_auth_1.default, + reAuthUser: reauth_user_1.default, + updateUser: update_user_1.default, + getUser: get_user_1.default, + getToken: get_token_1.default, + validateToken: validate_token_1.default, + validateTempEmailCode: validate_temp_email_code_1.default, social: { - loginWithGoogle: loginWithGoogle, - loginWithGithub: loginWithGithub, + loginWithGoogle: google_auth_1.default, + loginWithGithub: github_auth_1.default, }, }; /** * API Functions Object */ const api = { - crud, - media, + crud: crud_2.default, + media: media_1.default, }; /** * SQL Utils */ const sql = { - sqlGenerator, - sqlInsertGenerator, - sqlDeleteGenerator, - trim: trimSql, + sqlGenerator: sql_generator_1.default, + sqlInsertGenerator: sql_insert_generator_1.default, + sqlDeleteGenerator: sql_delete_generator_1.default, + trim: trim_sql_1.default, }; /** * Main Export @@ -79,35 +84,35 @@ const datasquirel = { /** * Get Action */ - get, + get: get_1.default, /** * Post Action */ - post, + post: post_1.default, user, - getSchema, - client: datasquirelClient, + getSchema: get_schema_1.default, + client: client_1.default, sql, utils: { crypto: { - encrypt, - decrypt, - hashPassword, + encrypt: encrypt_1.default, + decrypt: decrypt_1.default, + hashPassword: hashPassword_1.default, }, - parseCookies, - connDbHandler, - debugLog, - parseEnv, + parseCookies: parseCookies_1.default, + connDbHandler: conn_db_handler_1.default, + debugLog: debug_log_1.default, + parseEnv: parse_env_1.default, }, /** * Run Crud actions `get`, `insert`, `update`, `delete` * @note *Requires global variables `DSQL_USE_LOCAL` and `DSQL_DB_CONN` */ - crud: dsqlCrud, + crud: crud_1.default, /** * Run Crud based on request Methods `GET`, `POST`, `PUT`, `PATCH` * @note *Requires global variables `DSQL_USE_LOCAL` and `DSQL_DB_CONN` */ - methodCrud: dsqlMethodCrud, + methodCrud: method_crud_1.default, }; -export default datasquirel; +exports.default = datasquirel; diff --git a/dist/package-shared/actions/delete-file.js b/dist/package-shared/actions/delete-file.js index 7a0d79e..0b8259d 100644 --- a/dist/package-shared/actions/delete-file.js +++ b/dist/package-shared/actions/delete-file.js @@ -1,59 +1,76 @@ -import grabHostNames from "../utils/grab-host-names"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = deleteFile; +const grab_host_names_1 = __importDefault(require("../utils/grab-host-names")); /** * # Delete File via API */ -export default async function deleteFile({ key, url, user_id, }) { - const grabedHostNames = grabHostNames(); - const { host, port, scheme } = grabedHostNames; - try { - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify({ url: url }); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/query/${user_id || grabedHostNames.user_id}/delete-file`, - }, +function deleteFile(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, url, user_id, }) { + const grabedHostNames = (0, grab_host_names_1.default)(); + const { host, port, scheme } = grabedHostNames; + try { /** - * Callback Function + * Make https request * - * @description https request callback + * @description make a request to datasquirel.com */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; - }); - response.on("end", function () { - resolve(JSON.parse(str)); - }); - response.on("error", (err) => { - reject(err); + const httpResponse = yield new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ url: url }); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/query/${user_id || grabedHostNames.user_id}/delete-file`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); }); + httpsRequest.write(reqPayload); + httpsRequest.end(); }); - httpsRequest.write(reqPayload); - httpsRequest.end(); - }); - return httpResponse; - } - catch ( /** @type {*} */error) { - console.log("Error deleting file: ", error.message); - return { - success: false, - payload: null, - msg: error.message, - }; - } + return httpResponse; + } + catch ( /** @type {*} */error) { + console.log("Error deleting file: ", error.message); + return { + success: false, + payload: null, + msg: error.message, + }; + } + }); } diff --git a/dist/package-shared/actions/get-csrf-header-name.js b/dist/package-shared/actions/get-csrf-header-name.js index abd3000..14780b6 100644 --- a/dist/package-shared/actions/get-csrf-header-name.js +++ b/dist/package-shared/actions/get-csrf-header-name.js @@ -1,3 +1,6 @@ -export default function getCsrfHeaderName() { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getCsrfHeaderName; +function getCsrfHeaderName() { return "x-dsql-csrf-key"; } diff --git a/dist/package-shared/actions/get-schema.js b/dist/package-shared/actions/get-schema.js index 38f3fcb..24f8b53 100644 --- a/dist/package-shared/actions/get-schema.js +++ b/dist/package-shared/actions/get-schema.js @@ -1,52 +1,69 @@ -import grabHostNames from "../utils/grab-host-names"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getSchema; +const grab_host_names_1 = __importDefault(require("../utils/grab-host-names")); /** * # Get Schema for Database, table, or field * */ -export default async function getSchema({ key, database, field, table, user_id, env, }) { - const grabedHostNames = grabHostNames({ env }); - const { host, port, scheme } = grabedHostNames; - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - const queryObject = { database, field, table }; - let query = Object.keys(queryObject) - .filter((k) => queryObject[k]) - .map((k) => `${k}=${queryObject[k]}`) - .join("&"); - scheme - .request({ - method: "GET", - headers: { - "Content-Type": "application/json", - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/query/${user_id || grabedHostNames.user_id}/get-schema` + ((query === null || query === void 0 ? void 0 : query.match(/./)) ? `?${query}` : ""), - }, +function getSchema(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, database, field, table, user_id, env, }) { + const grabedHostNames = (0, grab_host_names_1.default)({ env }); + const { host, port, scheme } = grabedHostNames; /** - * Callback Function + * Make https request * - * @description https request callback + * @description make a request to datasquirel.com */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; - }); - response.on("end", function () { - resolve(JSON.parse(str)); - }); - response.on("error", (err) => { - resolve(null); - }); - }) - .end(); + const httpResponse = yield new Promise((resolve, reject) => { + const queryObject = { database, field, table }; + let query = Object.keys(queryObject) + .filter((k) => queryObject[k]) + .map((k) => `${k}=${queryObject[k]}`) + .join("&"); + scheme + .request({ + method: "GET", + headers: { + "Content-Type": "application/json", + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/query/${user_id || grabedHostNames.user_id}/get-schema` + ((query === null || query === void 0 ? void 0 : query.match(/./)) ? `?${query}` : ""), + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + resolve(null); + }); + }) + .end(); + }); + return httpResponse; }); - return httpResponse; } diff --git a/dist/package-shared/actions/get.js b/dist/package-shared/actions/get.js index 5205285..4677481 100644 --- a/dist/package-shared/actions/get.js +++ b/dist/package-shared/actions/get.js @@ -1,115 +1,132 @@ -import path from "path"; -import fs from "fs"; -import grabHostNames from "../utils/grab-host-names"; -import apiGet from "../functions/api/query/get"; -import serializeQuery from "../utils/serialize-query"; -import apiGetGrabQueryAndValues from "../utils/grab-query-and-values"; -import debugLog from "../utils/logging/debug-log"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = get; +const path_1 = __importDefault(require("path")); +const fs_1 = __importDefault(require("fs")); +const grab_host_names_1 = __importDefault(require("../utils/grab-host-names")); +const get_1 = __importDefault(require("../functions/api/query/get")); +const serialize_query_1 = __importDefault(require("../utils/serialize-query")); +const grab_query_and_values_1 = __importDefault(require("../utils/grab-query-and-values")); +const debug_log_1 = __importDefault(require("../utils/logging/debug-log")); /** * # Make a get request to Datasquirel API */ -export default async function get({ key, db, query, queryValues, tableName, user_id, debug, forceLocal, }) { - const grabedHostNames = grabHostNames(); - const { host, port, scheme } = grabedHostNames; - function debugFn(log, label) { - debugLog({ log, addTime: true, title: "apiGet", label }); - } - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_NAME } = process.env; - if ((DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && global.DSQL_USE_LOCAL) { - let dbSchema; - try { - const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); - dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); +function get(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, db, query, queryValues, tableName, user_id, debug, forceLocal, }) { + const grabedHostNames = (0, grab_host_names_1.default)(); + const { host, port, scheme } = grabedHostNames; + function debugFn(log, label) { + (0, debug_log_1.default)({ log, addTime: true, title: "apiGet", label }); } - catch (error) { } - if (debug) { - debugFn("Running Locally ..."); - } - return await apiGet({ - dbFullName: DSQL_DB_NAME, - query, - queryValues, - tableName, - dbSchema, - debug, - forceLocal, - }); - } - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - const queryAndValues = apiGetGrabQueryAndValues({ - query, - values: queryValues, - }); - const queryObject = { - db: process.env.DSQL_API_DB_NAME || String(db), - query: queryAndValues.query, - queryValues: queryAndValues.valuesString, - tableName, - debug, - }; - if (debug) { - debugFn(queryObject, "queryObject"); - } - const queryString = serializeQuery(Object.assign({}, queryObject)); - if (debug) { - debugFn(queryString, "queryString"); - } - let path = `/api/query/${user_id || grabedHostNames.user_id}/get${queryString}`; - if (debug) { - debugFn(path, "path"); - } - const requestObject = { - method: "GET", - headers: { - "Content-Type": "application/json", - Authorization: key || - process.env.DSQL_READ_ONLY_API_KEY || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path, - }; - scheme - .request(requestObject, /** - * Callback Function + * Check for local DB settings * - * @description https request callback + * @description Look for local db settings in `.env` file and by pass the http request if available */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; + const { DSQL_DB_NAME } = process.env; + if ((DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && global.DSQL_USE_LOCAL) { + let dbSchema; + try { + const localDbSchemaPath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs_1.default.readFileSync(localDbSchemaPath, "utf8")); + } + catch (error) { } + if (debug) { + debugFn("Running Locally ..."); + } + return yield (0, get_1.default)({ + dbFullName: DSQL_DB_NAME, + query, + queryValues, + tableName, + dbSchema, + debug, + forceLocal, }); - response.on("end", function () { - try { - resolve(JSON.parse(str)); - } - catch ( /** @type {any} */error) { - reject({ - error: error.message, - result: str, - }); - } + } + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + const httpResponse = yield new Promise((resolve, reject) => { + const queryAndValues = (0, grab_query_and_values_1.default)({ + query, + values: queryValues, }); - response.on("error", (err) => { - console.log("DSQL get Error,", err.message); - resolve(null); - }); - }) - .end(); + const queryObject = { + db: process.env.DSQL_API_DB_NAME || String(db), + query: queryAndValues.query, + queryValues: queryAndValues.valuesString, + tableName, + debug, + }; + if (debug) { + debugFn(queryObject, "queryObject"); + } + const queryString = (0, serialize_query_1.default)(Object.assign({}, queryObject)); + if (debug) { + debugFn(queryString, "queryString"); + } + let path = `/api/query/${user_id || grabedHostNames.user_id}/get${queryString}`; + if (debug) { + debugFn(path, "path"); + } + const requestObject = { + method: "GET", + headers: { + "Content-Type": "application/json", + Authorization: key || + process.env.DSQL_READ_ONLY_API_KEY || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path, + }; + scheme + .request(requestObject, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + try { + resolve(JSON.parse(str)); + } + catch ( /** @type {any} */error) { + reject({ + error: error.message, + result: str, + }); + } + }); + response.on("error", (err) => { + console.log("DSQL get Error,", err.message); + resolve(null); + }); + }) + .end(); + }); + return httpResponse; }); - return httpResponse; } diff --git a/dist/package-shared/actions/post.js b/dist/package-shared/actions/post.js index d502a15..cab88c6 100644 --- a/dist/package-shared/actions/post.js +++ b/dist/package-shared/actions/post.js @@ -1,132 +1,149 @@ +"use strict"; // @ts-check -import path from "path"; -import fs from "fs"; -import grabHostNames from "../utils/grab-host-names"; -import apiPost from "../functions/api/query/post"; -import debugLog from "../utils/logging/debug-log"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = post; +const path_1 = __importDefault(require("path")); +const fs_1 = __importDefault(require("fs")); +const grab_host_names_1 = __importDefault(require("../utils/grab-host-names")); +const post_1 = __importDefault(require("../functions/api/query/post")); +const debug_log_1 = __importDefault(require("../utils/logging/debug-log")); /** * # Make a post request to Datasquirel API */ -export default async function post({ key, query, queryValues, database, tableName, user_id, forceLocal, debug, }) { - const grabedHostNames = grabHostNames(); - const { host, port, scheme } = grabedHostNames; - if (debug) { - debugLog({ - log: grabedHostNames, - addTime: true, - label: "grabedHostNames", - }); - } - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; - if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && - (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && - (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && - (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && - global.DSQL_USE_LOCAL) { - /** @type {import("../types").DSQL_DatabaseSchemaType | undefined} */ - let dbSchema; - try { - const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); - dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); - } - catch (error) { } +function post(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, query, queryValues, database, tableName, user_id, forceLocal, debug, }) { + const grabedHostNames = (0, grab_host_names_1.default)(); + const { host, port, scheme } = grabedHostNames; if (debug) { - debugLog({ - log: "Using Local DB ...", + (0, debug_log_1.default)({ + log: grabedHostNames, addTime: true, + label: "grabedHostNames", }); } - return await apiPost({ - dbFullName: database || DSQL_DB_NAME, - query, - dbSchema, - queryValues, - tableName, - forceLocal, - debug, - }); - } - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - var _a; - const reqPayloadString = JSON.stringify({ - query, - queryValues, - database: process.env.DSQL_API_DB_NAME || database, - tableName: tableName ? tableName : null, - }).replace(/\n|\r|\n\r/gm, ""); - try { - JSON.parse(reqPayloadString); - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Parsing HTTP response for post action`, error); - return { - success: false, - payload: null, - error: "Query object is invalid. Please Check query data values", - }; - } - const reqPayload = reqPayloadString; - const requPath = `/api/query/${user_id || grabedHostNames.user_id}/post`; - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: requPath, - }, /** - * Callback Function + * Check for local DB settings * - * @description https request callback + * @description Look for local db settings in `.env` file and by pass the http request if available */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && + (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && + (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && + (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && + global.DSQL_USE_LOCAL) { + /** @type {import("../types").DSQL_DatabaseSchemaType | undefined} */ + let dbSchema; + try { + const localDbSchemaPath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs_1.default.readFileSync(localDbSchemaPath, "utf8")); + } + catch (error) { } + if (debug) { + (0, debug_log_1.default)({ + log: "Using Local DB ...", + addTime: true, + }); + } + return yield (0, post_1.default)({ + dbFullName: database || DSQL_DB_NAME, + query, + dbSchema, + queryValues, + tableName, + forceLocal, + debug, }); - response.on("end", function () { - try { - resolve(JSON.parse(str)); - } - catch (error) { - console.log("Route ERROR:", error.message); + } + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + const httpResponse = yield new Promise((resolve, reject) => { + var _a; + const reqPayloadString = JSON.stringify({ + query, + queryValues, + database: process.env.DSQL_API_DB_NAME || database, + tableName: tableName ? tableName : null, + }).replace(/\n|\r|\n\r/gm, ""); + try { + JSON.parse(reqPayloadString); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Parsing HTTP response for post action`, error); + return { + success: false, + payload: null, + error: "Query object is invalid. Please Check query data values", + }; + } + const reqPayload = reqPayloadString; + const requPath = `/api/query/${user_id || grabedHostNames.user_id}/post`; + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: requPath, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + try { + resolve(JSON.parse(str)); + } + catch (error) { + console.log("Route ERROR:", error.message); + resolve({ + success: false, + payload: null, + error: error.message, + errPayload: str, + }); + } + }); + response.on("error", (err) => { resolve({ success: false, payload: null, - error: error.message, - errPayload: str, + error: err.message, }); - } - }); - response.on("error", (err) => { - resolve({ - success: false, - payload: null, - error: err.message, }); }); + httpsRequest.write(reqPayload); + httpsRequest.on("error", (error) => { + console.log("HTTPS request ERROR =>", error); + }); + httpsRequest.end(); }); - httpsRequest.write(reqPayload); - httpsRequest.on("error", (error) => { - console.log("HTTPS request ERROR =>", error); - }); - httpsRequest.end(); + return httpResponse; }); - return httpResponse; } diff --git a/dist/package-shared/actions/upload-file.js b/dist/package-shared/actions/upload-file.js index 1466059..df4d8d1 100644 --- a/dist/package-shared/actions/upload-file.js +++ b/dist/package-shared/actions/upload-file.js @@ -1,61 +1,78 @@ -import grabHostNames from "../utils/grab-host-names"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = uploadImage; +const grab_host_names_1 = __importDefault(require("../utils/grab-host-names")); /** * # Upload File via API */ -export default async function uploadImage({ key, payload, user_id, useDefault, }) { - var _a; - const grabedHostNames = grabHostNames({ useDefault }); - const { host, port, scheme } = grabedHostNames; - try { - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify(payload); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/query/${user_id || grabedHostNames.user_id}/add-file`, - }, +function uploadImage(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, payload, user_id, useDefault, }) { + var _b; + const grabedHostNames = (0, grab_host_names_1.default)({ useDefault }); + const { host, port, scheme } = grabedHostNames; + try { /** - * Callback Function + * Make https request * - * @description https request callback + * @description make a request to datasquirel.com */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; - }); - response.on("end", function () { - resolve(JSON.parse(str)); - }); - response.on("error", (err) => { - reject(err); + const httpResponse = yield new Promise((resolve, reject) => { + const reqPayload = JSON.stringify(payload); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/query/${user_id || grabedHostNames.user_id}/add-file`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); }); + httpsRequest.write(reqPayload); + httpsRequest.end(); }); - httpsRequest.write(reqPayload); - httpsRequest.end(); - }); - return httpResponse; - } - catch (error) { - console.log("Error in uploading file: ", error.message); - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Uploading File`, error); - return { - success: false, - payload: null, - msg: error.message, - }; - } + return httpResponse; + } + catch (error) { + console.log("Error in uploading file: ", error.message); + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Uploading File`, error); + return { + success: false, + payload: null, + msg: error.message, + }; + } + }); } diff --git a/dist/package-shared/actions/upload-image.js b/dist/package-shared/actions/upload-image.js index 9b9b8d4..5bd9326 100644 --- a/dist/package-shared/actions/upload-image.js +++ b/dist/package-shared/actions/upload-image.js @@ -1,61 +1,78 @@ -import grabHostNames from "../utils/grab-host-names"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = uploadImage; +const grab_host_names_1 = __importDefault(require("../utils/grab-host-names")); /** * # Upload Image via API */ -export default async function uploadImage({ key, payload, user_id, useDefault, }) { - var _a; - const grabedHostNames = grabHostNames({ useDefault }); - const { host, port, scheme } = grabedHostNames; - try { - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify(payload); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/query/${user_id || grabedHostNames.user_id}/add-image`, - }, +function uploadImage(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, payload, user_id, useDefault, }) { + var _b; + const grabedHostNames = (0, grab_host_names_1.default)({ useDefault }); + const { host, port, scheme } = grabedHostNames; + try { /** - * Callback Function + * Make https request * - * @description https request callback + * @description make a request to datasquirel.com */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; - }); - response.on("end", function () { - resolve(JSON.parse(str)); - }); - response.on("error", (err) => { - reject(err); + const httpResponse = yield new Promise((resolve, reject) => { + const reqPayload = JSON.stringify(payload); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/query/${user_id || grabedHostNames.user_id}/add-image`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); }); + httpsRequest.write(reqPayload); + httpsRequest.end(); }); - httpsRequest.write(reqPayload); - httpsRequest.end(); - }); - return httpResponse; - } - catch (error) { - console.log("Error in uploading image: ", error.message); - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Uploading Image`, error); - return { - success: false, - payload: null, - msg: error.message, - }; - } + return httpResponse; + } + catch (error) { + console.log("Error in uploading image: ", error.message); + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Uploading Image`, error); + return { + success: false, + payload: null, + msg: error.message, + }; + } + }); } diff --git a/dist/package-shared/actions/users/add-user.js b/dist/package-shared/actions/users/add-user.js index b2e4d61..96df201 100644 --- a/dist/package-shared/actions/users/add-user.js +++ b/dist/package-shared/actions/users/add-user.js @@ -1,81 +1,98 @@ -import path from "path"; -import fs from "fs"; -import grabHostNames from "../../utils/grab-host-names"; -import apiCreateUser from "../../functions/api/users/api-create-user"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = addUser; +const path_1 = __importDefault(require("path")); +const fs_1 = __importDefault(require("fs")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const api_create_user_1 = __importDefault(require("../../functions/api/users/api-create-user")); /** * # Add User to Database */ -export default async function addUser({ key, payload, database, encryptionKey, user_id, apiUserId, }) { - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME, DSQL_API_USER_ID, } = process.env; - const grabedHostNames = grabHostNames(); - const { host, port, scheme } = grabedHostNames; - if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && - (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && - (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && - (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && - global.DSQL_USE_LOCAL) { - /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ - let dbSchema; - try { - const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); - dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); - } - catch (error) { } - return await apiCreateUser({ - database: DSQL_DB_NAME, - encryptionKey, - payload, - userId: apiUserId, - }); - } - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify({ - payload, - database, - encryptionKey, - }); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/user/${user_id || grabedHostNames.user_id}/add-user`, - }, +function addUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, payload, database, encryptionKey, user_id, apiUserId, }) { /** - * Callback Function + * Check for local DB settings * - * @description https request callback + * @description Look for local db settings in `.env` file and by pass the http request if available */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME, DSQL_API_USER_ID, } = process.env; + const grabedHostNames = (0, grab_host_names_1.default)(); + const { host, port, scheme } = grabedHostNames; + if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && + (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && + (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && + (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && + global.DSQL_USE_LOCAL) { + /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ + let dbSchema; + try { + const localDbSchemaPath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs_1.default.readFileSync(localDbSchemaPath, "utf8")); + } + catch (error) { } + return yield (0, api_create_user_1.default)({ + database: DSQL_DB_NAME, + encryptionKey, + payload, + userId: apiUserId, }); - response.on("end", function () { - resolve(JSON.parse(str)); + } + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + const httpResponse = yield new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + payload, + database, + encryptionKey, }); - response.on("error", (err) => { - reject(err); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/add-user`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); }); + httpsRequest.write(reqPayload); + httpsRequest.end(); }); - httpsRequest.write(reqPayload); - httpsRequest.end(); + return httpResponse; }); - return httpResponse; } diff --git a/dist/package-shared/actions/users/delete-user.js b/dist/package-shared/actions/users/delete-user.js index dc70dd2..e0b0dda 100644 --- a/dist/package-shared/actions/users/delete-user.js +++ b/dist/package-shared/actions/users/delete-user.js @@ -1,78 +1,95 @@ -import path from "path"; -import fs from "fs"; -import grabHostNames from "../../utils/grab-host-names"; -import apiDeleteUser from "../../functions/api/users/api-delete-user"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = deleteUser; +const path_1 = __importDefault(require("path")); +const fs_1 = __importDefault(require("fs")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const api_delete_user_1 = __importDefault(require("../../functions/api/users/api-delete-user")); /** * # Update User */ -export default async function deleteUser({ key, database, user_id, deletedUserId, }) { - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; - const grabedHostNames = grabHostNames(); - const { host, port, scheme } = grabedHostNames; - if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && - (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && - (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && - (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && - global.DSQL_USE_LOCAL) { - /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ - let dbSchema; - try { - const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); - dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); - } - catch (error) { } - return await apiDeleteUser({ - dbFullName: DSQL_DB_NAME, - deletedUserId, - }); - } - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = (await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify({ - database, - deletedUserId, - }); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY || - key, - }, - port, - hostname: host, - path: `/api/user/${user_id || grabedHostNames.user_id}/delete-user`, - }, +function deleteUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, database, user_id, deletedUserId, }) { /** - * Callback Function + * Check for local DB settings * - * @description https request callback + * @description Look for local db settings in `.env` file and by pass the http request if available */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + const grabedHostNames = (0, grab_host_names_1.default)(); + const { host, port, scheme } = grabedHostNames; + if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && + (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && + (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && + (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && + global.DSQL_USE_LOCAL) { + /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ + let dbSchema; + try { + const localDbSchemaPath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs_1.default.readFileSync(localDbSchemaPath, "utf8")); + } + catch (error) { } + return yield (0, api_delete_user_1.default)({ + dbFullName: DSQL_DB_NAME, + deletedUserId, }); - response.on("end", function () { - resolve(JSON.parse(str)); + } + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + const httpResponse = (yield new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + database, + deletedUserId, }); - response.on("error", (err) => { - reject(err); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY || + key, + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/delete-user`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); }); - }); - httpsRequest.write(reqPayload); - httpsRequest.end(); - })); - return httpResponse; + httpsRequest.write(reqPayload); + httpsRequest.end(); + })); + return httpResponse; + }); } diff --git a/dist/package-shared/actions/users/get-token.js b/dist/package-shared/actions/users/get-token.js index 7448549..49bf723 100644 --- a/dist/package-shared/actions/users/get-token.js +++ b/dist/package-shared/actions/users/get-token.js @@ -1,13 +1,19 @@ -import decrypt from "../../functions/dsql/decrypt"; -import getAuthCookieNames from "../../functions/backend/cookies/get-auth-cookie-names"; -import parseCookies from "../../utils/backend/parseCookies"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getToken; +const decrypt_1 = __importDefault(require("../../functions/dsql/decrypt")); +const get_auth_cookie_names_1 = __importDefault(require("../../functions/backend/cookies/get-auth-cookie-names")); +const parseCookies_1 = __importDefault(require("../../utils/backend/parseCookies")); /** * Get just the access token for user * ============================================================================== * @description This Function takes in a request object and returns a user token * string and csrf token string */ -export default function getToken({ request, encryptionKey, encryptionSalt, cookieString, }) { +function getToken({ request, encryptionKey, encryptionSalt, cookieString, }) { var _a; try { /** @@ -15,8 +21,8 @@ export default function getToken({ request, encryptionKey, encryptionSalt, cooki * * @description Grab the payload */ - const cookies = parseCookies({ request, cookieString }); - const keynames = getAuthCookieNames(); + const cookies = (0, parseCookies_1.default)({ request, cookieString }); + const keynames = (0, get_auth_cookie_names_1.default)(); const authKeyName = keynames.keyCookieName; const csrfName = keynames.csrfCookieName; const key = cookies[authKeyName]; @@ -26,7 +32,7 @@ export default function getToken({ request, encryptionKey, encryptionSalt, cooki * * @description Grab the payload */ - let userPayload = decrypt({ + let userPayload = (0, decrypt_1.default)({ encryptedString: key, encryptionKey, encryptionSalt, diff --git a/dist/package-shared/actions/users/get-user.js b/dist/package-shared/actions/users/get-user.js index 21b1426..e0f8b11 100644 --- a/dist/package-shared/actions/users/get-user.js +++ b/dist/package-shared/actions/users/get-user.js @@ -1,103 +1,120 @@ -import path from "path"; -import fs from "fs"; -import grabHostNames from "../../utils/grab-host-names"; -import apiGetUser from "../../functions/api/users/api-get-user"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getUser; +const path_1 = __importDefault(require("path")); +const fs_1 = __importDefault(require("fs")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const api_get_user_1 = __importDefault(require("../../functions/api/users/api-get-user")); /** * # Get User */ -export default async function getUser({ key, userId, database, fields, apiUserId, }) { - /** - * Initialize - */ - const defaultFields = [ - "id", - "first_name", - "last_name", - "email", - "username", - "image", - "image_thumbnail", - "verification_status", - "date_created", - "date_created_code", - "date_created_timestamp", - "date_updated", - "date_updated_code", - "date_updated_timestamp", - ]; - const updatedFields = fields && fields[0] ? [...defaultFields, ...fields] : defaultFields; - const reqPayload = JSON.stringify({ - userId, - database, - fields: [...new Set(updatedFields)], - }); - const grabedHostNames = grabHostNames(); - const { host, port, scheme } = grabedHostNames; - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; - if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && - (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && - (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && - (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && - global.DSQL_USE_LOCAL) { - /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ - let dbSchema; - try { - const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); - dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); - } - catch (error) { } - return await apiGetUser({ - userId, - fields: [...new Set(updatedFields)], - dbFullName: DSQL_DB_NAME, - }); - } - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/user/${apiUserId || grabedHostNames.user_id}/get-user`, - }, +function getUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, userId, database, fields, apiUserId, }) { /** - * Callback Function - * - * @description https request callback + * Initialize */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; - }); - response.on("end", function () { - resolve(JSON.parse(str)); - }); - response.on("error", (err) => { - reject(err); - }); + const defaultFields = [ + "id", + "first_name", + "last_name", + "email", + "username", + "image", + "image_thumbnail", + "verification_status", + "date_created", + "date_created_code", + "date_created_timestamp", + "date_updated", + "date_updated_code", + "date_updated_timestamp", + ]; + const updatedFields = fields && fields[0] ? [...defaultFields, ...fields] : defaultFields; + const reqPayload = JSON.stringify({ + userId, + database, + fields: [...new Set(updatedFields)], }); - httpsRequest.write(reqPayload); - httpsRequest.end(); + const grabedHostNames = (0, grab_host_names_1.default)(); + const { host, port, scheme } = grabedHostNames; + /** + * Check for local DB settings + * + * @description Look for local db settings in `.env` file and by pass the http request if available + */ + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && + (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && + (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && + (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && + global.DSQL_USE_LOCAL) { + /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ + let dbSchema; + try { + const localDbSchemaPath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs_1.default.readFileSync(localDbSchemaPath, "utf8")); + } + catch (error) { } + return yield (0, api_get_user_1.default)({ + userId, + fields: [...new Set(updatedFields)], + dbFullName: DSQL_DB_NAME, + }); + } + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + const httpResponse = yield new Promise((resolve, reject) => { + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/user/${apiUserId || grabedHostNames.user_id}/get-user`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + /** ********************************************** */ + /** ********************************************** */ + /** ********************************************** */ + return httpResponse; }); - /** ********************************************** */ - /** ********************************************** */ - /** ********************************************** */ - return httpResponse; } diff --git a/dist/package-shared/actions/users/login-user.js b/dist/package-shared/actions/users/login-user.js index 814a366..af1816b 100644 --- a/dist/package-shared/actions/users/login-user.js +++ b/dist/package-shared/actions/users/login-user.js @@ -1,183 +1,200 @@ -import fs from "fs"; -import path from "path"; -import encrypt from "../../functions/dsql/encrypt"; -import grabHostNames from "../../utils/grab-host-names"; -import apiLoginUser from "../../functions/api/users/api-login"; -import getAuthCookieNames from "../../functions/backend/cookies/get-auth-cookie-names"; -import { writeAuthFile } from "../../functions/backend/auth/write-auth-files"; -import debugLog from "../../utils/logging/debug-log"; -import grabCookieExpiryDate from "../../utils/grab-cookie-expirt-date"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = loginUser; +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); +const encrypt_1 = __importDefault(require("../../functions/dsql/encrypt")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const api_login_1 = __importDefault(require("../../functions/api/users/api-login")); +const get_auth_cookie_names_1 = __importDefault(require("../../functions/backend/cookies/get-auth-cookie-names")); +const write_auth_files_1 = require("../../functions/backend/auth/write-auth-files"); +const debug_log_1 = __importDefault(require("../../utils/logging/debug-log")); +const grab_cookie_expirt_date_1 = __importDefault(require("../../utils/grab-cookie-expirt-date")); /** * # Login A user */ -export default async function loginUser({ key, payload, database, additionalFields, response, encryptionKey, encryptionSalt, email_login, email_login_code, temp_code_field, token, user_id, skipPassword, apiUserID, skipWriteAuthFile, dbUserId, debug, cleanupTokens, secureCookie, request, }) { - var _a, _b, _c; - const grabedHostNames = grabHostNames({ userId: user_id || apiUserID }); - const { host, port, scheme } = grabedHostNames; - const COOKIE_EXPIRY_DATE = grabCookieExpiryDate(); - const defaultTempLoginFieldName = "temp_login_code"; - const emailLoginTempCodeFieldName = email_login - ? temp_code_field +function loginUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, payload, database, additionalFields, response, encryptionKey, encryptionSalt, email_login, email_login_code, temp_code_field, token, user_id, skipPassword, apiUserID, skipWriteAuthFile, dbUserId, debug, cleanupTokens, secureCookie, request, }) { + var _b, _c, _d; + const grabedHostNames = (0, grab_host_names_1.default)({ userId: user_id || apiUserID }); + const { host, port, scheme } = grabedHostNames; + const COOKIE_EXPIRY_DATE = (0, grab_cookie_expirt_date_1.default)(); + const defaultTempLoginFieldName = "temp_login_code"; + const emailLoginTempCodeFieldName = email_login ? temp_code_field - : defaultTempLoginFieldName - : undefined; - const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; - const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; - function debugFn(log, label) { - debugLog({ log, addTime: true, title: "loginUser", label }); - } - if (!(finalEncryptionKey === null || finalEncryptionKey === void 0 ? void 0 : finalEncryptionKey.match(/.{8,}/))) { - console.log("Encryption key is invalid"); - return { - success: false, - payload: null, - msg: "Encryption key is invalid", - }; - } - if (!(finalEncryptionSalt === null || finalEncryptionSalt === void 0 ? void 0 : finalEncryptionSalt.match(/.{8,}/))) { - console.log("Encryption salt is invalid"); - return { - success: false, - payload: null, - msg: "Encryption salt is invalid", - }; - } - /** - * Check required fields - * - * @description Check required fields - */ - // const isEmailValid = await validateEmail({ email: payload.email }); - // if (!payload.email) { - // return { - // success: false, - // payload: null, - // msg: isEmailValid.message, - // }; - // } - /** - * Initialize HTTP response variable - */ - let httpResponse = { - success: false, - }; - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; - if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && - (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && - (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && - (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && - global.DSQL_USE_LOCAL) { - let dbSchema; - try { - const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); - dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); + ? temp_code_field + : defaultTempLoginFieldName + : undefined; + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; + function debugFn(log, label) { + (0, debug_log_1.default)({ log, addTime: true, title: "loginUser", label }); } - catch (error) { } - httpResponse = await apiLoginUser({ - database: database || process.env.DSQL_DB_NAME || "", - email: payload.email, - username: payload.username, - password: payload.password, - skipPassword, - encryptionKey: finalEncryptionKey, - additionalFields, - email_login, - email_login_code, - email_login_field: emailLoginTempCodeFieldName, - token, - dbUserId, - debug, - }); - } - else { - httpResponse = await new Promise((resolve, reject) => { - const reqPayload = { + if (!(finalEncryptionKey === null || finalEncryptionKey === void 0 ? void 0 : finalEncryptionKey.match(/.{8,}/))) { + console.log("Encryption key is invalid"); + return { + success: false, + payload: null, + msg: "Encryption key is invalid", + }; + } + if (!(finalEncryptionSalt === null || finalEncryptionSalt === void 0 ? void 0 : finalEncryptionSalt.match(/.{8,}/))) { + console.log("Encryption salt is invalid"); + return { + success: false, + payload: null, + msg: "Encryption salt is invalid", + }; + } + /** + * Check required fields + * + * @description Check required fields + */ + // const isEmailValid = await validateEmail({ email: payload.email }); + // if (!payload.email) { + // return { + // success: false, + // payload: null, + // msg: isEmailValid.message, + // }; + // } + /** + * Initialize HTTP response variable + */ + let httpResponse = { + success: false, + }; + /** + * Check for local DB settings + * + * @description Look for local db settings in `.env` file and by pass the http request if available + */ + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && + (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && + (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && + (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && + global.DSQL_USE_LOCAL) { + let dbSchema; + try { + const localDbSchemaPath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs_1.default.readFileSync(localDbSchemaPath, "utf8")); + } + catch (error) { } + httpResponse = yield (0, api_login_1.default)({ + database: database || process.env.DSQL_DB_NAME || "", + email: payload.email, + username: payload.username, + password: payload.password, + skipPassword, encryptionKey: finalEncryptionKey, - payload, - database, additionalFields, email_login, email_login_code, email_login_field: emailLoginTempCodeFieldName, token, - skipPassword: skipPassword, - dbUserId: dbUserId || 0, - }; - const reqPayloadJSON = JSON.stringify(reqPayload); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayloadJSON).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/user/${user_id || grabedHostNames.user_id}/login-user`, - }, (res) => { - var str = ""; - res.on("data", function (chunk) { - str += chunk; - }); - res.on("end", function () { - resolve(JSON.parse(str)); - }); - res.on("error", (err) => { - reject(err); - }); + dbUserId, + debug, }); - httpsRequest.write(reqPayloadJSON); - httpsRequest.end(); - }); - } - if (debug) { - debugFn(httpResponse, "httpResponse"); - } - if (httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.success) { - let encryptedPayload = encrypt({ - data: JSON.stringify(httpResponse.payload), - encryptionKey: finalEncryptionKey, - encryptionSalt: finalEncryptionSalt, - }); - try { - if (token && encryptedPayload) - httpResponse["token"] = encryptedPayload; } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Login User HTTP Response Error`, error); + else { + httpResponse = yield new Promise((resolve, reject) => { + const reqPayload = { + encryptionKey: finalEncryptionKey, + payload, + database, + additionalFields, + email_login, + email_login_code, + email_login_field: emailLoginTempCodeFieldName, + token, + skipPassword: skipPassword, + dbUserId: dbUserId || 0, + }; + const reqPayloadJSON = JSON.stringify(reqPayload); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayloadJSON).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/login-user`, + }, (res) => { + var str = ""; + res.on("data", function (chunk) { + str += chunk; + }); + res.on("end", function () { + resolve(JSON.parse(str)); + }); + res.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayloadJSON); + httpsRequest.end(); + }); } - const cookieNames = getAuthCookieNames({ - database, - userId: grabedHostNames.user_id, - }); - if (httpResponse.csrf && !skipWriteAuthFile) { - writeAuthFile(httpResponse.csrf, JSON.stringify(httpResponse.payload), cleanupTokens && ((_b = httpResponse.payload) === null || _b === void 0 ? void 0 : _b.id) - ? { userId: httpResponse.payload.id } - : undefined); - } - httpResponse["cookieNames"] = cookieNames; - httpResponse["key"] = String(encryptedPayload); - const authKeyName = cookieNames.keyCookieName; - const csrfName = cookieNames.csrfCookieName; if (debug) { - debugFn(authKeyName, "authKeyName"); - debugFn(csrfName, "csrfName"); - debugFn(encryptedPayload, "encryptedPayload"); + debugFn(httpResponse, "httpResponse"); } - response === null || response === void 0 ? void 0 : response.setHeader("Set-Cookie", [ - `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}${secureCookie ? ";Secure=true" : ""}`, - `${csrfName}=${(_c = httpResponse.payload) === null || _c === void 0 ? void 0 : _c.csrf_k};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}`, - ]); - if (debug) { - debugFn("Response Sent!"); + if (httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.success) { + let encryptedPayload = (0, encrypt_1.default)({ + data: JSON.stringify(httpResponse.payload), + encryptionKey: finalEncryptionKey, + encryptionSalt: finalEncryptionSalt, + }); + try { + if (token && encryptedPayload) + httpResponse["token"] = encryptedPayload; + } + catch (error) { + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Login User HTTP Response Error`, error); + } + const cookieNames = (0, get_auth_cookie_names_1.default)({ + database, + userId: grabedHostNames.user_id, + }); + if (httpResponse.csrf && !skipWriteAuthFile) { + (0, write_auth_files_1.writeAuthFile)(httpResponse.csrf, JSON.stringify(httpResponse.payload), cleanupTokens && ((_c = httpResponse.payload) === null || _c === void 0 ? void 0 : _c.id) + ? { userId: httpResponse.payload.id } + : undefined); + } + httpResponse["cookieNames"] = cookieNames; + httpResponse["key"] = String(encryptedPayload); + const authKeyName = cookieNames.keyCookieName; + const csrfName = cookieNames.csrfCookieName; + if (debug) { + debugFn(authKeyName, "authKeyName"); + debugFn(csrfName, "csrfName"); + debugFn(encryptedPayload, "encryptedPayload"); + } + response === null || response === void 0 ? void 0 : response.setHeader("Set-Cookie", [ + `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}${secureCookie ? ";Secure=true" : ""}`, + `${csrfName}=${(_d = httpResponse.payload) === null || _d === void 0 ? void 0 : _d.csrf_k};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}`, + ]); + if (debug) { + debugFn("Response Sent!"); + } } - } - return httpResponse; + return httpResponse; + }); } diff --git a/dist/package-shared/actions/users/logout-user.js b/dist/package-shared/actions/users/logout-user.js index 13d3696..e895823 100644 --- a/dist/package-shared/actions/users/logout-user.js +++ b/dist/package-shared/actions/users/logout-user.js @@ -1,14 +1,20 @@ -import getAuthCookieNames from "../../functions/backend/cookies/get-auth-cookie-names"; -import decrypt from "../../functions/dsql/decrypt"; -import EJSON from "../../utils/ejson"; -import { deleteAuthFile } from "../../functions/backend/auth/write-auth-files"; -import parseCookies from "../../utils/backend/parseCookies"; -import grabHostNames from "../../utils/grab-host-names"; -import debugLog from "../../utils/logging/debug-log"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = logoutUser; +const get_auth_cookie_names_1 = __importDefault(require("../../functions/backend/cookies/get-auth-cookie-names")); +const decrypt_1 = __importDefault(require("../../functions/dsql/decrypt")); +const ejson_1 = __importDefault(require("../../utils/ejson")); +const write_auth_files_1 = require("../../functions/backend/auth/write-auth-files"); +const parseCookies_1 = __importDefault(require("../../utils/backend/parseCookies")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const debug_log_1 = __importDefault(require("../../utils/logging/debug-log")); /** * # Logout user */ -export default function logoutUser({ response, database, dsqlUserId, encryptedUserString, request, cookieString, debug, }) { +function logoutUser({ response, database, dsqlUserId, encryptedUserString, request, cookieString, debug, }) { var _a; /** * Check Encryption Keys @@ -16,13 +22,13 @@ export default function logoutUser({ response, database, dsqlUserId, encryptedUs * @description Check Encryption Keys */ try { - const { user_id } = grabHostNames({ userId: dsqlUserId }); - const cookieNames = getAuthCookieNames({ + const { user_id } = (0, grab_host_names_1.default)({ userId: dsqlUserId }); + const cookieNames = (0, get_auth_cookie_names_1.default)({ database, userId: user_id, }); function debugFn(log, label) { - debugLog({ log, addTime: true, title: "logoutUser", label }); + (0, debug_log_1.default)({ log, addTime: true, title: "logoutUser", label }); } if (debug) { debugFn(cookieNames, "cookieNames"); @@ -33,16 +39,16 @@ export default function logoutUser({ response, database, dsqlUserId, encryptedUs const decryptedUserJSON = (() => { try { if (request) { - const cookiesObject = parseCookies({ + const cookiesObject = (0, parseCookies_1.default)({ request, cookieString, }); - return decrypt({ + return (0, decrypt_1.default)({ encryptedString: cookiesObject[authKeyName], }); } else if (encryptedUserString) { - return decrypt({ + return (0, decrypt_1.default)({ encryptedString: encryptedUserString, }); } @@ -60,7 +66,7 @@ export default function logoutUser({ response, database, dsqlUserId, encryptedUs } if (!decryptedUserJSON) throw new Error("Invalid User"); - const userObject = EJSON.parse(decryptedUserJSON); + const userObject = ejson_1.default.parse(decryptedUserJSON); if (!(userObject === null || userObject === void 0 ? void 0 : userObject.csrf_k)) throw new Error("Invalid User. Please check key"); response === null || response === void 0 ? void 0 : response.setHeader("Set-Cookie", [ @@ -69,7 +75,7 @@ export default function logoutUser({ response, database, dsqlUserId, encryptedUs `${oneTimeCodeName}=null;max-age=0`, ]); const csrf = userObject.csrf_k; - deleteAuthFile(csrf); + (0, write_auth_files_1.deleteAuthFile)(csrf); return { success: true, msg: "User Logged Out", diff --git a/dist/package-shared/actions/users/reauth-user.js b/dist/package-shared/actions/users/reauth-user.js index 5b88114..dcdae5b 100644 --- a/dist/package-shared/actions/users/reauth-user.js +++ b/dist/package-shared/actions/users/reauth-user.js @@ -1,162 +1,179 @@ -import userAuth from "./user-auth"; -import grabHostNames from "../../utils/grab-host-names"; -import loginUser from "./login-user"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = reauthUser; +const user_auth_1 = __importDefault(require("./user-auth")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const login_user_1 = __importDefault(require("./login-user")); /** * # Reauthorize User */ -export default async function reauthUser({ key, database, response, request, level, encryptionKey, encryptionSalt, additionalFields, encryptedUserString, user_id, secureCookie, }) { - var _a; - /** - * Check Encryption Keys - * - * @description Check Encryption Keys - */ - const grabedHostNames = grabHostNames(); - // const { host, port, scheme } = grabedHostNames; - // const COOKIE_EXPIRY_DATE = grabCookieExpiryDate(); - const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; - const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; - const existingUser = userAuth({ - database, - encryptionKey: finalEncryptionKey, - encryptionSalt: finalEncryptionSalt, - level, - request, - encryptedUserString, +function reauthUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, database, response, request, level, encryptionKey, encryptionSalt, additionalFields, encryptedUserString, user_id, secureCookie, }) { + var _b; + /** + * Check Encryption Keys + * + * @description Check Encryption Keys + */ + const grabedHostNames = (0, grab_host_names_1.default)(); + // const { host, port, scheme } = grabedHostNames; + // const COOKIE_EXPIRY_DATE = grabCookieExpiryDate(); + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; + const existingUser = (0, user_auth_1.default)({ + database, + encryptionKey: finalEncryptionKey, + encryptionSalt: finalEncryptionSalt, + level, + request, + encryptedUserString, + }); + if (!((_b = existingUser === null || existingUser === void 0 ? void 0 : existingUser.payload) === null || _b === void 0 ? void 0 : _b.id)) { + return { + success: false, + payload: null, + msg: "Cookie Credentials Invalid", + }; + } + return yield (0, login_user_1.default)({ + database: database || "", + payload: { + email: existingUser.payload.email, + }, + additionalFields, + skipPassword: true, + response, + request, + user_id, + secureCookie, + key, + }); + /** + * Initialize HTTP response variable + */ + let httpResponse; + /** + * Check for local DB settings + * + * @description Look for local db settings in `.env` file and by pass the http request if available + */ + // const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = + // process.env; + // if ( + // DSQL_DB_HOST?.match(/./) && + // DSQL_DB_USERNAME?.match(/./) && + // DSQL_DB_PASSWORD?.match(/./) && + // DSQL_DB_NAME?.match(/./) && + // global.DSQL_USE_LOCAL + // ) { + // let dbSchema: import("../../types").DSQL_DatabaseSchemaType | undefined; + // try { + // const localDbSchemaPath = path.resolve( + // process.cwd(), + // "dsql.schema.json" + // ); + // dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); + // } catch (error) {} + // httpResponse = await apiReauthUser({ + // existingUser: existingUser.payload, + // additionalFields, + // }); + // } else { + // /** + // * Make https request + // * + // * @description make a request to datasquirel.com + // */ + // httpResponse = (await new Promise((resolve, reject) => { + // const reqPayload = JSON.stringify({ + // existingUser: existingUser.payload, + // database, + // additionalFields, + // }); + // const httpsRequest = scheme.request( + // { + // method: "POST", + // headers: { + // "Content-Type": "application/json", + // "Content-Length": Buffer.from(reqPayload).length, + // Authorization: + // key || + // process.env.DSQL_FULL_ACCESS_API_KEY || + // process.env.DSQL_API_KEY, + // }, + // port, + // hostname: host, + // path: `/api/user/${ + // user_id || grabedHostNames.user_id + // }/reauth-user`, + // }, + // /** + // * Callback Function + // * + // * @description https request callback + // */ + // (response) => { + // var str = ""; + // response.on("data", function (chunk) { + // str += chunk; + // }); + // response.on("end", function () { + // resolve(JSON.parse(str)); + // }); + // response.on("error", (err) => { + // reject(err); + // }); + // } + // ); + // httpsRequest.write(reqPayload); + // httpsRequest.end(); + // })) as APILoginFunctionReturn; + // } + // /** + // * Make https request + // * + // * @description make a request to datasquirel.com + // */ + // if (httpResponse?.success) { + // let encryptedPayload = encrypt({ + // data: JSON.stringify(httpResponse.payload), + // encryptionKey: finalEncryptionKey, + // encryptionSalt: finalEncryptionSalt, + // }); + // const cookieNames = getAuthCookieNames({ + // database, + // userId: user_id || grabedHostNames.user_id, + // }); + // httpResponse["cookieNames"] = cookieNames; + // httpResponse["key"] = String(encryptedPayload); + // const authKeyName = cookieNames.keyCookieName; + // const csrfName = cookieNames.csrfCookieName; + // response?.setHeader("Set-Cookie", [ + // `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}${ + // secureCookie ? ";Secure=true" : "" + // }`, + // `${csrfName}=${httpResponse.payload?.csrf_k};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}`, + // ]); + // if (httpResponse.csrf) { + // deleteAuthFile(String(existingUser.payload.csrf_k)); + // writeAuthFile( + // httpResponse.csrf, + // JSON.stringify(httpResponse.payload) + // ); + // } + // } + // return httpResponse; }); - if (!((_a = existingUser === null || existingUser === void 0 ? void 0 : existingUser.payload) === null || _a === void 0 ? void 0 : _a.id)) { - return { - success: false, - payload: null, - msg: "Cookie Credentials Invalid", - }; - } - return await loginUser({ - database: database || "", - payload: { - email: existingUser.payload.email, - }, - additionalFields, - skipPassword: true, - response, - request, - user_id, - secureCookie, - key, - }); - /** - * Initialize HTTP response variable - */ - let httpResponse; - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - // const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = - // process.env; - // if ( - // DSQL_DB_HOST?.match(/./) && - // DSQL_DB_USERNAME?.match(/./) && - // DSQL_DB_PASSWORD?.match(/./) && - // DSQL_DB_NAME?.match(/./) && - // global.DSQL_USE_LOCAL - // ) { - // let dbSchema: import("../../types").DSQL_DatabaseSchemaType | undefined; - // try { - // const localDbSchemaPath = path.resolve( - // process.cwd(), - // "dsql.schema.json" - // ); - // dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); - // } catch (error) {} - // httpResponse = await apiReauthUser({ - // existingUser: existingUser.payload, - // additionalFields, - // }); - // } else { - // /** - // * Make https request - // * - // * @description make a request to datasquirel.com - // */ - // httpResponse = (await new Promise((resolve, reject) => { - // const reqPayload = JSON.stringify({ - // existingUser: existingUser.payload, - // database, - // additionalFields, - // }); - // const httpsRequest = scheme.request( - // { - // method: "POST", - // headers: { - // "Content-Type": "application/json", - // "Content-Length": Buffer.from(reqPayload).length, - // Authorization: - // key || - // process.env.DSQL_FULL_ACCESS_API_KEY || - // process.env.DSQL_API_KEY, - // }, - // port, - // hostname: host, - // path: `/api/user/${ - // user_id || grabedHostNames.user_id - // }/reauth-user`, - // }, - // /** - // * Callback Function - // * - // * @description https request callback - // */ - // (response) => { - // var str = ""; - // response.on("data", function (chunk) { - // str += chunk; - // }); - // response.on("end", function () { - // resolve(JSON.parse(str)); - // }); - // response.on("error", (err) => { - // reject(err); - // }); - // } - // ); - // httpsRequest.write(reqPayload); - // httpsRequest.end(); - // })) as APILoginFunctionReturn; - // } - // /** - // * Make https request - // * - // * @description make a request to datasquirel.com - // */ - // if (httpResponse?.success) { - // let encryptedPayload = encrypt({ - // data: JSON.stringify(httpResponse.payload), - // encryptionKey: finalEncryptionKey, - // encryptionSalt: finalEncryptionSalt, - // }); - // const cookieNames = getAuthCookieNames({ - // database, - // userId: user_id || grabedHostNames.user_id, - // }); - // httpResponse["cookieNames"] = cookieNames; - // httpResponse["key"] = String(encryptedPayload); - // const authKeyName = cookieNames.keyCookieName; - // const csrfName = cookieNames.csrfCookieName; - // response?.setHeader("Set-Cookie", [ - // `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}${ - // secureCookie ? ";Secure=true" : "" - // }`, - // `${csrfName}=${httpResponse.payload?.csrf_k};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}`, - // ]); - // if (httpResponse.csrf) { - // deleteAuthFile(String(existingUser.payload.csrf_k)); - // writeAuthFile( - // httpResponse.csrf, - // JSON.stringify(httpResponse.payload) - // ); - // } - // } - // return httpResponse; } diff --git a/dist/package-shared/actions/users/send-email-code.js b/dist/package-shared/actions/users/send-email-code.js index 2c20d4b..e5a48fa 100644 --- a/dist/package-shared/actions/users/send-email-code.js +++ b/dist/package-shared/actions/users/send-email-code.js @@ -1,104 +1,121 @@ -import fs from "fs"; -import path from "path"; -import grabHostNames from "../../utils/grab-host-names"; -import apiSendEmailCode from "../../functions/api/users/api-send-email-code"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = sendEmailCode; +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const api_send_email_code_1 = __importDefault(require("../../functions/api/users/api-send-email-code")); /** * # Send Email Code to a User */ -export default async function sendEmailCode(params) { - const { key, email, database, temp_code_field_name, mail_domain, mail_password, mail_username, mail_port, sender, user_id, response, extraCookies, } = params; - const grabedHostNames = grabHostNames(); - const { host, port, scheme } = grabedHostNames; - const defaultTempLoginFieldName = "temp_login_code"; - const emailLoginTempCodeFieldName = temp_code_field_name - ? temp_code_field_name - : defaultTempLoginFieldName; - const emailHtml = `

Please use this code to login

\n

{{code}}

\n

Please note that this code expires after 15 minutes

`; - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; - if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && - (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && - (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && - (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && - global.DSQL_USE_LOCAL) { - /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ - let dbSchema; - try { - const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); - dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); - } - catch (error) { } - return await apiSendEmailCode({ - database: DSQL_DB_NAME, - email, - email_login_field: emailLoginTempCodeFieldName, - html: emailHtml, - mail_domain, - mail_password, - mail_port, - mail_username, - sender, - response, - extraCookies, - }); - } - else { +function sendEmailCode(params) { + return __awaiter(this, void 0, void 0, function* () { + const { key, email, database, temp_code_field_name, mail_domain, mail_password, mail_username, mail_port, sender, user_id, response, extraCookies, } = params; + const grabedHostNames = (0, grab_host_names_1.default)(); + const { host, port, scheme } = grabedHostNames; + const defaultTempLoginFieldName = "temp_login_code"; + const emailLoginTempCodeFieldName = temp_code_field_name + ? temp_code_field_name + : defaultTempLoginFieldName; + const emailHtml = `

Please use this code to login

\n

{{code}}

\n

Please note that this code expires after 15 minutes

`; /** - * Make https request + * Check for local DB settings * - * @description make a request to datasquirel.com - * - * @type {import("../../types").SendOneTimeCodeEmailResponse} + * @description Look for local db settings in `.env` file and by pass the http request if available */ - const httpResponse = await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify({ + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && + (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && + (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && + (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && + global.DSQL_USE_LOCAL) { + /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ + let dbSchema; + try { + const localDbSchemaPath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs_1.default.readFileSync(localDbSchemaPath, "utf8")); + } + catch (error) { } + return yield (0, api_send_email_code_1.default)({ + database: DSQL_DB_NAME, email, - database, email_login_field: emailLoginTempCodeFieldName, + html: emailHtml, mail_domain, mail_password, - mail_username, mail_port, + mail_username, sender, - html: emailHtml, + response, + extraCookies, }); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/user/${user_id || grabedHostNames.user_id}/send-email-code`, - }, + } + else { /** - * Callback Function + * Make https request * - * @description https request callback + * @description make a request to datasquirel.com + * + * @type {import("../../types").SendOneTimeCodeEmailResponse} */ - (res) => { - var str = ""; - res.on("data", function (chunk) { - str += chunk; + const httpResponse = yield new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + email, + database, + email_login_field: emailLoginTempCodeFieldName, + mail_domain, + mail_password, + mail_username, + mail_port, + sender, + html: emailHtml, }); - res.on("end", function () { - resolve(JSON.parse(str)); - }); - res.on("error", (err) => { - reject(err); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/send-email-code`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (res) => { + var str = ""; + res.on("data", function (chunk) { + str += chunk; + }); + res.on("end", function () { + resolve(JSON.parse(str)); + }); + res.on("error", (err) => { + reject(err); + }); }); + httpsRequest.write(reqPayload); + httpsRequest.end(); }); - httpsRequest.write(reqPayload); - httpsRequest.end(); - }); - return httpResponse; - } + return httpResponse; + } + }); } diff --git a/dist/package-shared/actions/users/social/github-auth.js b/dist/package-shared/actions/users/social/github-auth.js index 616375a..60945e0 100644 --- a/dist/package-shared/actions/users/social/github-auth.js +++ b/dist/package-shared/actions/users/social/github-auth.js @@ -1,156 +1,173 @@ -import fs from "fs"; -import path from "path"; -import encrypt from "../../../functions/dsql/encrypt"; -import grabHostNames from "../../../utils/grab-host-names"; -import apiGithubLogin from "../../../functions/api/users/social/api-github-login"; -import grabCookieExpiryDate from "../../../utils/grab-cookie-expirt-date"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = githubAuth; +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); +const encrypt_1 = __importDefault(require("../../../functions/dsql/encrypt")); +const grab_host_names_1 = __importDefault(require("../../../utils/grab-host-names")); +const api_github_login_1 = __importDefault(require("../../../functions/api/users/social/api-github-login")); +const grab_cookie_expirt_date_1 = __importDefault(require("../../../utils/grab-cookie-expirt-date")); /** * # SERVER FUNCTION: Login with google Function */ -export default async function githubAuth({ key, code, email, database, clientId, clientSecret, response, encryptionKey, encryptionSalt, additionalFields, user_id, additionalData, secureCookie, }) { - /** - * Check inputs - * - * @description Check inputs - */ - const grabedHostNames = grabHostNames(); - const { host, port, scheme } = grabedHostNames; - const COOKIE_EXPIRY_DATE = grabCookieExpiryDate(); - if (!code || (code === null || code === void 0 ? void 0 : code.match(/ /))) { - return { - success: false, - user: null, - msg: "Please enter Github Access Token", - }; - } - if (!database || (database === null || database === void 0 ? void 0 : database.match(/ /))) { - return { - success: false, - user: null, - msg: "Please provide database slug name you want to access", - }; - } - if (!clientId || (clientId === null || clientId === void 0 ? void 0 : clientId.match(/ /))) { - return { - success: false, - user: null, - msg: "Please enter Github OAUTH client ID", - }; - } - /** - * Initialize HTTP response variable - */ - let httpResponse; - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME, DSQL_KEY, DSQL_REF_DB_NAME, DSQL_FULL_SYNC, } = process.env; - if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && - (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && - (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && - (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./))) { - /** @type {import("../../../types").DSQL_DatabaseSchemaType | undefined | undefined} */ - let dbSchema; - try { - const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); - dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); +function githubAuth(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, code, email, database, clientId, clientSecret, response, encryptionKey, encryptionSalt, additionalFields, user_id, additionalData, secureCookie, }) { + /** + * Check inputs + * + * @description Check inputs + */ + const grabedHostNames = (0, grab_host_names_1.default)(); + const { host, port, scheme } = grabedHostNames; + const COOKIE_EXPIRY_DATE = (0, grab_cookie_expirt_date_1.default)(); + if (!code || (code === null || code === void 0 ? void 0 : code.match(/ /))) { + return { + success: false, + user: null, + msg: "Please enter Github Access Token", + }; } - catch (error) { } - httpResponse = await apiGithubLogin({ - code, - email: email || undefined, - clientId, - clientSecret, - additionalFields, - database: DSQL_DB_NAME, - additionalData, - }); - } - else { + if (!database || (database === null || database === void 0 ? void 0 : database.match(/ /))) { + return { + success: false, + user: null, + msg: "Please provide database slug name you want to access", + }; + } + if (!clientId || (clientId === null || clientId === void 0 ? void 0 : clientId.match(/ /))) { + return { + success: false, + user: null, + msg: "Please enter Github OAUTH client ID", + }; + } + /** + * Initialize HTTP response variable + */ + let httpResponse; + /** + * Check for local DB settings + * + * @description Look for local db settings in `.env` file and by pass the http request if available + */ + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME, DSQL_KEY, DSQL_REF_DB_NAME, DSQL_FULL_SYNC, } = process.env; + if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && + (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && + (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && + (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./))) { + /** @type {import("../../../types").DSQL_DatabaseSchemaType | undefined | undefined} */ + let dbSchema; + try { + const localDbSchemaPath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs_1.default.readFileSync(localDbSchemaPath, "utf8")); + } + catch (error) { } + httpResponse = yield (0, api_github_login_1.default)({ + code, + email: email || undefined, + clientId, + clientSecret, + additionalFields, + database: DSQL_DB_NAME, + additionalData, + }); + } + else { + /** + * Make https request + * + * @description make a request to datasquirel.com + * @type {FunctionReturn} - Https response object + */ + httpResponse = (yield new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + code, + email, + clientId, + clientSecret, + database, + additionalFields, + additionalData, + }); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/github-login`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + var _a; + try { + resolve(JSON.parse(str)); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Github Auth Error`, error); + resolve({ + success: false, + user: null, + msg: "Something went wrong", + }); + } + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + })); + } + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// /** * Make https request * * @description make a request to datasquirel.com - * @type {FunctionReturn} - Https response object */ - httpResponse = (await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify({ - code, - email, - clientId, - clientSecret, - database, - additionalFields, - additionalData, + if ((httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.success) && (httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.user)) { + let encryptedPayload = (0, encrypt_1.default)({ + data: JSON.stringify(httpResponse.user), + encryptionKey, + encryptionSalt, }); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/user/${user_id || grabedHostNames.user_id}/github-login`, - }, - /** - * Callback Function - * - * @description https request callback - */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; - }); - response.on("end", function () { - var _a; - try { - resolve(JSON.parse(str)); - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Github Auth Error`, error); - resolve({ - success: false, - user: null, - msg: "Something went wrong", - }); - } - }); - response.on("error", (err) => { - reject(err); - }); - }); - httpsRequest.write(reqPayload); - httpsRequest.end(); - })); - } - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - if ((httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.success) && (httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.user)) { - let encryptedPayload = encrypt({ - data: JSON.stringify(httpResponse.user), - encryptionKey, - encryptionSalt, - }); - const { user, dsqlUserId } = httpResponse; - const authKeyName = `datasquirel_${dsqlUserId}_${database}_auth_key`; - const csrfName = `datasquirel_${dsqlUserId}_${database}_csrf`; - response.setHeader("Set-Cookie", [ - `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}${secureCookie ? ";Secure=true" : ""}`, - `${csrfName}=${user.csrf_k};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}`, - ]); - } - return httpResponse; + const { user, dsqlUserId } = httpResponse; + const authKeyName = `datasquirel_${dsqlUserId}_${database}_auth_key`; + const csrfName = `datasquirel_${dsqlUserId}_${database}_csrf`; + response.setHeader("Set-Cookie", [ + `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}${secureCookie ? ";Secure=true" : ""}`, + `${csrfName}=${user.csrf_k};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}`, + ]); + } + return httpResponse; + }); } diff --git a/dist/package-shared/actions/users/social/google-auth.js b/dist/package-shared/actions/users/social/google-auth.js index 0d93d58..5e5371f 100644 --- a/dist/package-shared/actions/users/social/google-auth.js +++ b/dist/package-shared/actions/users/social/google-auth.js @@ -1,144 +1,161 @@ -import encrypt from "../../../functions/dsql/encrypt"; -import grabHostNames from "../../../utils/grab-host-names"; -import apiGoogleLogin from "../../../functions/api/users/social/api-google-login"; -import getAuthCookieNames from "../../../functions/backend/cookies/get-auth-cookie-names"; -import { writeAuthFile } from "../../../functions/backend/auth/write-auth-files"; -import grabCookieExpiryDate from "../../../utils/grab-cookie-expirt-date"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = googleAuth; +const encrypt_1 = __importDefault(require("../../../functions/dsql/encrypt")); +const grab_host_names_1 = __importDefault(require("../../../utils/grab-host-names")); +const api_google_login_1 = __importDefault(require("../../../functions/api/users/social/api-google-login")); +const get_auth_cookie_names_1 = __importDefault(require("../../../functions/backend/cookies/get-auth-cookie-names")); +const write_auth_files_1 = require("../../../functions/backend/auth/write-auth-files"); +const grab_cookie_expirt_date_1 = __importDefault(require("../../../utils/grab-cookie-expirt-date")); /** * # SERVER FUNCTION: Login with google Function */ -export default async function googleAuth({ key, token, database, response, encryptionKey, encryptionSalt, additionalFields, additionalData, apiUserID, debug, secureCookie, loginOnly, }) { - var _a; - const grabedHostNames = grabHostNames({ - userId: apiUserID || process.env.DSQL_API_USER_ID, - }); - const { host, port, scheme, user_id } = grabedHostNames; - const COOKIE_EXPIRY_DATE = grabCookieExpiryDate(); - const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; - const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; - if (!(finalEncryptionKey === null || finalEncryptionKey === void 0 ? void 0 : finalEncryptionKey.match(/.{8,}/))) { - console.log("Encryption key is invalid"); - return { - success: false, - payload: null, - msg: "Encryption key is invalid", - }; - } - if (!(finalEncryptionSalt === null || finalEncryptionSalt === void 0 ? void 0 : finalEncryptionSalt.match(/.{8,}/))) { - console.log("Encryption salt is invalid"); - return { - success: false, - payload: null, - msg: "Encryption salt is invalid", - }; - } - /** - * Check inputs - * - * @description Check inputs - */ - if (!token || (token === null || token === void 0 ? void 0 : token.match(/ /))) { - return { - success: false, - payload: null, - msg: "Please enter Google Access Token", - }; - } - /** - * Initialize HTTP response variable - */ - let httpResponse = { - success: false, - }; - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; - if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && - (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && - (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && - (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && - global.DSQL_USE_LOCAL) { - if (debug) { - console.log(`Google login with Local Paradigm ...`); - } - httpResponse = await apiGoogleLogin({ - token, - additionalFields, - additionalData, - debug, +function googleAuth(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, token, database, response, encryptionKey, encryptionSalt, additionalFields, additionalData, apiUserID, debug, secureCookie, loginOnly, }) { + var _b; + const grabedHostNames = (0, grab_host_names_1.default)({ + userId: apiUserID || process.env.DSQL_API_USER_ID, }); - } - else { - httpResponse = await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify({ + const { host, port, scheme, user_id } = grabedHostNames; + const COOKIE_EXPIRY_DATE = (0, grab_cookie_expirt_date_1.default)(); + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; + if (!(finalEncryptionKey === null || finalEncryptionKey === void 0 ? void 0 : finalEncryptionKey.match(/.{8,}/))) { + console.log("Encryption key is invalid"); + return { + success: false, + payload: null, + msg: "Encryption key is invalid", + }; + } + if (!(finalEncryptionSalt === null || finalEncryptionSalt === void 0 ? void 0 : finalEncryptionSalt.match(/.{8,}/))) { + console.log("Encryption salt is invalid"); + return { + success: false, + payload: null, + msg: "Encryption salt is invalid", + }; + } + /** + * Check inputs + * + * @description Check inputs + */ + if (!token || (token === null || token === void 0 ? void 0 : token.match(/ /))) { + return { + success: false, + payload: null, + msg: "Please enter Google Access Token", + }; + } + /** + * Initialize HTTP response variable + */ + let httpResponse = { + success: false, + }; + /** + * Check for local DB settings + * + * @description Look for local db settings in `.env` file and by pass the http request if available + */ + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && + (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && + (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && + (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && + global.DSQL_USE_LOCAL) { + if (debug) { + console.log(`Google login with Local Paradigm ...`); + } + httpResponse = yield (0, api_google_login_1.default)({ token, - database, additionalFields, additionalData, + debug, }); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/user/${apiUserID || grabedHostNames.user_id}/google-login`, - }, - /** - * Callback Function - * - * @description https request callback - */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; - }); - response.on("end", function () { - resolve(JSON.parse(str)); - }); - response.on("error", (err) => { - reject(err); - }); - }); - httpsRequest.write(reqPayload); - httpsRequest.end(); - }); - } - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - if ((httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.success) && (httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.payload)) { - let encryptedPayload = encrypt({ - data: JSON.stringify(httpResponse.payload), - encryptionKey: finalEncryptionKey, - encryptionSalt: finalEncryptionSalt, - }); - const cookieNames = getAuthCookieNames({ - database, - userId: user_id, - }); - if (httpResponse.csrf) { - writeAuthFile(httpResponse.csrf, JSON.stringify(httpResponse.payload)); } - httpResponse["cookieNames"] = cookieNames; - httpResponse["key"] = String(encryptedPayload); - const authKeyName = cookieNames.keyCookieName; - const csrfName = cookieNames.csrfCookieName; - response === null || response === void 0 ? void 0 : response.setHeader("Set-Cookie", [ - `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;;Expires=${COOKIE_EXPIRY_DATE}${secureCookie ? ";Secure=true" : ""}`, - `${csrfName}=${(_a = httpResponse.payload) === null || _a === void 0 ? void 0 : _a.csrf_k};samesite=strict;path=/;HttpOnly=true;;Expires=${COOKIE_EXPIRY_DATE}`, - ]); - } - return httpResponse; + else { + httpResponse = yield new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + token, + database, + additionalFields, + additionalData, + }); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }, + port, + hostname: host, + path: `/api/user/${apiUserID || grabedHostNames.user_id}/google-login`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + } + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + if ((httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.success) && (httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.payload)) { + let encryptedPayload = (0, encrypt_1.default)({ + data: JSON.stringify(httpResponse.payload), + encryptionKey: finalEncryptionKey, + encryptionSalt: finalEncryptionSalt, + }); + const cookieNames = (0, get_auth_cookie_names_1.default)({ + database, + userId: user_id, + }); + if (httpResponse.csrf) { + (0, write_auth_files_1.writeAuthFile)(httpResponse.csrf, JSON.stringify(httpResponse.payload)); + } + httpResponse["cookieNames"] = cookieNames; + httpResponse["key"] = String(encryptedPayload); + const authKeyName = cookieNames.keyCookieName; + const csrfName = cookieNames.csrfCookieName; + response === null || response === void 0 ? void 0 : response.setHeader("Set-Cookie", [ + `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;;Expires=${COOKIE_EXPIRY_DATE}${secureCookie ? ";Secure=true" : ""}`, + `${csrfName}=${(_b = httpResponse.payload) === null || _b === void 0 ? void 0 : _b.csrf_k};samesite=strict;path=/;HttpOnly=true;;Expires=${COOKIE_EXPIRY_DATE}`, + ]); + } + return httpResponse; + }); } diff --git a/dist/package-shared/actions/users/update-user.js b/dist/package-shared/actions/users/update-user.js index 2a47d2e..9b15d92 100644 --- a/dist/package-shared/actions/users/update-user.js +++ b/dist/package-shared/actions/users/update-user.js @@ -1,81 +1,98 @@ -import path from "path"; -import fs from "fs"; -import grabHostNames from "../../utils/grab-host-names"; -import apiUpdateUser from "../../functions/api/users/api-update-user"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = updateUser; +const path_1 = __importDefault(require("path")); +const fs_1 = __importDefault(require("fs")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const api_update_user_1 = __importDefault(require("../../functions/api/users/api-update-user")); /** * # Update User */ -export default async function updateUser({ key, payload, database, user_id, updatedUserId, }) { - /** - * Check for local DB settings - * - * @description Look for local db settings in `.env` file and by pass the http request if available - */ - const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; - const grabedHostNames = grabHostNames(); - const { host, port, scheme } = grabedHostNames; - if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && - (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && - (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && - (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && - global.DSQL_USE_LOCAL) { - /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ - let dbSchema; - try { - const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); - dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8")); - } - catch (error) { } - return await apiUpdateUser({ - payload: payload, - dbFullName: DSQL_DB_NAME, - updatedUserId, - dbSchema, - }); - } - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify({ - payload, - database, - updatedUserId, - }); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY || - key, - }, - port, - hostname: host, - path: `/api/user/${user_id || grabedHostNames.user_id}/update-user`, - }, +function updateUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ key, payload, database, user_id, updatedUserId, }) { /** - * Callback Function + * Check for local DB settings * - * @description https request callback + * @description Look for local db settings in `.env` file and by pass the http request if available */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + const grabedHostNames = (0, grab_host_names_1.default)(); + const { host, port, scheme } = grabedHostNames; + if ((DSQL_DB_HOST === null || DSQL_DB_HOST === void 0 ? void 0 : DSQL_DB_HOST.match(/./)) && + (DSQL_DB_USERNAME === null || DSQL_DB_USERNAME === void 0 ? void 0 : DSQL_DB_USERNAME.match(/./)) && + (DSQL_DB_PASSWORD === null || DSQL_DB_PASSWORD === void 0 ? void 0 : DSQL_DB_PASSWORD.match(/./)) && + (DSQL_DB_NAME === null || DSQL_DB_NAME === void 0 ? void 0 : DSQL_DB_NAME.match(/./)) && + global.DSQL_USE_LOCAL) { + /** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */ + let dbSchema; + try { + const localDbSchemaPath = path_1.default.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs_1.default.readFileSync(localDbSchemaPath, "utf8")); + } + catch (error) { } + return yield (0, api_update_user_1.default)({ + payload: payload, + dbFullName: DSQL_DB_NAME, + updatedUserId, + dbSchema, }); - response.on("end", function () { - resolve(JSON.parse(str)); + } + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + const httpResponse = yield new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + payload, + database, + updatedUserId, }); - response.on("error", (err) => { - reject(err); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY || + key, + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/update-user`, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); }); + httpsRequest.write(reqPayload); + httpsRequest.end(); }); - httpsRequest.write(reqPayload); - httpsRequest.end(); + return httpResponse; }); - return httpResponse; } diff --git a/dist/package-shared/actions/users/user-auth.js b/dist/package-shared/actions/users/user-auth.js index 2c6d124..4710960 100644 --- a/dist/package-shared/actions/users/user-auth.js +++ b/dist/package-shared/actions/users/user-auth.js @@ -1,10 +1,16 @@ -import decrypt from "../../functions/dsql/decrypt"; -import getAuthCookieNames from "../../functions/backend/cookies/get-auth-cookie-names"; -import { checkAuthFile } from "../../functions/backend/auth/write-auth-files"; -import parseCookies from "../../utils/backend/parseCookies"; -import getCsrfHeaderName from "../../actions/get-csrf-header-name"; -import grabHostNames from "../../utils/grab-host-names"; -import debugLog from "../../utils/logging/debug-log"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = userAuth; +const decrypt_1 = __importDefault(require("../../functions/dsql/decrypt")); +const get_auth_cookie_names_1 = __importDefault(require("../../functions/backend/cookies/get-auth-cookie-names")); +const write_auth_files_1 = require("../../functions/backend/auth/write-auth-files"); +const parseCookies_1 = __importDefault(require("../../utils/backend/parseCookies")); +const get_csrf_header_name_1 = __importDefault(require("../../actions/get-csrf-header-name")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const debug_log_1 = __importDefault(require("../../utils/logging/debug-log")); const minuteInMilliseconds = 60000; const hourInMilliseconds = minuteInMilliseconds * 60; const dayInMilliseconds = hourInMilliseconds * 24; @@ -17,28 +23,28 @@ const yearInMilliseconds = dayInMilliseconds * 365; * @description This Function takes in a request object and returns a user object * with the user's data */ -export default function userAuth({ request, req, encryptionKey, encryptionSalt, level, database, dsqlUserId, encryptedUserString, expiry = weekInMilliseconds, cookieString, csrfHeaderName, debug, skipFileCheck, }) { +function userAuth({ request, req, encryptionKey, encryptionSalt, level, database, dsqlUserId, encryptedUserString, expiry = weekInMilliseconds, cookieString, csrfHeaderName, debug, skipFileCheck, }) { var _a; try { const finalRequest = req || request; - const { user_id } = grabHostNames({ userId: dsqlUserId }); - const cookies = parseCookies({ + const { user_id } = (0, grab_host_names_1.default)({ userId: dsqlUserId }); + const cookies = (0, parseCookies_1.default)({ request: finalRequest, cookieString, }); if (debug) { - debugLog({ + (0, debug_log_1.default)({ log: cookies, addTime: true, label: "userAuth:cookies", }); } - const keyNames = getAuthCookieNames({ + const keyNames = (0, get_auth_cookie_names_1.default)({ userId: user_id, database: database || process.env.DSQL_DB_NAME, }); if (debug) { - debugLog({ + (0, debug_log_1.default)({ log: keyNames, addTime: true, label: "userAuth:keyNames", @@ -48,7 +54,7 @@ export default function userAuth({ request, req, encryptionKey, encryptionSalt, ? encryptedUserString : cookies[keyNames.keyCookieName]; if (debug) { - debugLog({ + (0, debug_log_1.default)({ log: key, addTime: true, label: "userAuth:key", @@ -59,13 +65,13 @@ export default function userAuth({ request, req, encryptionKey, encryptionSalt, * * @description Grab the payload */ - let userPayloadJSON = decrypt({ + let userPayloadJSON = (0, decrypt_1.default)({ encryptedString: key, encryptionKey, encryptionSalt, }); if (debug) { - debugLog({ + (0, debug_log_1.default)({ log: userPayloadJSON, addTime: true, label: "userAuth:userPayloadJSON", @@ -86,7 +92,7 @@ export default function userAuth({ request, req, encryptionKey, encryptionSalt, } let userObject = JSON.parse(userPayloadJSON); if (debug) { - debugLog({ + (0, debug_log_1.default)({ log: userObject, addTime: true, label: "userAuth:userObject", @@ -100,7 +106,7 @@ export default function userAuth({ request, req, encryptionKey, encryptionSalt, cookieNames: keyNames, }; } - if (!skipFileCheck && !checkAuthFile(userObject.csrf_k)) { + if (!skipFileCheck && !(0, write_auth_files_1.checkAuthFile)(userObject.csrf_k)) { return { success: false, payload: null, @@ -114,7 +120,7 @@ export default function userAuth({ request, req, encryptionKey, encryptionSalt, * @description Grab the payload */ if ((level === null || level === void 0 ? void 0 : level.match(/deep/i)) && finalRequest) { - const finalCsrfHeaderName = csrfHeaderName || getCsrfHeaderName(); + const finalCsrfHeaderName = csrfHeaderName || (0, get_csrf_header_name_1.default)(); if (finalRequest.headers[finalCsrfHeaderName] !== userObject.csrf_k) { return { success: false, diff --git a/dist/package-shared/actions/users/validate-temp-email-code.js b/dist/package-shared/actions/users/validate-temp-email-code.js index 2c8421f..a801451 100644 --- a/dist/package-shared/actions/users/validate-temp-email-code.js +++ b/dist/package-shared/actions/users/validate-temp-email-code.js @@ -1,32 +1,49 @@ -import getAuthCookieNames from "../../functions/backend/cookies/get-auth-cookie-names"; -import parseCookies from "../../utils/backend/parseCookies"; -import decrypt from "../../functions/dsql/decrypt"; -import EJSON from "../../utils/ejson"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = validateTempEmailCode; +const get_auth_cookie_names_1 = __importDefault(require("../../functions/backend/cookies/get-auth-cookie-names")); +const parseCookies_1 = __importDefault(require("../../utils/backend/parseCookies")); +const decrypt_1 = __importDefault(require("../../functions/dsql/decrypt")); +const ejson_1 = __importDefault(require("../../utils/ejson")); /** * # Verify the temp email code sent to the user's email address */ -export default async function validateTempEmailCode({ request, email, cookieString, }) { - var _a; - try { - const keyNames = getAuthCookieNames(); - const oneTimeCodeCookieName = keyNames.oneTimeCodeName; - const cookies = parseCookies({ request, cookieString }); - const encryptedOneTimeCode = cookies[oneTimeCodeCookieName]; - const encryptedPayload = decrypt({ - encryptedString: encryptedOneTimeCode, - }); - const payload = EJSON.parse(encryptedPayload); - if ((payload === null || payload === void 0 ? void 0 : payload.email) && !email) { - return payload; +function validateTempEmailCode(_a) { + return __awaiter(this, arguments, void 0, function* ({ request, email, cookieString, }) { + var _b; + try { + const keyNames = (0, get_auth_cookie_names_1.default)(); + const oneTimeCodeCookieName = keyNames.oneTimeCodeName; + const cookies = (0, parseCookies_1.default)({ request, cookieString }); + const encryptedOneTimeCode = cookies[oneTimeCodeCookieName]; + const encryptedPayload = (0, decrypt_1.default)({ + encryptedString: encryptedOneTimeCode, + }); + const payload = ejson_1.default.parse(encryptedPayload); + if ((payload === null || payload === void 0 ? void 0 : payload.email) && !email) { + return payload; + } + if ((payload === null || payload === void 0 ? void 0 : payload.email) && payload.email === email) { + return payload; + } + return null; } - if ((payload === null || payload === void 0 ? void 0 : payload.email) && payload.email === email) { - return payload; + catch (error) { + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Validate Temp Email Code Error`, error); + console.log("validateTempEmailCode error:", error.message); + return null; } - return null; - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Validate Temp Email Code Error`, error); - console.log("validateTempEmailCode error:", error.message); - return null; - } + }); } diff --git a/dist/package-shared/actions/users/validate-token.js b/dist/package-shared/actions/users/validate-token.js index 2834776..ec18a3d 100644 --- a/dist/package-shared/actions/users/validate-token.js +++ b/dist/package-shared/actions/users/validate-token.js @@ -1,10 +1,16 @@ -import decrypt from "../../functions/dsql/decrypt"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = validateToken; +const decrypt_1 = __importDefault(require("../../functions/dsql/decrypt")); /** * Validate Token * ====================================== * @description This Function takes in a encrypted token and returns a user object */ -export default function validateToken({ token, encryptionKey, encryptionSalt, }) { +function validateToken({ token, encryptionKey, encryptionSalt, }) { var _a; try { /** @@ -18,7 +24,7 @@ export default function validateToken({ token, encryptionKey, encryptionSalt, }) * * @description Grab the payload */ - let userPayload = decrypt({ + let userPayload = (0, decrypt_1.default)({ encryptedString: key, encryptionKey, encryptionSalt, diff --git a/dist/package-shared/api/crud/delete.js b/dist/package-shared/api/crud/delete.js index 308c7ac..9325ae0 100644 --- a/dist/package-shared/api/crud/delete.js +++ b/dist/package-shared/api/crud/delete.js @@ -1,15 +1,32 @@ -import path from "path"; -import queryDSQLAPI from "../../functions/api/query-dsql-api"; -import grabAPIBasePath from "../../utils/grab-api-base-path"; -export default async function apiCrudDELETE({ dbName, tableName, deleteSpec, targetID, apiKey }) { - const basePath = grabAPIBasePath({ paradigm: "crud" }); - const finalID = typeof targetID === "number" ? String(targetID) : targetID; - const finalPath = path.join(basePath, dbName, tableName, finalID || ""); - const GET_RES = await queryDSQLAPI({ - method: "DELETE", - path: finalPath, - body: deleteSpec, - apiKey, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiCrudDELETE; +const path_1 = __importDefault(require("path")); +const query_dsql_api_1 = __importDefault(require("../../functions/api/query-dsql-api")); +const grab_api_base_path_1 = __importDefault(require("../../utils/grab-api-base-path")); +function apiCrudDELETE(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbName, tableName, deleteSpec, targetID, apiKey }) { + const basePath = (0, grab_api_base_path_1.default)({ paradigm: "crud" }); + const finalID = typeof targetID === "number" ? String(targetID) : targetID; + const finalPath = path_1.default.join(basePath, dbName, tableName, finalID || ""); + const GET_RES = yield (0, query_dsql_api_1.default)({ + method: "DELETE", + path: finalPath, + body: deleteSpec, + apiKey, + }); + return GET_RES; }); - return GET_RES; } diff --git a/dist/package-shared/api/crud/get.js b/dist/package-shared/api/crud/get.js index 247d3a6..693f653 100644 --- a/dist/package-shared/api/crud/get.js +++ b/dist/package-shared/api/crud/get.js @@ -1,15 +1,32 @@ -import path from "path"; -import queryDSQLAPI from "../../functions/api/query-dsql-api"; -import grabAPIBasePath from "../../utils/grab-api-base-path"; -export default async function apiCrudGET({ dbName, tableName, query, targetId, apiKey, }) { - const basePath = grabAPIBasePath({ paradigm: "crud" }); - const finalID = typeof targetId === "number" ? String(targetId) : targetId; - const finalPath = path.join(basePath, dbName, tableName, finalID || ""); - const GET_RES = await queryDSQLAPI({ - method: "GET", - path: finalPath, - query, - apiKey, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiCrudGET; +const path_1 = __importDefault(require("path")); +const query_dsql_api_1 = __importDefault(require("../../functions/api/query-dsql-api")); +const grab_api_base_path_1 = __importDefault(require("../../utils/grab-api-base-path")); +function apiCrudGET(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbName, tableName, query, targetId, apiKey, }) { + const basePath = (0, grab_api_base_path_1.default)({ paradigm: "crud" }); + const finalID = typeof targetId === "number" ? String(targetId) : targetId; + const finalPath = path_1.default.join(basePath, dbName, tableName, finalID || ""); + const GET_RES = yield (0, query_dsql_api_1.default)({ + method: "GET", + path: finalPath, + query, + apiKey, + }); + return GET_RES; }); - return GET_RES; } diff --git a/dist/package-shared/api/crud/index.js b/dist/package-shared/api/crud/index.js index ea90647..496a8b7 100644 --- a/dist/package-shared/api/crud/index.js +++ b/dist/package-shared/api/crud/index.js @@ -1,12 +1,26 @@ -import apiCrudGET from "./get"; -import apiCrudPOST from "./post"; -import apiCrudPUT from "./put"; -import apiCrudDELETE from "./delete"; -const crud = { - get: apiCrudGET, - insert: apiCrudPOST, - update: apiCrudPUT, - delete: apiCrudDELETE, - options: async () => { }, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); }; -export default crud; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const get_1 = __importDefault(require("./get")); +const post_1 = __importDefault(require("./post")); +const put_1 = __importDefault(require("./put")); +const delete_1 = __importDefault(require("./delete")); +const crud = { + get: get_1.default, + insert: post_1.default, + update: put_1.default, + delete: delete_1.default, + options: () => __awaiter(void 0, void 0, void 0, function* () { }), +}; +exports.default = crud; diff --git a/dist/package-shared/api/crud/post.js b/dist/package-shared/api/crud/post.js index 8493b25..d872035 100644 --- a/dist/package-shared/api/crud/post.js +++ b/dist/package-shared/api/crud/post.js @@ -1,20 +1,37 @@ -import path from "path"; -import queryDSQLAPI from "../../functions/api/query-dsql-api"; -import grabAPIBasePath from "../../utils/grab-api-base-path"; -export default async function apiCrudPOST({ dbName, tableName, body, update, apiKey, }) { - const basePath = grabAPIBasePath({ paradigm: "crud" }); - const passedID = body.id; - const finalID = update - ? typeof passedID === "number" - ? String(passedID) - : passedID - : undefined; - const finalPath = path.join(basePath, dbName, tableName, finalID || ""); - const GET_RES = await queryDSQLAPI({ - method: update ? "PUT" : "POST", - path: finalPath, - body, - apiKey, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiCrudPOST; +const path_1 = __importDefault(require("path")); +const query_dsql_api_1 = __importDefault(require("../../functions/api/query-dsql-api")); +const grab_api_base_path_1 = __importDefault(require("../../utils/grab-api-base-path")); +function apiCrudPOST(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbName, tableName, body, update, apiKey, }) { + const basePath = (0, grab_api_base_path_1.default)({ paradigm: "crud" }); + const passedID = body.id; + const finalID = update + ? typeof passedID === "number" + ? String(passedID) + : passedID + : undefined; + const finalPath = path_1.default.join(basePath, dbName, tableName, finalID || ""); + const GET_RES = yield (0, query_dsql_api_1.default)({ + method: update ? "PUT" : "POST", + path: finalPath, + body, + apiKey, + }); + return GET_RES; }); - return GET_RES; } diff --git a/dist/package-shared/api/crud/put.js b/dist/package-shared/api/crud/put.js index 5644cf0..52f2035 100644 --- a/dist/package-shared/api/crud/put.js +++ b/dist/package-shared/api/crud/put.js @@ -1,14 +1,31 @@ -import apiCrudPOST from "./post"; -export default async function apiCrudPUT({ dbName, tableName, body, targetID, apiKey }) { - const updatedBody = Object.assign({}, body); - if (targetID) { - updatedBody["id"] = targetID; - } - return await apiCrudPOST({ - dbName, - tableName, - body: updatedBody, - update: true, - apiKey, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiCrudPUT; +const post_1 = __importDefault(require("./post")); +function apiCrudPUT(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbName, tableName, body, targetID, apiKey }) { + const updatedBody = Object.assign({}, body); + if (targetID) { + updatedBody["id"] = targetID; + } + return yield (0, post_1.default)({ + dbName, + tableName, + body: updatedBody, + update: true, + apiKey, + }); }); } diff --git a/dist/package-shared/api/media/delete.js b/dist/package-shared/api/media/delete.js index 4a44d44..457815d 100644 --- a/dist/package-shared/api/media/delete.js +++ b/dist/package-shared/api/media/delete.js @@ -1,18 +1,35 @@ -import queryDSQLAPI from "../../functions/api/query-dsql-api"; -import path from "path"; -import grabAPIBasePath from "../../utils/grab-api-base-path"; -export default async function apiMediaDELETE(params) { - const basePath = grabAPIBasePath({ paradigm: "media" }); - const mediaID = params.mediaID - ? typeof params.mediaID === "number" - ? String(params.mediaID) - : params.mediaID - : undefined; - const finalPath = path.join(basePath, mediaID || ""); - const DELETE_MEDIA_RES = await queryDSQLAPI({ - method: "DELETE", - path: finalPath, - apiKey: params.apiKey, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiMediaDELETE; +const query_dsql_api_1 = __importDefault(require("../../functions/api/query-dsql-api")); +const path_1 = __importDefault(require("path")); +const grab_api_base_path_1 = __importDefault(require("../../utils/grab-api-base-path")); +function apiMediaDELETE(params) { + return __awaiter(this, void 0, void 0, function* () { + const basePath = (0, grab_api_base_path_1.default)({ paradigm: "media" }); + const mediaID = params.mediaID + ? typeof params.mediaID === "number" + ? String(params.mediaID) + : params.mediaID + : undefined; + const finalPath = path_1.default.join(basePath, mediaID || ""); + const DELETE_MEDIA_RES = yield (0, query_dsql_api_1.default)({ + method: "DELETE", + path: finalPath, + apiKey: params.apiKey, + }); + return DELETE_MEDIA_RES; }); - return DELETE_MEDIA_RES; } diff --git a/dist/package-shared/api/media/get.js b/dist/package-shared/api/media/get.js index 5ee432f..381d04c 100644 --- a/dist/package-shared/api/media/get.js +++ b/dist/package-shared/api/media/get.js @@ -1,19 +1,36 @@ -import queryDSQLAPI from "../../functions/api/query-dsql-api"; -import path from "path"; -import grabAPIBasePath from "../../utils/grab-api-base-path"; -export default async function apiMediaGET(params) { - const basePath = grabAPIBasePath({ paradigm: "media" }); - const mediaID = params.mediaID - ? typeof params.mediaID === "number" - ? String(params.mediaID) - : params.mediaID - : undefined; - const finalPath = path.join(basePath, mediaID || ""); - const GET_MEDIA_RES = await queryDSQLAPI({ - method: "GET", - path: finalPath, - query: params, - apiKey: params.apiKey, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiMediaGET; +const query_dsql_api_1 = __importDefault(require("../../functions/api/query-dsql-api")); +const path_1 = __importDefault(require("path")); +const grab_api_base_path_1 = __importDefault(require("../../utils/grab-api-base-path")); +function apiMediaGET(params) { + return __awaiter(this, void 0, void 0, function* () { + const basePath = (0, grab_api_base_path_1.default)({ paradigm: "media" }); + const mediaID = params.mediaID + ? typeof params.mediaID === "number" + ? String(params.mediaID) + : params.mediaID + : undefined; + const finalPath = path_1.default.join(basePath, mediaID || ""); + const GET_MEDIA_RES = yield (0, query_dsql_api_1.default)({ + method: "GET", + path: finalPath, + query: params, + apiKey: params.apiKey, + }); + return GET_MEDIA_RES; }); - return GET_MEDIA_RES; } diff --git a/dist/package-shared/api/media/index.js b/dist/package-shared/api/media/index.js index 08dc010..aa08f0d 100644 --- a/dist/package-shared/api/media/index.js +++ b/dist/package-shared/api/media/index.js @@ -1,9 +1,14 @@ -import apiMediaGET from "./get"; -import apiMediaPOST from "./post"; -import apiMediaDELETE from "./delete"; -const media = { - get: apiMediaGET, - add: apiMediaPOST, - delete: apiMediaDELETE, +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; }; -export default media; +Object.defineProperty(exports, "__esModule", { value: true }); +const get_1 = __importDefault(require("./get")); +const post_1 = __importDefault(require("./post")); +const delete_1 = __importDefault(require("./delete")); +const media = { + get: get_1.default, + add: post_1.default, + delete: delete_1.default, +}; +exports.default = media; diff --git a/dist/package-shared/api/media/post.js b/dist/package-shared/api/media/post.js index 899f37a..cfe1bf8 100644 --- a/dist/package-shared/api/media/post.js +++ b/dist/package-shared/api/media/post.js @@ -1,12 +1,29 @@ -import queryDSQLAPI from "../../functions/api/query-dsql-api"; -import grabAPIBasePath from "../../utils/grab-api-base-path"; -export default async function apiMediaPOST(params) { - const basePath = grabAPIBasePath({ paradigm: "media" }); - const POST_MEDIA_RES = await queryDSQLAPI({ - method: "POST", - path: basePath, - body: params, - apiKey: params.apiKey, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiMediaPOST; +const query_dsql_api_1 = __importDefault(require("../../functions/api/query-dsql-api")); +const grab_api_base_path_1 = __importDefault(require("../../utils/grab-api-base-path")); +function apiMediaPOST(params) { + return __awaiter(this, void 0, void 0, function* () { + const basePath = (0, grab_api_base_path_1.default)({ paradigm: "media" }); + const POST_MEDIA_RES = yield (0, query_dsql_api_1.default)({ + method: "POST", + path: basePath, + body: params, + apiKey: params.apiKey, + }); + return POST_MEDIA_RES; }); - return POST_MEDIA_RES; } diff --git a/dist/package-shared/api/user/index.js b/dist/package-shared/api/user/index.js index 1056d92..ae72d8b 100644 --- a/dist/package-shared/api/user/index.js +++ b/dist/package-shared/api/user/index.js @@ -1,2 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const user = {}; -export default user; +exports.default = user; diff --git a/dist/package-shared/data/data-types.js b/dist/package-shared/data/data-types.js index 4bd3476..0537852 100644 --- a/dist/package-shared/data/data-types.js +++ b/dist/package-shared/data/data-types.js @@ -1,3 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const DataTypes = [ { title: "VARCHAR", @@ -100,4 +102,4 @@ const DataTypes = [ description: "Time Stamp", }, ]; -export default DataTypes; +exports.default = DataTypes; diff --git a/dist/package-shared/dict/app-names.js b/dist/package-shared/dict/app-names.js index e020bee..2ce9501 100644 --- a/dist/package-shared/dict/app-names.js +++ b/dist/package-shared/dict/app-names.js @@ -1,4 +1,7 @@ -export const AppNames = { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppNames = void 0; +exports.AppNames = { MaxScaleUserName: "dsql_maxscale_user", ReplicaUserName: "dsql_replication_user", DsqlDbPrefix: "datasquirel_user_", diff --git a/dist/package-shared/dict/cookie-names.js b/dist/package-shared/dict/cookie-names.js index b17dcac..66dece3 100644 --- a/dist/package-shared/dict/cookie-names.js +++ b/dist/package-shared/dict/cookie-names.js @@ -1,4 +1,7 @@ -export const CookieNames = { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CookieNames = void 0; +exports.CookieNames = { OneTimeLoginEmail: "dsql-one-time-login-email", DelegatedUserId: "dsql-delegated-user-id", DelegatedDatabase: "dsql-delegated-database", diff --git a/dist/package-shared/dict/local-storage-dict.js b/dist/package-shared/dict/local-storage-dict.js index a7b36cc..2929496 100644 --- a/dist/package-shared/dict/local-storage-dict.js +++ b/dist/package-shared/dict/local-storage-dict.js @@ -1,8 +1,14 @@ -import getCsrfHeaderName from "../actions/get-csrf-header-name"; -export const LocalStorageDict = { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LocalStorageDict = void 0; +const get_csrf_header_name_1 = __importDefault(require("../actions/get-csrf-header-name")); +exports.LocalStorageDict = { OneTimeEmail: "dsql-one-time-login-email", User: "user", - CSRF: getCsrfHeaderName(), + CSRF: (0, get_csrf_header_name_1.default)(), CurrentQueue: "current_queue", DiskUsage: "disk_usage", }; diff --git a/dist/package-shared/dict/resource-limits.js b/dist/package-shared/dict/resource-limits.js index c963351..c896d3b 100644 --- a/dist/package-shared/dict/resource-limits.js +++ b/dist/package-shared/dict/resource-limits.js @@ -1,6 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const ResourceLimits = { user_databases: 20, table_entries: 20, general: 20, }; -export default ResourceLimits; +exports.default = ResourceLimits; diff --git a/dist/package-shared/functions/api/query-dsql-api.js b/dist/package-shared/functions/api/query-dsql-api.js index 26c45e7..75adf8c 100644 --- a/dist/package-shared/functions/api/query-dsql-api.js +++ b/dist/package-shared/functions/api/query-dsql-api.js @@ -1,73 +1,90 @@ -import path from "path"; -import grabHostNames from "../../utils/grab-host-names"; -import serializeQuery from "../../utils/serialize-query"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = queryDSQLAPI; +const path_1 = __importDefault(require("path")); +const grab_host_names_1 = __importDefault(require("../../utils/grab-host-names")); +const serialize_query_1 = __importDefault(require("../../utils/serialize-query")); /** * # Query DSQL API */ -export default async function queryDSQLAPI({ body, query, useDefault, path: passedPath, method, apiKey, }) { - const grabedHostNames = grabHostNames({ useDefault }); - const { host, port, scheme } = grabedHostNames; - try { - /** - * Make https request - * - * @description make a request to datasquirel.com - */ - const httpResponse = await new Promise((resolve, reject) => { - const reqPayload = body ? JSON.stringify(body) : undefined; - let headers = { - "Content-Type": "application/json", - Authorization: apiKey || - (!method || method == "GET" || method == "get" - ? process.env.DSQL_READ_ONLY_API_KEY - : undefined) || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }; - if (reqPayload) { - headers["Content-Length"] = Buffer.from(reqPayload).length; - } - let finalPath = path.join("/", passedPath); - if (query) { - const queryString = serializeQuery(query); - finalPath += `${queryString}`; - } - const httpsRequest = scheme.request({ - method: method || "GET", - headers, - port, - hostname: host, - path: finalPath, - }, +function queryDSQLAPI(_a) { + return __awaiter(this, arguments, void 0, function* ({ body, query, useDefault, path: passedPath, method, apiKey, }) { + const grabedHostNames = (0, grab_host_names_1.default)({ useDefault }); + const { host, port, scheme } = grabedHostNames; + try { /** - * Callback Function + * Make https request * - * @description https request callback + * @description make a request to datasquirel.com */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; - }); - response.on("end", function () { - resolve(JSON.parse(str)); - }); - response.on("error", (err) => { - reject(err); + const httpResponse = yield new Promise((resolve, reject) => { + const reqPayload = body ? JSON.stringify(body) : undefined; + let headers = { + "Content-Type": "application/json", + Authorization: apiKey || + (!method || method == "GET" || method == "get" + ? process.env.DSQL_READ_ONLY_API_KEY + : undefined) || + process.env.DSQL_FULL_ACCESS_API_KEY || + process.env.DSQL_API_KEY, + }; + if (reqPayload) { + headers["Content-Length"] = Buffer.from(reqPayload).length; + } + let finalPath = path_1.default.join("/", passedPath); + if (query) { + const queryString = (0, serialize_query_1.default)(query); + finalPath += `${queryString}`; + } + const httpsRequest = scheme.request({ + method: method || "GET", + headers, + port, + hostname: host, + path: finalPath, + }, + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + response.on("data", function (chunk) { + str += chunk; + }); + response.on("end", function () { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); }); + if (reqPayload) { + httpsRequest.write(reqPayload); + } + httpsRequest.end(); }); - if (reqPayload) { - httpsRequest.write(reqPayload); - } - httpsRequest.end(); - }); - return httpResponse; - } - catch (error) { - return { - success: false, - payload: undefined, - msg: error.message, - }; - } + return httpResponse; + } + catch (error) { + return { + success: false, + payload: undefined, + msg: error.message, + }; + } + }); } diff --git a/dist/package-shared/functions/api/query/get.js b/dist/package-shared/functions/api/query/get.js index 378a453..2dec4f5 100644 --- a/dist/package-shared/functions/api/query/get.js +++ b/dist/package-shared/functions/api/query/get.js @@ -1,74 +1,91 @@ -import _ from "lodash"; -import serverError from "../../backend/serverError"; -import runQuery from "../../backend/db/runQuery"; -import apiGetGrabQueryAndValues from "../../../utils/grab-query-and-values"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiGet; +const lodash_1 = __importDefault(require("lodash")); +const serverError_1 = __importDefault(require("../../backend/serverError")); +const runQuery_1 = __importDefault(require("../../backend/db/runQuery")); +const grab_query_and_values_1 = __importDefault(require("../../../utils/grab-query-and-values")); /** * # Get Function FOr API */ -export default async function apiGet({ query, dbFullName, queryValues, tableName, dbSchema, debug, dbContext, forceLocal, }) { - var _a, _b; - const queryAndValues = apiGetGrabQueryAndValues({ - query, - values: queryValues, - }); - if (typeof query == "string" && query.match(/^alter|^delete|^create/i)) { - return { success: false, msg: "Wrong Input." }; - } - let results; - try { - let { result, error } = await runQuery({ - dbFullName: dbFullName, - query: queryAndValues.query, - queryValuesArray: queryAndValues.values, - readOnly: true, - dbSchema, - tableName, - dbContext, - debug, - forceLocal, +function apiGet(_a) { + return __awaiter(this, arguments, void 0, function* ({ query, dbFullName, queryValues, tableName, dbSchema, debug, dbContext, forceLocal, }) { + var _b, _c; + const queryAndValues = (0, grab_query_and_values_1.default)({ + query, + values: queryValues, }); - if (debug && global.DSQL_USE_LOCAL) { - console.log("apiGet:result", result); - console.log("apiGet:error", error); + if (typeof query == "string" && query.match(/^alter|^delete|^create/i)) { + return { success: false, msg: "Wrong Input." }; } - let tableSchema; - if (dbSchema) { - const targetTable = (_a = dbSchema.tables) === null || _a === void 0 ? void 0 : _a.find((table) => table.tableName === tableName); - if (targetTable) { - const clonedTargetTable = _.cloneDeep(targetTable); - delete clonedTargetTable.childTable; - delete clonedTargetTable.childrenTables; - delete clonedTargetTable.updateData; - delete clonedTargetTable.indexes; - tableSchema = clonedTargetTable; + let results; + try { + let { result, error } = yield (0, runQuery_1.default)({ + dbFullName: dbFullName, + query: queryAndValues.query, + queryValuesArray: queryAndValues.values, + readOnly: true, + dbSchema, + tableName, + dbContext, + debug, + forceLocal, + }); + if (debug && global.DSQL_USE_LOCAL) { + console.log("apiGet:result", result); + console.log("apiGet:error", error); } + let tableSchema; + if (dbSchema) { + const targetTable = (_b = dbSchema.tables) === null || _b === void 0 ? void 0 : _b.find((table) => table.tableName === tableName); + if (targetTable) { + const clonedTargetTable = lodash_1.default.cloneDeep(targetTable); + delete clonedTargetTable.childTable; + delete clonedTargetTable.childrenTables; + delete clonedTargetTable.updateData; + delete clonedTargetTable.indexes; + tableSchema = clonedTargetTable; + } + } + if (error) + throw error; + if (result.error) + throw new Error(result.error); + results = result; + const resObject = { + success: true, + payload: results, + schema: tableName && tableSchema ? tableSchema : undefined, + }; + return resObject; } - if (error) - throw error; - if (result.error) - throw new Error(result.error); - results = result; - const resObject = { - success: true, - payload: results, - schema: tableName && tableSchema ? tableSchema : undefined, - }; - return resObject; - } - catch (error) { - serverError({ - component: "/api/query/get/lines-85-94", - message: error.message, - }); - (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `API Get Error`, error); - if (debug && global.DSQL_USE_LOCAL) { - console.log("apiGet:error", error.message); - console.log("queryAndValues", queryAndValues); + catch (error) { + (0, serverError_1.default)({ + component: "/api/query/get/lines-85-94", + message: error.message, + }); + (_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `API Get Error`, error); + if (debug && global.DSQL_USE_LOCAL) { + console.log("apiGet:error", error.message); + console.log("queryAndValues", queryAndValues); + } + return { + success: false, + payload: null, + error: error.message, + }; } - return { - success: false, - payload: null, - error: error.message, - }; - } + }); } diff --git a/dist/package-shared/functions/api/query/post.js b/dist/package-shared/functions/api/query/post.js index 01842b7..40b6d57 100644 --- a/dist/package-shared/functions/api/query/post.js +++ b/dist/package-shared/functions/api/query/post.js @@ -1,80 +1,97 @@ -import _ from "lodash"; -import serverError from "../../backend/serverError"; -import runQuery from "../../backend/db/runQuery"; -import debugLog from "../../../utils/logging/debug-log"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiPost; +const lodash_1 = __importDefault(require("lodash")); +const serverError_1 = __importDefault(require("../../backend/serverError")); +const runQuery_1 = __importDefault(require("../../backend/db/runQuery")); +const debug_log_1 = __importDefault(require("../../../utils/logging/debug-log")); /** * # Post Function For API */ -export default async function apiPost({ query, dbFullName, queryValues, tableName, dbSchema, dbContext, forceLocal, debug, }) { - var _a, _b; - if (typeof query === "string" && (query === null || query === void 0 ? void 0 : query.match(/^create |^alter |^drop /i))) { - return { success: false, msg: "Wrong Input" }; - } - if (typeof query === "object" && - ((_a = query === null || query === void 0 ? void 0 : query.action) === null || _a === void 0 ? void 0 : _a.match(/^create |^alter |^drop /i))) { - return { success: false, msg: "Wrong Input" }; - } - let results; - /** - * Create new user folder and file - * - * @description Create new user folder and file - */ - try { - let { result, error } = await runQuery({ - dbFullName, - query, - dbSchema, - queryValuesArray: queryValues, - tableName, - dbContext, - forceLocal, - debug, - }); - if (debug) { - debugLog({ - log: result, - addTime: true, - label: "result", - }); - debugLog({ - log: query, - addTime: true, - label: "query", - }); +function apiPost(_a) { + return __awaiter(this, arguments, void 0, function* ({ query, dbFullName, queryValues, tableName, dbSchema, dbContext, forceLocal, debug, }) { + var _b, _c; + if (typeof query === "string" && (query === null || query === void 0 ? void 0 : query.match(/^create |^alter |^drop /i))) { + return { success: false, msg: "Wrong Input" }; } - results = result; - if (error) - throw new Error(error); - let tableSchema; - if (dbSchema) { - const targetTable = dbSchema.tables.find((table) => table.tableName === tableName); - if (targetTable) { - const clonedTargetTable = _.cloneDeep(targetTable); - delete clonedTargetTable.childTable; - delete clonedTargetTable.childrenTables; - delete clonedTargetTable.updateData; - delete clonedTargetTable.indexes; - tableSchema = clonedTargetTable; + if (typeof query === "object" && + ((_b = query === null || query === void 0 ? void 0 : query.action) === null || _b === void 0 ? void 0 : _b.match(/^create |^alter |^drop /i))) { + return { success: false, msg: "Wrong Input" }; + } + let results; + /** + * Create new user folder and file + * + * @description Create new user folder and file + */ + try { + let { result, error } = yield (0, runQuery_1.default)({ + dbFullName, + query, + dbSchema, + queryValuesArray: queryValues, + tableName, + dbContext, + forceLocal, + debug, + }); + if (debug) { + (0, debug_log_1.default)({ + log: result, + addTime: true, + label: "result", + }); + (0, debug_log_1.default)({ + log: query, + addTime: true, + label: "query", + }); } + results = result; + if (error) + throw new Error(error); + let tableSchema; + if (dbSchema) { + const targetTable = dbSchema.tables.find((table) => table.tableName === tableName); + if (targetTable) { + const clonedTargetTable = lodash_1.default.cloneDeep(targetTable); + delete clonedTargetTable.childTable; + delete clonedTargetTable.childrenTables; + delete clonedTargetTable.updateData; + delete clonedTargetTable.indexes; + tableSchema = clonedTargetTable; + } + } + return { + success: true, + payload: results, + error: error, + schema: tableName && tableSchema ? tableSchema : undefined, + }; } - return { - success: true, - payload: results, - error: error, - schema: tableName && tableSchema ? tableSchema : undefined, - }; - } - catch (error) { - serverError({ - component: "/api/query/post/lines-132-142", - message: error.message, - }); - (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `API Post Error`, error); - return { - success: false, - payload: results, - error: error.message, - }; - } + catch (error) { + (0, serverError_1.default)({ + component: "/api/query/post/lines-132-142", + message: error.message, + }); + (_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `API Post Error`, error); + return { + success: false, + payload: results, + error: error.message, + }; + } + }); } diff --git a/dist/package-shared/functions/api/social-login/facebookLogin.js b/dist/package-shared/functions/api/social-login/facebookLogin.js index 0be54fd..32b5e94 100644 --- a/dist/package-shared/functions/api/social-login/facebookLogin.js +++ b/dist/package-shared/functions/api/social-login/facebookLogin.js @@ -1,19 +1,35 @@ -import DB_HANDLER from "../../../utils/backend/global-db/DB_HANDLER"; -import serverError from "../../backend/serverError"; -import hashPassword from "../../dsql/hashPassword"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = facebookLogin; +const DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DB_HANDLER")); +const serverError_1 = __importDefault(require("../../backend/serverError")); +const hashPassword_1 = __importDefault(require("../../dsql/hashPassword")); /** * # Facebook Login */ -export default async function facebookLogin({ usertype, body, }) { - try { - const foundUser = await DB_HANDLER(`SELECT * FROM users WHERE email='${body.facebookUserEmail}' AND social_login='1'`); - if (foundUser && foundUser[0]) { - return foundUser[0]; - } - let socialHashedPassword = hashPassword({ - password: body.facebookUserId, - }); - let newUser = await DB_HANDLER(`INSERT INTO ${usertype} ( +function facebookLogin(_a) { + return __awaiter(this, arguments, void 0, function* ({ usertype, body, }) { + try { + const foundUser = yield (0, DB_HANDLER_1.default)(`SELECT * FROM users WHERE email='${body.facebookUserEmail}' AND social_login='1'`); + if (foundUser && foundUser[0]) { + return foundUser[0]; + } + let socialHashedPassword = (0, hashPassword_1.default)({ + password: body.facebookUserId, + }); + let newUser = yield (0, DB_HANDLER_1.default)(`INSERT INTO ${usertype} ( first_name, last_name, social_platform, @@ -33,8 +49,8 @@ export default async function facebookLogin({ usertype, body, }) { '${body.facebookUserLastName}', 'facebook', 'facebook_${body.facebookUserEmail - ? body.facebookUserEmail.replace(/@.*/, "") - : body.facebookUserFirstName.toLowerCase()}', + ? body.facebookUserEmail.replace(/@.*/, "") + : body.facebookUserFirstName.toLowerCase()}', '${body.facebookUserEmail}', '${body.facebookUserImage}', '${body.facebookUserImage}', @@ -46,16 +62,17 @@ export default async function facebookLogin({ usertype, body, }) { '${Date()}', '${Date.now()}' )`); - const newFoundUser = await DB_HANDLER(`SELECT * FROM ${usertype} WHERE id='${newUser.insertId}'`); - } - catch ( /** @type {any} */error) { - serverError({ - component: "functions/backend/facebookLogin", - message: error.message, - }); - } - return { - isFacebookAuthValid: false, - newFoundUser: null, - }; + const newFoundUser = yield (0, DB_HANDLER_1.default)(`SELECT * FROM ${usertype} WHERE id='${newUser.insertId}'`); + } + catch ( /** @type {any} */error) { + (0, serverError_1.default)({ + component: "functions/backend/facebookLogin", + message: error.message, + }); + } + return { + isFacebookAuthValid: false, + newFoundUser: null, + }; + }); } diff --git a/dist/package-shared/functions/api/social-login/githubLogin.js b/dist/package-shared/functions/api/social-login/githubLogin.js index 14e7b38..ef5a828 100644 --- a/dist/package-shared/functions/api/social-login/githubLogin.js +++ b/dist/package-shared/functions/api/social-login/githubLogin.js @@ -1,45 +1,62 @@ -import DB_HANDLER from "../../../utils/backend/global-db/DB_HANDLER"; -import httpsRequest from "../../backend/httpsRequest"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = githubLogin; +const DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DB_HANDLER")); +const httpsRequest_1 = __importDefault(require("../../backend/httpsRequest")); /** * # Login/signup a github user */ -export default async function githubLogin({ code, clientId, clientSecret, }) { - let gitHubUser; - try { - const response = await httpsRequest({ - method: "POST", - hostname: "github.com", - path: `/login/oauth/access_token?client_id=${clientId}&client_secret=${clientSecret}&code=${code}`, - headers: { - Accept: "application/json", - "User-Agent": "*", - }, - scheme: "https", - }); - const accessTokenObject = JSON.parse(response); - if (!(accessTokenObject === null || accessTokenObject === void 0 ? void 0 : accessTokenObject.access_token)) { - return gitHubUser; - } - const userDataResponse = await httpsRequest({ - method: "GET", - hostname: "api.github.com", - path: "/user", - headers: { - Authorization: `Bearer ${accessTokenObject.access_token}`, - "User-Agent": "*", - }, - scheme: "https", - }); - gitHubUser = JSON.parse(userDataResponse); - if (!(gitHubUser === null || gitHubUser === void 0 ? void 0 : gitHubUser.email) && gitHubUser) { - const existingGithubUser = await DB_HANDLER(`SELECT email FROM users WHERE social_login='1' AND social_platform='github' AND social_id='${gitHubUser.id}'`); - if (existingGithubUser && existingGithubUser[0]) { - gitHubUser.email = existingGithubUser[0].email; +function githubLogin(_a) { + return __awaiter(this, arguments, void 0, function* ({ code, clientId, clientSecret, }) { + let gitHubUser; + try { + const response = yield (0, httpsRequest_1.default)({ + method: "POST", + hostname: "github.com", + path: `/login/oauth/access_token?client_id=${clientId}&client_secret=${clientSecret}&code=${code}`, + headers: { + Accept: "application/json", + "User-Agent": "*", + }, + scheme: "https", + }); + const accessTokenObject = JSON.parse(response); + if (!(accessTokenObject === null || accessTokenObject === void 0 ? void 0 : accessTokenObject.access_token)) { + return gitHubUser; + } + const userDataResponse = yield (0, httpsRequest_1.default)({ + method: "GET", + hostname: "api.github.com", + path: "/user", + headers: { + Authorization: `Bearer ${accessTokenObject.access_token}`, + "User-Agent": "*", + }, + scheme: "https", + }); + gitHubUser = JSON.parse(userDataResponse); + if (!(gitHubUser === null || gitHubUser === void 0 ? void 0 : gitHubUser.email) && gitHubUser) { + const existingGithubUser = yield (0, DB_HANDLER_1.default)(`SELECT email FROM users WHERE social_login='1' AND social_platform='github' AND social_id='${gitHubUser.id}'`); + if (existingGithubUser && existingGithubUser[0]) { + gitHubUser.email = existingGithubUser[0].email; + } } } - } - catch ( /** @type {any} */error) { - console.log("ERROR in githubLogin.ts backend function =>", error.message); - } - return gitHubUser; + catch ( /** @type {any} */error) { + console.log("ERROR in githubLogin.ts backend function =>", error.message); + } + return gitHubUser; + }); } diff --git a/dist/package-shared/functions/api/social-login/googleLogin.js b/dist/package-shared/functions/api/social-login/googleLogin.js index 4d5caa9..6f53154 100644 --- a/dist/package-shared/functions/api/social-login/googleLogin.js +++ b/dist/package-shared/functions/api/social-login/googleLogin.js @@ -1,66 +1,82 @@ -import { OAuth2Client } from "google-auth-library"; -import serverError from "../../backend/serverError"; -import DB_HANDLER from "../../../utils/backend/global-db/DB_HANDLER"; -import hashPassword from "../../dsql/hashPassword"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = googleLogin; +const google_auth_library_1 = require("google-auth-library"); +const serverError_1 = __importDefault(require("../../backend/serverError")); +const DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DB_HANDLER")); +const hashPassword_1 = __importDefault(require("../../dsql/hashPassword")); /** * # Google Login */ -export default async function googleLogin({ usertype, foundUser, isSocialValidated, isUserValid, reqBody, serverRes, loginFailureReason, }) { - var _a, _b; - const client = new OAuth2Client(process.env.DSQL_GOOGLE_CLIENT_ID); - let isGoogleAuthValid = false; - let newFoundUser = null; - //////////////////////////////////////////////// - //////////////////////////////////////////////// - //////////////////////////////////////////////// - try { - const ticket = await client.verifyIdToken({ - idToken: reqBody.token, - audience: process.env.DSQL_GOOGLE_CLIENT_ID, // Specify the CLIENT_ID of the app that accesses the backend - // Or, if multiple clients access the backend: - //[CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3] - }); - const payload = ticket.getPayload(); - const userid = payload === null || payload === void 0 ? void 0 : payload["sub"]; - if (!payload) - throw new Error("Google login failed. Credentials invalid"); - isUserValid = Boolean(payload.email_verified); - if (!isUserValid || !payload || !payload.email_verified) - return; - serverRes.isUserValid = payload.email_verified; - isSocialValidated = payload.email_verified; - isGoogleAuthValid = payload.email_verified; - ////// If request specified a G Suite domain: - ////// const domain = payload['hd']; - let socialHashedPassword = hashPassword({ - password: payload.at_hash || "", - }); +function googleLogin(_a) { + return __awaiter(this, arguments, void 0, function* ({ usertype, foundUser, isSocialValidated, isUserValid, reqBody, serverRes, loginFailureReason, }) { + var _b, _c; + const client = new google_auth_library_1.OAuth2Client(process.env.DSQL_GOOGLE_CLIENT_ID); + let isGoogleAuthValid = false; + let newFoundUser = null; //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// - let existinEmail = await DB_HANDLER(`SELECT * FROM ${usertype} WHERE email='${payload.email}' AND social_login!='1' AND social_platform!='google'`); - if (existinEmail && existinEmail[0]) { - loginFailureReason = "Email Exists Already"; - isGoogleAuthValid = false; - return { - isGoogleAuthValid: isGoogleAuthValid, - newFoundUser: newFoundUser, - loginFailureReason: loginFailureReason, - }; - } - //////////////////////////////////////// - foundUser = await DB_HANDLER(`SELECT * FROM ${usertype} WHERE email='${payload.email}' AND social_login='1' AND social_platform='google'`); - if (foundUser && foundUser[0]) { - newFoundUser = foundUser; - return { - isGoogleAuthValid: isGoogleAuthValid, - newFoundUser: newFoundUser, - }; - } - //////////////////////////////////////////////// - //////////////////////////////////////////////// - //////////////////////////////////////////////// - let newUser = await DB_HANDLER(`INSERT INTO ${usertype} ( + try { + const ticket = yield client.verifyIdToken({ + idToken: reqBody.token, + audience: process.env.DSQL_GOOGLE_CLIENT_ID, // Specify the CLIENT_ID of the app that accesses the backend + // Or, if multiple clients access the backend: + //[CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3] + }); + const payload = ticket.getPayload(); + const userid = payload === null || payload === void 0 ? void 0 : payload["sub"]; + if (!payload) + throw new Error("Google login failed. Credentials invalid"); + isUserValid = Boolean(payload.email_verified); + if (!isUserValid || !payload || !payload.email_verified) + return; + serverRes.isUserValid = payload.email_verified; + isSocialValidated = payload.email_verified; + isGoogleAuthValid = payload.email_verified; + ////// If request specified a G Suite domain: + ////// const domain = payload['hd']; + let socialHashedPassword = (0, hashPassword_1.default)({ + password: payload.at_hash || "", + }); + //////////////////////////////////////////////// + //////////////////////////////////////////////// + //////////////////////////////////////////////// + let existinEmail = yield (0, DB_HANDLER_1.default)(`SELECT * FROM ${usertype} WHERE email='${payload.email}' AND social_login!='1' AND social_platform!='google'`); + if (existinEmail && existinEmail[0]) { + loginFailureReason = "Email Exists Already"; + isGoogleAuthValid = false; + return { + isGoogleAuthValid: isGoogleAuthValid, + newFoundUser: newFoundUser, + loginFailureReason: loginFailureReason, + }; + } + //////////////////////////////////////// + foundUser = yield (0, DB_HANDLER_1.default)(`SELECT * FROM ${usertype} WHERE email='${payload.email}' AND social_login='1' AND social_platform='google'`); + if (foundUser && foundUser[0]) { + newFoundUser = foundUser; + return { + isGoogleAuthValid: isGoogleAuthValid, + newFoundUser: newFoundUser, + }; + } + //////////////////////////////////////////////// + //////////////////////////////////////////////// + //////////////////////////////////////////////// + let newUser = yield (0, DB_HANDLER_1.default)(`INSERT INTO ${usertype} ( first_name, last_name, social_platform, @@ -79,7 +95,7 @@ export default async function googleLogin({ usertype, foundUser, isSocialValidat '${payload.given_name}', '${payload.family_name}', 'google', - 'google_${(_a = payload.email) === null || _a === void 0 ? void 0 : _a.replace(/@.*/, "")}', + 'google_${(_b = payload.email) === null || _b === void 0 ? void 0 : _b.replace(/@.*/, "")}', '${payload.sub}', '${payload.email}', '${payload.picture}', @@ -91,17 +107,18 @@ export default async function googleLogin({ usertype, foundUser, isSocialValidat '${Date()}', '${Date.now()}' )`); - newFoundUser = await DB_HANDLER(`SELECT * FROM ${usertype} WHERE id='${newUser.insertId}'`); - } - catch (error) { - serverError({ - component: "googleLogin", - message: error.message, - }); - (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Google Login Error`, error); - loginFailureReason = error; - isUserValid = false; - isSocialValidated = false; - } - return { isGoogleAuthValid: isGoogleAuthValid, newFoundUser: newFoundUser }; + newFoundUser = yield (0, DB_HANDLER_1.default)(`SELECT * FROM ${usertype} WHERE id='${newUser.insertId}'`); + } + catch (error) { + (0, serverError_1.default)({ + component: "googleLogin", + message: error.message, + }); + (_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `Google Login Error`, error); + loginFailureReason = error; + isUserValid = false; + isSocialValidated = false; + } + return { isGoogleAuthValid: isGoogleAuthValid, newFoundUser: newFoundUser }; + }); } diff --git a/dist/package-shared/functions/api/social-login/handleSocialDb.js b/dist/package-shared/functions/api/social-login/handleSocialDb.js index 328794e..a396da4 100644 --- a/dist/package-shared/functions/api/social-login/handleSocialDb.js +++ b/dist/package-shared/functions/api/social-login/handleSocialDb.js @@ -1,201 +1,218 @@ -import fs from "fs"; -import handleNodemailer from "../../backend/handleNodemailer"; -import path from "path"; -import addMariadbUser from "../../backend/addMariadbUser"; -import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; -import encrypt from "../../dsql/encrypt"; -import addDbEntry from "../../backend/db/addDbEntry"; -import loginSocialUser from "./loginSocialUser"; -import grabDirNames from "../../../utils/backend/names/grab-dir-names"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleSocialDb; +const fs_1 = __importDefault(require("fs")); +const handleNodemailer_1 = __importDefault(require("../../backend/handleNodemailer")); +const path_1 = __importDefault(require("path")); +const addMariadbUser_1 = __importDefault(require("../../backend/addMariadbUser")); +const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler")); +const encrypt_1 = __importDefault(require("../../dsql/encrypt")); +const addDbEntry_1 = __importDefault(require("../../backend/db/addDbEntry")); +const loginSocialUser_1 = __importDefault(require("./loginSocialUser")); +const grab_dir_names_1 = __importDefault(require("../../../utils/backend/names/grab-dir-names")); /** * # Handle Social DB */ -export default async function handleSocialDb({ database, email, social_platform, payload, invitation, supEmail, additionalFields, debug, loginOnly, }) { - var _a, _b; - try { - const finalDbName = global.DSQL_USE_LOCAL - ? undefined - : database - ? database - : "datasquirel"; - const dbAppend = global.DSQL_USE_LOCAL ? "" : `${finalDbName}.`; - const existingSocialUserQUery = `SELECT * FROM ${dbAppend}users WHERE email = ? AND social_login='1' AND social_platform = ? `; - const existingSocialUserValues = [email, social_platform]; - if (debug) { - console.log("handleSocialDb:existingSocialUserQUery", existingSocialUserQUery); - console.log("handleSocialDb:existingSocialUserValues", existingSocialUserValues); - } - let existingSocialUser = await varDatabaseDbHandler({ - database: finalDbName, - queryString: existingSocialUserQUery, - queryValuesArray: existingSocialUserValues, - debug, - }); - if (debug) { - console.log("handleSocialDb:existingSocialUser", existingSocialUser); - } - if (existingSocialUser === null || existingSocialUser === void 0 ? void 0 : existingSocialUser[0]) { - return await loginSocialUser({ - user: existingSocialUser[0], - social_platform, - invitation, - database: finalDbName, - additionalFields, - debug, - }); - } - else if (loginOnly) { - return { - success: false, - payload: null, - msg: "User Does not Exist", - }; - } - const finalEmail = email ? email : supEmail ? supEmail : null; - if (!finalEmail) { - return { - success: false, - payload: null, - msg: "No Email Present", - }; - } - const existingEmailOnlyQuery = `SELECT * FROM ${dbAppend}users WHERE email='${finalEmail}'`; - if (debug) { - console.log("handleSocialDb:existingEmailOnlyQuery", existingEmailOnlyQuery); - } - let existingEmailOnly = await varDatabaseDbHandler({ - database: finalDbName, - queryString: existingEmailOnlyQuery, - debug, - }); - if (debug) { - console.log("handleSocialDb:existingEmailOnly", existingEmailOnly); - } - if (existingEmailOnly === null || existingEmailOnly === void 0 ? void 0 : existingEmailOnly[0]) { - return await loginSocialUser({ - user: existingEmailOnly[0], - social_platform, - invitation, - database: finalDbName, - additionalFields, - debug, - }); - } - else if (loginOnly) { - return { - success: false, - payload: null, - msg: "Social Account Creation Not allowed", - }; - } - const socialHashedPassword = encrypt({ - data: email, - }); - const data = { - social_login: "1", - verification_status: supEmail ? "0" : "1", - password: socialHashedPassword, - }; - Object.keys(payload).forEach((key) => { - data[key] = payload[key]; - }); - const newUser = await addDbEntry({ - dbContext: finalDbName ? "Dsql User" : undefined, - paradigm: finalDbName ? "Full Access" : undefined, - dbFullName: finalDbName, - tableName: "users", - duplicateColumnName: "email", - duplicateColumnValue: finalEmail, - data: Object.assign(Object.assign({}, data), { email: finalEmail }), - }); - if ((_a = newUser === null || newUser === void 0 ? void 0 : newUser.payload) === null || _a === void 0 ? void 0 : _a.insertId) { - if (!database) { - /** - * Add a Mariadb User for this User - */ - await addMariadbUser({ userId: newUser.payload.insertId }); +function handleSocialDb(_a) { + return __awaiter(this, arguments, void 0, function* ({ database, email, social_platform, payload, invitation, supEmail, additionalFields, debug, loginOnly, }) { + var _b, _c; + try { + const finalDbName = global.DSQL_USE_LOCAL + ? undefined + : database + ? database + : "datasquirel"; + const dbAppend = global.DSQL_USE_LOCAL ? "" : `${finalDbName}.`; + const existingSocialUserQUery = `SELECT * FROM ${dbAppend}users WHERE email = ? AND social_login='1' AND social_platform = ? `; + const existingSocialUserValues = [email, social_platform]; + if (debug) { + console.log("handleSocialDb:existingSocialUserQUery", existingSocialUserQUery); + console.log("handleSocialDb:existingSocialUserValues", existingSocialUserValues); } - const newUserQueriedQuery = `SELECT * FROM ${dbAppend}users WHERE id='${newUser.payload.insertId}'`; - const newUserQueried = await varDatabaseDbHandler({ + let existingSocialUser = yield (0, varDatabaseDbHandler_1.default)({ database: finalDbName, - queryString: newUserQueriedQuery, + queryString: existingSocialUserQUery, + queryValuesArray: existingSocialUserValues, debug, }); - if (!newUserQueried || !newUserQueried[0]) - return { - success: false, - payload: null, - msg: "User Insertion Failed!", - }; - if (supEmail && (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/))) { - /** - * Send email Verification - * - * @description Send verification email to newly created agent - */ - let generatedToken = encrypt({ - data: JSON.stringify({ - id: newUser.payload.insertId, - email: supEmail, - dateCode: Date.now(), - }), + if (debug) { + console.log("handleSocialDb:existingSocialUser", existingSocialUser); + } + if (existingSocialUser === null || existingSocialUser === void 0 ? void 0 : existingSocialUser[0]) { + return yield (0, loginSocialUser_1.default)({ + user: existingSocialUser[0], + social_platform, + invitation, + database: finalDbName, + additionalFields, + debug, }); - handleNodemailer({ - to: supEmail, - subject: "Verify Email Address", - text: "Please click the link to verify your email address", - html: fs - .readFileSync("./email/send-email-verification-link.html", "utf8") - .replace(/{{host}}/, process.env.DSQL_HOST || "") - .replace(/{{token}}/, generatedToken || ""), - }).then(() => { }); } - const { STATIC_ROOT } = grabDirNames(); - if (!STATIC_ROOT) { - console.log("Static File ENV not Found!"); + else if (loginOnly) { return { success: false, payload: null, - msg: "Static File ENV not Found!", + msg: "User Does not Exist", }; } - /** - * Create new user folder and file - * - * @description Create new user folder and file - */ - if (!database || (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/))) { - let newUserSchemaFolderPath = `${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${newUser.payload.insertId}`; - let newUserMediaFolderPath = path.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}`); - fs.mkdirSync(newUserSchemaFolderPath); - fs.mkdirSync(newUserMediaFolderPath); - fs.writeFileSync(`${newUserSchemaFolderPath}/main.json`, JSON.stringify([]), "utf8"); + const finalEmail = email ? email : supEmail ? supEmail : null; + if (!finalEmail) { + return { + success: false, + payload: null, + msg: "No Email Present", + }; } - return await loginSocialUser({ - user: newUserQueried[0], - social_platform, - invitation, + const existingEmailOnlyQuery = `SELECT * FROM ${dbAppend}users WHERE email='${finalEmail}'`; + if (debug) { + console.log("handleSocialDb:existingEmailOnlyQuery", existingEmailOnlyQuery); + } + let existingEmailOnly = yield (0, varDatabaseDbHandler_1.default)({ database: finalDbName, - additionalFields, + queryString: existingEmailOnlyQuery, debug, }); + if (debug) { + console.log("handleSocialDb:existingEmailOnly", existingEmailOnly); + } + if (existingEmailOnly === null || existingEmailOnly === void 0 ? void 0 : existingEmailOnly[0]) { + return yield (0, loginSocialUser_1.default)({ + user: existingEmailOnly[0], + social_platform, + invitation, + database: finalDbName, + additionalFields, + debug, + }); + } + else if (loginOnly) { + return { + success: false, + payload: null, + msg: "Social Account Creation Not allowed", + }; + } + const socialHashedPassword = (0, encrypt_1.default)({ + data: email, + }); + const data = { + social_login: "1", + verification_status: supEmail ? "0" : "1", + password: socialHashedPassword, + }; + Object.keys(payload).forEach((key) => { + data[key] = payload[key]; + }); + const newUser = yield (0, addDbEntry_1.default)({ + dbContext: finalDbName ? "Dsql User" : undefined, + paradigm: finalDbName ? "Full Access" : undefined, + dbFullName: finalDbName, + tableName: "users", + duplicateColumnName: "email", + duplicateColumnValue: finalEmail, + data: Object.assign(Object.assign({}, data), { email: finalEmail }), + }); + if ((_b = newUser === null || newUser === void 0 ? void 0 : newUser.payload) === null || _b === void 0 ? void 0 : _b.insertId) { + if (!database) { + /** + * Add a Mariadb User for this User + */ + yield (0, addMariadbUser_1.default)({ userId: newUser.payload.insertId }); + } + const newUserQueriedQuery = `SELECT * FROM ${dbAppend}users WHERE id='${newUser.payload.insertId}'`; + const newUserQueried = yield (0, varDatabaseDbHandler_1.default)({ + database: finalDbName, + queryString: newUserQueriedQuery, + debug, + }); + if (!newUserQueried || !newUserQueried[0]) + return { + success: false, + payload: null, + msg: "User Insertion Failed!", + }; + if (supEmail && (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/))) { + /** + * Send email Verification + * + * @description Send verification email to newly created agent + */ + let generatedToken = (0, encrypt_1.default)({ + data: JSON.stringify({ + id: newUser.payload.insertId, + email: supEmail, + dateCode: Date.now(), + }), + }); + (0, handleNodemailer_1.default)({ + to: supEmail, + subject: "Verify Email Address", + text: "Please click the link to verify your email address", + html: fs_1.default + .readFileSync("./email/send-email-verification-link.html", "utf8") + .replace(/{{host}}/, process.env.DSQL_HOST || "") + .replace(/{{token}}/, generatedToken || ""), + }).then(() => { }); + } + const { STATIC_ROOT } = (0, grab_dir_names_1.default)(); + if (!STATIC_ROOT) { + console.log("Static File ENV not Found!"); + return { + success: false, + payload: null, + msg: "Static File ENV not Found!", + }; + } + /** + * Create new user folder and file + * + * @description Create new user folder and file + */ + if (!database || (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/))) { + let newUserSchemaFolderPath = `${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${newUser.payload.insertId}`; + let newUserMediaFolderPath = path_1.default.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}`); + fs_1.default.mkdirSync(newUserSchemaFolderPath); + fs_1.default.mkdirSync(newUserMediaFolderPath); + fs_1.default.writeFileSync(`${newUserSchemaFolderPath}/main.json`, JSON.stringify([]), "utf8"); + } + return yield (0, loginSocialUser_1.default)({ + user: newUserQueried[0], + social_platform, + invitation, + database: finalDbName, + additionalFields, + debug, + }); + } + else { + console.log("Social User Failed to insert in 'handleSocialDb.ts' backend function =>", newUser); + return { + success: false, + payload: null, + msg: "Social User Failed to insert in 'handleSocialDb.ts' backend function", + }; + } } - else { - console.log("Social User Failed to insert in 'handleSocialDb.ts' backend function =>", newUser); + catch (error) { + console.log("ERROR in 'handleSocialDb.ts' backend function =>", error.message); + (_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `Handle Social DB Error`, error); return { success: false, payload: null, - msg: "Social User Failed to insert in 'handleSocialDb.ts' backend function", + msg: error.message, }; } - } - catch (error) { - console.log("ERROR in 'handleSocialDb.ts' backend function =>", error.message); - (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Handle Social DB Error`, error); - return { - success: false, - payload: null, - msg: error.message, - }; - } + }); } diff --git a/dist/package-shared/functions/api/social-login/loginSocialUser.js b/dist/package-shared/functions/api/social-login/loginSocialUser.js index 89b78bb..e68f7cf 100644 --- a/dist/package-shared/functions/api/social-login/loginSocialUser.js +++ b/dist/package-shared/functions/api/social-login/loginSocialUser.js @@ -1,64 +1,81 @@ -import addAdminUserOnLogin from "../../backend/addAdminUserOnLogin"; -import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = loginSocialUser; +const addAdminUserOnLogin_1 = __importDefault(require("../../backend/addAdminUserOnLogin")); +const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler")); /** * Function to login social user * ============================================================================== * @description This function logs in the user after 'handleSocialDb' function finishes * the user creation or confirmation process */ -export default async function loginSocialUser({ user, social_platform, invitation, database, additionalFields, debug, }) { - const finalDbName = database ? database : "datasquirel"; - const dbAppend = database ? `\`${finalDbName}\`.` : ""; - const foundUserQuery = `SELECT * FROM ${dbAppend}\`users\` WHERE email=?`; - const foundUserValues = [user.email]; - const foundUser = await varDatabaseDbHandler({ - database: finalDbName, - queryString: foundUserQuery, - queryValuesArray: foundUserValues, - debug, - }); - if (!(foundUser === null || foundUser === void 0 ? void 0 : foundUser[0])) - return { - success: false, - payload: null, - msg: "Couldn't find Social User.", +function loginSocialUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ user, social_platform, invitation, database, additionalFields, debug, }) { + const finalDbName = database ? database : "datasquirel"; + const dbAppend = database ? `\`${finalDbName}\`.` : ""; + const foundUserQuery = `SELECT * FROM ${dbAppend}\`users\` WHERE email=?`; + const foundUserValues = [user.email]; + const foundUser = yield (0, varDatabaseDbHandler_1.default)({ + database: finalDbName, + queryString: foundUserQuery, + queryValuesArray: foundUserValues, + debug, + }); + if (!(foundUser === null || foundUser === void 0 ? void 0 : foundUser[0])) + return { + success: false, + payload: null, + msg: "Couldn't find Social User.", + }; + let csrfKey = Math.random().toString(36).substring(2) + + "-" + + Math.random().toString(36).substring(2); + let userPayload = { + id: foundUser[0].id, + uuid: foundUser[0].uuid, + first_name: foundUser[0].first_name, + last_name: foundUser[0].last_name, + username: foundUser[0].username, + user_type: foundUser[0].user_type, + email: foundUser[0].email, + social_id: foundUser[0].social_id, + image: foundUser[0].image, + image_thumbnail: foundUser[0].image_thumbnail, + verification_status: foundUser[0].verification_status, + social_login: foundUser[0].social_login, + social_platform: foundUser[0].social_platform, + csrf_k: csrfKey, + logged_in_status: true, + date: Date.now(), }; - let csrfKey = Math.random().toString(36).substring(2) + - "-" + - Math.random().toString(36).substring(2); - let userPayload = { - id: foundUser[0].id, - uuid: foundUser[0].uuid, - first_name: foundUser[0].first_name, - last_name: foundUser[0].last_name, - username: foundUser[0].username, - user_type: foundUser[0].user_type, - email: foundUser[0].email, - social_id: foundUser[0].social_id, - image: foundUser[0].image, - image_thumbnail: foundUser[0].image_thumbnail, - verification_status: foundUser[0].verification_status, - social_login: foundUser[0].social_login, - social_platform: foundUser[0].social_platform, - csrf_k: csrfKey, - logged_in_status: true, - date: Date.now(), - }; - if (additionalFields === null || additionalFields === void 0 ? void 0 : additionalFields[0]) { - additionalFields.forEach((key) => { - userPayload[key] = foundUser[0][key]; - }); - } - if (invitation && (!database || (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/)))) { - addAdminUserOnLogin({ - query: invitation, - user: userPayload, - }); - } - let result = { - success: true, - payload: userPayload, - csrf: csrfKey, - }; - return result; + if (additionalFields === null || additionalFields === void 0 ? void 0 : additionalFields[0]) { + additionalFields.forEach((key) => { + userPayload[key] = foundUser[0][key]; + }); + } + if (invitation && (!database || (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/)))) { + (0, addAdminUserOnLogin_1.default)({ + query: invitation, + user: userPayload, + }); + } + let result = { + success: true, + payload: userPayload, + csrf: csrfKey, + }; + return result; + }); } diff --git a/dist/package-shared/functions/api/users/api-create-user.js b/dist/package-shared/functions/api/users/api-create-user.js index b3cdf05..bab5611 100644 --- a/dist/package-shared/functions/api/users/api-create-user.js +++ b/dist/package-shared/functions/api/users/api-create-user.js @@ -1,140 +1,157 @@ -import { findDbNameInSchemaDir } from "../../../shell/createDbFromSchema/grab-required-database-schemas"; -import addUsersTableToDb from "../../backend/addUsersTableToDb"; -import addDbEntry from "../../backend/db/addDbEntry"; -import updateUsersTableSchema from "../../backend/updateUsersTableSchema"; -import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; -import hashPassword from "../../dsql/hashPassword"; -import validateEmail from "../../email/fns/validate-email"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiCreateUser; +const grab_required_database_schemas_1 = require("../../../shell/createDbFromSchema/grab-required-database-schemas"); +const addUsersTableToDb_1 = __importDefault(require("../../backend/addUsersTableToDb")); +const addDbEntry_1 = __importDefault(require("../../backend/db/addDbEntry")); +const updateUsersTableSchema_1 = __importDefault(require("../../backend/updateUsersTableSchema")); +const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler")); +const hashPassword_1 = __importDefault(require("../../dsql/hashPassword")); +const validate_email_1 = __importDefault(require("../../email/fns/validate-email")); /** * # API Create User */ -export default async function apiCreateUser({ encryptionKey, payload, database, userId, }) { - var _a; - const dbFullName = database; - const API_USER_ID = userId || process.env.DSQL_API_USER_ID; - const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; - if (!finalEncryptionKey) { - return { - success: false, - msg: "No encryption key provided", - payload: null, - }; - } - if (!(finalEncryptionKey === null || finalEncryptionKey === void 0 ? void 0 : finalEncryptionKey.match(/.{8,}/))) { - return { - success: false, - msg: "Encryption key must be at least 8 characters long", - payload: null, - }; - } - const targetDbSchema = findDbNameInSchemaDir({ - dbName: dbFullName, - userId, - }); - if (!(targetDbSchema === null || targetDbSchema === void 0 ? void 0 : targetDbSchema.id)) { - return { - success: false, - msg: "targetDbSchema not found", - payload: null, - }; - } - const hashedPassword = hashPassword({ - encryptionKey: finalEncryptionKey, - password: String(payload.password), - }); - payload.password = hashedPassword; - const fieldsQuery = `SHOW COLUMNS FROM ${dbFullName}.users`; - let fields = await varDatabaseDbHandler({ - queryString: fieldsQuery, - database: dbFullName, - }); - if (!(fields === null || fields === void 0 ? void 0 : fields[0])) { - const newTable = await addUsersTableToDb({ - userId: Number(API_USER_ID), - database: dbFullName, - payload: payload, - dbId: targetDbSchema.id, +function apiCreateUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ encryptionKey, payload, database, userId, }) { + var _b; + const dbFullName = database; + const API_USER_ID = userId || process.env.DSQL_API_USER_ID; + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + if (!finalEncryptionKey) { + return { + success: false, + msg: "No encryption key provided", + payload: null, + }; + } + if (!(finalEncryptionKey === null || finalEncryptionKey === void 0 ? void 0 : finalEncryptionKey.match(/.{8,}/))) { + return { + success: false, + msg: "Encryption key must be at least 8 characters long", + payload: null, + }; + } + const targetDbSchema = (0, grab_required_database_schemas_1.findDbNameInSchemaDir)({ + dbName: dbFullName, + userId, }); - fields = await varDatabaseDbHandler({ + if (!(targetDbSchema === null || targetDbSchema === void 0 ? void 0 : targetDbSchema.id)) { + return { + success: false, + msg: "targetDbSchema not found", + payload: null, + }; + } + const hashedPassword = (0, hashPassword_1.default)({ + encryptionKey: finalEncryptionKey, + password: String(payload.password), + }); + payload.password = hashedPassword; + const fieldsQuery = `SHOW COLUMNS FROM ${dbFullName}.users`; + let fields = yield (0, varDatabaseDbHandler_1.default)({ queryString: fieldsQuery, database: dbFullName, }); - } - if (!(fields === null || fields === void 0 ? void 0 : fields[0])) { - return { - success: false, - msg: "Could not create users table", - }; - } - const fieldsTitles = fields.map((fieldObject) => fieldObject.Field); - let invalidField = null; - for (let i = 0; i < Object.keys(payload).length; i++) { - const key = Object.keys(payload)[i]; - if (!fieldsTitles.includes(key)) { - await updateUsersTableSchema({ + if (!(fields === null || fields === void 0 ? void 0 : fields[0])) { + const newTable = yield (0, addUsersTableToDb_1.default)({ userId: Number(API_USER_ID), database: dbFullName, - newPayload: { - [key]: payload[key], - }, + payload: payload, dbId: targetDbSchema.id, }); + fields = yield (0, varDatabaseDbHandler_1.default)({ + queryString: fieldsQuery, + database: dbFullName, + }); } - } - if (invalidField) { - return { - success: false, - msg: `${invalidField} is not a valid field!`, - }; - } - const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE email = ?${payload.username ? " OR username = ?" : ""}`; - const existingUserValues = payload.username - ? [payload.email, payload.username] - : [payload.email]; - const existingUser = await varDatabaseDbHandler({ - queryString: existingUserQuery, - queryValuesArray: existingUserValues, - database: dbFullName, - }); - if (existingUser === null || existingUser === void 0 ? void 0 : existingUser[0]) { - return { - success: false, - msg: "User Already Exists", - payload: null, - }; - } - const isEmailValid = await validateEmail({ email: payload.email }); - if (!isEmailValid.isValid) { - return { - success: false, - msg: isEmailValid.message, - payload: null, - }; - } - const addUser = await addDbEntry({ - dbFullName: dbFullName, - tableName: "users", - data: Object.assign(Object.assign({}, payload), { image: process.env.DSQL_DEFAULT_USER_IMAGE || - "/images/user-preset.png", image_thumbnail: process.env.DSQL_DEFAULT_USER_IMAGE || - "/images/user-preset-thumbnail.png" }), - }); - if ((_a = addUser === null || addUser === void 0 ? void 0 : addUser.payload) === null || _a === void 0 ? void 0 : _a.insertId) { - const newlyAddedUserQuery = `SELECT id,uuid,first_name,last_name,email,username,image,image_thumbnail,verification_status FROM ${dbFullName}.users WHERE id='${addUser.payload.insertId}'`; - const newlyAddedUser = await varDatabaseDbHandler({ - queryString: newlyAddedUserQuery, + if (!(fields === null || fields === void 0 ? void 0 : fields[0])) { + return { + success: false, + msg: "Could not create users table", + }; + } + const fieldsTitles = fields.map((fieldObject) => fieldObject.Field); + let invalidField = null; + for (let i = 0; i < Object.keys(payload).length; i++) { + const key = Object.keys(payload)[i]; + if (!fieldsTitles.includes(key)) { + yield (0, updateUsersTableSchema_1.default)({ + userId: Number(API_USER_ID), + database: dbFullName, + newPayload: { + [key]: payload[key], + }, + dbId: targetDbSchema.id, + }); + } + } + if (invalidField) { + return { + success: false, + msg: `${invalidField} is not a valid field!`, + }; + } + const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE email = ?${payload.username ? " OR username = ?" : ""}`; + const existingUserValues = payload.username + ? [payload.email, payload.username] + : [payload.email]; + const existingUser = yield (0, varDatabaseDbHandler_1.default)({ + queryString: existingUserQuery, + queryValuesArray: existingUserValues, database: dbFullName, }); - return { - success: true, - payload: newlyAddedUser[0], - }; - } - else { - return { - success: false, - msg: "Could not create user", - sqlResult: addUser, - payload: null, - }; - } + if (existingUser === null || existingUser === void 0 ? void 0 : existingUser[0]) { + return { + success: false, + msg: "User Already Exists", + payload: null, + }; + } + const isEmailValid = yield (0, validate_email_1.default)({ email: payload.email }); + if (!isEmailValid.isValid) { + return { + success: false, + msg: isEmailValid.message, + payload: null, + }; + } + const addUser = yield (0, addDbEntry_1.default)({ + dbFullName: dbFullName, + tableName: "users", + data: Object.assign(Object.assign({}, payload), { image: process.env.DSQL_DEFAULT_USER_IMAGE || + "/images/user-preset.png", image_thumbnail: process.env.DSQL_DEFAULT_USER_IMAGE || + "/images/user-preset-thumbnail.png" }), + }); + if ((_b = addUser === null || addUser === void 0 ? void 0 : addUser.payload) === null || _b === void 0 ? void 0 : _b.insertId) { + const newlyAddedUserQuery = `SELECT id,uuid,first_name,last_name,email,username,image,image_thumbnail,verification_status FROM ${dbFullName}.users WHERE id='${addUser.payload.insertId}'`; + const newlyAddedUser = yield (0, varDatabaseDbHandler_1.default)({ + queryString: newlyAddedUserQuery, + database: dbFullName, + }); + return { + success: true, + payload: newlyAddedUser[0], + }; + } + else { + return { + success: false, + msg: "Could not create user", + sqlResult: addUser, + payload: null, + }; + } + }); } diff --git a/dist/package-shared/functions/api/users/api-delete-user.js b/dist/package-shared/functions/api/users/api-delete-user.js index 4ff018a..5dd5095 100644 --- a/dist/package-shared/functions/api/users/api-delete-user.js +++ b/dist/package-shared/functions/api/users/api-delete-user.js @@ -1,31 +1,48 @@ -import deleteDbEntry from "../../backend/db/deleteDbEntry"; -import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiDeleteUser; +const deleteDbEntry_1 = __importDefault(require("../../backend/db/deleteDbEntry")); +const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler")); /** * # Update API User Function */ -export default async function apiDeleteUser({ dbFullName, deletedUserId, }) { - const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE id = ?`; - const existingUserValues = [deletedUserId]; - const existingUser = await varDatabaseDbHandler({ - queryString: existingUserQuery, - queryValuesArray: existingUserValues, - database: dbFullName, - }); - if (!(existingUser === null || existingUser === void 0 ? void 0 : existingUser[0])) { +function apiDeleteUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbFullName, deletedUserId, }) { + const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE id = ?`; + const existingUserValues = [deletedUserId]; + const existingUser = yield (0, varDatabaseDbHandler_1.default)({ + queryString: existingUserQuery, + queryValuesArray: existingUserValues, + database: dbFullName, + }); + if (!(existingUser === null || existingUser === void 0 ? void 0 : existingUser[0])) { + return { + success: false, + msg: "User not found", + }; + } + const deleteUser = yield (0, deleteDbEntry_1.default)({ + dbContext: "Dsql User", + dbFullName, + tableName: "users", + identifierColumnName: "id", + identifierValue: deletedUserId, + }); return { - success: false, - msg: "User not found", + success: true, + result: deleteUser, }; - } - const deleteUser = await deleteDbEntry({ - dbContext: "Dsql User", - dbFullName, - tableName: "users", - identifierColumnName: "id", - identifierValue: deletedUserId, }); - return { - success: true, - result: deleteUser, - }; } diff --git a/dist/package-shared/functions/api/users/api-get-user.js b/dist/package-shared/functions/api/users/api-get-user.js index 84c57e3..ab21b65 100644 --- a/dist/package-shared/functions/api/users/api-get-user.js +++ b/dist/package-shared/functions/api/users/api-get-user.js @@ -1,24 +1,41 @@ -import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiGetUser; +const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler")); /** * # API Get User */ -export default async function apiGetUser({ fields, dbFullName, userId, }) { - const finalDbName = dbFullName.replace(/[^a-z0-9_]/g, ""); - const query = `SELECT ${fields.join(",")} FROM ${finalDbName}.users WHERE id=?`; - const API_USER_ID = userId || process.env.DSQL_API_USER_ID; - let foundUser = await varDatabaseDbHandler({ - queryString: query, - queryValuesArray: [API_USER_ID], - database: finalDbName, - }); - if (!foundUser || !foundUser[0]) { +function apiGetUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ fields, dbFullName, userId, }) { + const finalDbName = dbFullName.replace(/[^a-z0-9_]/g, ""); + const query = `SELECT ${fields.join(",")} FROM ${finalDbName}.users WHERE id=?`; + const API_USER_ID = userId || process.env.DSQL_API_USER_ID; + let foundUser = yield (0, varDatabaseDbHandler_1.default)({ + queryString: query, + queryValuesArray: [API_USER_ID], + database: finalDbName, + }); + if (!foundUser || !foundUser[0]) { + return { + success: false, + payload: null, + }; + } return { - success: false, - payload: null, + success: true, + payload: foundUser[0], }; - } - return { - success: true, - payload: foundUser[0], - }; + }); } diff --git a/dist/package-shared/functions/api/users/api-login.js b/dist/package-shared/functions/api/users/api-login.js index 5c87a2f..9f3b9ed 100644 --- a/dist/package-shared/functions/api/users/api-login.js +++ b/dist/package-shared/functions/api/users/api-login.js @@ -1,154 +1,171 @@ -import grabDbFullName from "../../../utils/grab-db-full-name"; -import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; -import hashPassword from "../../dsql/hashPassword"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiLoginUser; +const grab_db_full_name_1 = __importDefault(require("../../../utils/grab-db-full-name")); +const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler")); +const hashPassword_1 = __importDefault(require("../../dsql/hashPassword")); /** * # API Login */ -export default async function apiLoginUser({ encryptionKey, email, username, password, database, additionalFields, email_login, email_login_code, email_login_field, skipPassword, social, dbUserId, debug, }) { - const dbFullName = grabDbFullName({ dbName: database, userId: dbUserId }); - if (!dbFullName) { - console.log(`Database Full Name couldn't be grabbed`); - return { - success: false, - msg: `Database Full Name couldn't be grabbed`, - }; - } - const dbAppend = global.DSQL_USE_LOCAL ? "" : `${dbFullName}.`; - /** - * Check input validity - * - * @description Check input validity - */ - if ((email === null || email === void 0 ? void 0 : email.match(/ /)) || - (username && (username === null || username === void 0 ? void 0 : username.match(/ /))) || - (password && (password === null || password === void 0 ? void 0 : password.match(/ /)))) { - return { - success: false, - msg: "Invalid Email/Password format", - }; - } - /** - * Password hash - * - * @description Password hash - */ - let hashedPassword = password - ? hashPassword({ - encryptionKey: encryptionKey, - password: password, - }) - : null; - if (debug) { - console.log("apiLoginUser:database:", dbFullName); - console.log("apiLoginUser:Finding User ..."); - } - let foundUser = await varDatabaseDbHandler({ - queryString: `SELECT * FROM ${dbAppend}users WHERE email = ? OR username = ?`, - queryValuesArray: [email, username], - database: dbFullName, - debug, - }); - if (debug) { - console.log("apiLoginUser:foundUser:", foundUser); - } - if ((!foundUser || !foundUser[0]) && !social) - return { - success: false, - payload: null, - msg: "No user found", - }; - let isPasswordCorrect = false; - if (debug) { - console.log("apiLoginUser:isPasswordCorrect:", isPasswordCorrect); - } - if ((foundUser === null || foundUser === void 0 ? void 0 : foundUser[0]) && !email_login && skipPassword) { - isPasswordCorrect = true; - } - else if ((foundUser === null || foundUser === void 0 ? void 0 : foundUser[0]) && !email_login) { +function apiLoginUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ encryptionKey, email, username, password, database, additionalFields, email_login, email_login_code, email_login_field, skipPassword, social, dbUserId, debug, }) { + const dbFullName = (0, grab_db_full_name_1.default)({ dbName: database, userId: dbUserId }); + if (!dbFullName) { + console.log(`Database Full Name couldn't be grabbed`); + return { + success: false, + msg: `Database Full Name couldn't be grabbed`, + }; + } + const dbAppend = global.DSQL_USE_LOCAL ? "" : `${dbFullName}.`; + /** + * Check input validity + * + * @description Check input validity + */ + if ((email === null || email === void 0 ? void 0 : email.match(/ /)) || + (username && (username === null || username === void 0 ? void 0 : username.match(/ /))) || + (password && (password === null || password === void 0 ? void 0 : password.match(/ /)))) { + return { + success: false, + msg: "Invalid Email/Password format", + }; + } + /** + * Password hash + * + * @description Password hash + */ + let hashedPassword = password + ? (0, hashPassword_1.default)({ + encryptionKey: encryptionKey, + password: password, + }) + : null; if (debug) { - console.log("apiLoginUser:hashedPassword:", hashedPassword); - console.log("apiLoginUser:foundUser[0].password:", foundUser[0].password); + console.log("apiLoginUser:database:", dbFullName); + console.log("apiLoginUser:Finding User ..."); } - isPasswordCorrect = hashedPassword === foundUser[0].password; - } - else if (foundUser && - foundUser[0] && - email_login && - email_login_code && - email_login_field) { - const tempCode = foundUser[0][email_login_field]; - if (debug) { - console.log("apiLoginUser:tempCode:", tempCode); - } - if (!tempCode) - throw new Error("No code Found!"); - const tempCodeArray = tempCode.split("-"); - const [code, codeDate] = tempCodeArray; - const millisecond15mins = 1000 * 60 * 15; - if (Date.now() - Number(codeDate) > millisecond15mins) { - throw new Error("Code Expired"); - } - isPasswordCorrect = code === email_login_code; - } - let socialUserValid = false; - if (!isPasswordCorrect && !socialUserValid) { - return { - success: false, - msg: "Wrong password, no social login validity", - payload: null, - }; - } - if (debug) { - console.log("apiLoginUser:isPasswordCorrect:", isPasswordCorrect); - console.log("apiLoginUser:email_login:", email_login); - } - if (isPasswordCorrect && email_login) { - const resetTempCode = await varDatabaseDbHandler({ - queryString: `UPDATE ${dbAppend}users SET ${email_login_field} = '' WHERE email = ? OR username = ?`, + let foundUser = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SELECT * FROM ${dbAppend}users WHERE email = ? OR username = ?`, queryValuesArray: [email, username], database: dbFullName, + debug, }); - } - let csrfKey = Math.random().toString(36).substring(2) + - "-" + - Math.random().toString(36).substring(2); - let userPayload = { - id: foundUser[0].id, - uid: foundUser[0].uid, - uuid: foundUser[0].uuid, - first_name: foundUser[0].first_name, - last_name: foundUser[0].last_name, - username: foundUser[0].username, - email: foundUser[0].email, - phone: foundUser[0].phone, - social_id: foundUser[0].social_id, - image: foundUser[0].image, - image_thumbnail: foundUser[0].image_thumbnail, - verification_status: foundUser[0].verification_status, - social_login: foundUser[0].social_login, - social_platform: foundUser[0].social_platform, - csrf_k: csrfKey, - more_data: foundUser[0].more_user_data, - logged_in_status: true, - date: Date.now(), - }; - if (debug) { - console.log("apiLoginUser:userPayload:", userPayload); - console.log("apiLoginUser:Sending Response Object ..."); - } - const resposeObject = { - success: true, - msg: "Login Successful", - payload: userPayload, - userId: foundUser[0].id, - csrf: csrfKey, - }; - if (additionalFields && - Array.isArray(additionalFields) && - additionalFields.length > 0) { - additionalFields.forEach((key) => { - userPayload[key] = foundUser[0][key]; - }); - } - return resposeObject; + if (debug) { + console.log("apiLoginUser:foundUser:", foundUser); + } + if ((!foundUser || !foundUser[0]) && !social) + return { + success: false, + payload: null, + msg: "No user found", + }; + let isPasswordCorrect = false; + if (debug) { + console.log("apiLoginUser:isPasswordCorrect:", isPasswordCorrect); + } + if ((foundUser === null || foundUser === void 0 ? void 0 : foundUser[0]) && !email_login && skipPassword) { + isPasswordCorrect = true; + } + else if ((foundUser === null || foundUser === void 0 ? void 0 : foundUser[0]) && !email_login) { + if (debug) { + console.log("apiLoginUser:hashedPassword:", hashedPassword); + console.log("apiLoginUser:foundUser[0].password:", foundUser[0].password); + } + isPasswordCorrect = hashedPassword === foundUser[0].password; + } + else if (foundUser && + foundUser[0] && + email_login && + email_login_code && + email_login_field) { + const tempCode = foundUser[0][email_login_field]; + if (debug) { + console.log("apiLoginUser:tempCode:", tempCode); + } + if (!tempCode) + throw new Error("No code Found!"); + const tempCodeArray = tempCode.split("-"); + const [code, codeDate] = tempCodeArray; + const millisecond15mins = 1000 * 60 * 15; + if (Date.now() - Number(codeDate) > millisecond15mins) { + throw new Error("Code Expired"); + } + isPasswordCorrect = code === email_login_code; + } + let socialUserValid = false; + if (!isPasswordCorrect && !socialUserValid) { + return { + success: false, + msg: "Wrong password, no social login validity", + payload: null, + }; + } + if (debug) { + console.log("apiLoginUser:isPasswordCorrect:", isPasswordCorrect); + console.log("apiLoginUser:email_login:", email_login); + } + if (isPasswordCorrect && email_login) { + const resetTempCode = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `UPDATE ${dbAppend}users SET ${email_login_field} = '' WHERE email = ? OR username = ?`, + queryValuesArray: [email, username], + database: dbFullName, + }); + } + let csrfKey = Math.random().toString(36).substring(2) + + "-" + + Math.random().toString(36).substring(2); + let userPayload = { + id: foundUser[0].id, + uid: foundUser[0].uid, + uuid: foundUser[0].uuid, + first_name: foundUser[0].first_name, + last_name: foundUser[0].last_name, + username: foundUser[0].username, + email: foundUser[0].email, + phone: foundUser[0].phone, + social_id: foundUser[0].social_id, + image: foundUser[0].image, + image_thumbnail: foundUser[0].image_thumbnail, + verification_status: foundUser[0].verification_status, + social_login: foundUser[0].social_login, + social_platform: foundUser[0].social_platform, + csrf_k: csrfKey, + more_data: foundUser[0].more_user_data, + logged_in_status: true, + date: Date.now(), + }; + if (debug) { + console.log("apiLoginUser:userPayload:", userPayload); + console.log("apiLoginUser:Sending Response Object ..."); + } + const resposeObject = { + success: true, + msg: "Login Successful", + payload: userPayload, + userId: foundUser[0].id, + csrf: csrfKey, + }; + if (additionalFields && + Array.isArray(additionalFields) && + additionalFields.length > 0) { + additionalFields.forEach((key) => { + userPayload[key] = foundUser[0][key]; + }); + } + return resposeObject; + }); } diff --git a/dist/package-shared/functions/api/users/api-reauth-user.js b/dist/package-shared/functions/api/users/api-reauth-user.js index 3ee8f79..e26d31e 100644 --- a/dist/package-shared/functions/api/users/api-reauth-user.js +++ b/dist/package-shared/functions/api/users/api-reauth-user.js @@ -1,58 +1,75 @@ -import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiReauthUser; +const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler")); /** * # Re-authenticate API user */ -export default async function apiReauthUser({ existingUser, database, additionalFields, }) { - const dbAppend = global.DSQL_USE_LOCAL - ? "" - : database - ? `${database}.` - : ""; - let foundUser = (existingUser === null || existingUser === void 0 ? void 0 : existingUser.id) && existingUser.id.toString().match(/./) - ? await varDatabaseDbHandler({ - queryString: `SELECT * FROM ${dbAppend}users WHERE id=?`, - queryValuesArray: [existingUser.id.toString()], - database, - }) - : null; - if (!foundUser || !foundUser[0]) - return { - success: false, - payload: null, - msg: "No user found", +function apiReauthUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ existingUser, database, additionalFields, }) { + const dbAppend = global.DSQL_USE_LOCAL + ? "" + : database + ? `${database}.` + : ""; + let foundUser = (existingUser === null || existingUser === void 0 ? void 0 : existingUser.id) && existingUser.id.toString().match(/./) + ? yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SELECT * FROM ${dbAppend}users WHERE id=?`, + queryValuesArray: [existingUser.id.toString()], + database, + }) + : null; + if (!foundUser || !foundUser[0]) + return { + success: false, + payload: null, + msg: "No user found", + }; + let csrfKey = Math.random().toString(36).substring(2) + + "-" + + Math.random().toString(36).substring(2); + let userPayload = { + id: foundUser[0].id, + first_name: foundUser[0].first_name, + last_name: foundUser[0].last_name, + username: foundUser[0].username, + email: foundUser[0].email, + phone: foundUser[0].phone, + social_id: foundUser[0].social_id, + image: foundUser[0].image, + image_thumbnail: foundUser[0].image_thumbnail, + verification_status: foundUser[0].verification_status, + social_login: foundUser[0].social_login, + social_platform: foundUser[0].social_platform, + csrf_k: csrfKey, + more_data: foundUser[0].more_user_data, + logged_in_status: true, + date: Date.now(), }; - let csrfKey = Math.random().toString(36).substring(2) + - "-" + - Math.random().toString(36).substring(2); - let userPayload = { - id: foundUser[0].id, - first_name: foundUser[0].first_name, - last_name: foundUser[0].last_name, - username: foundUser[0].username, - email: foundUser[0].email, - phone: foundUser[0].phone, - social_id: foundUser[0].social_id, - image: foundUser[0].image, - image_thumbnail: foundUser[0].image_thumbnail, - verification_status: foundUser[0].verification_status, - social_login: foundUser[0].social_login, - social_platform: foundUser[0].social_platform, - csrf_k: csrfKey, - more_data: foundUser[0].more_user_data, - logged_in_status: true, - date: Date.now(), - }; - if (additionalFields && - Array.isArray(additionalFields) && - additionalFields.length > 0) { - additionalFields.forEach((key) => { - userPayload[key] = foundUser[0][key]; - }); - } - return { - success: true, - msg: "Login Successful", - payload: userPayload, - csrf: csrfKey, - }; + if (additionalFields && + Array.isArray(additionalFields) && + additionalFields.length > 0) { + additionalFields.forEach((key) => { + userPayload[key] = foundUser[0][key]; + }); + } + return { + success: true, + msg: "Login Successful", + payload: userPayload, + csrf: csrfKey, + }; + }); } diff --git a/dist/package-shared/functions/api/users/api-send-email-code.js b/dist/package-shared/functions/api/users/api-send-email-code.js index 57e0dfd..9de591f 100644 --- a/dist/package-shared/functions/api/users/api-send-email-code.js +++ b/dist/package-shared/functions/api/users/api-send-email-code.js @@ -1,115 +1,132 @@ -import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; -import nodemailer from "nodemailer"; -import getAuthCookieNames from "../../backend/cookies/get-auth-cookie-names"; -import encrypt from "../../dsql/encrypt"; -import serializeCookies from "../../../utils/serialize-cookies"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiSendEmailCode; +const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler")); +const nodemailer_1 = __importDefault(require("nodemailer")); +const get_auth_cookie_names_1 = __importDefault(require("../../backend/cookies/get-auth-cookie-names")); +const encrypt_1 = __importDefault(require("../../dsql/encrypt")); +const serialize_cookies_1 = __importDefault(require("../../../utils/serialize-cookies")); /** * # Send Email Login Code */ -export default async function apiSendEmailCode({ email, database, email_login_field, mail_domain, mail_port, sender, mail_username, mail_password, html, response, extraCookies, }) { - if (email === null || email === void 0 ? void 0 : email.match(/ /)) { - return { - success: false, - msg: "Invalid Email/Password format", - }; - } - const createdAt = Date.now(); - const foundUserQuery = `SELECT * FROM ${database}.users WHERE email = ?`; - const foundUserValues = [email]; - let foundUser = await varDatabaseDbHandler({ - queryString: foundUserQuery, - queryValuesArray: foundUserValues, - database, - }); - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - if (!foundUser || !foundUser[0]) { - return { - success: false, - msg: "No user found", - }; - } - function generateCode() { - const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - let code = ""; - for (let i = 0; i < 8; i++) { - code += chars[Math.floor(Math.random() * chars.length)]; +function apiSendEmailCode(_a) { + return __awaiter(this, arguments, void 0, function* ({ email, database, email_login_field, mail_domain, mail_port, sender, mail_username, mail_password, html, response, extraCookies, }) { + if (email === null || email === void 0 ? void 0 : email.match(/ /)) { + return { + success: false, + msg: "Invalid Email/Password format", + }; } - return code; - } - if ((foundUser === null || foundUser === void 0 ? void 0 : foundUser[0]) && email_login_field) { - const tempCode = generateCode(); - let transporter = nodemailer.createTransport({ - host: mail_domain || process.env.DSQL_MAIL_HOST, - port: mail_port - ? mail_port - : process.env.DSQL_MAIL_PORT - ? Number(process.env.DSQL_MAIL_PORT) - : 465, - secure: true, - auth: { - user: mail_username || process.env.DSQL_MAIL_EMAIL, - pass: mail_password || process.env.DSQL_MAIL_PASSWORD, - }, - }); - let mailObject = {}; - mailObject["from"] = `"Datasquirel SSO" <${sender || "support@datasquirel.com"}>`; - mailObject["sender"] = sender || "support@datasquirel.com"; - mailObject["to"] = email; - mailObject["subject"] = "One Time Login Code"; - mailObject["html"] = html.replace(/{{code}}/, tempCode); - const info = await transporter.sendMail(mailObject); - if (!(info === null || info === void 0 ? void 0 : info.accepted)) - throw new Error("Mail not Sent!"); - const setTempCodeQuery = `UPDATE ${database}.users SET ${email_login_field} = ? WHERE email = ?`; - const setTempCodeValues = [tempCode + `-${createdAt}`, email]; - let setTempCode = await varDatabaseDbHandler({ - queryString: setTempCodeQuery, - queryValuesArray: setTempCodeValues, + const createdAt = Date.now(); + const foundUserQuery = `SELECT * FROM ${database}.users WHERE email = ?`; + const foundUserValues = [email]; + let foundUser = yield (0, varDatabaseDbHandler_1.default)({ + queryString: foundUserQuery, + queryValuesArray: foundUserValues, database, }); - /** @type {import("../../../types").SendOneTimeCodeEmailResponse} */ - const resObject = { - success: true, - code: tempCode, - email: email, - createdAt, - msg: "Success", - }; - if (response) { - const cookieKeyNames = getAuthCookieNames(); - const oneTimeCodeCookieName = cookieKeyNames.oneTimeCodeName; - const encryptedPayload = encrypt({ - data: JSON.stringify(resObject), - }); - if (!encryptedPayload) { - throw new Error("apiSendEmailCode Error: Failed to encrypt payload"); - } - /** @type {import("../../../../package-shared/types").CookieObject} */ - const oneTimeCookieObject = { - name: oneTimeCodeCookieName, - value: encryptedPayload, - sameSite: "Strict", - path: "/", - httpOnly: true, - secure: true, + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + if (!foundUser || !foundUser[0]) { + return { + success: false, + msg: "No user found", }; - /** @type {import("../../../../package-shared/types").CookieObject[]} */ - const cookiesObjectArray = extraCookies - ? [...extraCookies, oneTimeCookieObject] - : [oneTimeCookieObject]; - const serializedCookies = serializeCookies({ - cookies: cookiesObjectArray, - }); - response.setHeader("Set-Cookie", serializedCookies); } - return resObject; - } - else { - return { - success: false, - msg: "Invalid Email/Password format", - }; - } + function generateCode() { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + let code = ""; + for (let i = 0; i < 8; i++) { + code += chars[Math.floor(Math.random() * chars.length)]; + } + return code; + } + if ((foundUser === null || foundUser === void 0 ? void 0 : foundUser[0]) && email_login_field) { + const tempCode = generateCode(); + let transporter = nodemailer_1.default.createTransport({ + host: mail_domain || process.env.DSQL_MAIL_HOST, + port: mail_port + ? mail_port + : process.env.DSQL_MAIL_PORT + ? Number(process.env.DSQL_MAIL_PORT) + : 465, + secure: true, + auth: { + user: mail_username || process.env.DSQL_MAIL_EMAIL, + pass: mail_password || process.env.DSQL_MAIL_PASSWORD, + }, + }); + let mailObject = {}; + mailObject["from"] = `"Datasquirel SSO" <${sender || "support@datasquirel.com"}>`; + mailObject["sender"] = sender || "support@datasquirel.com"; + mailObject["to"] = email; + mailObject["subject"] = "One Time Login Code"; + mailObject["html"] = html.replace(/{{code}}/, tempCode); + const info = yield transporter.sendMail(mailObject); + if (!(info === null || info === void 0 ? void 0 : info.accepted)) + throw new Error("Mail not Sent!"); + const setTempCodeQuery = `UPDATE ${database}.users SET ${email_login_field} = ? WHERE email = ?`; + const setTempCodeValues = [tempCode + `-${createdAt}`, email]; + let setTempCode = yield (0, varDatabaseDbHandler_1.default)({ + queryString: setTempCodeQuery, + queryValuesArray: setTempCodeValues, + database, + }); + /** @type {import("../../../types").SendOneTimeCodeEmailResponse} */ + const resObject = { + success: true, + code: tempCode, + email: email, + createdAt, + msg: "Success", + }; + if (response) { + const cookieKeyNames = (0, get_auth_cookie_names_1.default)(); + const oneTimeCodeCookieName = cookieKeyNames.oneTimeCodeName; + const encryptedPayload = (0, encrypt_1.default)({ + data: JSON.stringify(resObject), + }); + if (!encryptedPayload) { + throw new Error("apiSendEmailCode Error: Failed to encrypt payload"); + } + /** @type {import("../../../../package-shared/types").CookieObject} */ + const oneTimeCookieObject = { + name: oneTimeCodeCookieName, + value: encryptedPayload, + sameSite: "Strict", + path: "/", + httpOnly: true, + secure: true, + }; + /** @type {import("../../../../package-shared/types").CookieObject[]} */ + const cookiesObjectArray = extraCookies + ? [...extraCookies, oneTimeCookieObject] + : [oneTimeCookieObject]; + const serializedCookies = (0, serialize_cookies_1.default)({ + cookies: cookiesObjectArray, + }); + response.setHeader("Set-Cookie", serializedCookies); + } + return resObject; + } + else { + return { + success: false, + msg: "Invalid Email/Password format", + }; + } + }); } diff --git a/dist/package-shared/functions/api/users/api-update-user.js b/dist/package-shared/functions/api/users/api-update-user.js index a0cb570..1960a57 100644 --- a/dist/package-shared/functions/api/users/api-update-user.js +++ b/dist/package-shared/functions/api/users/api-update-user.js @@ -1,64 +1,81 @@ +"use strict"; // @ts-check -import updateDbEntry from "../../backend/db/updateDbEntry"; -import encrypt from "../../dsql/encrypt"; -import hashPassword from "../../dsql/hashPassword"; -import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiUpdateUser; +const updateDbEntry_1 = __importDefault(require("../../backend/db/updateDbEntry")); +const encrypt_1 = __importDefault(require("../../dsql/encrypt")); +const hashPassword_1 = __importDefault(require("../../dsql/hashPassword")); +const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler")); /** * # Update API User Function */ -export default async function apiUpdateUser({ payload, dbFullName, updatedUserId, dbSchema, }) { - const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE id = ?`; - const existingUserValues = [updatedUserId]; - const existingUser = await varDatabaseDbHandler({ - queryString: existingUserQuery, - queryValuesArray: existingUserValues, - database: dbFullName, - }); - if (!(existingUser === null || existingUser === void 0 ? void 0 : existingUser[0])) { - return { - success: false, - msg: "User not found", - }; - } - const data = (() => { - const reqBodyKeys = Object.keys(payload); - const targetTableSchema = (() => { - var _a; - try { - const targetDatabaseSchema = (_a = dbSchema === null || dbSchema === void 0 ? void 0 : dbSchema.tables) === null || _a === void 0 ? void 0 : _a.find((tbl) => tbl.tableName == "users"); - return targetDatabaseSchema; - } - catch (error) { - return undefined; - } - })(); - /** @type {any} */ - const finalData = {}; - reqBodyKeys.forEach((key) => { - var _a; - const targetFieldSchema = (_a = targetTableSchema === null || targetTableSchema === void 0 ? void 0 : targetTableSchema.fields) === null || _a === void 0 ? void 0 : _a.find((field) => field.fieldName == key); - if (key === null || key === void 0 ? void 0 : key.match(/^date_|^id$|^uuid$/)) - return; - let value = payload[key]; - if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.encrypted) { - value = encrypt({ data: value }); - } - finalData[key] = value; +function apiUpdateUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ payload, dbFullName, updatedUserId, dbSchema, }) { + const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE id = ?`; + const existingUserValues = [updatedUserId]; + const existingUser = yield (0, varDatabaseDbHandler_1.default)({ + queryString: existingUserQuery, + queryValuesArray: existingUserValues, + database: dbFullName, }); - if (finalData.password && typeof finalData.password == "string") { - finalData.password = hashPassword({ password: finalData.password }); + if (!(existingUser === null || existingUser === void 0 ? void 0 : existingUser[0])) { + return { + success: false, + msg: "User not found", + }; } - return finalData; - })(); - const updateUser = await updateDbEntry({ - dbFullName, - tableName: "users", - identifierColumnName: "id", - identifierValue: updatedUserId, - data: data, + const data = (() => { + const reqBodyKeys = Object.keys(payload); + const targetTableSchema = (() => { + var _a; + try { + const targetDatabaseSchema = (_a = dbSchema === null || dbSchema === void 0 ? void 0 : dbSchema.tables) === null || _a === void 0 ? void 0 : _a.find((tbl) => tbl.tableName == "users"); + return targetDatabaseSchema; + } + catch (error) { + return undefined; + } + })(); + /** @type {any} */ + const finalData = {}; + reqBodyKeys.forEach((key) => { + var _a; + const targetFieldSchema = (_a = targetTableSchema === null || targetTableSchema === void 0 ? void 0 : targetTableSchema.fields) === null || _a === void 0 ? void 0 : _a.find((field) => field.fieldName == key); + if (key === null || key === void 0 ? void 0 : key.match(/^date_|^id$|^uuid$/)) + return; + let value = payload[key]; + if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.encrypted) { + value = (0, encrypt_1.default)({ data: value }); + } + finalData[key] = value; + }); + if (finalData.password && typeof finalData.password == "string") { + finalData.password = (0, hashPassword_1.default)({ password: finalData.password }); + } + return finalData; + })(); + const updateUser = yield (0, updateDbEntry_1.default)({ + dbFullName, + tableName: "users", + identifierColumnName: "id", + identifierValue: updatedUserId, + data: data, + }); + return { + success: true, + payload: updateUser, + }; }); - return { - success: true, - payload: updateUser, - }; } diff --git a/dist/package-shared/functions/api/users/reset-password/(utils)/encrypt-url.js b/dist/package-shared/functions/api/users/reset-password/(utils)/encrypt-url.js index 7428f08..ba4607d 100644 --- a/dist/package-shared/functions/api/users/reset-password/(utils)/encrypt-url.js +++ b/dist/package-shared/functions/api/users/reset-password/(utils)/encrypt-url.js @@ -1,12 +1,18 @@ -import EJSON from "../../../../../utils/ejson"; -import encrypt from "../../../../dsql/encrypt"; -export default function encryptReserPasswordUrl({ email, encryptionKey, encryptionSalt, }) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = encryptReserPasswordUrl; +const ejson_1 = __importDefault(require("../../../../../utils/ejson")); +const encrypt_1 = __importDefault(require("../../../../dsql/encrypt")); +function encryptReserPasswordUrl({ email, encryptionKey, encryptionSalt, }) { const encryptObject = { email, createdAt: Date.now(), }; - const encryptStr = encrypt({ - data: EJSON.stringify(encryptObject), + const encryptStr = (0, encrypt_1.default)({ + data: ejson_1.default.stringify(encryptObject), encryptionKey, encryptionSalt, }); diff --git a/dist/package-shared/functions/api/users/reset-password/api-send-reset-password-link.js b/dist/package-shared/functions/api/users/reset-password/api-send-reset-password-link.js index 10627fe..4ed7655 100644 --- a/dist/package-shared/functions/api/users/reset-password/api-send-reset-password-link.js +++ b/dist/package-shared/functions/api/users/reset-password/api-send-reset-password-link.js @@ -1,36 +1,53 @@ -import grabDbFullName from "../../../../utils/grab-db-full-name"; -import varDatabaseDbHandler from "../../../backend/varDatabaseDbHandler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiSendResetPasswordLink; +const grab_db_full_name_1 = __importDefault(require("../../../../utils/grab-db-full-name")); +const varDatabaseDbHandler_1 = __importDefault(require("../../../backend/varDatabaseDbHandler")); /** * # API Login */ -export default async function apiSendResetPasswordLink({ database, email, dbUserId, debug, }) { - const dbFullName = grabDbFullName({ dbName: database, userId: dbUserId }); - if (!dbFullName) { - return { - success: false, - msg: `Couldn't get database full name`, - }; - } - if (email === null || email === void 0 ? void 0 : email.match(/ /)) { - return { - success: false, - msg: "Invalid Email/Password format", - }; - } - let foundUser = await varDatabaseDbHandler({ - queryString: `SELECT * FROM ${dbFullName}.users WHERE email = ? OR username = ?`, - queryValuesArray: [email, email], - database: dbFullName, - debug, +function apiSendResetPasswordLink(_a) { + return __awaiter(this, arguments, void 0, function* ({ database, email, dbUserId, debug, }) { + const dbFullName = (0, grab_db_full_name_1.default)({ dbName: database, userId: dbUserId }); + if (!dbFullName) { + return { + success: false, + msg: `Couldn't get database full name`, + }; + } + if (email === null || email === void 0 ? void 0 : email.match(/ /)) { + return { + success: false, + msg: "Invalid Email/Password format", + }; + } + let foundUser = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SELECT * FROM ${dbFullName}.users WHERE email = ? OR username = ?`, + queryValuesArray: [email, email], + database: dbFullName, + debug, + }); + if (debug) { + console.log("apiSendResetPassword:foundUser:", foundUser); + } + const targetUser = foundUser === null || foundUser === void 0 ? void 0 : foundUser[0]; + if (!targetUser) + return { + success: false, + msg: "No user found", + }; + return { success: true }; }); - if (debug) { - console.log("apiSendResetPassword:foundUser:", foundUser); - } - const targetUser = foundUser === null || foundUser === void 0 ? void 0 : foundUser[0]; - if (!targetUser) - return { - success: false, - msg: "No user found", - }; - return { success: true }; } diff --git a/dist/package-shared/functions/api/users/social/api-github-login.js b/dist/package-shared/functions/api/users/social/api-github-login.js index d95ef29..f3cfd8d 100644 --- a/dist/package-shared/functions/api/users/social/api-github-login.js +++ b/dist/package-shared/functions/api/users/social/api-github-login.js @@ -1,71 +1,88 @@ -import handleSocialDb from "../../social-login/handleSocialDb"; -import githubLogin from "../../social-login/githubLogin"; -import camelJoinedtoCamelSpace from "../../../../utils/camelJoinedtoCamelSpace"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiGithubLogin; +const handleSocialDb_1 = __importDefault(require("../../social-login/handleSocialDb")); +const githubLogin_1 = __importDefault(require("../../social-login/githubLogin")); +const camelJoinedtoCamelSpace_1 = __importDefault(require("../../../../utils/camelJoinedtoCamelSpace")); /** * # API Login with Github */ -export default async function apiGithubLogin({ code, clientId, clientSecret, database, additionalFields, email, additionalData, }) { - if (!code || !clientId || !clientSecret || !database) { - return { - success: false, - msg: "Missing query params", +function apiGithubLogin(_a) { + return __awaiter(this, arguments, void 0, function* ({ code, clientId, clientSecret, database, additionalFields, email, additionalData, }) { + if (!code || !clientId || !clientSecret || !database) { + return { + success: false, + msg: "Missing query params", + }; + } + if (typeof code !== "string" || + typeof clientId !== "string" || + typeof clientSecret !== "string" || + typeof database !== "string") { + return { + success: false, + msg: "Wrong Parameters", + }; + } + /** + * Create new user folder and file + * + * @description Create new user folder and file + */ + const gitHubUser = yield (0, githubLogin_1.default)({ + code: code, + clientId: clientId, + clientSecret: clientSecret, + }); + if (!gitHubUser) { + return { + success: false, + msg: "No github user returned", + }; + } + const socialId = gitHubUser.name || gitHubUser.id || gitHubUser.login; + const targetName = gitHubUser.name || gitHubUser.login; + const nameArray = (targetName === null || targetName === void 0 ? void 0 : targetName.match(/ /)) + ? targetName === null || targetName === void 0 ? void 0 : targetName.split(" ") + : (targetName === null || targetName === void 0 ? void 0 : targetName.match(/\-/)) + ? targetName === null || targetName === void 0 ? void 0 : targetName.split("-") + : [targetName]; + let payload = { + email: gitHubUser.email, + first_name: (0, camelJoinedtoCamelSpace_1.default)(nameArray[0]), + last_name: (0, camelJoinedtoCamelSpace_1.default)(nameArray[1]), + social_id: socialId, + social_platform: "github", + image: gitHubUser.avatar_url, + image_thumbnail: gitHubUser.avatar_url, + username: "github-user-" + socialId, }; - } - if (typeof code !== "string" || - typeof clientId !== "string" || - typeof clientSecret !== "string" || - typeof database !== "string") { - return { - success: false, - msg: "Wrong Parameters", - }; - } - /** - * Create new user folder and file - * - * @description Create new user folder and file - */ - const gitHubUser = await githubLogin({ - code: code, - clientId: clientId, - clientSecret: clientSecret, + if (additionalData) { + payload = Object.assign(Object.assign({}, payload), additionalData); + } + const loggedInGithubUser = yield (0, handleSocialDb_1.default)({ + database, + email: gitHubUser.email, + payload, + social_platform: "github", + supEmail: email, + additionalFields, + }); + //////////////////////////////////////////////// + //////////////////////////////////////////////// + //////////////////////////////////////////////// + return Object.assign({}, loggedInGithubUser); }); - if (!gitHubUser) { - return { - success: false, - msg: "No github user returned", - }; - } - const socialId = gitHubUser.name || gitHubUser.id || gitHubUser.login; - const targetName = gitHubUser.name || gitHubUser.login; - const nameArray = (targetName === null || targetName === void 0 ? void 0 : targetName.match(/ /)) - ? targetName === null || targetName === void 0 ? void 0 : targetName.split(" ") - : (targetName === null || targetName === void 0 ? void 0 : targetName.match(/\-/)) - ? targetName === null || targetName === void 0 ? void 0 : targetName.split("-") - : [targetName]; - let payload = { - email: gitHubUser.email, - first_name: camelJoinedtoCamelSpace(nameArray[0]), - last_name: camelJoinedtoCamelSpace(nameArray[1]), - social_id: socialId, - social_platform: "github", - image: gitHubUser.avatar_url, - image_thumbnail: gitHubUser.avatar_url, - username: "github-user-" + socialId, - }; - if (additionalData) { - payload = Object.assign(Object.assign({}, payload), additionalData); - } - const loggedInGithubUser = await handleSocialDb({ - database, - email: gitHubUser.email, - payload, - social_platform: "github", - supEmail: email, - additionalFields, - }); - //////////////////////////////////////////////// - //////////////////////////////////////////////// - //////////////////////////////////////////////// - return Object.assign({}, loggedInGithubUser); } diff --git a/dist/package-shared/functions/api/users/social/api-google-login.js b/dist/package-shared/functions/api/users/social/api-google-login.js index da54e5b..35d7775 100644 --- a/dist/package-shared/functions/api/users/social/api-google-login.js +++ b/dist/package-shared/functions/api/users/social/api-google-login.js @@ -1,72 +1,89 @@ -import https from "https"; -import handleSocialDb from "../../social-login/handleSocialDb"; -import EJSON from "../../../../utils/ejson"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiGoogleLogin; +const https_1 = __importDefault(require("https")); +const handleSocialDb_1 = __importDefault(require("../../social-login/handleSocialDb")); +const ejson_1 = __importDefault(require("../../../../utils/ejson")); /** * # API google login */ -export default async function apiGoogleLogin({ token, database, additionalFields, additionalData, debug, loginOnly, }) { - try { - const gUser = await new Promise((resolve, reject) => { - https - .request({ - method: "GET", - hostname: "www.googleapis.com", - path: "/oauth2/v3/userinfo", - headers: { - Authorization: `Bearer ${token}`, - }, - }, (res) => { - let data = ""; - res.on("data", (chunk) => { - data += chunk; - }); - res.on("end", () => { - resolve(EJSON.parse(data)); - }); - }) - .end(); - }); - if (!(gUser === null || gUser === void 0 ? void 0 : gUser.email_verified)) - throw new Error("No Google User."); - /** - * Create new user folder and file - * - * @description Create new user folder and file - */ - const { given_name, family_name, email, sub, picture } = gUser; - let payloadObject = { - email: email, - first_name: given_name, - last_name: family_name, - social_id: sub, - social_platform: "google", - image: picture, - image_thumbnail: picture, - username: `google-user-${sub}`, - }; - if (additionalData) { - payloadObject = Object.assign(Object.assign({}, payloadObject), additionalData); +function apiGoogleLogin(_a) { + return __awaiter(this, arguments, void 0, function* ({ token, database, additionalFields, additionalData, debug, loginOnly, }) { + try { + const gUser = yield new Promise((resolve, reject) => { + https_1.default + .request({ + method: "GET", + hostname: "www.googleapis.com", + path: "/oauth2/v3/userinfo", + headers: { + Authorization: `Bearer ${token}`, + }, + }, (res) => { + let data = ""; + res.on("data", (chunk) => { + data += chunk; + }); + res.on("end", () => { + resolve(ejson_1.default.parse(data)); + }); + }) + .end(); + }); + if (!(gUser === null || gUser === void 0 ? void 0 : gUser.email_verified)) + throw new Error("No Google User."); + /** + * Create new user folder and file + * + * @description Create new user folder and file + */ + const { given_name, family_name, email, sub, picture } = gUser; + let payloadObject = { + email: email, + first_name: given_name, + last_name: family_name, + social_id: sub, + social_platform: "google", + image: picture, + image_thumbnail: picture, + username: `google-user-${sub}`, + }; + if (additionalData) { + payloadObject = Object.assign(Object.assign({}, payloadObject), additionalData); + } + const loggedInGoogleUser = yield (0, handleSocialDb_1.default)({ + database, + email: email || "", + payload: payloadObject, + social_platform: "google", + additionalFields, + debug, + loginOnly, + }); + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + return Object.assign({}, loggedInGoogleUser); } - const loggedInGoogleUser = await handleSocialDb({ - database, - email: email || "", - payload: payloadObject, - social_platform: "google", - additionalFields, - debug, - loginOnly, - }); - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - return Object.assign({}, loggedInGoogleUser); - } - catch ( /** @type {any} */error) { - console.log(`api-google-login.ts ERROR: ${error.message}`); - return { - success: false, - payload: undefined, - msg: error.message, - }; - } + catch ( /** @type {any} */error) { + console.log(`api-google-login.ts ERROR: ${error.message}`); + return { + success: false, + payload: undefined, + msg: error.message, + }; + } + }); } diff --git a/dist/package-shared/functions/backend/addAdminUserOnLogin.js b/dist/package-shared/functions/backend/addAdminUserOnLogin.js index 3a76f85..fa68467 100644 --- a/dist/package-shared/functions/backend/addAdminUserOnLogin.js +++ b/dist/package-shared/functions/backend/addAdminUserOnLogin.js @@ -1,7 +1,22 @@ -import serverError from "./serverError"; -import DB_HANDLER from "../../utils/backend/global-db/DB_HANDLER"; -import addDbEntry from "./db/addDbEntry"; -import LOCAL_DB_HANDLER from "../../utils/backend/global-db/LOCAL_DB_HANDLER"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = addAdminUserOnLogin; +const serverError_1 = __importDefault(require("./serverError")); +const DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/DB_HANDLER")); +const addDbEntry_1 = __importDefault(require("./db/addDbEntry")); +const LOCAL_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/LOCAL_DB_HANDLER")); /** * Add Admin User on Login * ============================================================================== @@ -10,86 +25,88 @@ import LOCAL_DB_HANDLER from "../../utils/backend/global-db/LOCAL_DB_HANDLER"; * admin user. This fires when the invited user has been logged in or a new account * has been created for the invited user */ -export default async function addAdminUserOnLogin({ query, user, }) { - var _a; - try { - const finalDbHandler = global.DSQL_USE_LOCAL - ? LOCAL_DB_HANDLER - : DB_HANDLER; - const { invite, database_access, priviledge, email } = query; - const lastInviteTimeQuery = `SELECT date_created_code FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`; - const lastInviteTimeValues = [invite, email]; - const lastInviteTimeArray = await finalDbHandler(lastInviteTimeQuery, lastInviteTimeValues); - if (!lastInviteTimeArray || !lastInviteTimeArray[0]) { - throw new Error("No Invitation Found"); - } - //////////////////////////////////////////////// - //////////////////////////////////////////////// - //////////////////////////////////////////////// - const invitingUserDbQuery = `SELECT first_name,last_name,email FROM users WHERE id=?`; - const invitingUserDbValues = [invite]; - const invitingUserDb = await finalDbHandler(invitingUserDbQuery, invitingUserDbValues); - if (invitingUserDb === null || invitingUserDb === void 0 ? void 0 : invitingUserDb[0]) { - const existingUserUser = await finalDbHandler(`SELECT email FROM user_users WHERE user_id=? AND invited_user_id=? AND user_type='admin' AND email=?`, [invite, user.id, email]); - if (existingUserUser === null || existingUserUser === void 0 ? void 0 : existingUserUser[0]) { - console.log("User already added"); +function addAdminUserOnLogin(_a) { + return __awaiter(this, arguments, void 0, function* ({ query, user, }) { + var _b; + try { + const finalDbHandler = global.DSQL_USE_LOCAL + ? LOCAL_DB_HANDLER_1.default + : DB_HANDLER_1.default; + const { invite, database_access, priviledge, email } = query; + const lastInviteTimeQuery = `SELECT date_created_code FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`; + const lastInviteTimeValues = [invite, email]; + const lastInviteTimeArray = yield finalDbHandler(lastInviteTimeQuery, lastInviteTimeValues); + if (!lastInviteTimeArray || !lastInviteTimeArray[0]) { + throw new Error("No Invitation Found"); } - else { - addDbEntry({ - dbFullName: "datasquirel", - tableName: "user_users", - data: { - user_id: invite, - invited_user_id: user.id, - database_access: database_access, - first_name: user.first_name, - last_name: user.last_name, - phone: user.phone, - email: user.email, - username: user.username, - user_type: "admin", - user_priviledge: priviledge, - image: user.image, - image_thumbnail: user.image_thumbnail, - }, - }); - //////////////////////////////////////////////// - //////////////////////////////////////////////// - //////////////////////////////////////////////// - const dbTableData = await finalDbHandler(`SELECT db_tables_data FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`, [invite, email]); - const clearEntries = await finalDbHandler(`DELETE FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=?`, [invite, user.id]); - //////////////////////////////////////////////// - //////////////////////////////////////////////// - //////////////////////////////////////////////// - if (dbTableData && dbTableData[0]) { - const dbTableEntries = dbTableData[0].db_tables_data.split("|"); - for (let i = 0; i < dbTableEntries.length; i++) { - const dbTableEntry = dbTableEntries[i]; - const dbTableEntryArray = dbTableEntry.split("-"); - const [db_slug, table_slug] = dbTableEntryArray; - const newEntry = await addDbEntry({ - dbFullName: "datasquirel", - tableName: "delegated_user_tables", - data: { - delegated_user_id: user.id, - root_user_id: invite, - database: db_slug, - table: table_slug, - priviledge: priviledge, - }, - }); + //////////////////////////////////////////////// + //////////////////////////////////////////////// + //////////////////////////////////////////////// + const invitingUserDbQuery = `SELECT first_name,last_name,email FROM users WHERE id=?`; + const invitingUserDbValues = [invite]; + const invitingUserDb = yield finalDbHandler(invitingUserDbQuery, invitingUserDbValues); + if (invitingUserDb === null || invitingUserDb === void 0 ? void 0 : invitingUserDb[0]) { + const existingUserUser = yield finalDbHandler(`SELECT email FROM user_users WHERE user_id=? AND invited_user_id=? AND user_type='admin' AND email=?`, [invite, user.id, email]); + if (existingUserUser === null || existingUserUser === void 0 ? void 0 : existingUserUser[0]) { + console.log("User already added"); + } + else { + (0, addDbEntry_1.default)({ + dbFullName: "datasquirel", + tableName: "user_users", + data: { + user_id: invite, + invited_user_id: user.id, + database_access: database_access, + first_name: user.first_name, + last_name: user.last_name, + phone: user.phone, + email: user.email, + username: user.username, + user_type: "admin", + user_priviledge: priviledge, + image: user.image, + image_thumbnail: user.image_thumbnail, + }, + }); + //////////////////////////////////////////////// + //////////////////////////////////////////////// + //////////////////////////////////////////////// + const dbTableData = yield finalDbHandler(`SELECT db_tables_data FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`, [invite, email]); + const clearEntries = yield finalDbHandler(`DELETE FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=?`, [invite, user.id]); + //////////////////////////////////////////////// + //////////////////////////////////////////////// + //////////////////////////////////////////////// + if (dbTableData && dbTableData[0]) { + const dbTableEntries = dbTableData[0].db_tables_data.split("|"); + for (let i = 0; i < dbTableEntries.length; i++) { + const dbTableEntry = dbTableEntries[i]; + const dbTableEntryArray = dbTableEntry.split("-"); + const [db_slug, table_slug] = dbTableEntryArray; + const newEntry = yield (0, addDbEntry_1.default)({ + dbFullName: "datasquirel", + tableName: "delegated_user_tables", + data: { + delegated_user_id: user.id, + root_user_id: invite, + database: db_slug, + table: table_slug, + priviledge: priviledge, + }, + }); + } } } + const inviteAccepted = yield finalDbHandler(`UPDATE invitations SET invitation_status='Accepted' WHERE inviting_user_id=? AND invited_user_email=?`, [invite, email]); } - const inviteAccepted = await finalDbHandler(`UPDATE invitations SET invitation_status='Accepted' WHERE inviting_user_id=? AND invited_user_email=?`, [invite, email]); } - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Add Admin User On Login Error`, error); - serverError({ - component: "addAdminUserOnLogin", - message: error.message, - user: user, - }); - } + catch (error) { + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Add Admin User On Login Error`, error); + (0, serverError_1.default)({ + component: "addAdminUserOnLogin", + message: error.message, + user: user, + }); + } + }); } diff --git a/dist/package-shared/functions/backend/addMariadbUser.js b/dist/package-shared/functions/backend/addMariadbUser.js index f4dc50b..55e8605 100644 --- a/dist/package-shared/functions/backend/addMariadbUser.js +++ b/dist/package-shared/functions/backend/addMariadbUser.js @@ -1,54 +1,71 @@ -import generator from "generate-password"; -import DB_HANDLER from "../../utils/backend/global-db/DB_HANDLER"; -import NO_DB_HANDLER from "../../utils/backend/global-db/NO_DB_HANDLER"; -import addDbEntry from "./db/addDbEntry"; -import encrypt from "../dsql/encrypt"; -import LOCAL_DB_HANDLER from "../../utils/backend/global-db/LOCAL_DB_HANDLER"; -import grabSQLKeyName from "../../utils/grab-sql-key-name"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = addMariadbUser; +const generate_password_1 = __importDefault(require("generate-password")); +const DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/DB_HANDLER")); +const NO_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/NO_DB_HANDLER")); +const addDbEntry_1 = __importDefault(require("./db/addDbEntry")); +const encrypt_1 = __importDefault(require("../dsql/encrypt")); +const LOCAL_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/LOCAL_DB_HANDLER")); +const grab_sql_key_name_1 = __importDefault(require("../../utils/grab-sql-key-name")); /** * # Add Mariadb User */ -export default async function addMariadbUser({ userId }) { - try { - const defaultMariadbUserHost = process.env.DSQL_DB_HOST || "127.0.0.1"; - const username = grabSQLKeyName({ type: "user", userId }); - const password = generator.generate({ - length: 16, - numbers: true, - symbols: true, - uppercase: true, - exclude: "*#.'`\"", - }); - const encryptedPassword = encrypt({ data: password }); - const createMariadbUsersQuery = `CREATE USER IF NOT EXISTS '${username}'@'127.0.0.1' IDENTIFIED BY '${password}'`; - if (global.DSQL_USE_LOCAL) { - await LOCAL_DB_HANDLER(createMariadbUsersQuery); +function addMariadbUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ userId }) { + try { + const defaultMariadbUserHost = process.env.DSQL_DB_HOST || "127.0.0.1"; + const username = (0, grab_sql_key_name_1.default)({ type: "user", userId }); + const password = generate_password_1.default.generate({ + length: 16, + numbers: true, + symbols: true, + uppercase: true, + exclude: "*#.'`\"", + }); + const encryptedPassword = (0, encrypt_1.default)({ data: password }); + const createMariadbUsersQuery = `CREATE USER IF NOT EXISTS '${username}'@'127.0.0.1' IDENTIFIED BY '${password}'`; + if (global.DSQL_USE_LOCAL) { + yield (0, LOCAL_DB_HANDLER_1.default)(createMariadbUsersQuery); + } + else { + yield (0, NO_DB_HANDLER_1.default)(createMariadbUsersQuery); + } + const updateUserQuery = `UPDATE users SET mariadb_user = ?, mariadb_host = '127.0.0.1', mariadb_pass = ? WHERE id = ?`; + const updateUserValues = [username, encryptedPassword, userId]; + const updateUser = global.DSQL_USE_LOCAL + ? yield (0, LOCAL_DB_HANDLER_1.default)(updateUserQuery, updateUserValues) + : yield (0, DB_HANDLER_1.default)(updateUserQuery, updateUserValues); + const addMariadbUser = yield (0, addDbEntry_1.default)({ + tableName: "mariadb_users", + data: { + user_id: userId, + username, + host: defaultMariadbUserHost, + password: encryptedPassword, + primary: "1", + grants: '[{"database":"*","table":"*","privileges":["ALL"]}]', + }, + dbContext: "Master", + }); + console.log(`User ${userId} SQL credentials successfully added.`); } - else { - await NO_DB_HANDLER(createMariadbUsersQuery); + catch ( /** @type {any} */error) { + console.log(`Error in adding SQL user in 'addMariadbUser' function =>`, error.message); } - const updateUserQuery = `UPDATE users SET mariadb_user = ?, mariadb_host = '127.0.0.1', mariadb_pass = ? WHERE id = ?`; - const updateUserValues = [username, encryptedPassword, userId]; - const updateUser = global.DSQL_USE_LOCAL - ? await LOCAL_DB_HANDLER(updateUserQuery, updateUserValues) - : await DB_HANDLER(updateUserQuery, updateUserValues); - const addMariadbUser = await addDbEntry({ - tableName: "mariadb_users", - data: { - user_id: userId, - username, - host: defaultMariadbUserHost, - password: encryptedPassword, - primary: "1", - grants: '[{"database":"*","table":"*","privileges":["ALL"]}]', - }, - dbContext: "Master", - }); - console.log(`User ${userId} SQL credentials successfully added.`); - } - catch ( /** @type {any} */error) { - console.log(`Error in adding SQL user in 'addMariadbUser' function =>`, error.message); - } + }); } //////////////////////////////////////////////// //////////////////////////////////////////////// diff --git a/dist/package-shared/functions/backend/addUsersTableToDb.js b/dist/package-shared/functions/backend/addUsersTableToDb.js index 99ca312..3a4aa8b 100644 --- a/dist/package-shared/functions/backend/addUsersTableToDb.js +++ b/dist/package-shared/functions/backend/addUsersTableToDb.js @@ -1,63 +1,80 @@ -import serverError from "./serverError"; -import DB_HANDLER from "../../utils/backend/global-db/DB_HANDLER"; -import addDbEntry from "./db/addDbEntry"; -import createDbFromSchema from "../../shell/createDbFromSchema"; -import LOCAL_DB_HANDLER from "../../utils/backend/global-db/LOCAL_DB_HANDLER"; -import grabNewUsersTableSchema from "./grabNewUsersTableSchema"; -import { grabPrimaryRequiredDbSchema, writeUpdatedDbSchema, } from "../../shell/createDbFromSchema/grab-required-database-schemas"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = addUsersTableToDb; +const serverError_1 = __importDefault(require("./serverError")); +const DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/DB_HANDLER")); +const addDbEntry_1 = __importDefault(require("./db/addDbEntry")); +const createDbFromSchema_1 = __importDefault(require("../../shell/createDbFromSchema")); +const LOCAL_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/LOCAL_DB_HANDLER")); +const grabNewUsersTableSchema_1 = __importDefault(require("./grabNewUsersTableSchema")); +const grab_required_database_schemas_1 = require("../../shell/createDbFromSchema/grab-required-database-schemas"); /** * # Add User Table to Database */ -export default async function addUsersTableToDb({ userId, database, payload, dbId, }) { - try { - const dbFullName = database; - const userPreset = grabNewUsersTableSchema({ payload }); - if (!userPreset) - throw new Error("Couldn't Get User Preset!"); - let targetDatabase = grabPrimaryRequiredDbSchema({ - dbId, - userId, - }); - if (!targetDatabase) { - throw new Error("Couldn't Find Target Database!"); - } - let existingTableIndex = targetDatabase === null || targetDatabase === void 0 ? void 0 : targetDatabase.tables.findIndex((table) => table.tableName === "users"); - if (typeof existingTableIndex == "number" && existingTableIndex > 0) { - targetDatabase.tables[existingTableIndex] = userPreset; - } - else { - targetDatabase.tables.push(userPreset); - } - writeUpdatedDbSchema({ dbSchema: targetDatabase, userId }); - const targetDb = global.DSQL_USE_LOCAL - ? await LOCAL_DB_HANDLER(`SELECT id FROM user_databases WHERE user_id=? AND db_slug=?`, [userId, database]) - : await DB_HANDLER(`SELECT id FROM user_databases WHERE user_id=? AND db_slug=?`, [userId, database]); - if (targetDb === null || targetDb === void 0 ? void 0 : targetDb[0]) { - const newTableEntry = await addDbEntry({ - dbFullName: "datasquirel", - tableName: "user_database_tables", - data: { - user_id: userId, - db_id: targetDb[0].id, - db_slug: targetDatabase.dbSlug, - table_name: "Users", - table_slug: "users", - }, +function addUsersTableToDb(_a) { + return __awaiter(this, arguments, void 0, function* ({ userId, database, payload, dbId, }) { + try { + const dbFullName = database; + const userPreset = (0, grabNewUsersTableSchema_1.default)({ payload }); + if (!userPreset) + throw new Error("Couldn't Get User Preset!"); + let targetDatabase = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({ + dbId, + userId, }); + if (!targetDatabase) { + throw new Error("Couldn't Find Target Database!"); + } + let existingTableIndex = targetDatabase === null || targetDatabase === void 0 ? void 0 : targetDatabase.tables.findIndex((table) => table.tableName === "users"); + if (typeof existingTableIndex == "number" && existingTableIndex > 0) { + targetDatabase.tables[existingTableIndex] = userPreset; + } + else { + targetDatabase.tables.push(userPreset); + } + (0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ dbSchema: targetDatabase, userId }); + const targetDb = global.DSQL_USE_LOCAL + ? yield (0, LOCAL_DB_HANDLER_1.default)(`SELECT id FROM user_databases WHERE user_id=? AND db_slug=?`, [userId, database]) + : yield (0, DB_HANDLER_1.default)(`SELECT id FROM user_databases WHERE user_id=? AND db_slug=?`, [userId, database]); + if (targetDb === null || targetDb === void 0 ? void 0 : targetDb[0]) { + const newTableEntry = yield (0, addDbEntry_1.default)({ + dbFullName: "datasquirel", + tableName: "user_database_tables", + data: { + user_id: userId, + db_id: targetDb[0].id, + db_slug: targetDatabase.dbSlug, + table_name: "Users", + table_slug: "users", + }, + }); + } + const dbShellUpdate = yield (0, createDbFromSchema_1.default)({ + userId, + targetDatabase: dbFullName, + }); + return `Done!`; } - const dbShellUpdate = await createDbFromSchema({ - userId, - targetDatabase: dbFullName, - }); - return `Done!`; - } - catch ( /** @type {any} */error) { - console.log(`addUsersTableToDb.ts ERROR: ${error.message}`); - serverError({ - component: "addUsersTableToDb", - message: error.message, - user: { id: userId }, - }); - return error.message; - } + catch ( /** @type {any} */error) { + console.log(`addUsersTableToDb.ts ERROR: ${error.message}`); + (0, serverError_1.default)({ + component: "addUsersTableToDb", + message: error.message, + user: { id: userId }, + }); + return error.message; + } + }); } diff --git a/dist/package-shared/functions/backend/api-cred.js b/dist/package-shared/functions/backend/api-cred.js index d39a6e2..4057e94 100644 --- a/dist/package-shared/functions/backend/api-cred.js +++ b/dist/package-shared/functions/backend/api-cred.js @@ -1,4 +1,5 @@ -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); /** * # Grap API Credentials */ diff --git a/dist/package-shared/functions/backend/auth/write-auth-files.js b/dist/package-shared/functions/backend/auth/write-auth-files.js index f34026d..6a70118 100644 --- a/dist/package-shared/functions/backend/auth/write-auth-files.js +++ b/dist/package-shared/functions/backend/auth/write-auth-files.js @@ -1,26 +1,33 @@ -import fs from "fs"; -import path from "path"; -import EJSON from "../../../utils/ejson"; -import debugLog from "../../../utils/logging/debug-log"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.checkAuthFile = exports.deleteAuthFile = exports.getAuthFile = exports.cleanupUserAuthFiles = exports.writeAuthFile = exports.initAuthFiles = exports.grabAuthDirs = void 0; +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); +const ejson_1 = __importDefault(require("../../../utils/ejson")); +const debug_log_1 = __importDefault(require("../../../utils/logging/debug-log")); function debugFn(log, label) { - debugLog({ log, addTime: true, title: "write-auth-files", label }); + (0, debug_log_1.default)({ log, addTime: true, title: "write-auth-files", label }); } -export const grabAuthDirs = () => { +const grabAuthDirs = () => { const DSQL_AUTH_DIR = process.env.DSQL_AUTH_DIR; const ROOT_DIR = (DSQL_AUTH_DIR === null || DSQL_AUTH_DIR === void 0 ? void 0 : DSQL_AUTH_DIR.match(/./)) ? DSQL_AUTH_DIR - : path.resolve(process.cwd(), "./.tmp"); - const AUTH_DIR = path.join(ROOT_DIR, "logins"); + : path_1.default.resolve(process.cwd(), "./.tmp"); + const AUTH_DIR = path_1.default.join(ROOT_DIR, "logins"); return { root: ROOT_DIR, auth: AUTH_DIR }; }; -export const initAuthFiles = () => { +exports.grabAuthDirs = grabAuthDirs; +const initAuthFiles = () => { var _a; try { - const authDirs = grabAuthDirs(); - if (!fs.existsSync(authDirs.root)) - fs.mkdirSync(authDirs.root, { recursive: true }); - if (!fs.existsSync(authDirs.auth)) - fs.mkdirSync(authDirs.auth, { recursive: true }); + const authDirs = (0, exports.grabAuthDirs)(); + if (!fs_1.default.existsSync(authDirs.root)) + fs_1.default.mkdirSync(authDirs.root, { recursive: true }); + if (!fs_1.default.existsSync(authDirs.auth)) + fs_1.default.mkdirSync(authDirs.auth, { recursive: true }); return true; } catch (error) { @@ -29,17 +36,18 @@ export const initAuthFiles = () => { return false; } }; +exports.initAuthFiles = initAuthFiles; /** * # Write Auth Files */ -export const writeAuthFile = (name, data, cleanup) => { - initAuthFiles(); +const writeAuthFile = (name, data, cleanup) => { + (0, exports.initAuthFiles)(); try { - const { auth } = grabAuthDirs(); + const { auth } = (0, exports.grabAuthDirs)(); if (cleanup) { - cleanupUserAuthFiles(cleanup.userId); + (0, exports.cleanupUserAuthFiles)(cleanup.userId); } - fs.writeFileSync(path.join(auth, name), data); + fs_1.default.writeFileSync(path_1.default.join(auth, name), data); return true; } catch (error) { @@ -47,21 +55,22 @@ export const writeAuthFile = (name, data, cleanup) => { return false; } }; +exports.writeAuthFile = writeAuthFile; /** * # Clean up User Auth Files */ -export const cleanupUserAuthFiles = (userId) => { - initAuthFiles(); +const cleanupUserAuthFiles = (userId) => { + (0, exports.initAuthFiles)(); try { - const { auth } = grabAuthDirs(); - const loginFiles = fs.readdirSync(auth); + const { auth } = (0, exports.grabAuthDirs)(); + const loginFiles = fs_1.default.readdirSync(auth); for (let i = 0; i < loginFiles.length; i++) { const loginFile = loginFiles[i]; - const loginFilePath = path.join(auth, loginFile); + const loginFilePath = path_1.default.join(auth, loginFile); try { - const authPayload = EJSON.parse(fs.readFileSync(loginFilePath, "utf-8")); + const authPayload = ejson_1.default.parse(fs_1.default.readFileSync(loginFilePath, "utf-8")); if (authPayload.id == userId) { - fs.unlinkSync(loginFilePath); + fs_1.default.unlinkSync(loginFilePath); } } catch (error) { } @@ -73,39 +82,42 @@ export const cleanupUserAuthFiles = (userId) => { return false; } }; +exports.cleanupUserAuthFiles = cleanupUserAuthFiles; /** * # Get Auth Files */ -export const getAuthFile = (name) => { +const getAuthFile = (name) => { try { - const authFilePath = path.join(grabAuthDirs().auth, name); - return fs.readFileSync(authFilePath, "utf-8"); + const authFilePath = path_1.default.join((0, exports.grabAuthDirs)().auth, name); + return fs_1.default.readFileSync(authFilePath, "utf-8"); } catch (error) { console.log(`Error getting Auth File: ${error.message}`); return null; } }; +exports.getAuthFile = getAuthFile; /** * # Delete Auth Files * @param {string} name */ -export const deleteAuthFile = (name) => { +const deleteAuthFile = (name) => { try { - return fs.rmSync(path.join(grabAuthDirs().auth, name)); + return fs_1.default.rmSync(path_1.default.join((0, exports.grabAuthDirs)().auth, name)); } catch (error) { console.log(`Error deleting Auth File: ${error.message}`); return null; } }; +exports.deleteAuthFile = deleteAuthFile; /** * # Delete Auth Files * @param {string} name */ -export const checkAuthFile = (name) => { +const checkAuthFile = (name) => { try { - return fs.existsSync(path.join(grabAuthDirs().auth, name)); + return fs_1.default.existsSync(path_1.default.join((0, exports.grabAuthDirs)().auth, name)); return true; } catch (error) { @@ -113,3 +125,4 @@ export const checkAuthFile = (name) => { return false; } }; +exports.checkAuthFile = checkAuthFile; diff --git a/dist/package-shared/functions/backend/cookies/get-auth-cookie-names.js b/dist/package-shared/functions/backend/cookies/get-auth-cookie-names.js index f2a9ee3..fd0d4f1 100644 --- a/dist/package-shared/functions/backend/cookies/get-auth-cookie-names.js +++ b/dist/package-shared/functions/backend/cookies/get-auth-cookie-names.js @@ -1,16 +1,22 @@ -import getCsrfHeaderName from "../../../actions/get-csrf-header-name"; -import { AppNames } from "../../../dict/app-names"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getAuthCookieNames; +const get_csrf_header_name_1 = __importDefault(require("../../../actions/get-csrf-header-name")); +const app_names_1 = require("../../../dict/app-names"); /** * # Grab Auth Cookie Names */ -export default function getAuthCookieNames(params) { +function getAuthCookieNames(params) { var _a, _b; const cookiesPrefix = process.env.DSQL_COOKIES_PREFIX || "dsql_"; const cookiesKeyName = process.env.DSQL_COOKIES_KEY_NAME || "key"; - const cookiesCSRFName = getCsrfHeaderName(); + const cookiesCSRFName = (0, get_csrf_header_name_1.default)(); const cookieOneTimeCodeName = process.env.DSQL_COOKIES_ONE_TIME_CODE_NAME || "one-time-code"; - const targetDatabase = ((_a = params === null || params === void 0 ? void 0 : params.database) === null || _a === void 0 ? void 0 : _a.replace(new RegExp(`^${AppNames["DsqlDbPrefix"]}\\d+_`), "")) || - ((_b = process.env.DSQL_DB_NAME) === null || _b === void 0 ? void 0 : _b.replace(new RegExp(`^${AppNames["DsqlDbPrefix"]}\\d+_`), "")); + const targetDatabase = ((_a = params === null || params === void 0 ? void 0 : params.database) === null || _a === void 0 ? void 0 : _a.replace(new RegExp(`^${app_names_1.AppNames["DsqlDbPrefix"]}\\d+_`), "")) || + ((_b = process.env.DSQL_DB_NAME) === null || _b === void 0 ? void 0 : _b.replace(new RegExp(`^${app_names_1.AppNames["DsqlDbPrefix"]}\\d+_`), "")); let keyCookieName = cookiesPrefix; if (params === null || params === void 0 ? void 0 : params.userId) keyCookieName += `user_${params.userId}_`; diff --git a/dist/package-shared/functions/backend/createDbSchemaFromDb.js b/dist/package-shared/functions/backend/createDbSchemaFromDb.js index 755b9d5..8652dc3 100644 --- a/dist/package-shared/functions/backend/createDbSchemaFromDb.js +++ b/dist/package-shared/functions/backend/createDbSchemaFromDb.js @@ -1,120 +1,137 @@ -import varDatabaseDbHandler from "../../functions/backend/varDatabaseDbHandler"; -import addDbEntry from "../../functions/backend/db/addDbEntry"; -import slugToCamelTitle from "../../shell/utils/slugToCamelTitle"; -import grabDSQLSchemaIndexComment from "../../shell/utils/grab-dsql-schema-index-comment"; -import { grabPrimaryRequiredDbSchema, writeUpdatedDbSchema, } from "../../shell/createDbFromSchema/grab-required-database-schemas"; -import _n from "../../utils/numberfy"; -import dataTypeParser from "../../utils/db/schema/data-type-parser"; -import dataTypeConstructor from "../../utils/db/schema/data-type-constructor"; -export default async function createDbSchemaFromDb({ userId, database, dbId, }) { - var _a, _b, _c, _d, _e, _f; - try { - if (!userId) { - console.log("No user Id provided"); - return; - } - const targetDb = grabPrimaryRequiredDbSchema({ - userId, - dbId: database.db_schema_id || dbId, - }); - if (!targetDb) - throw new Error(`Target Db not found!`); - const existingTables = await varDatabaseDbHandler({ - database: database.db_full_name, - queryString: `SHOW TABLES FROM ${database.db_full_name}`, - }); - if (!existingTables) - throw new Error("No Existing Tables"); - for (let i = 0; i < existingTables.length; i++) { - const table = existingTables[i]; - const tableName = Object.values(table)[0]; - const tableInsert = await addDbEntry({ - dbFullName: "datasquirel", - tableName: "user_database_tables", - data: { - user_id: _n(userId), - db_id: database.id, - db_slug: database.db_slug, - table_name: slugToCamelTitle(tableName) || undefined, - table_slug: tableName, - }, - }); - const tableObject = { - tableName: tableName, - fields: [], - indexes: [], - }; - const tableColumns = await varDatabaseDbHandler({ - database: database.db_full_name, - queryString: `SHOW COLUMNS FROM ${database.db_full_name}.${tableName}`, - }); - if (tableColumns) { - for (let k = 0; k < tableColumns.length; k++) { - const tableColumn = tableColumns[k]; - const { Field, Type, Null, Key, Default, Extra } = tableColumn; - const parsedDataType = dataTypeParser(Type.toUpperCase()); - const fieldObject = { - fieldName: Field, - dataType: dataTypeConstructor(parsedDataType.type, parsedDataType.limit, parsedDataType.decimal), - }; - if (Null === null || Null === void 0 ? void 0 : Null.match(/^no$/i)) - fieldObject.notNullValue = true; - if (Key === null || Key === void 0 ? void 0 : Key.match(/^pri$/i)) - fieldObject.primaryKey = true; - if ((_a = Default === null || Default === void 0 ? void 0 : Default.toString()) === null || _a === void 0 ? void 0 : _a.match(/./)) - fieldObject.defaultValue = Default; - if ((_b = Default === null || Default === void 0 ? void 0 : Default.toString()) === null || _b === void 0 ? void 0 : _b.match(/timestamp/i)) { - delete fieldObject.defaultValue; - fieldObject.defaultValueLiteral = Default; - } - if ((_c = Extra === null || Extra === void 0 ? void 0 : Extra.toString()) === null || _c === void 0 ? void 0 : _c.match(/auto_increment/i)) - fieldObject.autoIncrement = true; - tableObject.fields.push(fieldObject); - } +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = createDbSchemaFromDb; +const varDatabaseDbHandler_1 = __importDefault(require("../../functions/backend/varDatabaseDbHandler")); +const addDbEntry_1 = __importDefault(require("../../functions/backend/db/addDbEntry")); +const slugToCamelTitle_1 = __importDefault(require("../../shell/utils/slugToCamelTitle")); +const grab_dsql_schema_index_comment_1 = __importDefault(require("../../shell/utils/grab-dsql-schema-index-comment")); +const grab_required_database_schemas_1 = require("../../shell/createDbFromSchema/grab-required-database-schemas"); +const numberfy_1 = __importDefault(require("../../utils/numberfy")); +const data_type_parser_1 = __importDefault(require("../../utils/db/schema/data-type-parser")); +const data_type_constructor_1 = __importDefault(require("../../utils/db/schema/data-type-constructor")); +function createDbSchemaFromDb(_a) { + return __awaiter(this, arguments, void 0, function* ({ userId, database, dbId, }) { + var _b, _c, _d, _e, _f, _g; + try { + if (!userId) { + console.log("No user Id provided"); + return; } - const tableIndexes = await varDatabaseDbHandler({ - database: database.db_full_name, - queryString: `SHOW INDEXES FROM ${database.db_full_name}.${tableName}`, + const targetDb = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({ + userId, + dbId: database.db_schema_id || dbId, }); - if (tableIndexes) { - for (let m = 0; m < tableIndexes.length; m++) { - const indexObject = tableIndexes[m]; - const { Table, Key_name, Column_name, Null, Index_type, Index_comment, } = indexObject; - if (!(Index_comment === null || Index_comment === void 0 ? void 0 : Index_comment.match(new RegExp(grabDSQLSchemaIndexComment())))) - continue; - const indexNewObject = { - indexType: (Index_type === null || Index_type === void 0 ? void 0 : Index_type.match(/fulltext/i)) - ? "full_text" - : "regular", - indexName: Key_name, - indexTableFields: [], - }; - const targetTableFieldObject = tableColumns === null || tableColumns === void 0 ? void 0 : tableColumns.filter((col) => col.Field === Column_name)[0]; - const existingIndexField = (_d = tableObject.indexes) === null || _d === void 0 ? void 0 : _d.filter((indx) => indx.indexName == Key_name); - if (existingIndexField && existingIndexField[0]) { - (_e = existingIndexField[0].indexTableFields) === null || _e === void 0 ? void 0 : _e.push({ - value: Column_name, - dataType: targetTableFieldObject.Type.toUpperCase(), - }); + if (!targetDb) + throw new Error(`Target Db not found!`); + const existingTables = yield (0, varDatabaseDbHandler_1.default)({ + database: database.db_full_name, + queryString: `SHOW TABLES FROM ${database.db_full_name}`, + }); + if (!existingTables) + throw new Error("No Existing Tables"); + for (let i = 0; i < existingTables.length; i++) { + const table = existingTables[i]; + const tableName = Object.values(table)[0]; + const tableInsert = yield (0, addDbEntry_1.default)({ + dbFullName: "datasquirel", + tableName: "user_database_tables", + data: { + user_id: (0, numberfy_1.default)(userId), + db_id: database.id, + db_slug: database.db_slug, + table_name: (0, slugToCamelTitle_1.default)(tableName) || undefined, + table_slug: tableName, + }, + }); + const tableObject = { + tableName: tableName, + fields: [], + indexes: [], + }; + const tableColumns = yield (0, varDatabaseDbHandler_1.default)({ + database: database.db_full_name, + queryString: `SHOW COLUMNS FROM ${database.db_full_name}.${tableName}`, + }); + if (tableColumns) { + for (let k = 0; k < tableColumns.length; k++) { + const tableColumn = tableColumns[k]; + const { Field, Type, Null, Key, Default, Extra } = tableColumn; + const parsedDataType = (0, data_type_parser_1.default)(Type.toUpperCase()); + const fieldObject = { + fieldName: Field, + dataType: (0, data_type_constructor_1.default)(parsedDataType.type, parsedDataType.limit, parsedDataType.decimal), + }; + if (Null === null || Null === void 0 ? void 0 : Null.match(/^no$/i)) + fieldObject.notNullValue = true; + if (Key === null || Key === void 0 ? void 0 : Key.match(/^pri$/i)) + fieldObject.primaryKey = true; + if ((_b = Default === null || Default === void 0 ? void 0 : Default.toString()) === null || _b === void 0 ? void 0 : _b.match(/./)) + fieldObject.defaultValue = Default; + if ((_c = Default === null || Default === void 0 ? void 0 : Default.toString()) === null || _c === void 0 ? void 0 : _c.match(/timestamp/i)) { + delete fieldObject.defaultValue; + fieldObject.defaultValueLiteral = Default; + } + if ((_d = Extra === null || Extra === void 0 ? void 0 : Extra.toString()) === null || _d === void 0 ? void 0 : _d.match(/auto_increment/i)) + fieldObject.autoIncrement = true; + tableObject.fields.push(fieldObject); } - else { - indexNewObject.indexTableFields = [ - { + } + const tableIndexes = yield (0, varDatabaseDbHandler_1.default)({ + database: database.db_full_name, + queryString: `SHOW INDEXES FROM ${database.db_full_name}.${tableName}`, + }); + if (tableIndexes) { + for (let m = 0; m < tableIndexes.length; m++) { + const indexObject = tableIndexes[m]; + const { Table, Key_name, Column_name, Null, Index_type, Index_comment, } = indexObject; + if (!(Index_comment === null || Index_comment === void 0 ? void 0 : Index_comment.match(new RegExp((0, grab_dsql_schema_index_comment_1.default)())))) + continue; + const indexNewObject = { + indexType: (Index_type === null || Index_type === void 0 ? void 0 : Index_type.match(/fulltext/i)) + ? "full_text" + : "regular", + indexName: Key_name, + indexTableFields: [], + }; + const targetTableFieldObject = tableColumns === null || tableColumns === void 0 ? void 0 : tableColumns.filter((col) => col.Field === Column_name)[0]; + const existingIndexField = (_e = tableObject.indexes) === null || _e === void 0 ? void 0 : _e.filter((indx) => indx.indexName == Key_name); + if (existingIndexField && existingIndexField[0]) { + (_f = existingIndexField[0].indexTableFields) === null || _f === void 0 ? void 0 : _f.push({ value: Column_name, dataType: targetTableFieldObject.Type.toUpperCase(), - }, - ]; - (_f = tableObject.indexes) === null || _f === void 0 ? void 0 : _f.push(indexNewObject); + }); + } + else { + indexNewObject.indexTableFields = [ + { + value: Column_name, + dataType: targetTableFieldObject.Type.toUpperCase(), + }, + ]; + (_g = tableObject.indexes) === null || _g === void 0 ? void 0 : _g.push(indexNewObject); + } } } + targetDb.tables.push(tableObject); } - targetDb.tables.push(tableObject); + (0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ dbSchema: targetDb, userId }); + return true; } - writeUpdatedDbSchema({ dbSchema: targetDb, userId }); - return true; - } - catch (error) { - console.log(error); - return false; - } + catch (error) { + console.log(error); + return false; + } + }); } diff --git a/dist/package-shared/functions/backend/db/addDbEntry.js b/dist/package-shared/functions/backend/db/addDbEntry.js index 3571a47..d65d0f4 100644 --- a/dist/package-shared/functions/backend/db/addDbEntry.js +++ b/dist/package-shared/functions/backend/db/addDbEntry.js @@ -1,188 +1,205 @@ -import sanitizeHtml from "sanitize-html"; -import sanitizeHtmlOptions from "../html/sanitizeHtmlOptions"; -import updateDbEntry from "./updateDbEntry"; -import _ from "lodash"; -import encrypt from "../../dsql/encrypt"; -import connDbHandler from "../../../utils/db/conn-db-handler"; -import checkIfIsMaster from "../../../utils/check-if-is-master"; -import debugLog from "../../../utils/logging/debug-log"; -import purgeDefaultFields from "../../../utils/purge-default-fields"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = addDbEntry; +const sanitize_html_1 = __importDefault(require("sanitize-html")); +const sanitizeHtmlOptions_1 = __importDefault(require("../html/sanitizeHtmlOptions")); +const updateDbEntry_1 = __importDefault(require("./updateDbEntry")); +const lodash_1 = __importDefault(require("lodash")); +const encrypt_1 = __importDefault(require("../../dsql/encrypt")); +const conn_db_handler_1 = __importDefault(require("../../../utils/db/conn-db-handler")); +const check_if_is_master_1 = __importDefault(require("../../../utils/check-if-is-master")); +const debug_log_1 = __importDefault(require("../../../utils/logging/debug-log")); +const purge_default_fields_1 = __importDefault(require("../../../utils/purge-default-fields")); /** * Add a db Entry Function */ -export default async function addDbEntry({ dbContext, paradigm, dbFullName, tableName, data, batchData, tableSchema, duplicateColumnName, duplicateColumnValue, update, encryptionKey, encryptionSalt, forceLocal, debug, }) { - const isMaster = forceLocal - ? true - : checkIfIsMaster({ dbContext, dbFullName }); - if (debug) { - debugLog({ - log: isMaster, - addTime: true, - label: "isMaster", - }); - } - const DB_CONN = isMaster - ? global.DSQL_DB_CONN - : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; - const DB_RO_CONN = isMaster - ? global.DSQL_DB_CONN - : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; - let newData = _.cloneDeep(data); - if (newData) { - newData = purgeDefaultFields(newData); - } - let newBatchData = _.cloneDeep(batchData); - if (newBatchData) { - newBatchData = purgeDefaultFields(newBatchData); - } - if (duplicateColumnName && - typeof duplicateColumnName === "string" && - newData) { - const checkDuplicateQuery = `SELECT * FROM ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`; - const duplicateValue = await connDbHandler(DB_RO_CONN, checkDuplicateQuery, [duplicateColumnValue]); - if ((duplicateValue === null || duplicateValue === void 0 ? void 0 : duplicateValue[0]) && !update) { +function addDbEntry(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbContext, paradigm, dbFullName, tableName, data, batchData, tableSchema, duplicateColumnName, duplicateColumnValue, update, encryptionKey, encryptionSalt, forceLocal, debug, }) { + const isMaster = forceLocal + ? true + : (0, check_if_is_master_1.default)({ dbContext, dbFullName }); + if (debug) { + (0, debug_log_1.default)({ + log: isMaster, + addTime: true, + label: "isMaster", + }); + } + const DB_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + const DB_RO_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; + let newData = lodash_1.default.cloneDeep(data); + if (newData) { + newData = (0, purge_default_fields_1.default)(newData); + } + let newBatchData = lodash_1.default.cloneDeep(batchData); + if (newBatchData) { + newBatchData = (0, purge_default_fields_1.default)(newBatchData); + } + if (duplicateColumnName && + typeof duplicateColumnName === "string" && + newData) { + const checkDuplicateQuery = `SELECT * FROM ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`; + const duplicateValue = yield (0, conn_db_handler_1.default)(DB_RO_CONN, checkDuplicateQuery, [duplicateColumnValue]); + if ((duplicateValue === null || duplicateValue === void 0 ? void 0 : duplicateValue[0]) && !update) { + return { + success: false, + payload: undefined, + msg: "Duplicate entry found", + }; + } + else if ((duplicateValue === null || duplicateValue === void 0 ? void 0 : duplicateValue[0]) && update) { + return yield (0, updateDbEntry_1.default)({ + dbContext, + dbFullName, + tableName, + data: newData, + tableSchema, + encryptionKey, + encryptionSalt, + identifierColumnName: duplicateColumnName, + identifierValue: duplicateColumnValue || "", + }); + } + } + function generateQuery(data) { + var _a, _b, _c; + const dataKeys = Object.keys(data); + let insertKeysArray = []; + let insertValuesArray = []; + for (let i = 0; i < dataKeys.length; i++) { + try { + const dataKey = dataKeys[i]; + let value = data[dataKey]; + const targetFieldSchemaArray = tableSchema + ? (_a = tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.fields) === null || _a === void 0 ? void 0 : _a.filter((field) => field.fieldName == dataKey) + : null; + const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] + ? targetFieldSchemaArray[0] + : null; + if (value == null || value == undefined) + continue; + if (((_b = targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.dataType) === null || _b === void 0 ? void 0 : _b.match(/int$/i)) && + typeof value == "string" && + !(value === null || value === void 0 ? void 0 : value.match(/./))) + continue; + if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.encrypted) { + value = (0, encrypt_1.default)({ + data: value, + encryptionKey, + encryptionSalt, + }); + console.log("DSQL: Encrypted value =>", value); + } + const htmlRegex = /<[^>]+>/g; + if ((targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.richText) || + String(value).match(htmlRegex)) { + value = (0, sanitize_html_1.default)(value, sanitizeHtmlOptions_1.default); + } + if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.pattern) { + const pattern = new RegExp(targetFieldSchema.pattern, targetFieldSchema.patternFlags || ""); + if (!pattern.test(value)) { + console.log("DSQL: Pattern not matched =>", value); + value = ""; + } + } + insertKeysArray.push("`" + dataKey + "`"); + if (typeof value === "object") { + value = JSON.stringify(value); + } + if (typeof value == "number") { + insertValuesArray.push(String(value)); + } + else { + insertValuesArray.push(value); + } + } + catch (error) { + console.log("DSQL: Error in parsing data keys =>", error.message); + (_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `Error parsing Data Keys`, error); + continue; + } + } + insertKeysArray.push("`date_created`"); + insertValuesArray.push(Date()); + insertKeysArray.push("`date_created_code`"); + insertValuesArray.push(Date.now()); + insertKeysArray.push("`date_updated`"); + insertValuesArray.push(Date()); + insertKeysArray.push("`date_updated_code`"); + insertValuesArray.push(Date.now()); + const queryValuesArray = insertValuesArray; + return { queryValuesArray, insertValuesArray, insertKeysArray }; + } + if (newData) { + const { insertKeysArray, insertValuesArray, queryValuesArray } = generateQuery(newData); + const query = `INSERT INTO ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray.map(() => "?").join(",")})`; + const newInsert = yield (0, conn_db_handler_1.default)(DB_CONN, query, queryValuesArray, debug); + return { + success: Boolean(newInsert === null || newInsert === void 0 ? void 0 : newInsert.insertId), + payload: newInsert, + queryObject: { + sql: query, + params: queryValuesArray, + }, + }; + } + else if (newBatchData) { + let batchInsertKeysArray; + let batchInsertValuesArray = []; + let batchQueryValuesArray = []; + for (let i = 0; i < newBatchData.length; i++) { + const singleBatchData = newBatchData[i]; + const { insertKeysArray, insertValuesArray, queryValuesArray } = generateQuery(singleBatchData); + if (!batchInsertKeysArray) { + batchInsertKeysArray = insertKeysArray; + } + batchInsertValuesArray.push(insertValuesArray); + batchQueryValuesArray.push(queryValuesArray); + } + const query = `INSERT INTO ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` (${batchInsertKeysArray === null || batchInsertKeysArray === void 0 ? void 0 : batchInsertKeysArray.join(",")}) VALUES ${batchInsertValuesArray + .map((vl) => `(${vl.map(() => "?").join(",")})`) + .join(",")}`; + console.log("query", query); + console.log("batchQueryValuesArray", batchQueryValuesArray); + const newInsert = yield (0, conn_db_handler_1.default)(DB_CONN, query, batchQueryValuesArray.flat(), debug); + if (debug) { + (0, debug_log_1.default)({ + log: newInsert, + addTime: true, + label: "newInsert", + }); + } + return { + success: Boolean(newInsert === null || newInsert === void 0 ? void 0 : newInsert.insertId), + payload: newInsert, + queryObject: { + sql: query, + params: batchQueryValuesArray.flat(), + }, + }; + } + else { return { success: false, payload: undefined, - msg: "Duplicate entry found", + msg: "No data provided", }; } - else if ((duplicateValue === null || duplicateValue === void 0 ? void 0 : duplicateValue[0]) && update) { - return await updateDbEntry({ - dbContext, - dbFullName, - tableName, - data: newData, - tableSchema, - encryptionKey, - encryptionSalt, - identifierColumnName: duplicateColumnName, - identifierValue: duplicateColumnValue || "", - }); - } - } - function generateQuery(data) { - var _a, _b, _c; - const dataKeys = Object.keys(data); - let insertKeysArray = []; - let insertValuesArray = []; - for (let i = 0; i < dataKeys.length; i++) { - try { - const dataKey = dataKeys[i]; - let value = data[dataKey]; - const targetFieldSchemaArray = tableSchema - ? (_a = tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.fields) === null || _a === void 0 ? void 0 : _a.filter((field) => field.fieldName == dataKey) - : null; - const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] - ? targetFieldSchemaArray[0] - : null; - if (value == null || value == undefined) - continue; - if (((_b = targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.dataType) === null || _b === void 0 ? void 0 : _b.match(/int$/i)) && - typeof value == "string" && - !(value === null || value === void 0 ? void 0 : value.match(/./))) - continue; - if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.encrypted) { - value = encrypt({ - data: value, - encryptionKey, - encryptionSalt, - }); - console.log("DSQL: Encrypted value =>", value); - } - const htmlRegex = /<[^>]+>/g; - if ((targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.richText) || - String(value).match(htmlRegex)) { - value = sanitizeHtml(value, sanitizeHtmlOptions); - } - if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.pattern) { - const pattern = new RegExp(targetFieldSchema.pattern, targetFieldSchema.patternFlags || ""); - if (!pattern.test(value)) { - console.log("DSQL: Pattern not matched =>", value); - value = ""; - } - } - insertKeysArray.push("`" + dataKey + "`"); - if (typeof value === "object") { - value = JSON.stringify(value); - } - if (typeof value == "number") { - insertValuesArray.push(String(value)); - } - else { - insertValuesArray.push(value); - } - } - catch (error) { - console.log("DSQL: Error in parsing data keys =>", error.message); - (_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `Error parsing Data Keys`, error); - continue; - } - } - insertKeysArray.push("`date_created`"); - insertValuesArray.push(Date()); - insertKeysArray.push("`date_created_code`"); - insertValuesArray.push(Date.now()); - insertKeysArray.push("`date_updated`"); - insertValuesArray.push(Date()); - insertKeysArray.push("`date_updated_code`"); - insertValuesArray.push(Date.now()); - const queryValuesArray = insertValuesArray; - return { queryValuesArray, insertValuesArray, insertKeysArray }; - } - if (newData) { - const { insertKeysArray, insertValuesArray, queryValuesArray } = generateQuery(newData); - const query = `INSERT INTO ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray.map(() => "?").join(",")})`; - const newInsert = await connDbHandler(DB_CONN, query, queryValuesArray, debug); - return { - success: Boolean(newInsert === null || newInsert === void 0 ? void 0 : newInsert.insertId), - payload: newInsert, - queryObject: { - sql: query, - params: queryValuesArray, - }, - }; - } - else if (newBatchData) { - let batchInsertKeysArray; - let batchInsertValuesArray = []; - let batchQueryValuesArray = []; - for (let i = 0; i < newBatchData.length; i++) { - const singleBatchData = newBatchData[i]; - const { insertKeysArray, insertValuesArray, queryValuesArray } = generateQuery(singleBatchData); - if (!batchInsertKeysArray) { - batchInsertKeysArray = insertKeysArray; - } - batchInsertValuesArray.push(insertValuesArray); - batchQueryValuesArray.push(queryValuesArray); - } - const query = `INSERT INTO ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` (${batchInsertKeysArray === null || batchInsertKeysArray === void 0 ? void 0 : batchInsertKeysArray.join(",")}) VALUES ${batchInsertValuesArray - .map((vl) => `(${vl.map(() => "?").join(",")})`) - .join(",")}`; - console.log("query", query); - console.log("batchQueryValuesArray", batchQueryValuesArray); - const newInsert = await connDbHandler(DB_CONN, query, batchQueryValuesArray.flat(), debug); - if (debug) { - debugLog({ - log: newInsert, - addTime: true, - label: "newInsert", - }); - } - return { - success: Boolean(newInsert === null || newInsert === void 0 ? void 0 : newInsert.insertId), - payload: newInsert, - queryObject: { - sql: query, - params: batchQueryValuesArray.flat(), - }, - }; - } - else { - return { - success: false, - payload: undefined, - msg: "No data provided", - }; - } + }); } diff --git a/dist/package-shared/functions/backend/db/deleteDbEntry.js b/dist/package-shared/functions/backend/db/deleteDbEntry.js index fd6c43a..1e53bd0 100644 --- a/dist/package-shared/functions/backend/db/deleteDbEntry.js +++ b/dist/package-shared/functions/backend/db/deleteDbEntry.js @@ -1,34 +1,51 @@ -import checkIfIsMaster from "../../../utils/check-if-is-master"; -import connDbHandler from "../../../utils/db/conn-db-handler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = deleteDbEntry; +const check_if_is_master_1 = __importDefault(require("../../../utils/check-if-is-master")); +const conn_db_handler_1 = __importDefault(require("../../../utils/db/conn-db-handler")); /** * # Delete DB Entry Function * @description */ -export default async function deleteDbEntry({ dbContext, dbFullName, tableName, identifierColumnName, identifierValue, forceLocal, }) { - var _a; - try { - const isMaster = forceLocal - ? true - : checkIfIsMaster({ dbContext, dbFullName }); - const DB_CONN = isMaster - ? global.DSQL_DB_CONN - : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; - /** - * Execution - * - * @description - */ - const query = `DELETE FROM ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`; - const deletedEntry = await connDbHandler(DB_CONN, query, [ - identifierValue, - ]); - /** - * Return statement - */ - return deletedEntry; - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Deleting Entry`, error); - return null; - } +function deleteDbEntry(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbContext, dbFullName, tableName, identifierColumnName, identifierValue, forceLocal, }) { + var _b; + try { + const isMaster = forceLocal + ? true + : (0, check_if_is_master_1.default)({ dbContext, dbFullName }); + const DB_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + /** + * Execution + * + * @description + */ + const query = `DELETE FROM ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`; + const deletedEntry = yield (0, conn_db_handler_1.default)(DB_CONN, query, [ + identifierValue, + ]); + /** + * Return statement + */ + return deletedEntry; + } + catch (error) { + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Deleting Entry`, error); + return null; + } + }); } diff --git a/dist/package-shared/functions/backend/db/pathTraversalCheck.js b/dist/package-shared/functions/backend/db/pathTraversalCheck.js index aa3f8a6..66ca645 100644 --- a/dist/package-shared/functions/backend/db/pathTraversalCheck.js +++ b/dist/package-shared/functions/backend/db/pathTraversalCheck.js @@ -1,7 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = pathTraversalCheck; /** * # Path Traversal Check * @returns {string} */ -export default function pathTraversalCheck(text) { +function pathTraversalCheck(text) { return text.toString().replace(/\//g, ""); } diff --git a/dist/package-shared/functions/backend/db/runQuery.js b/dist/package-shared/functions/backend/db/runQuery.js index 76e52a3..fbf3af8 100644 --- a/dist/package-shared/functions/backend/db/runQuery.js +++ b/dist/package-shared/functions/backend/db/runQuery.js @@ -1,137 +1,155 @@ -import fullAccessDbHandler from "../fullAccessDbHandler"; -import varReadOnlyDatabaseDbHandler from "../varReadOnlyDatabaseDbHandler"; -import serverError from "../serverError"; -import addDbEntry from "./addDbEntry"; -import updateDbEntry from "./updateDbEntry"; -import deleteDbEntry from "./deleteDbEntry"; -import trimSql from "../../../utils/trim-sql"; -export const DbContextsArray = ["Master", "Dsql User"]; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DbContextsArray = void 0; +exports.default = runQuery; +const fullAccessDbHandler_1 = __importDefault(require("../fullAccessDbHandler")); +const varReadOnlyDatabaseDbHandler_1 = __importDefault(require("../varReadOnlyDatabaseDbHandler")); +const serverError_1 = __importDefault(require("../serverError")); +const addDbEntry_1 = __importDefault(require("./addDbEntry")); +const updateDbEntry_1 = __importDefault(require("./updateDbEntry")); +const deleteDbEntry_1 = __importDefault(require("./deleteDbEntry")); +const trim_sql_1 = __importDefault(require("../../../utils/trim-sql")); +exports.DbContextsArray = ["Master", "Dsql User"]; /** * # Run DSQL users queries */ -export default async function runQuery({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, dbContext, forceLocal, }) { - /** - * Declare variables - * - * @description Declare "results" variable - */ - let result; - let error; - let tableSchema; - if (dbSchema) { +function runQuery(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, dbContext, forceLocal, }) { + /** + * Declare variables + * + * @description Declare "results" variable + */ + let result; + let error; + let tableSchema; + if (dbSchema) { + try { + const table = tableName + ? tableName + : typeof query == "string" + ? null + : query + ? query === null || query === void 0 ? void 0 : query.table + : null; + if (!table) + throw new Error("No table name provided"); + tableSchema = dbSchema.tables.filter((tb) => (tb === null || tb === void 0 ? void 0 : tb.tableName) === table)[0]; + } + catch (_err) { + // console.log("ERROR getting tableSchema: ", _err.message); + } + } + /** + * Declare variables + * + * @description Declare "results" variable + */ try { - const table = tableName - ? tableName - : typeof query == "string" - ? null - : query - ? query === null || query === void 0 ? void 0 : query.table - : null; - if (!table) - throw new Error("No table name provided"); - tableSchema = dbSchema.tables.filter((tb) => (tb === null || tb === void 0 ? void 0 : tb.tableName) === table)[0]; + if (typeof query === "string") { + const formattedQuery = (0, trim_sql_1.default)(query); + if (debug && global.DSQL_USE_LOCAL) { + console.log("runQuery:formattedQuery", formattedQuery); + } + /** + * Input Validation + * + * @description Input Validation + */ + if (readOnly && formattedQuery.match(/^alter|^delete|^create/i)) { + throw new Error("Wrong Input!"); + } + if (readOnly) { + result = yield (0, varReadOnlyDatabaseDbHandler_1.default)({ + queryString: formattedQuery, + queryValuesArray: queryValuesArray === null || queryValuesArray === void 0 ? void 0 : queryValuesArray.map((vl) => String(vl)), + tableSchema, + forceLocal, + }); + } + else { + result = yield (0, fullAccessDbHandler_1.default)({ + queryString: formattedQuery, + queryValuesArray: queryValuesArray === null || queryValuesArray === void 0 ? void 0 : queryValuesArray.map((vl) => String(vl)), + tableSchema, + forceLocal, + }); + } + } + else if (typeof query === "object") { + /** + * Declare variables + * + * @description Declare "results" variable + */ + const { data, action, table, identifierColumnName, identifierValue, update, duplicateColumnName, duplicateColumnValue, } = query; + switch (action.toLowerCase()) { + case "insert": + result = yield (0, addDbEntry_1.default)({ + dbContext, + dbFullName, + tableName: table, + data: data, + update, + duplicateColumnName, + duplicateColumnValue, + tableSchema, + debug, + }); + if (!(result === null || result === void 0 ? void 0 : result.insertId)) { + error = "Couldn't insert data"; + } + break; + case "update": + result = yield (0, updateDbEntry_1.default)({ + dbContext, + dbFullName, + tableName: table, + data: data, + identifierColumnName, + identifierValue, + tableSchema, + }); + break; + case "delete": + result = yield (0, deleteDbEntry_1.default)({ + dbContext, + dbFullName, + tableName: table, + identifierColumnName, + identifierValue, + tableSchema, + }); + break; + default: + result = null; + break; + } + } } - catch (_err) { - // console.log("ERROR getting tableSchema: ", _err.message); - } - } - /** - * Declare variables - * - * @description Declare "results" variable - */ - try { - if (typeof query === "string") { - const formattedQuery = trimSql(query); + catch (err) { + (0, serverError_1.default)({ + component: "functions/backend/runQuery", + message: err.message, + }); if (debug && global.DSQL_USE_LOCAL) { - console.log("runQuery:formattedQuery", formattedQuery); - } - /** - * Input Validation - * - * @description Input Validation - */ - if (readOnly && formattedQuery.match(/^alter|^delete|^create/i)) { - throw new Error("Wrong Input!"); - } - if (readOnly) { - result = await varReadOnlyDatabaseDbHandler({ - queryString: formattedQuery, - queryValuesArray: queryValuesArray === null || queryValuesArray === void 0 ? void 0 : queryValuesArray.map((vl) => String(vl)), - tableSchema, - forceLocal, - }); - } - else { - result = await fullAccessDbHandler({ - queryString: formattedQuery, - queryValuesArray: queryValuesArray === null || queryValuesArray === void 0 ? void 0 : queryValuesArray.map((vl) => String(vl)), - tableSchema, - forceLocal, - }); + console.log("runQuery:error", err.message); } + result = null; + error = err.message; } - else if (typeof query === "object") { - /** - * Declare variables - * - * @description Declare "results" variable - */ - const { data, action, table, identifierColumnName, identifierValue, update, duplicateColumnName, duplicateColumnValue, } = query; - switch (action.toLowerCase()) { - case "insert": - result = await addDbEntry({ - dbContext, - dbFullName, - tableName: table, - data: data, - update, - duplicateColumnName, - duplicateColumnValue, - tableSchema, - debug, - }); - if (!(result === null || result === void 0 ? void 0 : result.insertId)) { - error = "Couldn't insert data"; - } - break; - case "update": - result = await updateDbEntry({ - dbContext, - dbFullName, - tableName: table, - data: data, - identifierColumnName, - identifierValue, - tableSchema, - }); - break; - case "delete": - result = await deleteDbEntry({ - dbContext, - dbFullName, - tableName: table, - identifierColumnName, - identifierValue, - tableSchema, - }); - break; - default: - result = null; - break; - } - } - } - catch (err) { - serverError({ - component: "functions/backend/runQuery", - message: err.message, - }); - if (debug && global.DSQL_USE_LOCAL) { - console.log("runQuery:error", err.message); - } - result = null; - error = err.message; - } - return { result, error }; + return { result, error }; + }); } diff --git a/dist/package-shared/functions/backend/db/sanitizeSql.js b/dist/package-shared/functions/backend/db/sanitizeSql.js index 0ff3527..d6ca0a6 100644 --- a/dist/package-shared/functions/backend/db/sanitizeSql.js +++ b/dist/package-shared/functions/backend/db/sanitizeSql.js @@ -1,4 +1,9 @@ -import _ from "lodash"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const lodash_1 = __importDefault(require("lodash")); /** * Sanitize SQL function * ============================================================================== @@ -84,7 +89,7 @@ function sanitizeObjects(object, spaces) { * @returns {string[]|number[]|object[]} */ function sanitizeArrays(array, spaces) { - let arrayUpdated = _.cloneDeep(array); + let arrayUpdated = lodash_1.default.cloneDeep(array); arrayUpdated.forEach((item, index) => { const value = item; if (!value) { @@ -103,4 +108,4 @@ function sanitizeArrays(array, spaces) { }); return arrayUpdated; } -export default sanitizeSql; +exports.default = sanitizeSql; diff --git a/dist/package-shared/functions/backend/db/updateDbEntry.js b/dist/package-shared/functions/backend/db/updateDbEntry.js index 5821a11..eb32972 100644 --- a/dist/package-shared/functions/backend/db/updateDbEntry.js +++ b/dist/package-shared/functions/backend/db/updateDbEntry.js @@ -1,127 +1,144 @@ -import sanitizeHtml from "sanitize-html"; -import sanitizeHtmlOptions from "../html/sanitizeHtmlOptions"; -import encrypt from "../../dsql/encrypt"; -import checkIfIsMaster from "../../../utils/check-if-is-master"; -import connDbHandler from "../../../utils/db/conn-db-handler"; -import _ from "lodash"; -import purgeDefaultFields from "../../../utils/purge-default-fields"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = updateDbEntry; +const sanitize_html_1 = __importDefault(require("sanitize-html")); +const sanitizeHtmlOptions_1 = __importDefault(require("../html/sanitizeHtmlOptions")); +const encrypt_1 = __importDefault(require("../../dsql/encrypt")); +const check_if_is_master_1 = __importDefault(require("../../../utils/check-if-is-master")); +const conn_db_handler_1 = __importDefault(require("../../../utils/db/conn-db-handler")); +const lodash_1 = __importDefault(require("lodash")); +const purge_default_fields_1 = __importDefault(require("../../../utils/purge-default-fields")); /** * # Update DB Function * @description */ -export default async function updateDbEntry({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, forceLocal, }) { - var _a; - /** - * Check if data is valid - */ - if (!data || !Object.keys(data).length) { - return { - success: false, - payload: undefined, - msg: "No data provided", - }; - } - const isMaster = forceLocal - ? true - : checkIfIsMaster({ dbContext, dbFullName }); - const DB_CONN = isMaster - ? global.DSQL_DB_CONN - : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - let newData = _.cloneDeep(data); - newData = purgeDefaultFields(newData); - /** - * Declare variables - * - * @description Declare "results" variable - */ - const dataKeys = Object.keys(newData); - let updateKeyValueArray = []; - let updateValues = []; - for (let i = 0; i < dataKeys.length; i++) { - try { - const dataKey = dataKeys[i]; - let value = newData[dataKey]; - const targetFieldSchemaArray = tableSchema - ? (_a = tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.fields) === null || _a === void 0 ? void 0 : _a.filter((field) => field.fieldName === dataKey) - : null; - const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] - ? targetFieldSchemaArray[0] - : null; - if (value == null || value == undefined) - continue; - const htmlRegex = /<[^>]+>/g; - if ((targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.richText) || String(value).match(htmlRegex)) { - value = sanitizeHtml(value, sanitizeHtmlOptions); - } - if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.encrypted) { - value = encrypt({ - data: value, - encryptionKey, - encryptionSalt, - }); - } - if (typeof value === "object") { - value = JSON.stringify(value); - } - if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.pattern) { - const pattern = new RegExp(targetFieldSchema.pattern, targetFieldSchema.patternFlags || ""); - if (!pattern.test(value)) { - console.log("DSQL: Pattern not matched =>", value); - value = ""; +function updateDbEntry(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, forceLocal, }) { + var _b; + /** + * Check if data is valid + */ + if (!data || !Object.keys(data).length) { + return { + success: false, + payload: undefined, + msg: "No data provided", + }; + } + const isMaster = forceLocal + ? true + : (0, check_if_is_master_1.default)({ dbContext, dbFullName }); + const DB_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + let newData = lodash_1.default.cloneDeep(data); + newData = (0, purge_default_fields_1.default)(newData); + /** + * Declare variables + * + * @description Declare "results" variable + */ + const dataKeys = Object.keys(newData); + let updateKeyValueArray = []; + let updateValues = []; + for (let i = 0; i < dataKeys.length; i++) { + try { + const dataKey = dataKeys[i]; + let value = newData[dataKey]; + const targetFieldSchemaArray = tableSchema + ? (_b = tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.fields) === null || _b === void 0 ? void 0 : _b.filter((field) => field.fieldName === dataKey) + : null; + const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] + ? targetFieldSchemaArray[0] + : null; + if (value == null || value == undefined) + continue; + const htmlRegex = /<[^>]+>/g; + if ((targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.richText) || String(value).match(htmlRegex)) { + value = (0, sanitize_html_1.default)(value, sanitizeHtmlOptions_1.default); } + if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.encrypted) { + value = (0, encrypt_1.default)({ + data: value, + encryptionKey, + encryptionSalt, + }); + } + if (typeof value === "object") { + value = JSON.stringify(value); + } + if (targetFieldSchema === null || targetFieldSchema === void 0 ? void 0 : targetFieldSchema.pattern) { + const pattern = new RegExp(targetFieldSchema.pattern, targetFieldSchema.patternFlags || ""); + if (!pattern.test(value)) { + console.log("DSQL: Pattern not matched =>", value); + value = ""; + } + } + if (typeof value === "string" && value.match(/^null$/i)) { + value = { + toSqlString: function () { + return "NULL"; + }, + }; + } + if (typeof value === "string" && !value.match(/./i)) { + value = { + toSqlString: function () { + return "NULL"; + }, + }; + } + updateKeyValueArray.push(`\`${dataKey}\`=?`); + if (typeof value == "number") { + updateValues.push(String(value)); + } + else { + updateValues.push(value); + } + //////////////////////////////////////// + //////////////////////////////////////// } - if (typeof value === "string" && value.match(/^null$/i)) { - value = { - toSqlString: function () { - return "NULL"; - }, - }; + catch ( /** @type {any} */error) { + //////////////////////////////////////// + //////////////////////////////////////// + console.log("DSQL: Error in parsing data keys in update function =>", error.message); + continue; } - if (typeof value === "string" && !value.match(/./i)) { - value = { - toSqlString: function () { - return "NULL"; - }, - }; - } - updateKeyValueArray.push(`\`${dataKey}\`=?`); - if (typeof value == "number") { - updateValues.push(String(value)); - } - else { - updateValues.push(value); - } - //////////////////////////////////////// - //////////////////////////////////////// } - catch ( /** @type {any} */error) { - //////////////////////////////////////// - //////////////////////////////////////// - console.log("DSQL: Error in parsing data keys in update function =>", error.message); - continue; - } - } - //////////////////////////////////////// - //////////////////////////////////////// - updateKeyValueArray.push(`date_updated='${Date()}'`); - updateKeyValueArray.push(`date_updated_code='${Date.now()}'`); - //////////////////////////////////////// - //////////////////////////////////////// - const query = `UPDATE ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`; - updateValues.push(identifierValue); - const updatedEntry = await connDbHandler(DB_CONN, query, updateValues); - /** - * Return statement - */ - return { - success: Boolean(updatedEntry === null || updatedEntry === void 0 ? void 0 : updatedEntry.affectedRows), - payload: updatedEntry, - queryObject: { - sql: query, - params: updateValues, - }, - }; + //////////////////////////////////////// + //////////////////////////////////////// + updateKeyValueArray.push(`date_updated='${Date()}'`); + updateKeyValueArray.push(`date_updated_code='${Date.now()}'`); + //////////////////////////////////////// + //////////////////////////////////////// + const query = `UPDATE ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`; + updateValues.push(identifierValue); + const updatedEntry = yield (0, conn_db_handler_1.default)(DB_CONN, query, updateValues); + /** + * Return statement + */ + return { + success: Boolean(updatedEntry === null || updatedEntry === void 0 ? void 0 : updatedEntry.affectedRows), + payload: updatedEntry, + queryObject: { + sql: query, + params: updateValues, + }, + }; + }); } diff --git a/dist/package-shared/functions/backend/dbHandler.js b/dist/package-shared/functions/backend/dbHandler.js index 0e182eb..a1d6b72 100644 --- a/dist/package-shared/functions/backend/dbHandler.js +++ b/dist/package-shared/functions/backend/dbHandler.js @@ -1,47 +1,64 @@ -import fs from "fs"; -import path from "path"; -import grabDSQLConnection from "../../utils/grab-dsql-connection"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = dbHandler; +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); +const grab_dsql_connection_1 = __importDefault(require("../../utils/grab-dsql-connection")); /** * # Main DB Handler Function * @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database */ -export default async function dbHandler({ query, values, noErrorLogs, }) { - var _a; - const CONNECTION = grabDSQLConnection(); - let results; - try { - if (query && values) { - results = await CONNECTION.query(query, values); +function dbHandler(_a) { + return __awaiter(this, arguments, void 0, function* ({ query, values, noErrorLogs, }) { + var _b; + const CONNECTION = (0, grab_dsql_connection_1.default)(); + let results; + try { + if (query && values) { + results = yield CONNECTION.query(query, values); + } + else { + results = yield CONNECTION.query(query); + } + } + catch (error) { + if (!noErrorLogs) { + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `DB Handler Error...`, error); + } + if (process.env.FIRST_RUN) { + return null; + } + if (!noErrorLogs) { + console.log("ERROR in dbHandler =>", error.message); + console.log(error); + console.log(CONNECTION.config()); + const tmpFolder = path_1.default.resolve(process.cwd(), "./.tmp"); + if (!fs_1.default.existsSync(tmpFolder)) + fs_1.default.mkdirSync(tmpFolder, { recursive: true }); + fs_1.default.appendFileSync(path_1.default.resolve(tmpFolder, "./dbErrorLogs.txt"), JSON.stringify(error, null, 4) + "\n" + Date() + "\n\n\n", "utf8"); + } + results = null; + } + finally { + yield (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end()); + } + if (results) { + return JSON.parse(JSON.stringify(results)); } else { - results = await CONNECTION.query(query); - } - } - catch (error) { - if (!noErrorLogs) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `DB Handler Error...`, error); - } - if (process.env.FIRST_RUN) { return null; } - if (!noErrorLogs) { - console.log("ERROR in dbHandler =>", error.message); - console.log(error); - console.log(CONNECTION.config()); - const tmpFolder = path.resolve(process.cwd(), "./.tmp"); - if (!fs.existsSync(tmpFolder)) - fs.mkdirSync(tmpFolder, { recursive: true }); - fs.appendFileSync(path.resolve(tmpFolder, "./dbErrorLogs.txt"), JSON.stringify(error, null, 4) + "\n" + Date() + "\n\n\n", "utf8"); - } - results = null; - } - finally { - await (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end()); - } - if (results) { - return JSON.parse(JSON.stringify(results)); - } - else { - return null; - } + }); } diff --git a/dist/package-shared/functions/backend/fullAccessDbHandler.js b/dist/package-shared/functions/backend/fullAccessDbHandler.js index 3833c93..926d577 100644 --- a/dist/package-shared/functions/backend/fullAccessDbHandler.js +++ b/dist/package-shared/functions/backend/fullAccessDbHandler.js @@ -1,61 +1,78 @@ -import connDbHandler from "../../utils/db/conn-db-handler"; -import parseDbResults from "./parseDbResults"; -import serverError from "./serverError"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = fullAccessDbHandler; +const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handler")); +const parseDbResults_1 = __importDefault(require("./parseDbResults")); +const serverError_1 = __importDefault(require("./serverError")); /** * # Full Access Db Handler */ -export default async function fullAccessDbHandler({ queryString, tableSchema, queryValuesArray, forceLocal, }) { - var _a; - /** - * Declare variables - * - * @description Declare "results" variable - */ - let results; - const DB_CONN = forceLocal - ? global.DSQL_DB_CONN - : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; - /** - * Fetch from db - * - * @description Fetch data from db if no cache - */ - try { - results = await connDbHandler(DB_CONN, queryString, queryValuesArray); - //////////////////////////////////////// - } - catch (error) { - //////////////////////////////////////// - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Full Access DB Handler Error`, error); - serverError({ - component: "fullAccessDbHandler", - message: error.message, - }); +function fullAccessDbHandler(_a) { + return __awaiter(this, arguments, void 0, function* ({ queryString, tableSchema, queryValuesArray, forceLocal, }) { + var _b; /** - * Return error + * Declare variables + * + * @description Declare "results" variable */ - return error.message; - } - finally { - DB_CONN === null || DB_CONN === void 0 ? void 0 : DB_CONN.end(); - } - /** - * Return results - * - * @description Return results add to cache if "req" param is passed - */ - if (results && tableSchema) { - const unparsedResults = results; - const parsedResults = await parseDbResults({ - unparsedResults: unparsedResults, - tableSchema: tableSchema, - }); - return parsedResults; - } - else if (results) { - return results; - } - else { - return null; - } + let results; + const DB_CONN = forceLocal + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + /** + * Fetch from db + * + * @description Fetch data from db if no cache + */ + try { + results = yield (0, conn_db_handler_1.default)(DB_CONN, queryString, queryValuesArray); + //////////////////////////////////////// + } + catch (error) { + //////////////////////////////////////// + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Full Access DB Handler Error`, error); + (0, serverError_1.default)({ + component: "fullAccessDbHandler", + message: error.message, + }); + /** + * Return error + */ + return error.message; + } + finally { + DB_CONN === null || DB_CONN === void 0 ? void 0 : DB_CONN.end(); + } + /** + * Return results + * + * @description Return results add to cache if "req" param is passed + */ + if (results && tableSchema) { + const unparsedResults = results; + const parsedResults = yield (0, parseDbResults_1.default)({ + unparsedResults: unparsedResults, + tableSchema: tableSchema, + }); + return parsedResults; + } + else if (results) { + return results; + } + else { + return null; + } + }); } diff --git a/dist/package-shared/functions/backend/grab-mariadb-main-user-for-user.js b/dist/package-shared/functions/backend/grab-mariadb-main-user-for-user.js index 56f425c..ffedbb6 100644 --- a/dist/package-shared/functions/backend/grab-mariadb-main-user-for-user.js +++ b/dist/package-shared/functions/backend/grab-mariadb-main-user-for-user.js @@ -1,41 +1,58 @@ -import dbHandler from "./dbHandler"; -import dsqlCrud from "../../utils/data-fetching/crud"; -import decrypt from "../dsql/decrypt"; -import createUserSQLUser from "../../utils/create-user-sql-user"; -import grabUserMainSqlUserName from "../../utils/grab-user-main-sql-user-name"; -export default async function grabMariadbMainUserForUser({ user, }) { - var _a; - const { fullName, host, username: mariaDBUsername, webHost, } = grabUserMainSqlUserName({ user }); - const existingWebAppUser = (await dbHandler({ - query: `SELECT * FROM mysql.user WHERE user=? AND host=?`, - values: [mariaDBUsername, webHost], - })); - if (!(existingWebAppUser === null || existingWebAppUser === void 0 ? void 0 : existingWebAppUser[0])) { - return await createUserSQLUser(user); - } - else { - const existingUserRecord = await dsqlCrud({ - action: "get", - table: "users", - query: { +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabMariadbMainUserForUser; +const dbHandler_1 = __importDefault(require("./dbHandler")); +const crud_1 = __importDefault(require("../../utils/data-fetching/crud")); +const decrypt_1 = __importDefault(require("../dsql/decrypt")); +const create_user_sql_user_1 = __importDefault(require("../../utils/create-user-sql-user")); +const grab_user_main_sql_user_name_1 = __importDefault(require("../../utils/grab-user-main-sql-user-name")); +function grabMariadbMainUserForUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ user, }) { + var _b; + const { fullName, host, username: mariaDBUsername, webHost, } = (0, grab_user_main_sql_user_name_1.default)({ user }); + const existingWebAppUser = (yield (0, dbHandler_1.default)({ + query: `SELECT * FROM mysql.user WHERE user=? AND host=?`, + values: [mariaDBUsername, webHost], + })); + if (!(existingWebAppUser === null || existingWebAppUser === void 0 ? void 0 : existingWebAppUser[0])) { + return yield (0, create_user_sql_user_1.default)(user); + } + else { + const existingUserRecord = yield (0, crud_1.default)({ + action: "get", + table: "users", query: { - id: { - value: String(user.id), + query: { + id: { + value: String(user.id), + }, }, }, - }, - }); - const targetUser = (_a = existingUserRecord === null || existingUserRecord === void 0 ? void 0 : existingUserRecord.payload) === null || _a === void 0 ? void 0 : _a[0]; - if (!(targetUser === null || targetUser === void 0 ? void 0 : targetUser.id)) { - return {}; + }); + const targetUser = (_b = existingUserRecord === null || existingUserRecord === void 0 ? void 0 : existingUserRecord.payload) === null || _b === void 0 ? void 0 : _b[0]; + if (!(targetUser === null || targetUser === void 0 ? void 0 : targetUser.id)) { + return {}; + } + return { + fullName, + host, + username: mariaDBUsername, + password: (0, decrypt_1.default)({ + encryptedString: targetUser.mariadb_pass || "", + }), + }; } - return { - fullName, - host, - username: mariaDBUsername, - password: decrypt({ - encryptedString: targetUser.mariadb_pass || "", - }), - }; - } + }); } diff --git a/dist/package-shared/functions/backend/grabNewUsersTableSchema.js b/dist/package-shared/functions/backend/grabNewUsersTableSchema.js index 40d6e9f..2eaa1e1 100644 --- a/dist/package-shared/functions/backend/grabNewUsersTableSchema.js +++ b/dist/package-shared/functions/backend/grabNewUsersTableSchema.js @@ -1,14 +1,20 @@ -import grabSchemaFieldsFromData from "./grabSchemaFieldsFromData"; -import serverError from "./serverError"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabNewUsersTableSchema; +const grabSchemaFieldsFromData_1 = __importDefault(require("./grabSchemaFieldsFromData")); +const serverError_1 = __importDefault(require("./serverError")); /** * # Add User Table to Database */ -export default function grabNewUsersTableSchema(params) { +function grabNewUsersTableSchema(params) { try { const userPreset = require("../../data/presets/users.json"); const defaultFields = require("../../data/defaultFields.json"); const supplementalFields = (params === null || params === void 0 ? void 0 : params.payload) - ? grabSchemaFieldsFromData({ + ? (0, grabSchemaFieldsFromData_1.default)({ data: params === null || params === void 0 ? void 0 : params.payload, excludeData: defaultFields, excludeFields: userPreset.fields, @@ -27,7 +33,7 @@ export default function grabNewUsersTableSchema(params) { } catch ( /** @type {any} */error) { console.log(`grabNewUsersTableSchema.ts ERROR: ${error.message}`); - serverError({ + (0, serverError_1.default)({ component: "grabNewUsersTableSchema", message: error.message, }); diff --git a/dist/package-shared/functions/backend/grabSchemaFieldsFromData.js b/dist/package-shared/functions/backend/grabSchemaFieldsFromData.js index 9aedbeb..a948bb7 100644 --- a/dist/package-shared/functions/backend/grabSchemaFieldsFromData.js +++ b/dist/package-shared/functions/backend/grabSchemaFieldsFromData.js @@ -1,8 +1,14 @@ -import serverError from "./serverError"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabSchemaFieldsFromData; +const serverError_1 = __importDefault(require("./serverError")); /** * # Add User Table to Database */ -export default function grabSchemaFieldsFromData({ data, fields, excludeData, excludeFields, }) { +function grabSchemaFieldsFromData({ data, fields, excludeData, excludeFields, }) { var _a; try { /** @type {DSQL_FieldSchemaType[]} */ @@ -49,7 +55,7 @@ export default function grabSchemaFieldsFromData({ data, fields, excludeData, ex } catch ( /** @type {any} */error) { console.log(`grabSchemaFieldsFromData.ts ERROR: ${error.message}`); - serverError({ + (0, serverError_1.default)({ component: "grabSchemaFieldsFromData.ts", message: error.message, }); diff --git a/dist/package-shared/functions/backend/handleNodemailer.js b/dist/package-shared/functions/backend/handleNodemailer.js index 817d4f0..9d067fe 100644 --- a/dist/package-shared/functions/backend/handleNodemailer.js +++ b/dist/package-shared/functions/backend/handleNodemailer.js @@ -1,50 +1,67 @@ -import fs from "fs"; -import _ from "lodash"; -import nodemailer from "nodemailer"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleNodemailer; +const fs_1 = __importDefault(require("fs")); +const lodash_1 = __importDefault(require("lodash")); +const nodemailer_1 = __importDefault(require("nodemailer")); /** * # Handle mails With Nodemailer */ -export default async function handleNodemailer(params) { - var _a, _b; - if (!process.env.DSQL_MAIL_HOST || - !process.env.DSQL_MAIL_EMAIL || - !process.env.DSQL_MAIL_PASSWORD) { - return undefined; - } - let transporter = nodemailer.createTransport(Object.assign({ host: process.env.DSQL_MAIL_HOST, port: 465, secure: true, auth: { - user: process.env.DSQL_MAIL_EMAIL, - pass: process.env.DSQL_MAIL_PASSWORD, - } }, params.options)); - const sender = (() => { - var _a; - if ((_a = params.alias) === null || _a === void 0 ? void 0 : _a.match(/support/i)) +function handleNodemailer(params) { + return __awaiter(this, void 0, void 0, function* () { + var _a, _b; + if (!process.env.DSQL_MAIL_HOST || + !process.env.DSQL_MAIL_EMAIL || + !process.env.DSQL_MAIL_PASSWORD) { + return undefined; + } + let transporter = nodemailer_1.default.createTransport(Object.assign({ host: process.env.DSQL_MAIL_HOST, port: 465, secure: true, auth: { + user: process.env.DSQL_MAIL_EMAIL, + pass: process.env.DSQL_MAIL_PASSWORD, + } }, params.options)); + const sender = (() => { + var _a; + if ((_a = params.alias) === null || _a === void 0 ? void 0 : _a.match(/support/i)) + return process.env.DSQL_MAIL_EMAIL; return process.env.DSQL_MAIL_EMAIL; - return process.env.DSQL_MAIL_EMAIL; - })(); - const mailRootPath = process.env.DSQL_MAIL_ROOT || "./email/index.html"; - let mailRoot = fs.existsSync(mailRootPath) - ? fs.readFileSync(mailRootPath, "utf8") - : undefined; - let finalHtml = mailRoot - ? mailRoot - .replace(/{{email_body}}/, ((_a = params.html) === null || _a === void 0 ? void 0 : _a.toString()) || "") - .replace(/{{issue_date}}/, Date().substring(0, 24)) - : (_b = params.html) === null || _b === void 0 ? void 0 : _b.toString(); - try { - let mailObject = {}; - mailObject["from"] = `"${params.senderName || "Datasquirel"}" <${sender}>`; - mailObject["sender"] = sender; - if (params.alias) - mailObject["replyTo"] = sender; - mailObject["to"] = params.to; - mailObject["subject"] = params.subject; - mailObject["text"] = params.text; - mailObject["html"] = finalHtml; - let info = await transporter.sendMail(Object.assign(Object.assign({}, _.omit(mailObject, ["alias", "senderName", "options"])), mailObject)); - return info; - } - catch (error) { - console.log("ERROR in handleNodemailer Function =>", error.message); - } - return undefined; + })(); + const mailRootPath = process.env.DSQL_MAIL_ROOT || "./email/index.html"; + let mailRoot = fs_1.default.existsSync(mailRootPath) + ? fs_1.default.readFileSync(mailRootPath, "utf8") + : undefined; + let finalHtml = mailRoot + ? mailRoot + .replace(/{{email_body}}/, ((_a = params.html) === null || _a === void 0 ? void 0 : _a.toString()) || "") + .replace(/{{issue_date}}/, Date().substring(0, 24)) + : (_b = params.html) === null || _b === void 0 ? void 0 : _b.toString(); + try { + let mailObject = {}; + mailObject["from"] = `"${params.senderName || "Datasquirel"}" <${sender}>`; + mailObject["sender"] = sender; + if (params.alias) + mailObject["replyTo"] = sender; + mailObject["to"] = params.to; + mailObject["subject"] = params.subject; + mailObject["text"] = params.text; + mailObject["html"] = finalHtml; + let info = yield transporter.sendMail(Object.assign(Object.assign({}, lodash_1.default.omit(mailObject, ["alias", "senderName", "options"])), mailObject)); + return info; + } + catch (error) { + console.log("ERROR in handleNodemailer Function =>", error.message); + } + return undefined; + }); } diff --git a/dist/package-shared/functions/backend/html/sanitizeHtmlOptions.js b/dist/package-shared/functions/backend/html/sanitizeHtmlOptions.js index 083df32..f1ecdfd 100644 --- a/dist/package-shared/functions/backend/html/sanitizeHtmlOptions.js +++ b/dist/package-shared/functions/backend/html/sanitizeHtmlOptions.js @@ -1,3 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const sanitizeHtmlOptions = { allowedTags: [ "b", @@ -29,4 +31,4 @@ const sanitizeHtmlOptions = { "*": ["style", "class", "title"], }, }; -export default sanitizeHtmlOptions; +exports.default = sanitizeHtmlOptions; diff --git a/dist/package-shared/functions/backend/httpsRequest.js b/dist/package-shared/functions/backend/httpsRequest.js index 65db696..53d4abd 100644 --- a/dist/package-shared/functions/backend/httpsRequest.js +++ b/dist/package-shared/functions/backend/httpsRequest.js @@ -1,13 +1,19 @@ -import https from "https"; -import http from "http"; -import { URL } from "url"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = httpsRequest; +const https_1 = __importDefault(require("https")); +const http_1 = __importDefault(require("http")); +const url_1 = require("url"); /** * # Make Https Request */ -export default function httpsRequest({ url, method, hostname, path, headers, body, port, scheme, }) { +function httpsRequest({ url, method, hostname, path, headers, body, port, scheme, }) { var _a; const reqPayloadString = body ? JSON.stringify(body) : null; - const PARSED_URL = url ? new URL(url) : null; + const PARSED_URL = url ? new url_1.URL(url) : null; //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// @@ -43,10 +49,10 @@ export default function httpsRequest({ url, method, hostname, path, headers, bod return new Promise((res, rej) => { var _a; const httpsRequest = ((scheme === null || scheme === void 0 ? void 0 : scheme.match(/https/i)) - ? https + ? https_1.default : ((_a = PARSED_URL === null || PARSED_URL === void 0 ? void 0 : PARSED_URL.protocol) === null || _a === void 0 ? void 0 : _a.match(/https/i)) - ? https - : http).request( + ? https_1.default + : http_1.default).request( /* ====== Request Options object ====== */ requestOptions, //////////////////////////////////////////////// diff --git a/dist/package-shared/functions/backend/noDatabaseDbHandler.js b/dist/package-shared/functions/backend/noDatabaseDbHandler.js index e0d831c..b129744 100644 --- a/dist/package-shared/functions/backend/noDatabaseDbHandler.js +++ b/dist/package-shared/functions/backend/noDatabaseDbHandler.js @@ -1,47 +1,64 @@ -import fs from "fs"; -import serverError from "./serverError"; -import NO_DB_HANDLER from "../../utils/backend/global-db/NO_DB_HANDLER"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = noDatabaseDbHandler; +const fs_1 = __importDefault(require("fs")); +const serverError_1 = __importDefault(require("./serverError")); +const NO_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/NO_DB_HANDLER")); /** * # No Database DB Handler */ -export default async function noDatabaseDbHandler(queryString) { - var _a; - ((_a = process.env.NODE_ENV) === null || _a === void 0 ? void 0 : _a.match(/dev/)) && - fs.appendFileSync("./.tmp/sqlQuery.sql", queryString + "\n" + Date() + "\n\n\n", "utf8"); - /** - * Declare variables - * - * @description Declare "results" variable - */ - let results; - /** - * Fetch from db - * - * @description Fetch data from db if no cache - */ - try { - /** ********************* Run Query */ - results = await NO_DB_HANDLER(queryString); - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - } - catch ( /** @type {any} */error) { - serverError({ - component: "noDatabaseDbHandler", - message: error.message, - }); - console.log("ERROR in noDatabaseDbHandler =>", error.message); - } - /** - * Return results - * - * @description Return results add to cache if "req" param is passed - */ - if (results) { - return results; - } - else { - return null; - } +function noDatabaseDbHandler(queryString) { + return __awaiter(this, void 0, void 0, function* () { + var _a; + ((_a = process.env.NODE_ENV) === null || _a === void 0 ? void 0 : _a.match(/dev/)) && + fs_1.default.appendFileSync("./.tmp/sqlQuery.sql", queryString + "\n" + Date() + "\n\n\n", "utf8"); + /** + * Declare variables + * + * @description Declare "results" variable + */ + let results; + /** + * Fetch from db + * + * @description Fetch data from db if no cache + */ + try { + /** ********************* Run Query */ + results = yield (0, NO_DB_HANDLER_1.default)(queryString); + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + } + catch ( /** @type {any} */error) { + (0, serverError_1.default)({ + component: "noDatabaseDbHandler", + message: error.message, + }); + console.log("ERROR in noDatabaseDbHandler =>", error.message); + } + /** + * Return results + * + * @description Return results add to cache if "req" param is passed + */ + if (results) { + return results; + } + else { + return null; + } + }); } diff --git a/dist/package-shared/functions/backend/parseDbResults.js b/dist/package-shared/functions/backend/parseDbResults.js index 3ef61a1..480afb8 100644 --- a/dist/package-shared/functions/backend/parseDbResults.js +++ b/dist/package-shared/functions/backend/parseDbResults.js @@ -1,6 +1,21 @@ +"use strict"; // @ts-check -import decrypt from "../dsql/decrypt"; -import defaultFieldsRegexp from "../dsql/default-fields-regexp"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = parseDbResults; +const decrypt_1 = __importDefault(require("../dsql/decrypt")); +const default_fields_regexp_1 = __importDefault(require("../dsql/default-fields-regexp")); /** * Parse Database results * ============================================================================== @@ -8,52 +23,54 @@ import defaultFieldsRegexp from "../dsql/default-fields-regexp"; * function, decrypts encrypted fields, and returns an updated array with no encrypted * fields */ -export default async function parseDbResults({ unparsedResults, tableSchema, }) { - /** - * Declare variables - * - * @description Declare "results" variable - */ - let parsedResults = []; - try { +function parseDbResults(_a) { + return __awaiter(this, arguments, void 0, function* ({ unparsedResults, tableSchema, }) { /** * Declare variables * * @description Declare "results" variable */ - for (let pr = 0; pr < unparsedResults.length; pr++) { - let result = unparsedResults[pr]; - let resultFieldNames = Object.keys(result); - for (let i = 0; i < resultFieldNames.length; i++) { - const resultFieldName = resultFieldNames[i]; - let resultFieldSchema = tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.fields[i]; - if (resultFieldName === null || resultFieldName === void 0 ? void 0 : resultFieldName.match(defaultFieldsRegexp)) { - continue; - } - let value = result[resultFieldName]; - if (typeof value !== "number" && !value) { - // parsedResults.push(result); - continue; - } - if (resultFieldSchema === null || resultFieldSchema === void 0 ? void 0 : resultFieldSchema.encrypted) { - if (value === null || value === void 0 ? void 0 : value.match(/./)) { - result[resultFieldName] = decrypt({ - encryptedString: value, - }); + let parsedResults = []; + try { + /** + * Declare variables + * + * @description Declare "results" variable + */ + for (let pr = 0; pr < unparsedResults.length; pr++) { + let result = unparsedResults[pr]; + let resultFieldNames = Object.keys(result); + for (let i = 0; i < resultFieldNames.length; i++) { + const resultFieldName = resultFieldNames[i]; + let resultFieldSchema = tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.fields[i]; + if (resultFieldName === null || resultFieldName === void 0 ? void 0 : resultFieldName.match(default_fields_regexp_1.default)) { + continue; + } + let value = result[resultFieldName]; + if (typeof value !== "number" && !value) { + // parsedResults.push(result); + continue; + } + if (resultFieldSchema === null || resultFieldSchema === void 0 ? void 0 : resultFieldSchema.encrypted) { + if (value === null || value === void 0 ? void 0 : value.match(/./)) { + result[resultFieldName] = (0, decrypt_1.default)({ + encryptedString: value, + }); + } } } + parsedResults.push(result); } - parsedResults.push(result); + /** + * Declare variables + * + * @description Declare "results" variable + */ + return parsedResults; } - /** - * Declare variables - * - * @description Declare "results" variable - */ - return parsedResults; - } - catch ( /** @type {any} */error) { - console.log("ERROR in parseDbResults Function =>", error.message); - return unparsedResults; - } + catch ( /** @type {any} */error) { + console.log("ERROR in parseDbResults Function =>", error.message); + return unparsedResults; + } + }); } diff --git a/dist/package-shared/functions/backend/queues/add-queue.js b/dist/package-shared/functions/backend/queues/add-queue.js index d1b86d8..9a805c6 100644 --- a/dist/package-shared/functions/backend/queues/add-queue.js +++ b/dist/package-shared/functions/backend/queues/add-queue.js @@ -1,29 +1,46 @@ -import getQueue from "./get-queue"; -import dsqlCrud from "../../../utils/data-fetching/crud"; -import numberfy from "../../../utils/numberfy"; -export default async function addQueue({ queue, userId, dummy }) { - const tableName = "process_queue"; - const existingQueueRes = dummy - ? undefined - : (await getQueue({ - query: { +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = addQueue; +const get_queue_1 = __importDefault(require("./get-queue")); +const crud_1 = __importDefault(require("../../../utils/data-fetching/crud")); +const numberfy_1 = __importDefault(require("../../../utils/numberfy")); +function addQueue(_a) { + return __awaiter(this, arguments, void 0, function* ({ queue, userId, dummy }) { + const tableName = "process_queue"; + const existingQueueRes = dummy + ? undefined + : (yield (0, get_queue_1.default)({ query: { - user_id: { - value: String(userId), - }, - job_type: { - value: String(queue.job_type), + query: { + user_id: { + value: String(userId), + }, + job_type: { + value: String(queue.job_type), + }, }, }, - }, - })); - const existingQueue = existingQueueRes === null || existingQueueRes === void 0 ? void 0 : existingQueueRes[0]; - if ((existingQueue === null || existingQueue === void 0 ? void 0 : existingQueue.id) && !dummy) - return undefined; - const addQueueRes = await dsqlCrud({ - action: "insert", - table: tableName, - data: Object.assign(Object.assign({}, queue), { user_id: numberfy(userId) }), + })); + const existingQueue = existingQueueRes === null || existingQueueRes === void 0 ? void 0 : existingQueueRes[0]; + if ((existingQueue === null || existingQueue === void 0 ? void 0 : existingQueue.id) && !dummy) + return undefined; + const addQueueRes = yield (0, crud_1.default)({ + action: "insert", + table: tableName, + data: Object.assign(Object.assign({}, queue), { user_id: (0, numberfy_1.default)(userId) }), + }); + return addQueueRes; }); - return addQueueRes; } diff --git a/dist/package-shared/functions/backend/queues/delete-queue.js b/dist/package-shared/functions/backend/queues/delete-queue.js index fe85f98..37bfb34 100644 --- a/dist/package-shared/functions/backend/queues/delete-queue.js +++ b/dist/package-shared/functions/backend/queues/delete-queue.js @@ -1,14 +1,31 @@ -import dsqlCrud from "../../../utils/data-fetching/crud"; -import getQueue from "./get-queue"; -export default async function deleteQueue({ queueId, userId }) { - const tableName = "process_queue"; - const existingQueue = (await getQueue({ userId, queueId })); - if (!(existingQueue === null || existingQueue === void 0 ? void 0 : existingQueue.id)) - return false; - const deleteQueueRes = await dsqlCrud({ - action: "delete", - table: tableName, - targetId: existingQueue.id, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = deleteQueue; +const crud_1 = __importDefault(require("../../../utils/data-fetching/crud")); +const get_queue_1 = __importDefault(require("./get-queue")); +function deleteQueue(_a) { + return __awaiter(this, arguments, void 0, function* ({ queueId, userId }) { + const tableName = "process_queue"; + const existingQueue = (yield (0, get_queue_1.default)({ userId, queueId })); + if (!(existingQueue === null || existingQueue === void 0 ? void 0 : existingQueue.id)) + return false; + const deleteQueueRes = yield (0, crud_1.default)({ + action: "delete", + table: tableName, + targetId: existingQueue.id, + }); + return Boolean(deleteQueueRes === null || deleteQueueRes === void 0 ? void 0 : deleteQueueRes.success); }); - return Boolean(deleteQueueRes === null || deleteQueueRes === void 0 ? void 0 : deleteQueueRes.success); } diff --git a/dist/package-shared/functions/backend/queues/get-queue.js b/dist/package-shared/functions/backend/queues/get-queue.js index 92f0738..cc355d0 100644 --- a/dist/package-shared/functions/backend/queues/get-queue.js +++ b/dist/package-shared/functions/backend/queues/get-queue.js @@ -1,18 +1,35 @@ -import dsqlCrud from "../../../utils/data-fetching/crud"; -export default async function getQueue({ queueId, userId, query, single, }) { - const tableName = "process_queue"; - let queryQuery = {}; - if (queueId) { - queryQuery = Object.assign(Object.assign({}, queryQuery), { id: { value: String(queueId) } }); - } - if (userId) { - queryQuery = Object.assign(Object.assign({}, queryQuery), { user_id: { value: String(userId) } }); - } - const getQueue = await dsqlCrud({ - action: "get", - table: tableName, - query: Object.assign(Object.assign({}, query), { query: Object.assign(Object.assign({}, query === null || query === void 0 ? void 0 : query.query), queryQuery) }), +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getQueue; +const crud_1 = __importDefault(require("../../../utils/data-fetching/crud")); +function getQueue(_a) { + return __awaiter(this, arguments, void 0, function* ({ queueId, userId, query, single, }) { + const tableName = "process_queue"; + let queryQuery = {}; + if (queueId) { + queryQuery = Object.assign(Object.assign({}, queryQuery), { id: { value: String(queueId) } }); + } + if (userId) { + queryQuery = Object.assign(Object.assign({}, queryQuery), { user_id: { value: String(userId) } }); + } + const getQueue = yield (0, crud_1.default)({ + action: "get", + table: tableName, + query: Object.assign(Object.assign({}, query), { query: Object.assign(Object.assign({}, query === null || query === void 0 ? void 0 : query.query), queryQuery) }), + }); + const queuePayload = getQueue === null || getQueue === void 0 ? void 0 : getQueue.payload; + return queueId || single ? queuePayload === null || queuePayload === void 0 ? void 0 : queuePayload[0] : queuePayload; }); - const queuePayload = getQueue === null || getQueue === void 0 ? void 0 : getQueue.payload; - return queueId || single ? queuePayload === null || queuePayload === void 0 ? void 0 : queuePayload[0] : queuePayload; } diff --git a/dist/package-shared/functions/backend/queues/update-queue.js b/dist/package-shared/functions/backend/queues/update-queue.js index 8780741..fad00b6 100644 --- a/dist/package-shared/functions/backend/queues/update-queue.js +++ b/dist/package-shared/functions/backend/queues/update-queue.js @@ -1,11 +1,28 @@ -import dsqlCrud from "../../../utils/data-fetching/crud"; -export default async function updateQueue({ queueId, queue }) { - const tableName = "process_queue"; - const updateQueueRes = await dsqlCrud({ - action: "update", - table: tableName, - targetId: queueId, - data: queue, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = updateQueue; +const crud_1 = __importDefault(require("../../../utils/data-fetching/crud")); +function updateQueue(_a) { + return __awaiter(this, arguments, void 0, function* ({ queueId, queue }) { + const tableName = "process_queue"; + const updateQueueRes = yield (0, crud_1.default)({ + action: "update", + table: tableName, + targetId: queueId, + data: queue, + }); + return Boolean(updateQueueRes === null || updateQueueRes === void 0 ? void 0 : updateQueueRes.success); }); - return Boolean(updateQueueRes === null || updateQueueRes === void 0 ? void 0 : updateQueueRes.success); } diff --git a/dist/package-shared/functions/backend/serverError.js b/dist/package-shared/functions/backend/serverError.js index 924f9c0..2bc28a4 100644 --- a/dist/package-shared/functions/backend/serverError.js +++ b/dist/package-shared/functions/backend/serverError.js @@ -1,59 +1,76 @@ +"use strict"; // @ts-check -import fs from "fs"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = serverError; +const fs_1 = __importDefault(require("fs")); /** * # Server Error */ -export default async function serverError({ user, message, component, noMail, req, }) { - const date = new Date(); - const reqIp = (() => { - if (!req) - return null; - try { - const forwarded = req.headers["x-forwarded-for"]; - const realIp = req.headers["x-real-ip"]; - const cloudflareIp = req.headers["cf-connecting-ip"]; - // Convert forwarded IPs to string and get the first IP if multiple exist - const forwardedIp = Array.isArray(forwarded) - ? forwarded[0] - : forwarded === null || forwarded === void 0 ? void 0 : forwarded.split(",")[0]; - const clientIp = cloudflareIp || - forwardedIp || - realIp || - req.socket.remoteAddress; - if (!clientIp) +function serverError(_a) { + return __awaiter(this, arguments, void 0, function* ({ user, message, component, noMail, req, }) { + const date = new Date(); + const reqIp = (() => { + if (!req) return null; - return String(clientIp); + try { + const forwarded = req.headers["x-forwarded-for"]; + const realIp = req.headers["x-real-ip"]; + const cloudflareIp = req.headers["cf-connecting-ip"]; + // Convert forwarded IPs to string and get the first IP if multiple exist + const forwardedIp = Array.isArray(forwarded) + ? forwarded[0] + : forwarded === null || forwarded === void 0 ? void 0 : forwarded.split(",")[0]; + const clientIp = cloudflareIp || + forwardedIp || + realIp || + req.socket.remoteAddress; + if (!clientIp) + return null; + return String(clientIp); + } + catch (error) { + return null; + } + })(); + try { + let log = `🚀 SERVER ERROR ===========================\nError Message: ${message}\nComponent: ${component}`; + if ((user === null || user === void 0 ? void 0 : user.id) && (user === null || user === void 0 ? void 0 : user.first_name) && (user === null || user === void 0 ? void 0 : user.last_name) && (user === null || user === void 0 ? void 0 : user.email)) { + log += `\nUser Id: ${user === null || user === void 0 ? void 0 : user.id}\nUser Name: ${user === null || user === void 0 ? void 0 : user.first_name} ${user === null || user === void 0 ? void 0 : user.last_name}\nUser Email: ${user === null || user === void 0 ? void 0 : user.email}`; + } + if (req === null || req === void 0 ? void 0 : req.url) { + log += `\nURL: ${req.url}`; + } + if (req === null || req === void 0 ? void 0 : req.body) { + log += `\nRequest Body: ${JSON.stringify(req.body, null, 4)}`; + } + if (reqIp) { + log += `\nIP: ${reqIp}`; + } + log += `\nDate: ${date.toDateString()}`; + log += "\n========================================"; + if (!fs_1.default.existsSync(`./.tmp/error.log`)) { + fs_1.default.writeFileSync(`./.tmp/error.log`, "", "utf-8"); + } + const initialText = fs_1.default.readFileSync(`./.tmp/error.log`, "utf-8"); + fs_1.default.writeFileSync(`./.tmp/error.log`, log); + fs_1.default.appendFileSync(`./.tmp/error.log`, `\n\n\n\n\n${initialText}`); } - catch (error) { - return null; + catch ( /** @type {any} */error) { + console.log("Server Error Reporting Error:", error.message); } - })(); - try { - let log = `🚀 SERVER ERROR ===========================\nError Message: ${message}\nComponent: ${component}`; - if ((user === null || user === void 0 ? void 0 : user.id) && (user === null || user === void 0 ? void 0 : user.first_name) && (user === null || user === void 0 ? void 0 : user.last_name) && (user === null || user === void 0 ? void 0 : user.email)) { - log += `\nUser Id: ${user === null || user === void 0 ? void 0 : user.id}\nUser Name: ${user === null || user === void 0 ? void 0 : user.first_name} ${user === null || user === void 0 ? void 0 : user.last_name}\nUser Email: ${user === null || user === void 0 ? void 0 : user.email}`; - } - if (req === null || req === void 0 ? void 0 : req.url) { - log += `\nURL: ${req.url}`; - } - if (req === null || req === void 0 ? void 0 : req.body) { - log += `\nRequest Body: ${JSON.stringify(req.body, null, 4)}`; - } - if (reqIp) { - log += `\nIP: ${reqIp}`; - } - log += `\nDate: ${date.toDateString()}`; - log += "\n========================================"; - if (!fs.existsSync(`./.tmp/error.log`)) { - fs.writeFileSync(`./.tmp/error.log`, "", "utf-8"); - } - const initialText = fs.readFileSync(`./.tmp/error.log`, "utf-8"); - fs.writeFileSync(`./.tmp/error.log`, log); - fs.appendFileSync(`./.tmp/error.log`, `\n\n\n\n\n${initialText}`); - } - catch ( /** @type {any} */error) { - console.log("Server Error Reporting Error:", error.message); - } + }); } //////////////////////////////////////// //////////////////////////////////////// diff --git a/dist/package-shared/functions/backend/su-db-handler.js b/dist/package-shared/functions/backend/su-db-handler.js index d8c0340..fce632f 100644 --- a/dist/package-shared/functions/backend/su-db-handler.js +++ b/dist/package-shared/functions/backend/su-db-handler.js @@ -1,15 +1,32 @@ -import mysql from "serverless-mysql"; -import connDbHandler from "../../utils/db/conn-db-handler"; -export default async function suDbHandler({ query, database, user, values, }) { - const connection = mysql({ - config: { - host: process.env.DSQL_DB_HOST, - user: process.env.DSQL_DB_USERNAME, - password: process.env.DSQL_DB_PASSWORD, - database: database, - charset: "utf8mb4", - }, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = suDbHandler; +const serverless_mysql_1 = __importDefault(require("serverless-mysql")); +const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handler")); +function suDbHandler(_a) { + return __awaiter(this, arguments, void 0, function* ({ query, database, user, values, }) { + const connection = (0, serverless_mysql_1.default)({ + config: { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_USERNAME, + password: process.env.DSQL_DB_PASSWORD, + database: database, + charset: "utf8mb4", + }, + }); + const results = yield (0, conn_db_handler_1.default)(connection, query); + return results; }); - const results = await connDbHandler(connection, query); - return results; } diff --git a/dist/package-shared/functions/backend/suSocketAuth.js b/dist/package-shared/functions/backend/suSocketAuth.js index 5894ab9..00b8001 100644 --- a/dist/package-shared/functions/backend/suSocketAuth.js +++ b/dist/package-shared/functions/backend/suSocketAuth.js @@ -1,30 +1,47 @@ +"use strict"; // @ts-check -import parseCookies from "../../utils/backend/parseCookies"; -import decrypt from "../dsql/decrypt"; -import getAuthCookieNames from "./cookies/get-auth-cookie-names"; -export default async function (req) { - const { keyCookieName, csrfCookieName } = getAuthCookieNames(); - const suKeyName = `${keyCookieName}_su`; - const cookies = parseCookies({ request: req }); - if (!(cookies === null || cookies === void 0 ? void 0 : cookies[suKeyName])) { - return null; - } - /** ********************* Grab the payload */ - let userPayload = decrypt({ - encryptedString: cookies[suKeyName], +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = default_1; +const parseCookies_1 = __importDefault(require("../../utils/backend/parseCookies")); +const decrypt_1 = __importDefault(require("../dsql/decrypt")); +const get_auth_cookie_names_1 = __importDefault(require("./cookies/get-auth-cookie-names")); +function default_1(req) { + return __awaiter(this, void 0, void 0, function* () { + const { keyCookieName, csrfCookieName } = (0, get_auth_cookie_names_1.default)(); + const suKeyName = `${keyCookieName}_su`; + const cookies = (0, parseCookies_1.default)({ request: req }); + if (!(cookies === null || cookies === void 0 ? void 0 : cookies[suKeyName])) { + return null; + } + /** ********************* Grab the payload */ + let userPayload = (0, decrypt_1.default)({ + encryptedString: cookies[suKeyName], + }); + /** ********************* Return if no payload */ + if (!userPayload) + return null; + /** ********************* Parse the payload */ + let userObject = JSON.parse(userPayload); + if (userObject.password !== process.env.DSQL_USER_KEY) + return null; + if (userObject.authKey !== process.env.DSQL_SPECIAL_KEY) + return null; + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// + /** ********************* return user object */ + return userObject; }); - /** ********************* Return if no payload */ - if (!userPayload) - return null; - /** ********************* Parse the payload */ - let userObject = JSON.parse(userPayload); - if (userObject.password !== process.env.DSQL_USER_KEY) - return null; - if (userObject.authKey !== process.env.DSQL_SPECIAL_KEY) - return null; - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - /** ********************* return user object */ - return userObject; } diff --git a/dist/package-shared/functions/backend/updateUsersTableSchema.js b/dist/package-shared/functions/backend/updateUsersTableSchema.js index 112208c..d879372 100644 --- a/dist/package-shared/functions/backend/updateUsersTableSchema.js +++ b/dist/package-shared/functions/backend/updateUsersTableSchema.js @@ -1,46 +1,63 @@ -import serverError from "./serverError"; -import createDbFromSchema from "../../shell/createDbFromSchema"; -import grabSchemaFieldsFromData from "./grabSchemaFieldsFromData"; -import { grabPrimaryRequiredDbSchema, writeUpdatedDbSchema, } from "../../shell/createDbFromSchema/grab-required-database-schemas"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = updateUsersTableSchema; +const serverError_1 = __importDefault(require("./serverError")); +const createDbFromSchema_1 = __importDefault(require("../../shell/createDbFromSchema")); +const grabSchemaFieldsFromData_1 = __importDefault(require("./grabSchemaFieldsFromData")); +const grab_required_database_schemas_1 = require("../../shell/createDbFromSchema/grab-required-database-schemas"); /** * # Add User Table to Database */ -export default async function updateUsersTableSchema({ userId, database, newFields, newPayload, dbId, }) { - var _a, _b; - try { - const dbFullName = database; - let targetDatabase = grabPrimaryRequiredDbSchema({ - dbId, - userId, - }); - if (!targetDatabase) { - throw new Error("Couldn't Find Target Database!"); +function updateUsersTableSchema(_a) { + return __awaiter(this, arguments, void 0, function* ({ userId, database, newFields, newPayload, dbId, }) { + var _b, _c; + try { + const dbFullName = database; + let targetDatabase = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({ + dbId, + userId, + }); + if (!targetDatabase) { + throw new Error("Couldn't Find Target Database!"); + } + let existingTableIndex = targetDatabase === null || targetDatabase === void 0 ? void 0 : targetDatabase.tables.findIndex((table) => table.tableName === "users"); + const usersTable = targetDatabase.tables[existingTableIndex]; + if (!((_b = usersTable === null || usersTable === void 0 ? void 0 : usersTable.fields) === null || _b === void 0 ? void 0 : _b[0])) + throw new Error("Users Table Not Found!"); + const additionalFields = (0, grabSchemaFieldsFromData_1.default)({ + fields: newFields, + data: newPayload, + }); + const spliceStartIndex = usersTable.fields.findIndex((field) => field.fieldName === "date_created"); + const finalSpliceStartIndex = spliceStartIndex >= 0 ? spliceStartIndex : 0; + usersTable.fields.splice(finalSpliceStartIndex, 0, ...additionalFields); + (0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ dbSchema: targetDatabase, userId }); + const dbShellUpdate = yield (0, createDbFromSchema_1.default)({ + userId, + targetDatabase: dbFullName, + }); + return `Done!`; } - let existingTableIndex = targetDatabase === null || targetDatabase === void 0 ? void 0 : targetDatabase.tables.findIndex((table) => table.tableName === "users"); - const usersTable = targetDatabase.tables[existingTableIndex]; - if (!((_a = usersTable === null || usersTable === void 0 ? void 0 : usersTable.fields) === null || _a === void 0 ? void 0 : _a[0])) - throw new Error("Users Table Not Found!"); - const additionalFields = grabSchemaFieldsFromData({ - fields: newFields, - data: newPayload, - }); - const spliceStartIndex = usersTable.fields.findIndex((field) => field.fieldName === "date_created"); - const finalSpliceStartIndex = spliceStartIndex >= 0 ? spliceStartIndex : 0; - usersTable.fields.splice(finalSpliceStartIndex, 0, ...additionalFields); - writeUpdatedDbSchema({ dbSchema: targetDatabase, userId }); - const dbShellUpdate = await createDbFromSchema({ - userId, - targetDatabase: dbFullName, - }); - return `Done!`; - } - catch (error) { - (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Updating User Table Schema`, error); - serverError({ - component: "addUsersTableToDb", - message: error.message, - user: { id: userId }, - }); - return error.message; - } + catch (error) { + (_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `Error Updating User Table Schema`, error); + (0, serverError_1.default)({ + component: "addUsersTableToDb", + message: error.message, + user: { id: userId }, + }); + return error.message; + } + }); } diff --git a/dist/package-shared/functions/backend/user-db-handler.js b/dist/package-shared/functions/backend/user-db-handler.js index 407ef45..9d22524 100644 --- a/dist/package-shared/functions/backend/user-db-handler.js +++ b/dist/package-shared/functions/backend/user-db-handler.js @@ -1,17 +1,34 @@ -import mysql from "serverless-mysql"; -import grabMariadbMainUserForUser from "./grab-mariadb-main-user-for-user"; -import connDbHandler from "../../utils/db/conn-db-handler"; -export default async function userDbHandler({ query, user, database, debug, tableSchema, values, }) { - const { fullName, host, username, password } = await grabMariadbMainUserForUser({ user }); - const connection = mysql({ - config: { - host, - user: username, - password: password, - database: database, - charset: "utf8mb4", - }, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = userDbHandler; +const serverless_mysql_1 = __importDefault(require("serverless-mysql")); +const grab_mariadb_main_user_for_user_1 = __importDefault(require("./grab-mariadb-main-user-for-user")); +const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handler")); +function userDbHandler(_a) { + return __awaiter(this, arguments, void 0, function* ({ query, user, database, debug, tableSchema, values, }) { + const { fullName, host, username, password } = yield (0, grab_mariadb_main_user_for_user_1.default)({ user }); + const connection = (0, serverless_mysql_1.default)({ + config: { + host, + user: username, + password: password, + database: database, + charset: "utf8mb4", + }, + }); + const results = yield (0, conn_db_handler_1.default)(connection, query); + return results; }); - const results = await connDbHandler(connection, query); - return results; } diff --git a/dist/package-shared/functions/backend/varDatabaseDbHandler.js b/dist/package-shared/functions/backend/varDatabaseDbHandler.js index 234d919..2eface8 100644 --- a/dist/package-shared/functions/backend/varDatabaseDbHandler.js +++ b/dist/package-shared/functions/backend/varDatabaseDbHandler.js @@ -1,49 +1,66 @@ -import parseDbResults from "./parseDbResults"; -import serverError from "./serverError"; -import grabDSQLConnection from "../../utils/grab-dsql-connection"; -import connDbHandler from "../../utils/db/conn-db-handler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = varDatabaseDbHandler; +const parseDbResults_1 = __importDefault(require("./parseDbResults")); +const serverError_1 = __importDefault(require("./serverError")); +const grab_dsql_connection_1 = __importDefault(require("../../utils/grab-dsql-connection")); +const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handler")); /** * # DB handler for specific database */ -export default async function varDatabaseDbHandler({ queryString, queryValuesArray, database, tableSchema, debug, }) { - var _a; - let CONNECTION = grabDSQLConnection({ fa: true }); - if (global.DSQL_USE_LOCAL) - CONNECTION = grabDSQLConnection({ local: true }); - if (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/)) - CONNECTION = grabDSQLConnection(); - if (debug) { - console.log(`varDatabaseDbHandler:query:`, queryString); - console.log(`varDatabaseDbHandler:values:`, queryValuesArray); - console.log(`varDatabaseDbHandler:CONNECTION:`, CONNECTION.getConfig()); - } - let results = await connDbHandler(CONNECTION, queryString, queryValuesArray); - if (debug) { - console.log(`varDatabaseDbHandler:results:`, results); - } - if (results && tableSchema) { - try { - const unparsedResults = results; - const parsedResults = await parseDbResults({ - unparsedResults: unparsedResults, - tableSchema: tableSchema, - }); - return parsedResults; +function varDatabaseDbHandler(_a) { + return __awaiter(this, arguments, void 0, function* ({ queryString, queryValuesArray, database, tableSchema, debug, }) { + var _b; + let CONNECTION = (0, grab_dsql_connection_1.default)({ fa: true }); + if (global.DSQL_USE_LOCAL) + CONNECTION = (0, grab_dsql_connection_1.default)({ local: true }); + if (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/)) + CONNECTION = (0, grab_dsql_connection_1.default)(); + if (debug) { + console.log(`varDatabaseDbHandler:query:`, queryString); + console.log(`varDatabaseDbHandler:values:`, queryValuesArray); + console.log(`varDatabaseDbHandler:CONNECTION:`, CONNECTION.getConfig()); } - catch (error) { - console.log("\x1b[31mvarDatabaseDbHandler ERROR\x1b[0m =>", database, error); - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `VarDb Handler Error`, error); - serverError({ - component: "varDatabaseDbHandler/lines-52-53", - message: error.message, - }); + let results = yield (0, conn_db_handler_1.default)(CONNECTION, queryString, queryValuesArray); + if (debug) { + console.log(`varDatabaseDbHandler:results:`, results); + } + if (results && tableSchema) { + try { + const unparsedResults = results; + const parsedResults = yield (0, parseDbResults_1.default)({ + unparsedResults: unparsedResults, + tableSchema: tableSchema, + }); + return parsedResults; + } + catch (error) { + console.log("\x1b[31mvarDatabaseDbHandler ERROR\x1b[0m =>", database, error); + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `VarDb Handler Error`, error); + (0, serverError_1.default)({ + component: "varDatabaseDbHandler/lines-52-53", + message: error.message, + }); + return null; + } + } + else if (results) { + return results; + } + else { return null; } - } - else if (results) { - return results; - } - else { - return null; - } + }); } diff --git a/dist/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.js b/dist/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.js index 26fb9fa..f71c407 100644 --- a/dist/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.js +++ b/dist/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.js @@ -1,40 +1,57 @@ -import serverError from "./serverError"; -import parseDbResults from "./parseDbResults"; -import connDbHandler from "../../utils/db/conn-db-handler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = varReadOnlyDatabaseDbHandler; +const serverError_1 = __importDefault(require("./serverError")); +const parseDbResults_1 = __importDefault(require("./parseDbResults")); +const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handler")); /** * # Read Only Db Handler with Varaibles * @returns */ -export default async function varReadOnlyDatabaseDbHandler({ queryString, queryValuesArray, tableSchema, forceLocal, }) { - var _a; - let results; - const DB_CONN = forceLocal - ? global.DSQL_DB_CONN - : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; - try { - results = await connDbHandler(DB_CONN, queryString, queryValuesArray); - } - catch (error) { - serverError({ - component: "varReadOnlyDatabaseDbHandler", - message: error.message, - noMail: true, - }); - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `VarReadOnlyDB Handler Error`, error); - return error.message; - } - finally { - DB_CONN === null || DB_CONN === void 0 ? void 0 : DB_CONN.end(); - } - if (results) { - const unparsedResults = results; - const parsedResults = await parseDbResults({ - unparsedResults: unparsedResults, - tableSchema: tableSchema, - }); - return parsedResults; - } - else { - return null; - } +function varReadOnlyDatabaseDbHandler(_a) { + return __awaiter(this, arguments, void 0, function* ({ queryString, queryValuesArray, tableSchema, forceLocal, }) { + var _b; + let results; + const DB_CONN = forceLocal + ? global.DSQL_DB_CONN + : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; + try { + results = yield (0, conn_db_handler_1.default)(DB_CONN, queryString, queryValuesArray); + } + catch (error) { + (0, serverError_1.default)({ + component: "varReadOnlyDatabaseDbHandler", + message: error.message, + noMail: true, + }); + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `VarReadOnlyDB Handler Error`, error); + return error.message; + } + finally { + DB_CONN === null || DB_CONN === void 0 ? void 0 : DB_CONN.end(); + } + if (results) { + const unparsedResults = results; + const parsedResults = yield (0, parseDbResults_1.default)({ + unparsedResults: unparsedResults, + tableSchema: tableSchema, + }); + return parsedResults; + } + else { + return null; + } + }); } diff --git a/dist/package-shared/functions/dsql/db-schema-to-type.js b/dist/package-shared/functions/dsql/db-schema-to-type.js index 2042d72..521830c 100644 --- a/dist/package-shared/functions/dsql/db-schema-to-type.js +++ b/dist/package-shared/functions/dsql/db-schema-to-type.js @@ -1,18 +1,24 @@ -import fs from "fs"; -import grabDirNames from "../../utils/backend/names/grab-dir-names"; -import _ from "lodash"; -import EJSON from "../../utils/ejson"; -import generateTypeDefinition from "./generate-type-definitions"; -import { AppNames } from "../../dict/app-names"; -export default function dbSchemaToType(params) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = dbSchemaToType; +const fs_1 = __importDefault(require("fs")); +const grab_dir_names_1 = __importDefault(require("../../utils/backend/names/grab-dir-names")); +const lodash_1 = __importDefault(require("lodash")); +const ejson_1 = __importDefault(require("../../utils/ejson")); +const generate_type_definitions_1 = __importDefault(require("./generate-type-definitions")); +const app_names_1 = require("../../dict/app-names"); +function dbSchemaToType(params) { var _a, _b; let datasquirelSchema; - const { mainShemaJSONFilePath, defaultTableFieldsJSONFilePath } = grabDirNames(); + const { mainShemaJSONFilePath, defaultTableFieldsJSONFilePath } = (0, grab_dir_names_1.default)(); if (params === null || params === void 0 ? void 0 : params.dbSchema) { datasquirelSchema = params.dbSchema; } else { - const mainSchema = EJSON.parse(fs.readFileSync(mainShemaJSONFilePath, "utf-8")); + const mainSchema = ejson_1.default.parse(fs_1.default.readFileSync(mainShemaJSONFilePath, "utf-8")); datasquirelSchema = mainSchema.find((sch) => sch.dbFullName == "datasquirel"); } if (!datasquirelSchema) @@ -20,9 +26,9 @@ export default function dbSchemaToType(params) { let tableNames = `export const DsqlTables = [\n${datasquirelSchema.tables .map((tbl) => ` "${tbl.tableName}",`) .join("\n")}\n] as const`; - const defaultFields = EJSON.parse(fs.readFileSync(defaultTableFieldsJSONFilePath, "utf-8")); + const defaultFields = ejson_1.default.parse(fs_1.default.readFileSync(defaultTableFieldsJSONFilePath, "utf-8")); const dbTablesSchemas = datasquirelSchema.tables.map((tblSchm) => { - let newDefaultFields = _.cloneDeep(defaultFields); + let newDefaultFields = lodash_1.default.cloneDeep(defaultFields); return Object.assign(Object.assign({}, tblSchm), { fields: tblSchm.fields.find((fld) => fld.fieldName == "id") ? tblSchm.fields : [ @@ -33,9 +39,9 @@ export default function dbSchemaToType(params) { ] }); }); const defDbName = (_b = (datasquirelSchema.dbName || - ((_a = datasquirelSchema.dbFullName) === null || _a === void 0 ? void 0 : _a.replace(new RegExp(`${AppNames["DsqlDbPrefix"]}\\d+_`), "")))) === null || _b === void 0 ? void 0 : _b.toUpperCase().replace(/ /g, "_"); + ((_a = datasquirelSchema.dbFullName) === null || _a === void 0 ? void 0 : _a.replace(new RegExp(`${app_names_1.AppNames["DsqlDbPrefix"]}\\d+_`), "")))) === null || _b === void 0 ? void 0 : _b.toUpperCase().replace(/ /g, "_"); const schemas = dbTablesSchemas - .map((table) => generateTypeDefinition({ + .map((table) => (0, generate_type_definitions_1.default)({ paradigm: "TypeScript", table, typeDefName: `DSQL_${defDbName}_${table.tableName.toUpperCase()}`, diff --git a/dist/package-shared/functions/dsql/decrypt.js b/dist/package-shared/functions/dsql/decrypt.js index 2df37f9..f0fa97b 100644 --- a/dist/package-shared/functions/dsql/decrypt.js +++ b/dist/package-shared/functions/dsql/decrypt.js @@ -1,17 +1,23 @@ +"use strict"; // @ts-check -import { scryptSync, createDecipheriv } from "crypto"; -import { Buffer } from "buffer"; -import grabKeys from "../../utils/grab-keys"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = decrypt; +const crypto_1 = require("crypto"); +const buffer_1 = require("buffer"); +const grab_keys_1 = __importDefault(require("../../utils/grab-keys")); /** * # Decrypt Function */ -export default function decrypt({ encryptedString, encryptionKey, encryptionSalt, }) { +function decrypt({ encryptedString, encryptionKey, encryptionSalt, }) { var _a; if (!(encryptedString === null || encryptedString === void 0 ? void 0 : encryptedString.match(/./))) { console.log("Encrypted string is invalid"); return encryptedString; } - const { key: encrptKey, salt, keyLen, algorithm, bufferAllocSize, } = grabKeys({ encryptionKey }); + const { key: encrptKey, salt, keyLen, algorithm, bufferAllocSize, } = (0, grab_keys_1.default)({ encryptionKey }); if (!(encrptKey === null || encrptKey === void 0 ? void 0 : encrptKey.match(/.{8,}/))) { console.log("Decrption key is invalid"); return encryptedString; @@ -20,9 +26,9 @@ export default function decrypt({ encryptedString, encryptionKey, encryptionSalt console.log("Decrption salt is invalid"); return encryptedString; } - let key = scryptSync(encrptKey, salt, keyLen); - let iv = Buffer.alloc(bufferAllocSize, 0); - const decipher = createDecipheriv(algorithm, key, iv); + let key = (0, crypto_1.scryptSync)(encrptKey, salt, keyLen); + let iv = buffer_1.Buffer.alloc(bufferAllocSize, 0); + const decipher = (0, crypto_1.createDecipheriv)(algorithm, key, iv); try { let decrypted = decipher.update(encryptedString, "hex", "utf8"); decrypted += decipher.final("utf8"); diff --git a/dist/package-shared/functions/dsql/default-fields-regexp.js b/dist/package-shared/functions/dsql/default-fields-regexp.js index 18373b5..c15a175 100644 --- a/dist/package-shared/functions/dsql/default-fields-regexp.js +++ b/dist/package-shared/functions/dsql/default-fields-regexp.js @@ -1,7 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); /** * Regular expression to match default fields * * @description Regular expression to match default fields */ const defaultFieldsRegexp = /^id$|^uuid$|^uid$|^date_created$|^date_created_code$|^date_created_timestamp$|^date_updated$|^date_updated_code$|^date_updated_timestamp$/; -export default defaultFieldsRegexp; +exports.default = defaultFieldsRegexp; diff --git a/dist/package-shared/functions/dsql/encrypt.js b/dist/package-shared/functions/dsql/encrypt.js index 51fc737..55efc1a 100644 --- a/dist/package-shared/functions/dsql/encrypt.js +++ b/dist/package-shared/functions/dsql/encrypt.js @@ -1,17 +1,23 @@ +"use strict"; // @ts-check -import { scryptSync, createCipheriv } from "crypto"; -import { Buffer } from "buffer"; -import grabKeys from "../../utils/grab-keys"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = encrypt; +const crypto_1 = require("crypto"); +const buffer_1 = require("buffer"); +const grab_keys_1 = __importDefault(require("../../utils/grab-keys")); /** * # Encrypt String */ -export default function encrypt({ data, encryptionKey, encryptionSalt, }) { +function encrypt({ data, encryptionKey, encryptionSalt, }) { var _a; if (!(data === null || data === void 0 ? void 0 : data.match(/./))) { console.log("Encryption string is invalid"); return data; } - const { key: encrptKey, salt, keyLen, algorithm, bufferAllocSize, } = grabKeys({ encryptionKey }); + const { key: encrptKey, salt, keyLen, algorithm, bufferAllocSize, } = (0, grab_keys_1.default)({ encryptionKey }); if (!(encrptKey === null || encrptKey === void 0 ? void 0 : encrptKey.match(/.{8,}/))) { console.log("Encryption key is invalid"); return data; @@ -21,9 +27,9 @@ export default function encrypt({ data, encryptionKey, encryptionSalt, }) { return data; } const password = encrptKey; - let key = scryptSync(password, salt, keyLen); - let iv = Buffer.alloc(bufferAllocSize, 0); - const cipher = createCipheriv(algorithm, key, iv); + let key = (0, crypto_1.scryptSync)(password, salt, keyLen); + let iv = buffer_1.Buffer.alloc(bufferAllocSize, 0); + const cipher = (0, crypto_1.createCipheriv)(algorithm, key, iv); try { let encrypted = cipher.update(data, "utf8", "hex"); encrypted += cipher.final("hex"); diff --git a/dist/package-shared/functions/dsql/generate-type-definitions.js b/dist/package-shared/functions/dsql/generate-type-definitions.js index f789350..160392d 100644 --- a/dist/package-shared/functions/dsql/generate-type-definitions.js +++ b/dist/package-shared/functions/dsql/generate-type-definitions.js @@ -1,5 +1,11 @@ -import defaultFieldsRegexp from "./default-fields-regexp"; -export default function generateTypeDefinition({ paradigm, table, query, typeDefName, allValuesOptional, addExport, dbName, }) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = generateTypeDefinition; +const default_fields_regexp_1 = __importDefault(require("./default-fields-regexp")); +function generateTypeDefinition({ paradigm, table, query, typeDefName, allValuesOptional, addExport, dbName, }) { let typeDefinition = ``; try { const tdName = typeDefName @@ -37,7 +43,7 @@ export default function generateTypeDefinition({ paradigm, table, query, typeDef var _a; const nullValue = allValuesOptional ? "?" - : ((_a = field.fieldName) === null || _a === void 0 ? void 0 : _a.match(defaultFieldsRegexp)) + : ((_a = field.fieldName) === null || _a === void 0 ? void 0 : _a.match(default_fields_regexp_1.default)) ? "?" : field.notNullValue ? "" diff --git a/dist/package-shared/functions/dsql/hashPassword.js b/dist/package-shared/functions/dsql/hashPassword.js index 2a8f2f6..2c7ac9b 100644 --- a/dist/package-shared/functions/dsql/hashPassword.js +++ b/dist/package-shared/functions/dsql/hashPassword.js @@ -1,14 +1,20 @@ -import { createHmac } from "crypto"; -import grabKeys from "../../utils/grab-keys"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = hashPassword; +const crypto_1 = require("crypto"); +const grab_keys_1 = __importDefault(require("../../utils/grab-keys")); /** * # Hash password Function */ -export default function hashPassword({ password, encryptionKey, }) { - const { key } = grabKeys({ encryptionKey }); +function hashPassword({ password, encryptionKey, }) { + const { key } = (0, grab_keys_1.default)({ encryptionKey }); if (!(key === null || key === void 0 ? void 0 : key.match(/.{8,}/))) { throw new Error("Encryption key is invalid"); } - const hmac = createHmac("sha512", key); + const hmac = (0, crypto_1.createHmac)("sha512", key); hmac.update(password); let hashed = hmac.digest("base64"); return hashed; diff --git a/dist/package-shared/functions/dsql/sql/sql-delete-generator.js b/dist/package-shared/functions/dsql/sql/sql-delete-generator.js index ea23df9..d0b4e82 100644 --- a/dist/package-shared/functions/dsql/sql/sql-delete-generator.js +++ b/dist/package-shared/functions/dsql/sql/sql-delete-generator.js @@ -1,8 +1,14 @@ -import sqlEqualityParser from "../../../utils/sql-equality-parser"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = sqlDeleteGenerator; +const sql_equality_parser_1 = __importDefault(require("../../../utils/sql-equality-parser")); /** * # SQL Delete Generator */ -export default function sqlDeleteGenerator({ tableName, deleteKeyValues, dbFullName, data, }) { +function sqlDeleteGenerator({ tableName, deleteKeyValues, dbFullName, data, }) { const finalDbName = dbFullName ? `${dbFullName}.` : ""; try { let queryStr = `DELETE FROM ${finalDbName}${tableName}`; @@ -30,7 +36,7 @@ export default function sqlDeleteGenerator({ tableName, deleteKeyValues, dbFullN const parsedValue = typeof value == "number" ? String(value) : value; if (!parsedValue) return; - const operator = sqlEqualityParser(ky.operator || "EQUAL"); + const operator = (0, sql_equality_parser_1.default)(ky.operator || "EQUAL"); deleteBatch.push(`${ky.key} ${operator} ?`); queryArr.push(parsedValue); }); diff --git a/dist/package-shared/functions/dsql/sql/sql-gen-operator-gen.js b/dist/package-shared/functions/dsql/sql/sql-gen-operator-gen.js index 9b42ebd..3e201c6 100644 --- a/dist/package-shared/functions/dsql/sql/sql-gen-operator-gen.js +++ b/dist/package-shared/functions/dsql/sql/sql-gen-operator-gen.js @@ -1,9 +1,15 @@ -import sqlEqualityParser from "../../../utils/sql-equality-parser"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = sqlGenOperatorGen; +const sql_equality_parser_1 = __importDefault(require("../../../utils/sql-equality-parser")); /** * # SQL Gen Operator Gen * @description Generates an SQL operator for node module `mysql` or `serverless-mysql` */ -export default function sqlGenOperatorGen({ fieldName, value, equality, }) { +function sqlGenOperatorGen({ fieldName, value, equality, }) { if (value) { if (equality == "LIKE") { return `LOWER(${fieldName}) LIKE LOWER('%${value}%')`; @@ -27,7 +33,7 @@ export default function sqlGenOperatorGen({ fieldName, value, equality, }) { return `${fieldName} != ${value}`; } else if (equality) { - return `${fieldName} ${sqlEqualityParser(equality)} ${value}`; + return `${fieldName} ${(0, sql_equality_parser_1.default)(equality)} ${value}`; } else { return `${fieldName} = ${value}`; @@ -41,7 +47,7 @@ export default function sqlGenOperatorGen({ fieldName, value, equality, }) { return `${fieldName} IS NOT NULL`; } else if (equality) { - return `${fieldName} ${sqlEqualityParser(equality)} ?`; + return `${fieldName} ${(0, sql_equality_parser_1.default)(equality)} ?`; } else { return `${fieldName} = ?`; diff --git a/dist/package-shared/functions/dsql/sql/sql-generator.js b/dist/package-shared/functions/dsql/sql/sql-generator.js index e98f33a..e4f4eaf 100644 --- a/dist/package-shared/functions/dsql/sql/sql-generator.js +++ b/dist/package-shared/functions/dsql/sql/sql-generator.js @@ -1,9 +1,15 @@ -import sqlEqualityParser from "../../../utils/sql-equality-parser"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = sqlGenerator; +const sql_equality_parser_1 = __importDefault(require("../../../utils/sql-equality-parser")); /** * # SQL Query Generator * @description Generates an SQL Query for node module `mysql` or `serverless-mysql` */ -export default function sqlGenerator({ tableName, genObject, dbFullName, count }) { +function sqlGenerator({ tableName, genObject, dbFullName, count }) { var _a; const finalQuery = (genObject === null || genObject === void 0 ? void 0 : genObject.query) ? genObject.query : undefined; const queryKeys = finalQuery ? Object.keys(finalQuery) : undefined; @@ -32,7 +38,7 @@ export default function sqlGenerator({ tableName, genObject, dbFullName, count } else if (typeof queryObj.value == "string" || typeof queryObj.value == "number") { const valueParsed = String(queryObj.value); - const operator = sqlEqualityParser(queryObj.equality || "EQUAL"); + const operator = (0, sql_equality_parser_1.default)(queryObj.equality || "EQUAL"); if (queryObj.equality == "LIKE") { str = `LOWER(${finalFieldName}) LIKE LOWER('%${valueParsed}%')`; } diff --git a/dist/package-shared/functions/dsql/sql/sql-insert-generator.js b/dist/package-shared/functions/dsql/sql/sql-insert-generator.js index dd0f38e..12543e2 100644 --- a/dist/package-shared/functions/dsql/sql/sql-insert-generator.js +++ b/dist/package-shared/functions/dsql/sql/sql-insert-generator.js @@ -1,8 +1,11 @@ +"use strict"; // @ts-check +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = sqlInsertGenerator; /** * # SQL Insert Generator */ -export default function sqlInsertGenerator({ tableName, data, dbFullName, }) { +function sqlInsertGenerator({ tableName, data, dbFullName, }) { const finalDbName = dbFullName ? `${dbFullName}.` : ""; try { if (Array.isArray(data) && (data === null || data === void 0 ? void 0 : data[0])) { diff --git a/dist/package-shared/functions/dsql/sync-databases/index.js b/dist/package-shared/functions/dsql/sync-databases/index.js index c2ac534..8208b70 100644 --- a/dist/package-shared/functions/dsql/sync-databases/index.js +++ b/dist/package-shared/functions/dsql/sync-databases/index.js @@ -1,8 +1,22 @@ -import mysql from "mysql"; -import { exec } from "child_process"; -import { promisify } from "util"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const mysql_1 = __importDefault(require("mysql")); +const child_process_1 = require("child_process"); +const util_1 = require("util"); function getConnection(config) { - return mysql.createConnection(config); + return mysql_1.default.createConnection(config); } function getMasterStatus(config) { return new Promise((resolve, reject) => { @@ -16,67 +30,73 @@ function getMasterStatus(config) { }); }); } -async function syncDatabases() { - const config = { - host: "localhost", - user: "root", - password: "your_password", - }; - let lastPosition = null; // Track last synced position - while (true) { - try { - // Get current master status - const { File, Position } = await getMasterStatus(config); - // Determine start position (use lastPosition or 4 if first run) - const startPosition = lastPosition !== null ? lastPosition + 1 : 4; - if (startPosition >= Position) { - await new Promise((resolve) => setTimeout(resolve, 5000)); // Wait 5 seconds if no new changes - continue; - } - // Execute mysqlbinlog to get changes - const execPromise = promisify(exec); - const { stdout } = await execPromise(`mysqlbinlog --database=db_master ${File} --start-position=${startPosition} --stop-position=${Position}`); - if (stdout) { - const connection = getConnection(Object.assign(Object.assign({}, config), { database: "db_slave" })); - return new Promise((resolve, reject) => { - connection.query(stdout, (error) => { - connection.end(); - if (error) - reject(error); - else { - lastPosition = Position; - console.log(`Synced up to position ${Position} at ${new Date().toISOString()}`); - resolve(null); - } +function syncDatabases() { + return __awaiter(this, void 0, void 0, function* () { + const config = { + host: "localhost", + user: "root", + password: "your_password", + }; + let lastPosition = null; // Track last synced position + while (true) { + try { + // Get current master status + const { File, Position } = yield getMasterStatus(config); + // Determine start position (use lastPosition or 4 if first run) + const startPosition = lastPosition !== null ? lastPosition + 1 : 4; + if (startPosition >= Position) { + yield new Promise((resolve) => setTimeout(resolve, 5000)); // Wait 5 seconds if no new changes + continue; + } + // Execute mysqlbinlog to get changes + const execPromise = (0, util_1.promisify)(child_process_1.exec); + const { stdout } = yield execPromise(`mysqlbinlog --database=db_master ${File} --start-position=${startPosition} --stop-position=${Position}`); + if (stdout) { + const connection = getConnection(Object.assign(Object.assign({}, config), { database: "db_slave" })); + return new Promise((resolve, reject) => { + connection.query(stdout, (error) => { + connection.end(); + if (error) + reject(error); + else { + lastPosition = Position; + console.log(`Synced up to position ${Position} at ${new Date().toISOString()}`); + resolve(null); + } + }); }); - }); + } } + catch (error) { + console.error("Sync error:", error); + } + yield new Promise((resolve) => setTimeout(resolve, 5000)); // Check every 5 seconds } - catch (error) { - console.error("Sync error:", error); - } - await new Promise((resolve) => setTimeout(resolve, 5000)); // Check every 5 seconds - } + }); } // Initialize db_slave with db_master data -async function initializeSlave() { - const config = { - host: "localhost", - user: "root", - password: "your_password", - }; - try { - await promisify(exec)(`mysqldump -u ${config.user} -p${config.password} db_master > db_master_backup.sql`); - await promisify(exec)(`mysql -u ${config.user} -p${config.password} db_slave < db_master_backup.sql`); - console.log("Slave initialized with master data"); - } - catch (error) { - console.error("Initialization error:", error); - } +function initializeSlave() { + return __awaiter(this, void 0, void 0, function* () { + const config = { + host: "localhost", + user: "root", + password: "your_password", + }; + try { + yield (0, util_1.promisify)(child_process_1.exec)(`mysqldump -u ${config.user} -p${config.password} db_master > db_master_backup.sql`); + yield (0, util_1.promisify)(child_process_1.exec)(`mysql -u ${config.user} -p${config.password} db_slave < db_master_backup.sql`); + console.log("Slave initialized with master data"); + } + catch (error) { + console.error("Initialization error:", error); + } + }); } // Run the sync process -async function main() { - await initializeSlave(); - await syncDatabases(); +function main() { + return __awaiter(this, void 0, void 0, function* () { + yield initializeSlave(); + yield syncDatabases(); + }); } main().catch(console.error); diff --git a/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/grab-trigger-name.js b/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/grab-trigger-name.js index 90f7787..82f07c2 100644 --- a/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/grab-trigger-name.js +++ b/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/grab-trigger-name.js @@ -1,5 +1,9 @@ -export const TriggerParadigms = ["sync_tables", "sync_dbs"]; -export default function grabTriggerName({ userId, paradigm, dbId, tableName, }) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TriggerParadigms = void 0; +exports.default = grabTriggerName; +exports.TriggerParadigms = ["sync_tables", "sync_dbs"]; +function grabTriggerName({ userId, paradigm, dbId, tableName, }) { let triggerName = `dsql_trig_${paradigm}`; if (userId) triggerName += `_${userId}`; diff --git a/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/stored-proceedure-sql-gen.js b/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/stored-proceedure-sql-gen.js index 7a938e6..80d4b8d 100644 --- a/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/stored-proceedure-sql-gen.js +++ b/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/stored-proceedure-sql-gen.js @@ -1,3 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = triggerSQLGen; const TriggerTypes = [ { name: "after_insert", @@ -12,7 +15,7 @@ const TriggerTypes = [ value: "DELETE", }, ]; -export default function triggerSQLGen({ type, srcDbSchema, srcTableSchema, content, proceedureName, }) { +function triggerSQLGen({ type, srcDbSchema, srcTableSchema, content, proceedureName, }) { let sql = `DELIMITER //\n`; sql += `CREATE PROCEDURE ${proceedureName}`; sql += `\nBEGIN`; diff --git a/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/table-replication-trigger-sql-gen.js b/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/table-replication-trigger-sql-gen.js index 0a6a26f..10e1796 100644 --- a/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/table-replication-trigger-sql-gen.js +++ b/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/table-replication-trigger-sql-gen.js @@ -1,5 +1,11 @@ -import triggerSQLGen from "./trigger-sql-gen"; -export default function tableReplicationTriggerSQLGen({ type, dstDbSchema, dstTableSchema, srcDbSchema, srcTableSchema, userId, paradigm, }) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = tableReplicationTriggerSQLGen; +const trigger_sql_gen_1 = __importDefault(require("./trigger-sql-gen")); +function tableReplicationTriggerSQLGen({ type, dstDbSchema, dstTableSchema, srcDbSchema, srcTableSchema, userId, paradigm, }) { let sql = `CREATE TRIGGER`; const srcColumns = srcTableSchema.fields .map((fld) => fld.fieldName) @@ -21,7 +27,7 @@ export default function tableReplicationTriggerSQLGen({ type, dstDbSchema, dstTa sql += ` DELETE FROM ${dstDbSchema.dbFullName}.${dstTableSchema.tableName}`; sql += ` WHERE id = OLD.id`; } - return triggerSQLGen({ + return (0, trigger_sql_gen_1.default)({ content: sql, srcDbSchema, srcTableSchema, diff --git a/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/trigger-sql-gen.js b/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/trigger-sql-gen.js index 5245599..78e9756 100644 --- a/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/trigger-sql-gen.js +++ b/dist/package-shared/functions/dsql/triggers-and-stored-proceedures/trigger-sql-gen.js @@ -1,4 +1,10 @@ -import grabTriggerName from "./grab-trigger-name"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = triggerSQLGen; +const grab_trigger_name_1 = __importDefault(require("./grab-trigger-name")); const TriggerTypes = [ { name: "after_insert", @@ -13,9 +19,9 @@ const TriggerTypes = [ value: "DELETE", }, ]; -export default function triggerSQLGen({ type, srcDbSchema, srcTableSchema, content, userId, paradigm, }) { +function triggerSQLGen({ type, srcDbSchema, srcTableSchema, content, userId, paradigm, }) { let sql = `CREATE TRIGGER`; - let triggerName = grabTriggerName({ + let triggerName = (0, grab_trigger_name_1.default)({ paradigm, dbId: srcDbSchema.id, tableName: srcTableSchema.tableName, diff --git a/dist/package-shared/functions/email/fns/validate-email.js b/dist/package-shared/functions/email/fns/validate-email.js index 14590fa..a9ee328 100644 --- a/dist/package-shared/functions/email/fns/validate-email.js +++ b/dist/package-shared/functions/email/fns/validate-email.js @@ -1,38 +1,55 @@ -import handleNodemailer from "../../backend/handleNodemailer"; -import emailMxLookup from "../verification/email-mx-lookup"; -import emailRegexCheck from "../verification/email-regex-test"; -export default async function validateEmail({ email, welcomeEmailOptions, }) { - var _a; - if (!email) { - return { - isValid: false, - message: "Email is required.", - }; - } - if (!emailRegexCheck(email)) { - return { - isValid: false, - message: "Invalid email format.", - }; - } - const checkEmailMxRecords = await emailMxLookup(email); - if (!checkEmailMxRecords) { - return { - isValid: false, - message: "Email domain does not have valid MX records.", - }; - } - if (welcomeEmailOptions) { - const welcomeEmail = await handleNodemailer(welcomeEmailOptions); - if (!((_a = welcomeEmail === null || welcomeEmail === void 0 ? void 0 : welcomeEmail.accepted) === null || _a === void 0 ? void 0 : _a[0])) { +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = validateEmail; +const handleNodemailer_1 = __importDefault(require("../../backend/handleNodemailer")); +const email_mx_lookup_1 = __importDefault(require("../verification/email-mx-lookup")); +const email_regex_test_1 = __importDefault(require("../verification/email-regex-test")); +function validateEmail(_a) { + return __awaiter(this, arguments, void 0, function* ({ email, welcomeEmailOptions, }) { + var _b; + if (!email) { return { isValid: false, - message: "Email verification failed.", + message: "Email is required.", }; } - } - return { - isValid: true, - message: "Email is valid.", - }; + if (!(0, email_regex_test_1.default)(email)) { + return { + isValid: false, + message: "Invalid email format.", + }; + } + const checkEmailMxRecords = yield (0, email_mx_lookup_1.default)(email); + if (!checkEmailMxRecords) { + return { + isValid: false, + message: "Email domain does not have valid MX records.", + }; + } + if (welcomeEmailOptions) { + const welcomeEmail = yield (0, handleNodemailer_1.default)(welcomeEmailOptions); + if (!((_b = welcomeEmail === null || welcomeEmail === void 0 ? void 0 : welcomeEmail.accepted) === null || _b === void 0 ? void 0 : _b[0])) { + return { + isValid: false, + message: "Email verification failed.", + }; + } + } + return { + isValid: true, + message: "Email is valid.", + }; + }); } diff --git a/dist/package-shared/functions/email/verification/email-mx-lookup.js b/dist/package-shared/functions/email/verification/email-mx-lookup.js index 6ad264d..de82543 100644 --- a/dist/package-shared/functions/email/verification/email-mx-lookup.js +++ b/dist/package-shared/functions/email/verification/email-mx-lookup.js @@ -1,16 +1,22 @@ -import dns from "dns"; -import debugLog from "../../../utils/logging/debug-log"; -export default function emailMxLookup(email, debug) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = emailMxLookup; +const dns_1 = __importDefault(require("dns")); +const debug_log_1 = __importDefault(require("../../../utils/logging/debug-log")); +function emailMxLookup(email, debug) { return new Promise((resolve, reject) => { if (!email) { resolve(false); return; } const domain = email.split("@")[1]; - dns.resolveMx(domain, (err, addresses) => { + dns_1.default.resolveMx(domain, (err, addresses) => { if (err || !addresses.length) { if (debug) { - debugLog({ + (0, debug_log_1.default)({ log: (err === null || err === void 0 ? void 0 : err.message) || "No MX records found", addTime: true, label: "Email MX Lookup", @@ -21,7 +27,7 @@ export default function emailMxLookup(email, debug) { } else { if (debug) { - debugLog({ + (0, debug_log_1.default)({ log: addresses, addTime: true, label: "MX Records", diff --git a/dist/package-shared/functions/email/verification/email-regex-test.js b/dist/package-shared/functions/email/verification/email-regex-test.js index 431bdf1..d954198 100644 --- a/dist/package-shared/functions/email/verification/email-regex-test.js +++ b/dist/package-shared/functions/email/verification/email-regex-test.js @@ -1,4 +1,7 @@ -export default function emailRegexCheck(email) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = emailRegexCheck; +function emailRegexCheck(email) { const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return regex.test(email); } diff --git a/dist/package-shared/functions/email/verification/smtp-verification.js b/dist/package-shared/functions/email/verification/smtp-verification.js index 7232d0c..75b3c0e 100644 --- a/dist/package-shared/functions/email/verification/smtp-verification.js +++ b/dist/package-shared/functions/email/verification/smtp-verification.js @@ -1,16 +1,22 @@ -import net from "net"; -import dns from "dns"; -export default function verifyEmailSMTP(email) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = verifyEmailSMTP; +const net_1 = __importDefault(require("net")); +const dns_1 = __importDefault(require("dns")); +function verifyEmailSMTP(email) { return new Promise((resolve, reject) => { const domain = email.split("@")[1]; - dns.resolveMx(domain, (err, addresses) => { + dns_1.default.resolveMx(domain, (err, addresses) => { if (err || !addresses.length) { console.log("Invalid email domain."); return; } const mxServer = addresses[0].exchange; console.log(`Connecting to ${mxServer} to verify email...`); - const client = net.createConnection(25, mxServer); + const client = net_1.default.createConnection(25, mxServer); client.on("connect", () => { console.log("Connected to SMTP server."); client.write("HELO example.com\r\n"); diff --git a/dist/package-shared/functions/web-app/db/grab-user-resource/index.js b/dist/package-shared/functions/web-app/db/grab-user-resource/index.js index 26710ed..f719a7b 100644 --- a/dist/package-shared/functions/web-app/db/grab-user-resource/index.js +++ b/dist/package-shared/functions/web-app/db/grab-user-resource/index.js @@ -1,24 +1,41 @@ -import dsqlCrud from "../../../../utils/data-fetching/crud"; -import query from "./query"; -import _n from "../../../../utils/numberfy"; -export default async function dbGrabUserResource(params) { - let queryObject = query(params); - let result = await dsqlCrud({ - action: "get", - table: params.tableName, - query: queryObject, - count: params.count, - countOnly: params.countOnly, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = dbGrabUserResource; +const crud_1 = __importDefault(require("../../../../utils/data-fetching/crud")); +const query_1 = __importDefault(require("./query")); +const numberfy_1 = __importDefault(require("../../../../utils/numberfy")); +function dbGrabUserResource(params) { + return __awaiter(this, void 0, void 0, function* () { + let queryObject = (0, query_1.default)(params); + let result = yield (0, crud_1.default)({ + action: "get", + table: params.tableName, + query: queryObject, + count: params.count, + countOnly: params.countOnly, + }); + const payload = result === null || result === void 0 ? void 0 : result.payload; + return { + batch: payload || null, + single: (payload === null || payload === void 0 ? void 0 : payload[0]) || null, + debug: { + queryObject: result === null || result === void 0 ? void 0 : result.queryObject, + error: result === null || result === void 0 ? void 0 : result.error, + msg: result === null || result === void 0 ? void 0 : result.msg, + }, + count: (0, numberfy_1.default)(result === null || result === void 0 ? void 0 : result.count), + }; }); - const payload = result === null || result === void 0 ? void 0 : result.payload; - return { - batch: payload || null, - single: (payload === null || payload === void 0 ? void 0 : payload[0]) || null, - debug: { - queryObject: result === null || result === void 0 ? void 0 : result.queryObject, - error: result === null || result === void 0 ? void 0 : result.error, - msg: result === null || result === void 0 ? void 0 : result.msg, - }, - count: _n(result === null || result === void 0 ? void 0 : result.count), - }; } diff --git a/dist/package-shared/functions/web-app/db/grab-user-resource/query.js b/dist/package-shared/functions/web-app/db/grab-user-resource/query.js index fd9e952..4dea615 100644 --- a/dist/package-shared/functions/web-app/db/grab-user-resource/query.js +++ b/dist/package-shared/functions/web-app/db/grab-user-resource/query.js @@ -1,9 +1,15 @@ -import _ from "lodash"; -import ResourceLimits from "../../../../dict/resource-limits"; -import _n from "../../../../utils/numberfy"; -export default function (params) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = default_1; +const lodash_1 = __importDefault(require("lodash")); +const resource_limits_1 = __importDefault(require("../../../../dict/resource-limits")); +const numberfy_1 = __importDefault(require("../../../../utils/numberfy")); +function default_1(params) { let queryObject = { - limit: (params === null || params === void 0 ? void 0 : params.noLimit) ? undefined : ResourceLimits["general"], + limit: (params === null || params === void 0 ? void 0 : params.noLimit) ? undefined : resource_limits_1.default["general"], order: { field: "id", strategy: "DESC", @@ -13,11 +19,11 @@ export default function (params) { const targetIDQuery = { query: { id: { - value: _n(params.targetID).toString(), + value: (0, numberfy_1.default)(params.targetID).toString(), }, }, }; - queryObject = _.merge(queryObject, targetIDQuery); + queryObject = lodash_1.default.merge(queryObject, targetIDQuery); } let queryFixedObject = (params === null || params === void 0 ? void 0 : params.isSuperUser) ? {} @@ -28,5 +34,5 @@ export default function (params) { }, }, }; - return _.merge(queryObject, params === null || params === void 0 ? void 0 : params.query, queryFixedObject); + return lodash_1.default.merge(queryObject, params === null || params === void 0 ? void 0 : params.query, queryFixedObject); } diff --git a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-creation.js b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-creation.js index 3fb9a96..aa9e9fc 100644 --- a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-creation.js +++ b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-creation.js @@ -1,52 +1,72 @@ -import dbHandler from "../../backend/dbHandler"; -import normalizeText from "../../../utils/normalize-text"; -import decrypt from "../../dsql/decrypt"; -export default async function handleMariadbUserCreation({ user, existingRecord, updatedRecord, }) { - const parsedPassword = decrypt({ - encryptedString: (updatedRecord === null || updatedRecord === void 0 ? void 0 : updatedRecord.password) || "", +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - if ((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) && (updatedRecord === null || updatedRecord === void 0 ? void 0 : updatedRecord.id)) { - if (existingRecord.username !== updatedRecord.username || - existingRecord.host !== updatedRecord.host) { - const renameSQLUser = await dbHandler({ - query: normalizeText(` +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleMariadbUserCreation; +exports.createNewSQLUser = createNewSQLUser; +const dbHandler_1 = __importDefault(require("../../backend/dbHandler")); +const normalize_text_1 = __importDefault(require("../../../utils/normalize-text")); +const decrypt_1 = __importDefault(require("../../dsql/decrypt")); +function handleMariadbUserCreation(_a) { + return __awaiter(this, arguments, void 0, function* ({ user, existingRecord, updatedRecord, }) { + const parsedPassword = (0, decrypt_1.default)({ + encryptedString: (updatedRecord === null || updatedRecord === void 0 ? void 0 : updatedRecord.password) || "", + }); + if ((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) && (updatedRecord === null || updatedRecord === void 0 ? void 0 : updatedRecord.id)) { + if (existingRecord.username !== updatedRecord.username || + existingRecord.host !== updatedRecord.host) { + const renameSQLUser = yield (0, dbHandler_1.default)({ + query: (0, normalize_text_1.default)(` RENAME USER '${existingRecord.username}'@'${existingRecord.host}' \ TO '${updatedRecord.username}'@'${updatedRecord.host}' `), + }); + if (!renameSQLUser) { + yield createNewSQLUser({ + host: updatedRecord.host, + password: parsedPassword, + username: updatedRecord.username, + }); + } + } + const updateSQLUser = yield (0, dbHandler_1.default)({ + query: (0, normalize_text_1.default)(` + ALTER USER '${updatedRecord.username}'@'${updatedRecord.host}' \ + IDENTIFIED BY '${parsedPassword}' + `), }); - if (!renameSQLUser) { - await createNewSQLUser({ + if (!updateSQLUser) { + yield createNewSQLUser({ host: updatedRecord.host, password: parsedPassword, username: updatedRecord.username, }); } } - const updateSQLUser = await dbHandler({ - query: normalizeText(` - ALTER USER '${updatedRecord.username}'@'${updatedRecord.host}' \ - IDENTIFIED BY '${parsedPassword}' - `), - }); - if (!updateSQLUser) { - await createNewSQLUser({ + else if (!(existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) && (updatedRecord === null || updatedRecord === void 0 ? void 0 : updatedRecord.id)) { + yield createNewSQLUser({ host: updatedRecord.host, password: parsedPassword, username: updatedRecord.username, }); } - } - else if (!(existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) && (updatedRecord === null || updatedRecord === void 0 ? void 0 : updatedRecord.id)) { - await createNewSQLUser({ - host: updatedRecord.host, - password: parsedPassword, - username: updatedRecord.username, - }); - } - return { success: true }; -} -export async function createNewSQLUser({ host, password, username, }) { - return await dbHandler({ - query: `CREATE USER IF NOT EXISTS '${username}'@'${host}' IDENTIFIED BY '${password}'`, + return { success: true }; + }); +} +function createNewSQLUser(_a) { + return __awaiter(this, arguments, void 0, function* ({ host, password, username, }) { + return yield (0, dbHandler_1.default)({ + query: `CREATE USER IF NOT EXISTS '${username}'@'${host}' IDENTIFIED BY '${password}'`, + }); }); } diff --git a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-cleanup-records.js b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-cleanup-records.js index 3cf42af..6546d75 100644 --- a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-cleanup-records.js +++ b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-cleanup-records.js @@ -1,31 +1,48 @@ -import dsqlCrud from "../../../utils/data-fetching/crud"; -export default async function handleMariadbUserGrantsForDatabasesCleanUpRecords({ user, updatedRecord, }) { - /** - * # Clean up Records - */ - await dsqlCrud({ - action: "delete", - table: "mariadb_user_databases", - deleteData: { - user_id: user.id, - mariadb_user_id: updatedRecord.id, - }, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - await dsqlCrud({ - action: "delete", - table: "mariadb_user_privileges", - deleteData: { - user_id: user.id, - mariadb_user_id: updatedRecord.id, - }, +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleMariadbUserGrantsForDatabasesCleanUpRecords; +const crud_1 = __importDefault(require("../../../utils/data-fetching/crud")); +function handleMariadbUserGrantsForDatabasesCleanUpRecords(_a) { + return __awaiter(this, arguments, void 0, function* ({ user, updatedRecord, }) { + /** + * # Clean up Records + */ + yield (0, crud_1.default)({ + action: "delete", + table: "mariadb_user_databases", + deleteData: { + user_id: user.id, + mariadb_user_id: updatedRecord.id, + }, + }); + yield (0, crud_1.default)({ + action: "delete", + table: "mariadb_user_privileges", + deleteData: { + user_id: user.id, + mariadb_user_id: updatedRecord.id, + }, + }); + yield (0, crud_1.default)({ + action: "delete", + table: "mariadb_user_tables", + deleteData: { + user_id: user.id, + mariadb_user_id: updatedRecord.id, + }, + }); + return { success: true }; }); - await dsqlCrud({ - action: "delete", - table: "mariadb_user_tables", - deleteData: { - user_id: user.id, - mariadb_user_id: updatedRecord.id, - }, - }); - return { success: true }; } diff --git a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-recreate-grants.js b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-recreate-grants.js index 6ffb16f..ab1eb9d 100644 --- a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-recreate-grants.js +++ b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-recreate-grants.js @@ -1,68 +1,85 @@ -import { UserSQLPermissions, } from "../../../types"; -import grabDbFullName from "../../../utils/grab-db-full-name"; -import dbHandler from "../../backend/dbHandler"; -import normalizeText from "../../../utils/normalize-text"; -export default async function handleMariadbUserGrantsForDatabasesRecreateGrants({ currentAccessedDatabase, user, updatedRecord, }) { - const { accessedDatabase, dbSlug, allGrants, allTables, grants, tables } = currentAccessedDatabase; - const dbFullName = grabDbFullName({ - user, - dbName: dbSlug, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - if (allGrants && allTables) { - const grantAllPrivileges = await dbHandler({ - query: normalizeText(` +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleMariadbUserGrantsForDatabasesRecreateGrants; +const types_1 = require("../../../types"); +const grab_db_full_name_1 = __importDefault(require("../../../utils/grab-db-full-name")); +const dbHandler_1 = __importDefault(require("../../backend/dbHandler")); +const normalize_text_1 = __importDefault(require("../../../utils/normalize-text")); +function handleMariadbUserGrantsForDatabasesRecreateGrants(_a) { + return __awaiter(this, arguments, void 0, function* ({ currentAccessedDatabase, user, updatedRecord, }) { + const { accessedDatabase, dbSlug, allGrants, allTables, grants, tables } = currentAccessedDatabase; + const dbFullName = (0, grab_db_full_name_1.default)({ + user, + dbName: dbSlug, + }); + if (allGrants && allTables) { + const grantAllPrivileges = yield (0, dbHandler_1.default)({ + query: (0, normalize_text_1.default)(` GRANT ALL PRIVILEGES ON \`${dbFullName}\`.* TO \ '${updatedRecord.username}'@'${updatedRecord.host}' `), - }); - return { success: true }; - } - if (allGrants && (tables === null || tables === void 0 ? void 0 : tables[0])) { - for (let t = 0; t < tables.length; t++) { - const table = tables[t]; - // queries.push( - // normalizeText(` - // GRANT ALL PRIVILEGES ON \`${dbFullName}\`.\`${table.tableSlug}\` \ - // TO '${updatedRecord.username}'@'${updatedRecord.host}' - // `) - // ); - const grantAllPrivilegesToTables = await dbHandler({ - query: normalizeText(` + }); + return { success: true }; + } + if (allGrants && (tables === null || tables === void 0 ? void 0 : tables[0])) { + for (let t = 0; t < tables.length; t++) { + const table = tables[t]; + // queries.push( + // normalizeText(` + // GRANT ALL PRIVILEGES ON \`${dbFullName}\`.\`${table.tableSlug}\` \ + // TO '${updatedRecord.username}'@'${updatedRecord.host}' + // `) + // ); + const grantAllPrivilegesToTables = yield (0, dbHandler_1.default)({ + query: (0, normalize_text_1.default)(` GRANT ALL PRIVILEGES ON \`${dbFullName}\`.\`${table.tableSlug}\` \ TO '${updatedRecord.username}'@'${updatedRecord.host}' `), - }); - } - return { success: true }; - } - if (grants === null || grants === void 0 ? void 0 : grants[0]) { - const isGrantsInalid = grants.find((g) => !UserSQLPermissions.includes(g)); - if (isGrantsInalid) { - return { msg: `grants is/are invalid!` }; - } - if (tables === null || tables === void 0 ? void 0 : tables[0]) { - for (let t = 0; t < tables.length; t++) { - const table = tables[t]; - const grantSpecificPrivilegesToTables = await dbHandler({ - query: normalizeText(` - GRANT ${grants.join(",")} ON \ - \`${dbFullName}\`.\`${table.tableSlug}\` TO \ - '${updatedRecord.username}'@'${updatedRecord.host}' - `), }); } return { success: true }; } - else { - const grantSecificPrivilegesToAllTables = await dbHandler({ - query: normalizeText(` + if (grants === null || grants === void 0 ? void 0 : grants[0]) { + const isGrantsInalid = grants.find((g) => !types_1.UserSQLPermissions.includes(g)); + if (isGrantsInalid) { + return { msg: `grants is/are invalid!` }; + } + if (tables === null || tables === void 0 ? void 0 : tables[0]) { + for (let t = 0; t < tables.length; t++) { + const table = tables[t]; + const grantSpecificPrivilegesToTables = yield (0, dbHandler_1.default)({ + query: (0, normalize_text_1.default)(` + GRANT ${grants.join(",")} ON \ + \`${dbFullName}\`.\`${table.tableSlug}\` TO \ + '${updatedRecord.username}'@'${updatedRecord.host}' + `), + }); + } + return { success: true }; + } + else { + const grantSecificPrivilegesToAllTables = yield (0, dbHandler_1.default)({ + query: (0, normalize_text_1.default)(` GRANT ${grants.join(",")} ON \ \`${dbFullName}\`.* TO \ '${updatedRecord.username}'@'${updatedRecord.host}' `), - }); - return { success: true }; + }); + return { success: true }; + } } - } - return { success: true }; + return { success: true }; + }); } diff --git a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-recreate-records.js b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-recreate-records.js index ea3143a..8798819 100644 --- a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-recreate-records.js +++ b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases-recreate-records.js @@ -1,60 +1,77 @@ -import { UserSQLPermissions, } from "../../../types"; -import dsqlCrud from "../../../utils/data-fetching/crud"; -import _n from "../../../utils/numberfy"; -export default async function handleMariadbUserGrantsForDatabasesRecreateRecordsForDatabase({ currentAccessedDatabase, user, updatedRecord, }) { - const { accessedDatabase, dbSlug, allGrants, allTables, grants, tables } = currentAccessedDatabase; - const insertSQLDbRecord = await dsqlCrud({ - action: "insert", - table: "mariadb_user_databases", - data: { - all_privileges: allGrants ? 1 : 0, - all_tables: allTables ? 1 : 0, - db_id: _n(accessedDatabase.dbId), - db_slug: accessedDatabase.dbSlug, - db_schema_id: _n(accessedDatabase.dbSchemaId), - user_id: user.id, - mariadb_user_id: updatedRecord.id, - }, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - if (tables === null || tables === void 0 ? void 0 : tables[0]) { - for (let t = 0; t < tables.length; t++) { - const table = tables[t]; - const insertTable = await dsqlCrud({ - action: "insert", - table: "mariadb_user_tables", - data: { - all_privileges: allGrants ? 1 : 0, - all_fields: 1, - user_id: user.id, - mariadb_user_id: updatedRecord.id, - table_slug: table.tableSlug, - db_id: _n(table.dbId), - db_slug: table.dbSlug, - db_schema_id: _n(table.dbSchemaId), - }, - }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleMariadbUserGrantsForDatabasesRecreateRecordsForDatabase; +const types_1 = require("../../../types"); +const crud_1 = __importDefault(require("../../../utils/data-fetching/crud")); +const numberfy_1 = __importDefault(require("../../../utils/numberfy")); +function handleMariadbUserGrantsForDatabasesRecreateRecordsForDatabase(_a) { + return __awaiter(this, arguments, void 0, function* ({ currentAccessedDatabase, user, updatedRecord, }) { + const { accessedDatabase, dbSlug, allGrants, allTables, grants, tables } = currentAccessedDatabase; + const insertSQLDbRecord = yield (0, crud_1.default)({ + action: "insert", + table: "mariadb_user_databases", + data: { + all_privileges: allGrants ? 1 : 0, + all_tables: allTables ? 1 : 0, + db_id: (0, numberfy_1.default)(accessedDatabase.dbId), + db_slug: accessedDatabase.dbSlug, + db_schema_id: (0, numberfy_1.default)(accessedDatabase.dbSchemaId), + user_id: user.id, + mariadb_user_id: updatedRecord.id, + }, + }); + if (tables === null || tables === void 0 ? void 0 : tables[0]) { + for (let t = 0; t < tables.length; t++) { + const table = tables[t]; + const insertTable = yield (0, crud_1.default)({ + action: "insert", + table: "mariadb_user_tables", + data: { + all_privileges: allGrants ? 1 : 0, + all_fields: 1, + user_id: user.id, + mariadb_user_id: updatedRecord.id, + table_slug: table.tableSlug, + db_id: (0, numberfy_1.default)(table.dbId), + db_slug: table.dbSlug, + db_schema_id: (0, numberfy_1.default)(table.dbSchemaId), + }, + }); + } } - } - if (grants === null || grants === void 0 ? void 0 : grants[0]) { - const isGrantsInalid = grants.find((g) => !UserSQLPermissions.includes(g)); - if (isGrantsInalid) { - return { msg: `grants is/are invalid!` }; + if (grants === null || grants === void 0 ? void 0 : grants[0]) { + const isGrantsInalid = grants.find((g) => !types_1.UserSQLPermissions.includes(g)); + if (isGrantsInalid) { + return { msg: `grants is/are invalid!` }; + } + for (let t = 0; t < grants.length; t++) { + const grant = grants[t]; + yield (0, crud_1.default)({ + action: "insert", + table: "mariadb_user_privileges", + data: { + user_id: user.id, + mariadb_user_id: updatedRecord.id, + privilege: grant, + db_id: (0, numberfy_1.default)(accessedDatabase.dbId), + db_slug: accessedDatabase.dbSlug, + db_schema_id: (0, numberfy_1.default)(accessedDatabase.dbSchemaId), + }, + }); + } } - for (let t = 0; t < grants.length; t++) { - const grant = grants[t]; - await dsqlCrud({ - action: "insert", - table: "mariadb_user_privileges", - data: { - user_id: user.id, - mariadb_user_id: updatedRecord.id, - privilege: grant, - db_id: _n(accessedDatabase.dbId), - db_slug: accessedDatabase.dbSlug, - db_schema_id: _n(accessedDatabase.dbSchemaId), - }, - }); - } - } - return { success: true }; + return { success: true }; + }); } diff --git a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases.js b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases.js index 8121c03..7645880 100644 --- a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases.js +++ b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants-for-databases.js @@ -1,20 +1,37 @@ -import handleMariadbUserGrantsForDatabasesRecreateRecordsForDatabase from "./handle-mariadb-user-grants-for-databases-recreate-records"; -import handleMariadbUserGrantsForDatabasesRecreateGrants from "./handle-mariadb-user-grants-for-databases-recreate-grants"; -export default async function handleMariadbUserGrantsForDatabases({ accessedDatabases, user, updatedRecord, }) { - /** - * # Recreate Records - */ - for (let i = 0; i < accessedDatabases.length; i++) { - await handleMariadbUserGrantsForDatabasesRecreateRecordsForDatabase({ - currentAccessedDatabase: accessedDatabases[i], - updatedRecord, - user, - }); - await handleMariadbUserGrantsForDatabasesRecreateGrants({ - currentAccessedDatabase: accessedDatabases[i], - updatedRecord, - user, - }); - } - return { success: true }; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleMariadbUserGrantsForDatabases; +const handle_mariadb_user_grants_for_databases_recreate_records_1 = __importDefault(require("./handle-mariadb-user-grants-for-databases-recreate-records")); +const handle_mariadb_user_grants_for_databases_recreate_grants_1 = __importDefault(require("./handle-mariadb-user-grants-for-databases-recreate-grants")); +function handleMariadbUserGrantsForDatabases(_a) { + return __awaiter(this, arguments, void 0, function* ({ accessedDatabases, user, updatedRecord, }) { + /** + * # Recreate Records + */ + for (let i = 0; i < accessedDatabases.length; i++) { + yield (0, handle_mariadb_user_grants_for_databases_recreate_records_1.default)({ + currentAccessedDatabase: accessedDatabases[i], + updatedRecord, + user, + }); + yield (0, handle_mariadb_user_grants_for_databases_recreate_grants_1.default)({ + currentAccessedDatabase: accessedDatabases[i], + updatedRecord, + user, + }); + } + return { success: true }; + }); } diff --git a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants.js b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants.js index 08278c5..6e4c13e 100644 --- a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants.js +++ b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-grants.js @@ -1,62 +1,79 @@ -import { UserSQLPermissions, } from "../../../types"; -import dsqlCrud from "../../../utils/data-fetching/crud"; -import grabDbNames from "../../../utils/grab-db-names"; -import normalizeText from "../../../utils/normalize-text"; -import dbHandler from "../../backend/dbHandler"; -import handleMariadbUserGrantsForDatabases from "./handle-mariadb-user-grants-for-databases"; -import revokeAllExistingGrants from "./revoke-all-existing-grants"; -export default async function handleMariadbUserGrants({ accessedDatabases, grants, isAllDbsAccess, isAllGrants, user, updatedRecord, }) { - const { userDbPrefix } = grabDbNames({ user }); - /** - * # Revoke All Existing Grants - */ - await revokeAllExistingGrants({ updatedRecord, user }); - /** - * # Recreate Grants - */ - if (isAllGrants && isAllDbsAccess) { - const grantAllPrivileges = await dbHandler({ - query: normalizeText(` +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleMariadbUserGrants; +const types_1 = require("../../../types"); +const crud_1 = __importDefault(require("../../../utils/data-fetching/crud")); +const grab_db_names_1 = __importDefault(require("../../../utils/grab-db-names")); +const normalize_text_1 = __importDefault(require("../../../utils/normalize-text")); +const dbHandler_1 = __importDefault(require("../../backend/dbHandler")); +const handle_mariadb_user_grants_for_databases_1 = __importDefault(require("./handle-mariadb-user-grants-for-databases")); +const revoke_all_existing_grants_1 = __importDefault(require("./revoke-all-existing-grants")); +function handleMariadbUserGrants(_a) { + return __awaiter(this, arguments, void 0, function* ({ accessedDatabases, grants, isAllDbsAccess, isAllGrants, user, updatedRecord, }) { + const { userDbPrefix } = (0, grab_db_names_1.default)({ user }); + /** + * # Revoke All Existing Grants + */ + yield (0, revoke_all_existing_grants_1.default)({ updatedRecord, user }); + /** + * # Recreate Grants + */ + if (isAllGrants && isAllDbsAccess) { + const grantAllPrivileges = yield (0, dbHandler_1.default)({ + query: (0, normalize_text_1.default)(` GRANT ALL PRIVILEGES ON \ \`${userDbPrefix.replace(/\_/g, "\\_")}%\`.* TO \ '${updatedRecord.username}'@'${updatedRecord.host}' `), - }); - return { success: true }; - } - if (isAllDbsAccess && grants) { - const isGrantsInalid = grants.find((g) => !UserSQLPermissions.includes(g)); - if (isGrantsInalid) { - return { msg: `grants is/are invalid!` }; + }); + return { success: true }; } - const grantQuery = normalizeText(` + if (isAllDbsAccess && grants) { + const isGrantsInalid = grants.find((g) => !types_1.UserSQLPermissions.includes(g)); + if (isGrantsInalid) { + return { msg: `grants is/are invalid!` }; + } + const grantQuery = (0, normalize_text_1.default)(` GRANT ${grants.join(",")} ON \`${userDbPrefix}%\`.* TO \ '${updatedRecord.username}'@'${updatedRecord.host}' `); - const grantSpecificPrivilegesToAllDbs = await dbHandler({ - query: grantQuery, - }); - for (let t = 0; t < grants.length; t++) { - const grant = grants[t]; - const addGrant = await dsqlCrud({ - action: "insert", - table: "mariadb_user_privileges", - data: { - user_id: user.id, - mariadb_user_id: updatedRecord.id, - privilege: grant, - }, + const grantSpecificPrivilegesToAllDbs = yield (0, dbHandler_1.default)({ + query: grantQuery, }); + for (let t = 0; t < grants.length; t++) { + const grant = grants[t]; + const addGrant = yield (0, crud_1.default)({ + action: "insert", + table: "mariadb_user_privileges", + data: { + user_id: user.id, + mariadb_user_id: updatedRecord.id, + privilege: grant, + }, + }); + } + return { success: true }; } - return { success: true }; - } - if (accessedDatabases === null || accessedDatabases === void 0 ? void 0 : accessedDatabases[0]) { - const res = await handleMariadbUserGrantsForDatabases({ - accessedDatabases, - updatedRecord, - user, - }); - return res; - } - return {}; + if (accessedDatabases === null || accessedDatabases === void 0 ? void 0 : accessedDatabases[0]) { + const res = yield (0, handle_mariadb_user_grants_for_databases_1.default)({ + accessedDatabases, + updatedRecord, + user, + }); + return res; + } + return {}; + }); } diff --git a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-record.js b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-record.js index 2edd842..a3587d4 100644 --- a/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-record.js +++ b/dist/package-shared/functions/web-app/mariadb-user/handle-mariadb-user-record.js @@ -1,54 +1,71 @@ -import grabSQLUserName from "../../../utils/grab-sql-user-name"; -import addDbEntry from "../../backend/db/addDbEntry"; -import encrypt from "../../dsql/encrypt"; -import dbGrabUserResource from "../db/grab-user-resource"; -export default async function handleMariadbUserRecord({ mariadbUser, accessedDatabases, grants, isAllDbsAccess, isAllGrants, user, }) { - var _a, _b, _c; - const { name: finalMariadbUserName } = grabSQLUserName({ - name: mariadbUser.username, - user, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - const finalPassword = (_a = mariadbUser.password) === null || _a === void 0 ? void 0 : _a.replace(/ /g, ""); - if (!finalPassword) - return { msg: `Couldn't get password` }; - const encryptedFinalPassword = encrypt({ data: finalPassword }); - const finalHost = (_b = mariadbUser.host) === null || _b === void 0 ? void 0 : _b.replace(/ /g, ""); - const newMariadbUser = { - password: encryptedFinalPassword || undefined, - username: finalMariadbUserName, - all_databases: isAllDbsAccess ? 1 : 0, - all_grants: isAllGrants ? 1 : 0, - host: finalHost, - user_id: user.id, - }; - let { single: existingRecord } = await dbGrabUserResource({ - tableName: "mariadb_users", - userId: user.id, - query: { +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleMariadbUserRecord; +const grab_sql_user_name_1 = __importDefault(require("../../../utils/grab-sql-user-name")); +const addDbEntry_1 = __importDefault(require("../../backend/db/addDbEntry")); +const encrypt_1 = __importDefault(require("../../dsql/encrypt")); +const grab_user_resource_1 = __importDefault(require("../db/grab-user-resource")); +function handleMariadbUserRecord(_a) { + return __awaiter(this, arguments, void 0, function* ({ mariadbUser, accessedDatabases, grants, isAllDbsAccess, isAllGrants, user, }) { + var _b, _c, _d; + const { name: finalMariadbUserName } = (0, grab_sql_user_name_1.default)({ + name: mariadbUser.username, + user, + }); + const finalPassword = (_b = mariadbUser.password) === null || _b === void 0 ? void 0 : _b.replace(/ /g, ""); + if (!finalPassword) + return { msg: `Couldn't get password` }; + const encryptedFinalPassword = (0, encrypt_1.default)({ data: finalPassword }); + const finalHost = (_c = mariadbUser.host) === null || _c === void 0 ? void 0 : _c.replace(/ /g, ""); + const newMariadbUser = { + password: encryptedFinalPassword || undefined, + username: finalMariadbUserName, + all_databases: isAllDbsAccess ? 1 : 0, + all_grants: isAllGrants ? 1 : 0, + host: finalHost, + user_id: user.id, + }; + let { single: existingRecord } = yield (0, grab_user_resource_1.default)({ + tableName: "mariadb_users", + userId: user.id, query: { - id: { - value: String(mariadbUser.id || 0), + query: { + id: { + value: String(mariadbUser.id || 0), + }, }, }, - }, - }); - const record = await addDbEntry({ - tableName: "mariadb_users", - data: newMariadbUser, - update: true, - duplicateColumnName: "id", - duplicateColumnValue: ((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) || 0).toString(), - }); - let { single: updatedRecord } = await dbGrabUserResource({ - tableName: "mariadb_users", - userId: user.id, - query: { + }); + const record = yield (0, addDbEntry_1.default)({ + tableName: "mariadb_users", + data: newMariadbUser, + update: true, + duplicateColumnName: "id", + duplicateColumnValue: ((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) || 0).toString(), + }); + let { single: updatedRecord } = yield (0, grab_user_resource_1.default)({ + tableName: "mariadb_users", + userId: user.id, query: { - id: { - value: String((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) || ((_c = record === null || record === void 0 ? void 0 : record.payload) === null || _c === void 0 ? void 0 : _c.insertId) || 0), + query: { + id: { + value: String((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) || ((_d = record === null || record === void 0 ? void 0 : record.payload) === null || _d === void 0 ? void 0 : _d.insertId) || 0), + }, }, }, - }, + }); + return { existingRecord, updatedRecord }; }); - return { existingRecord, updatedRecord }; } diff --git a/dist/package-shared/functions/web-app/mariadb-user/revoke-all-existing-grants.js b/dist/package-shared/functions/web-app/mariadb-user/revoke-all-existing-grants.js index 0067727..32c7332 100644 --- a/dist/package-shared/functions/web-app/mariadb-user/revoke-all-existing-grants.js +++ b/dist/package-shared/functions/web-app/mariadb-user/revoke-all-existing-grants.js @@ -1,45 +1,62 @@ -import grabDbNames from "../../../utils/grab-db-names"; -import normalizeText from "../../../utils/normalize-text"; -import dbHandler from "../../backend/dbHandler"; -import decrypt from "../../dsql/decrypt"; -import { createNewSQLUser } from "./handle-mariadb-user-creation"; -export default async function revokeAllExistingGrants({ user, updatedRecord, }) { - const { userDbPrefix } = grabDbNames({ user }); - const parsedPassword = decrypt({ - encryptedString: (updatedRecord === null || updatedRecord === void 0 ? void 0 : updatedRecord.password) || "", +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - const revokeAllPrivileges = await dbHandler({ - query: normalizeText(` +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = revokeAllExistingGrants; +const grab_db_names_1 = __importDefault(require("../../../utils/grab-db-names")); +const normalize_text_1 = __importDefault(require("../../../utils/normalize-text")); +const dbHandler_1 = __importDefault(require("../../backend/dbHandler")); +const decrypt_1 = __importDefault(require("../../dsql/decrypt")); +const handle_mariadb_user_creation_1 = require("./handle-mariadb-user-creation"); +function revokeAllExistingGrants(_a) { + return __awaiter(this, arguments, void 0, function* ({ user, updatedRecord, }) { + const { userDbPrefix } = (0, grab_db_names_1.default)({ user }); + const parsedPassword = (0, decrypt_1.default)({ + encryptedString: (updatedRecord === null || updatedRecord === void 0 ? void 0 : updatedRecord.password) || "", + }); + const revokeAllPrivileges = yield (0, dbHandler_1.default)({ + query: (0, normalize_text_1.default)(` REVOKE ALL PRIVILEGES ON *.* FROM '${updatedRecord.username}'@'${updatedRecord.host}' `), - }); - if (!revokeAllPrivileges) { - await createNewSQLUser({ - host: updatedRecord.host, - password: parsedPassword, - username: updatedRecord.username, }); - } - const revokeGrantOption = await dbHandler({ - query: normalizeText(` + if (!revokeAllPrivileges) { + yield (0, handle_mariadb_user_creation_1.createNewSQLUser)({ + host: updatedRecord.host, + password: parsedPassword, + username: updatedRecord.username, + }); + } + const revokeGrantOption = yield (0, dbHandler_1.default)({ + query: (0, normalize_text_1.default)(` REVOKE GRANT OPTION ON *.* FROM '${updatedRecord.username}'@'${updatedRecord.host}' `), - }); - const userGrants = (await dbHandler({ - query: `SHOW GRANTS FOR '${updatedRecord.username}'@'${updatedRecord.host}'`, - })); - for (let i = 0; i < userGrants.length; i++) { - const grantObject = userGrants[i]; - const grant = grantObject === null || grantObject === void 0 ? void 0 : grantObject[Object.keys(grantObject)[0]]; - if (!(grant === null || grant === void 0 ? void 0 : grant.match(/GRANT USAGE .* IDENTIFIED BY PASSWORD/))) { - const revokeGrantText = grant - .replace(/GRANT/, "REVOKE") - .replace(/ TO /, " FROM "); - const revokePrivilege = await dbHandler({ query: revokeGrantText }); + }); + const userGrants = (yield (0, dbHandler_1.default)({ + query: `SHOW GRANTS FOR '${updatedRecord.username}'@'${updatedRecord.host}'`, + })); + for (let i = 0; i < userGrants.length; i++) { + const grantObject = userGrants[i]; + const grant = grantObject === null || grantObject === void 0 ? void 0 : grantObject[Object.keys(grantObject)[0]]; + if (!(grant === null || grant === void 0 ? void 0 : grant.match(/GRANT USAGE .* IDENTIFIED BY PASSWORD/))) { + const revokeGrantText = grant + .replace(/GRANT/, "REVOKE") + .replace(/ TO /, " FROM "); + const revokePrivilege = yield (0, dbHandler_1.default)({ query: revokeGrantText }); + } } - } - const flushPrivileges = await dbHandler({ - query: `FLUSH PRIVILEGES`, + const flushPrivileges = yield (0, dbHandler_1.default)({ + query: `FLUSH PRIVILEGES`, + }); + return { success: true }; }); - return { success: true }; } diff --git a/dist/package-shared/shell/checkDb.js b/dist/package-shared/shell/checkDb.js index 013630b..a7ac02e 100644 --- a/dist/package-shared/shell/checkDb.js +++ b/dist/package-shared/shell/checkDb.js @@ -1,5 +1,19 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "./../.env" }); -import grabDSQLConnection from "../utils/grab-dsql-connection"; +const grab_dsql_connection_1 = __importDefault(require("../utils/grab-dsql-connection")); /** * # Main DB Handler Function * @async @@ -11,11 +25,11 @@ import grabDSQLConnection from "../utils/grab-dsql-connection"; * * @returns {Promise} */ -(async () => { +(() => __awaiter(void 0, void 0, void 0, function* () { var _a; - const CONNECTION = grabDSQLConnection(); + const CONNECTION = (0, grab_dsql_connection_1.default)(); try { - const result = await 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) { @@ -26,4 +40,4 @@ import grabDSQLConnection from "../utils/grab-dsql-connection"; CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end(); process.exit(); } -})(); +}))(); diff --git a/dist/package-shared/shell/createDbFromSchema/check-db-record.js b/dist/package-shared/shell/createDbFromSchema/check-db-record.js index d0e14ca..007012b 100644 --- a/dist/package-shared/shell/createDbFromSchema/check-db-record.js +++ b/dist/package-shared/shell/createDbFromSchema/check-db-record.js @@ -1,62 +1,79 @@ -import varDatabaseDbHandler from "../utils/varDatabaseDbHandler"; -import numberfy from "../../utils/numberfy"; -import addDbEntry from "../../functions/backend/db/addDbEntry"; -import updateDbEntry from "../../functions/backend/db/updateDbEntry"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = checkDbRecordCreateDbSchema; +const varDatabaseDbHandler_1 = __importDefault(require("../utils/varDatabaseDbHandler")); +const numberfy_1 = __importDefault(require("../../utils/numberfy")); +const addDbEntry_1 = __importDefault(require("../../functions/backend/db/addDbEntry")); +const updateDbEntry_1 = __importDefault(require("../../functions/backend/db/updateDbEntry")); /** * # Create database from Schema Function * @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database */ -export default async function checkDbRecordCreateDbSchema({ userId, dbSchema, isMain, }) { - var _a, _b; - if (isMain) - return undefined; - try { - const { dbFullName, dbName, dbSlug, dbDescription, dbImage, childDatabase, childDatabaseDbId, id, } = dbSchema; - let recordedDbEntryArray = userId - ? await varDatabaseDbHandler({ - queryString: `SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?`, - queryValuesArray: [dbFullName || "NULL"], - }) - : undefined; - let recordedDbEntry = recordedDbEntryArray === null || recordedDbEntryArray === void 0 ? void 0 : recordedDbEntryArray[0]; - const newDbEntryObj = { - user_id: numberfy(userId), - db_name: dbName, - db_slug: dbSlug, - db_full_name: dbFullName, - db_description: dbDescription, - db_image: dbImage, - active_clone: childDatabase ? 1 : undefined, - db_schema_id: numberfy(id), - active_clone_parent_db_id: numberfy(childDatabaseDbId), - }; - if (!(recordedDbEntry === null || recordedDbEntry === void 0 ? void 0 : recordedDbEntry.id) && userId) { - const newDbEntry = await addDbEntry({ - data: newDbEntryObj, - tableName: "user_databases", - forceLocal: true, - }); - if ((_a = newDbEntry.payload) === null || _a === void 0 ? void 0 : _a.insertId) { - recordedDbEntryArray = await varDatabaseDbHandler({ +function checkDbRecordCreateDbSchema(_a) { + return __awaiter(this, arguments, void 0, function* ({ userId, dbSchema, isMain, }) { + var _b, _c; + if (isMain) + return undefined; + try { + const { dbFullName, dbName, dbSlug, dbDescription, dbImage, childDatabase, childDatabaseDbId, id, } = dbSchema; + let recordedDbEntryArray = userId + ? yield (0, varDatabaseDbHandler_1.default)({ queryString: `SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?`, queryValuesArray: [dbFullName || "NULL"], + }) + : undefined; + let recordedDbEntry = recordedDbEntryArray === null || recordedDbEntryArray === void 0 ? void 0 : recordedDbEntryArray[0]; + const newDbEntryObj = { + user_id: (0, numberfy_1.default)(userId), + db_name: dbName, + db_slug: dbSlug, + db_full_name: dbFullName, + db_description: dbDescription, + db_image: dbImage, + active_clone: childDatabase ? 1 : undefined, + db_schema_id: (0, numberfy_1.default)(id), + active_clone_parent_db_id: (0, numberfy_1.default)(childDatabaseDbId), + }; + if (!(recordedDbEntry === null || recordedDbEntry === void 0 ? void 0 : recordedDbEntry.id) && userId) { + const newDbEntry = yield (0, addDbEntry_1.default)({ + data: newDbEntryObj, + tableName: "user_databases", + forceLocal: true, }); - recordedDbEntry = recordedDbEntryArray === null || recordedDbEntryArray === void 0 ? void 0 : recordedDbEntryArray[0]; + if ((_b = newDbEntry.payload) === null || _b === void 0 ? void 0 : _b.insertId) { + recordedDbEntryArray = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?`, + queryValuesArray: [dbFullName || "NULL"], + }); + recordedDbEntry = recordedDbEntryArray === null || recordedDbEntryArray === void 0 ? void 0 : recordedDbEntryArray[0]; + } } + else if (recordedDbEntry === null || recordedDbEntry === void 0 ? void 0 : recordedDbEntry.id) { + yield (0, updateDbEntry_1.default)({ + data: newDbEntryObj, + tableName: "user_databases", + forceLocal: true, + identifierColumnName: "id", + identifierValue: String(recordedDbEntry.id), + }); + } + return recordedDbEntry; } - else if (recordedDbEntry === null || recordedDbEntry === void 0 ? void 0 : recordedDbEntry.id) { - await updateDbEntry({ - data: newDbEntryObj, - tableName: "user_databases", - forceLocal: true, - identifierColumnName: "id", - identifierValue: String(recordedDbEntry.id), - }); + catch (error) { + (_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `Error Checking DB Record on Creating Schema`, error); + return undefined; } - return recordedDbEntry; - } - catch (error) { - (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Checking DB Record on Creating Schema`, error); - return undefined; - } + }); } diff --git a/dist/package-shared/shell/createDbFromSchema/check-table-record.js b/dist/package-shared/shell/createDbFromSchema/check-table-record.js index a2bc3e9..624b863 100644 --- a/dist/package-shared/shell/createDbFromSchema/check-table-record.js +++ b/dist/package-shared/shell/createDbFromSchema/check-table-record.js @@ -1,75 +1,92 @@ -import varDatabaseDbHandler from "../utils/varDatabaseDbHandler"; -import sqlGenerator from "../../functions/dsql/sql/sql-generator"; -import numberfy from "../../utils/numberfy"; -import addDbEntry from "../../functions/backend/db/addDbEntry"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = checkTableRecordCreateDbSchema; +const varDatabaseDbHandler_1 = __importDefault(require("../utils/varDatabaseDbHandler")); +const sql_generator_1 = __importDefault(require("../../functions/dsql/sql/sql-generator")); +const numberfy_1 = __importDefault(require("../../utils/numberfy")); +const addDbEntry_1 = __importDefault(require("../../functions/backend/db/addDbEntry")); /** * # Create database from Schema Function * @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database */ -export default async function checkTableRecordCreateDbSchema({ userId, tableSchema, dbSchema, dbRecord, dbFullName, }) { - var _a, _b; - if (!tableSchema) - return undefined; - try { - const queryObj = sqlGenerator({ - tableName: "user_database_tables", - genObject: { - query: { - db_id: { - value: String(dbRecord === null || dbRecord === void 0 ? void 0 : dbRecord.id), - }, - table_slug: { - value: tableSchema.tableName, - }, - user_id: { - value: String(userId), +function checkTableRecordCreateDbSchema(_a) { + return __awaiter(this, arguments, void 0, function* ({ userId, tableSchema, dbSchema, dbRecord, dbFullName, }) { + var _b, _c; + if (!tableSchema) + return undefined; + try { + const queryObj = (0, sql_generator_1.default)({ + tableName: "user_database_tables", + genObject: { + query: { + db_id: { + value: String(dbRecord === null || dbRecord === void 0 ? void 0 : dbRecord.id), + }, + table_slug: { + value: tableSchema.tableName, + }, + user_id: { + value: String(userId), + }, }, }, - }, - dbFullName: "datasquirel", - }); - let recordedTableEntryArray = userId - ? await varDatabaseDbHandler({ - queryString: (queryObj === null || queryObj === void 0 ? void 0 : queryObj.string) || "", - queryValuesArray: queryObj === null || queryObj === void 0 ? void 0 : queryObj.values, - }) - : undefined; - let recordedTableEntry = recordedTableEntryArray === null || recordedTableEntryArray === void 0 ? void 0 : recordedTableEntryArray[0]; - if (!(recordedTableEntry === null || recordedTableEntry === void 0 ? void 0 : recordedTableEntry.id) && userId) { - const newTableInsertObject = { - user_id: numberfy(userId), - db_id: dbRecord === null || dbRecord === void 0 ? void 0 : dbRecord.id, - db_slug: dbRecord === null || dbRecord === void 0 ? void 0 : dbRecord.db_slug, - table_slug: tableSchema.tableName, - }; - if ((tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.childTable) && tableSchema.childTableId) { - const parentDb = dbSchema.find((db) => db.id == tableSchema.childTableDbId); - const parentDbTable = parentDb === null || parentDb === void 0 ? void 0 : parentDb.tables.find((tbl) => tbl.id == tableSchema.childTableId); - if (parentDb && parentDbTable) { - newTableInsertObject["child_table"] = 1; - newTableInsertObject["child_table_parent_database_schema_id"] = numberfy(parentDb.id); - newTableInsertObject["child_table_parent_table_schema_id"] = - numberfy(parentDbTable.id); - } - } - const newTableRecordEntry = await addDbEntry({ - data: newTableInsertObject, - tableName: "user_database_tables", - dbContext: "Master", - forceLocal: true, + dbFullName: "datasquirel", }); - if ((_a = newTableRecordEntry.payload) === null || _a === void 0 ? void 0 : _a.insertId) { - recordedTableEntryArray = await varDatabaseDbHandler({ + let recordedTableEntryArray = userId + ? yield (0, varDatabaseDbHandler_1.default)({ queryString: (queryObj === null || queryObj === void 0 ? void 0 : queryObj.string) || "", queryValuesArray: queryObj === null || queryObj === void 0 ? void 0 : queryObj.values, + }) + : undefined; + let recordedTableEntry = recordedTableEntryArray === null || recordedTableEntryArray === void 0 ? void 0 : recordedTableEntryArray[0]; + if (!(recordedTableEntry === null || recordedTableEntry === void 0 ? void 0 : recordedTableEntry.id) && userId) { + const newTableInsertObject = { + user_id: (0, numberfy_1.default)(userId), + db_id: dbRecord === null || dbRecord === void 0 ? void 0 : dbRecord.id, + db_slug: dbRecord === null || dbRecord === void 0 ? void 0 : dbRecord.db_slug, + table_slug: tableSchema.tableName, + }; + if ((tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.childTable) && tableSchema.childTableId) { + const parentDb = dbSchema.find((db) => db.id == tableSchema.childTableDbId); + const parentDbTable = parentDb === null || parentDb === void 0 ? void 0 : parentDb.tables.find((tbl) => tbl.id == tableSchema.childTableId); + if (parentDb && parentDbTable) { + newTableInsertObject["child_table"] = 1; + newTableInsertObject["child_table_parent_database_schema_id"] = (0, numberfy_1.default)(parentDb.id); + newTableInsertObject["child_table_parent_table_schema_id"] = + (0, numberfy_1.default)(parentDbTable.id); + } + } + const newTableRecordEntry = yield (0, addDbEntry_1.default)({ + data: newTableInsertObject, + tableName: "user_database_tables", + dbContext: "Master", + forceLocal: true, }); - recordedTableEntry = recordedTableEntryArray === null || recordedTableEntryArray === void 0 ? void 0 : recordedTableEntryArray[0]; + if ((_b = newTableRecordEntry.payload) === null || _b === void 0 ? void 0 : _b.insertId) { + recordedTableEntryArray = yield (0, varDatabaseDbHandler_1.default)({ + queryString: (queryObj === null || queryObj === void 0 ? void 0 : queryObj.string) || "", + queryValuesArray: queryObj === null || queryObj === void 0 ? void 0 : queryObj.values, + }); + recordedTableEntry = recordedTableEntryArray === null || recordedTableEntryArray === void 0 ? void 0 : recordedTableEntryArray[0]; + } } + return recordedTableEntry; } - return recordedTableEntry; - } - catch (error) { - (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Checking Table Record on Creating Schema`, error); - return undefined; - } + catch (error) { + (_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `Error Checking Table Record on Creating Schema`, error); + return undefined; + } + }); } diff --git a/dist/package-shared/shell/createDbFromSchema/grab-required-database-schemas.js b/dist/package-shared/shell/createDbFromSchema/grab-required-database-schemas.js index 3ec9d8d..29b6843 100644 --- a/dist/package-shared/shell/createDbFromSchema/grab-required-database-schemas.js +++ b/dist/package-shared/shell/createDbFromSchema/grab-required-database-schemas.js @@ -1,10 +1,22 @@ -import fs from "fs"; -import path from "path"; -import grabDirNames from "../../utils/backend/names/grab-dir-names"; -import EJSON from "../../utils/ejson"; -import numberfy from "../../utils/numberfy"; -import uniqueByKey from "../../utils/unique-by-key"; -export default function grabRequiredDatabaseSchemas(params) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabRequiredDatabaseSchemas; +exports.grabPrimaryRequiredDbSchema = grabPrimaryRequiredDbSchema; +exports.findDbNameInSchemaDir = findDbNameInSchemaDir; +exports.writeUpdatedDbSchema = writeUpdatedDbSchema; +exports.deleteDbSchema = deleteDbSchema; +exports.findTargetDbSchemaFromMainSchema = findTargetDbSchemaFromMainSchema; +exports.grabLatestDbSchemaID = grabLatestDbSchemaID; +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); +const grab_dir_names_1 = __importDefault(require("../../utils/backend/names/grab-dir-names")); +const ejson_1 = __importDefault(require("../../utils/ejson")); +const numberfy_1 = __importDefault(require("../../utils/numberfy")); +const unique_by_key_1 = __importDefault(require("../../utils/unique-by-key")); +function grabRequiredDatabaseSchemas(params) { const primaryDbSchema = grabPrimaryRequiredDbSchema(params); if (!primaryDbSchema) return undefined; @@ -35,9 +47,9 @@ export default function grabRequiredDatabaseSchemas(params) { continue; relatedDatabases.push(childTableDbSchema); } - return uniqueByKey([primaryDbSchema, ...relatedDatabases], "dbFullName"); + return (0, unique_by_key_1.default)([primaryDbSchema, ...relatedDatabases], "dbFullName"); } -export function grabPrimaryRequiredDbSchema({ userId, dbId, dbSlug }) { +function grabPrimaryRequiredDbSchema({ userId, dbId, dbSlug }) { let finalDbId = dbId; if (!finalDbId && userId && dbSlug) { const searchedDb = findDbNameInSchemaDir({ dbName: dbSlug, userId }); @@ -48,7 +60,7 @@ export function grabPrimaryRequiredDbSchema({ userId, dbId, dbSlug }) { if (!finalDbId) { return undefined; } - const { targetUserPrivateDir, oldSchemasDir } = grabDirNames({ + const { targetUserPrivateDir, oldSchemasDir } = (0, grab_dir_names_1.default)({ userId, }); const finalSchemaDir = targetUserPrivateDir || oldSchemasDir; @@ -57,13 +69,13 @@ export function grabPrimaryRequiredDbSchema({ userId, dbId, dbSlug }) { return undefined; } if (finalDbId) { - const dbIdSchema = path.resolve(finalSchemaDir, `${finalDbId}.json`); - if (fs.existsSync(dbIdSchema)) { - const dbIdSchemaObject = EJSON.parse(fs.readFileSync(dbIdSchema, "utf-8")); + const dbIdSchema = path_1.default.resolve(finalSchemaDir, `${finalDbId}.json`); + if (fs_1.default.existsSync(dbIdSchema)) { + const dbIdSchemaObject = ejson_1.default.parse(fs_1.default.readFileSync(dbIdSchema, "utf-8")); return dbIdSchemaObject; } } - const dbSchemasFiles = fs.readdirSync(finalSchemaDir); + const dbSchemasFiles = fs_1.default.readdirSync(finalSchemaDir); let targetDbSchema; try { for (let i = 0; i < dbSchemasFiles.length; i++) { @@ -72,8 +84,8 @@ export function grabPrimaryRequiredDbSchema({ userId, dbId, dbSlug }) { continue; if (!fileOrPath.match(/^\d+.json/)) continue; - const targetFileJSONPath = path.join(finalSchemaDir, fileOrPath); - const targetSchema = EJSON.parse(fs.readFileSync(targetFileJSONPath, "utf-8")); + const targetFileJSONPath = path_1.default.join(finalSchemaDir, fileOrPath); + const targetSchema = ejson_1.default.parse(fs_1.default.readFileSync(targetFileJSONPath, "utf-8")); if (targetSchema && finalDbId && (targetSchema === null || targetSchema === void 0 ? void 0 : targetSchema.id) == finalDbId) { targetDbSchema = targetSchema; } @@ -101,7 +113,7 @@ export function grabPrimaryRequiredDbSchema({ userId, dbId, dbSlug }) { console.log(`userId`, userId); return undefined; } -export function findDbNameInSchemaDir({ userId, dbName, }) { +function findDbNameInSchemaDir({ userId, dbName, }) { if (!userId) { console.log(`userId not provided!`); return undefined; @@ -110,14 +122,14 @@ export function findDbNameInSchemaDir({ userId, dbName, }) { console.log(`dbName not provided!`); return undefined; } - const { targetUserPrivateDir } = grabDirNames({ + const { targetUserPrivateDir } = (0, grab_dir_names_1.default)({ userId, }); if (!targetUserPrivateDir) { console.log(`targetUserPrivateDir not found!`); return undefined; } - const dbSchemasFiles = fs.readdirSync(targetUserPrivateDir); + const dbSchemasFiles = fs_1.default.readdirSync(targetUserPrivateDir); let targetDbSchema; try { for (let i = 0; i < dbSchemasFiles.length; i++) { @@ -126,8 +138,8 @@ export function findDbNameInSchemaDir({ userId, dbName, }) { continue; if (!fileOrPath.match(/^\d+.json/)) continue; - const targetFileJSONPath = path.join(targetUserPrivateDir, fileOrPath); - const targetSchema = EJSON.parse(fs.readFileSync(targetFileJSONPath, "utf-8")); + const targetFileJSONPath = path_1.default.join(targetUserPrivateDir, fileOrPath); + const targetSchema = ejson_1.default.parse(fs_1.default.readFileSync(targetFileJSONPath, "utf-8")); if (!targetSchema) continue; if (targetSchema.dbFullName == dbName || @@ -140,8 +152,8 @@ export function findDbNameInSchemaDir({ userId, dbName, }) { catch (error) { } return targetDbSchema; } -export function writeUpdatedDbSchema({ dbSchema, userId, }) { - const { targetUserPrivateDir } = grabDirNames({ +function writeUpdatedDbSchema({ dbSchema, userId, }) { + const { targetUserPrivateDir } = (0, grab_dir_names_1.default)({ userId, }); if (!targetUserPrivateDir) { @@ -149,19 +161,19 @@ export function writeUpdatedDbSchema({ dbSchema, userId, }) { return {}; } if (dbSchema.id) { - const dbIdSchemaPath = path.join(targetUserPrivateDir, `${dbSchema.id}.json`); - fs.writeFileSync(dbIdSchemaPath, EJSON.stringify(dbSchema) || "[]"); + const dbIdSchemaPath = path_1.default.join(targetUserPrivateDir, `${dbSchema.id}.json`); + fs_1.default.writeFileSync(dbIdSchemaPath, ejson_1.default.stringify(dbSchema) || "[]"); return { success: true }; } else { const nextID = grabLatestDbSchemaID(targetUserPrivateDir); dbSchema.id = nextID; - fs.writeFileSync(path.join(targetUserPrivateDir, `${nextID}.json`), EJSON.stringify(dbSchema) || "[]"); + fs_1.default.writeFileSync(path_1.default.join(targetUserPrivateDir, `${nextID}.json`), ejson_1.default.stringify(dbSchema) || "[]"); return { success: true, dbSchemaId: nextID }; } } -export function deleteDbSchema({ dbSchema, userId }) { - const { targetUserPrivateDir, userSchemaMainJSONFilePath } = grabDirNames({ +function deleteDbSchema({ dbSchema, userId }) { + const { targetUserPrivateDir, userSchemaMainJSONFilePath } = (0, grab_dir_names_1.default)({ userId, }); if (!targetUserPrivateDir) @@ -170,15 +182,15 @@ export function deleteDbSchema({ dbSchema, userId }) { dbId: dbSchema.id, userId, }); - const schemaFile = path.join(targetUserPrivateDir, `${targetDbSchema === null || targetDbSchema === void 0 ? void 0 : targetDbSchema.id}.json`); + const schemaFile = path_1.default.join(targetUserPrivateDir, `${targetDbSchema === null || targetDbSchema === void 0 ? void 0 : targetDbSchema.id}.json`); try { - fs.unlinkSync(schemaFile); + fs_1.default.unlinkSync(schemaFile); } catch (error) { } if (userSchemaMainJSONFilePath && - fs.existsSync(userSchemaMainJSONFilePath)) { + fs_1.default.existsSync(userSchemaMainJSONFilePath)) { try { - let allDbSchemas = EJSON.parse(fs.readFileSync(userSchemaMainJSONFilePath, "utf-8")); + let allDbSchemas = ejson_1.default.parse(fs_1.default.readFileSync(userSchemaMainJSONFilePath, "utf-8")); if (allDbSchemas === null || allDbSchemas === void 0 ? void 0 : allDbSchemas[0]) { for (let i = 0; i < allDbSchemas.length; i++) { const dbSch = allDbSchemas[i]; @@ -187,18 +199,18 @@ export function deleteDbSchema({ dbSchema, userId }) { allDbSchemas.splice(i, 1); } } - fs.writeFileSync(userSchemaMainJSONFilePath, EJSON.stringify(allDbSchemas) || "[]"); + fs_1.default.writeFileSync(userSchemaMainJSONFilePath, ejson_1.default.stringify(allDbSchemas) || "[]"); } } catch (error) { } } } -export function findTargetDbSchemaFromMainSchema(schemas, dbFullName, dbId) { +function findTargetDbSchemaFromMainSchema(schemas, dbFullName, dbId) { const targetDbSchema = schemas.find((sch) => sch.dbFullName == dbFullName || (dbId && sch.id == dbId)); return targetDbSchema; } -export function grabLatestDbSchemaID(userSchemaDir) { - const dbSchemasFiles = fs.readdirSync(userSchemaDir); +function grabLatestDbSchemaID(userSchemaDir) { + const dbSchemasFiles = fs_1.default.readdirSync(userSchemaDir); const dbNumbers = dbSchemasFiles .filter((dbSch) => { if (!dbSch.endsWith(`.json`)) @@ -207,7 +219,7 @@ export function grabLatestDbSchemaID(userSchemaDir) { return true; return false; }) - .map((dbSch) => numberfy(dbSch.replace(/[^0-9]/g, ""))); + .map((dbSch) => (0, numberfy_1.default)(dbSch.replace(/[^0-9]/g, ""))); if (dbNumbers[0]) return ((dbNumbers .sort((a, b) => { diff --git a/dist/package-shared/shell/createDbFromSchema/handle-indexes.js b/dist/package-shared/shell/createDbFromSchema/handle-indexes.js index 847960f..dcd7ddb 100644 --- a/dist/package-shared/shell/createDbFromSchema/handle-indexes.js +++ b/dist/package-shared/shell/createDbFromSchema/handle-indexes.js @@ -1,37 +1,54 @@ -import varDatabaseDbHandler from "../utils/varDatabaseDbHandler"; -import grabDSQLSchemaIndexComment from "../utils/grab-dsql-schema-index-comment"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleIndexescreateDbFromSchema; +const varDatabaseDbHandler_1 = __importDefault(require("../utils/varDatabaseDbHandler")); +const grab_dsql_schema_index_comment_1 = __importDefault(require("../utils/grab-dsql-schema-index-comment")); /** * Handle DATASQUIREL Table Indexes * =================================================== * @description Iterate through each datasquirel schema * table index(if available), and perform operations */ -export default async function handleIndexescreateDbFromSchema({ dbFullName, tableName, indexes, }) { - const allExistingIndexes = await varDatabaseDbHandler({ - queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\``, - }); - for (let g = 0; g < indexes.length; g++) { - const { indexType, indexName, indexTableFields, alias } = indexes[g]; - if (!(alias === null || alias === void 0 ? void 0 : alias.match(/./))) - continue; - /** - * @description Check for existing Index in MYSQL db - */ - try { - const existingKeyInDb = allExistingIndexes.filter((indexObject) => indexObject.Key_name === alias); - if (!existingKeyInDb[0]) - throw new Error("This Index Does not Exist"); - } - catch (error) { +function handleIndexescreateDbFromSchema(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbFullName, tableName, indexes, }) { + const allExistingIndexes = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\``, + }); + for (let g = 0; g < indexes.length; g++) { + const { indexType, indexName, indexTableFields, alias } = indexes[g]; + if (!(alias === null || alias === void 0 ? void 0 : alias.match(/./))) + continue; /** - * @description Create new index if determined that it - * doesn't exist in MYSQL db + * @description Check for existing Index in MYSQL db */ - const queryString = `CREATE${indexType == "full_text" ? " FULLTEXT" : ""} INDEX \`${alias}\` ON \`${dbFullName}\`.\`${tableName}\`(${indexTableFields === null || indexTableFields === void 0 ? void 0 : indexTableFields.map((nm) => nm.value).map((nm) => `\`${nm}\``).join(",")}) COMMENT '${grabDSQLSchemaIndexComment()} ${indexName}'`; - const addIndex = await varDatabaseDbHandler({ queryString }); + try { + const existingKeyInDb = allExistingIndexes.filter((indexObject) => indexObject.Key_name === alias); + if (!existingKeyInDb[0]) + throw new Error("This Index Does not Exist"); + } + catch (error) { + /** + * @description Create new index if determined that it + * doesn't exist in MYSQL db + */ + const queryString = `CREATE${indexType == "full_text" ? " FULLTEXT" : ""} INDEX \`${alias}\` ON \`${dbFullName}\`.\`${tableName}\`(${indexTableFields === null || indexTableFields === void 0 ? void 0 : indexTableFields.map((nm) => nm.value).map((nm) => `\`${nm}\``).join(",")}) COMMENT '${(0, grab_dsql_schema_index_comment_1.default)()} ${indexName}'`; + const addIndex = yield (0, varDatabaseDbHandler_1.default)({ queryString }); + } } - } - const allExistingIndexesAfterUpdate = await varDatabaseDbHandler({ - queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\``, + const allExistingIndexesAfterUpdate = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\``, + }); }); } diff --git a/dist/package-shared/shell/createDbFromSchema/index.js b/dist/package-shared/shell/createDbFromSchema/index.js index 40f9837..ad78ead 100644 --- a/dist/package-shared/shell/createDbFromSchema/index.js +++ b/dist/package-shared/shell/createDbFromSchema/index.js @@ -1,114 +1,163 @@ -import noDatabaseDbHandler from "../utils/noDatabaseDbHandler"; -import varDatabaseDbHandler from "../utils/varDatabaseDbHandler"; -import createTable from "../utils/createTable"; -import updateTable from "../utils/updateTable"; -import grabDirNames from "../../utils/backend/names/grab-dir-names"; -import checkDbRecordCreateDbSchema from "./check-db-record"; -import handleIndexescreateDbFromSchema from "./handle-indexes"; -import grabRequiredDatabaseSchemas, { grabPrimaryRequiredDbSchema, } from "./grab-required-database-schemas"; -import dbHandler from "../../functions/backend/dbHandler"; +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = createDbFromSchema; +const noDatabaseDbHandler_1 = __importDefault(require("../utils/noDatabaseDbHandler")); +const varDatabaseDbHandler_1 = __importDefault(require("../utils/varDatabaseDbHandler")); +const createTable_1 = __importDefault(require("../utils/createTable")); +const updateTable_1 = __importDefault(require("../utils/updateTable")); +const grab_dir_names_1 = __importDefault(require("../../utils/backend/names/grab-dir-names")); +const check_db_record_1 = __importDefault(require("./check-db-record")); +const handle_indexes_1 = __importDefault(require("./handle-indexes")); +const grab_required_database_schemas_1 = __importStar(require("./grab-required-database-schemas")); +const dbHandler_1 = __importDefault(require("../../functions/backend/dbHandler")); /** * # Create database from Schema Function * @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database */ -export default async function createDbFromSchema({ userId, targetDatabase, dbSchemaData, targetTable, dbId, }) { - var _a, _b; - try { - const { userSchemaMainJSONFilePath } = grabDirNames({ - userId, - }); - let dbSchema = dbSchemaData - ? dbSchemaData - : dbId - ? grabRequiredDatabaseSchemas({ - dbId, - userId, - }) - : undefined; - if (!dbSchema) { - console.log("Schema Not Found!"); - return false; - } - const isMain = !userSchemaMainJSONFilePath; - for (let i = 0; i < dbSchema.length; i++) { - const database = dbSchema[i]; - const { dbFullName, tables, dbSlug, childrenDatabases } = database; - if (!dbFullName) - continue; - if (targetDatabase && dbFullName != targetDatabase) { - continue; - } - console.log(`Handling database => ${dbFullName}`); - const dbCheck = await noDatabaseDbHandler(`SELECT SCHEMA_NAME AS dbFullName FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${dbFullName}'`); - if (!((_a = dbCheck === null || dbCheck === void 0 ? void 0 : dbCheck[0]) === null || _a === void 0 ? void 0 : _a.dbFullName)) { - const newDatabase = await noDatabaseDbHandler(`CREATE DATABASE IF NOT EXISTS \`${dbFullName}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin`); - } - const allTables = await noDatabaseDbHandler(`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${dbFullName}'`); - let recordedDbEntry = await checkDbRecordCreateDbSchema({ - dbSchema: database, +function createDbFromSchema(_a) { + return __awaiter(this, arguments, void 0, function* ({ userId, targetDatabase, dbSchemaData, targetTable, dbId, }) { + var _b, _c; + try { + const { userSchemaMainJSONFilePath } = (0, grab_dir_names_1.default)({ userId, - isMain, }); - for (let tb = 0; tb < allTables.length; tb++) { - const { TABLE_NAME } = allTables[tb]; - const targetTableSchema = tables.find((_table) => _table.tableName === TABLE_NAME); - /** - * @description Check if TABLE_NAME is part of the tables contained - * in the user schema JSON. If it's not, the table is either deleted - * or the table name has been recently changed - */ - if (!targetTableSchema) { - console.log(`Dropping Table ${TABLE_NAME} from ${dbFullName}`); - await varDatabaseDbHandler({ - queryString: `DROP TABLE \`${dbFullName}\`.\`${TABLE_NAME}\``, - }); - const deleteTableEntry = await dbHandler({ - query: `DELETE FROM datasquirel.user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?`, - values: [userId, dbSlug, TABLE_NAME], - }); - // const oldTable = tables.find( - // (_table) => - // _table.tableNameOld && - // _table.tableNameOld === TABLE_NAME - // ); - // /** - // * @description Check if this table has been recently renamed. Rename - // * table id true. Drop table if false - // */ - // if (oldTable) { - // console.log("Renaming Table"); - // await varDatabaseDbHandler({ - // queryString: `RENAME TABLE \`${dbFullName}\`.\`${oldTable.tableNameOld}\` TO \`${oldTable.tableName}\``, - // }); - // } else { - // console.log( - // `Dropping Table ${TABLE_NAME} from ${dbFullName}` - // ); - // await varDatabaseDbHandler({ - // queryString: `DROP TABLE \`${dbFullName}\`.\`${TABLE_NAME}\``, - // }); - // const deleteTableEntry = await dbHandler({ - // query: `DELETE FROM datasquirel.user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?`, - // values: [userId, dbSlug, TABLE_NAME], - // }); - // } - } + let dbSchema = dbSchemaData + ? dbSchemaData + : dbId + ? (0, grab_required_database_schemas_1.default)({ + dbId, + userId, + }) + : undefined; + if (!dbSchema) { + console.log("Schema Not Found!"); + return false; } - /** - * @description Iterate through each table and perform table actions - */ - for (let t = 0; t < tables.length; t++) { - const table = tables[t]; - const { tableName, fields, indexes } = table; - if (targetTable && tableName !== targetTable) + const isMain = !userSchemaMainJSONFilePath; + for (let i = 0; i < dbSchema.length; i++) { + const database = dbSchema[i]; + const { dbFullName, tables, dbSlug, childrenDatabases } = database; + if (!dbFullName) continue; - console.log(`Handling table => ${tableName}`); + if (targetDatabase && dbFullName != targetDatabase) { + continue; + } + console.log(`Handling database => ${dbFullName}`); + const dbCheck = yield (0, noDatabaseDbHandler_1.default)(`SELECT SCHEMA_NAME AS dbFullName FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${dbFullName}'`); + if (!((_b = dbCheck === null || dbCheck === void 0 ? void 0 : dbCheck[0]) === null || _b === void 0 ? void 0 : _b.dbFullName)) { + const newDatabase = yield (0, noDatabaseDbHandler_1.default)(`CREATE DATABASE IF NOT EXISTS \`${dbFullName}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin`); + } + const allTables = yield (0, noDatabaseDbHandler_1.default)(`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${dbFullName}'`); + let recordedDbEntry = yield (0, check_db_record_1.default)({ + dbSchema: database, + userId, + isMain, + }); + for (let tb = 0; tb < allTables.length; tb++) { + const { TABLE_NAME } = allTables[tb]; + const targetTableSchema = tables.find((_table) => _table.tableName === TABLE_NAME); + /** + * @description Check if TABLE_NAME is part of the tables contained + * in the user schema JSON. If it's not, the table is either deleted + * or the table name has been recently changed + */ + if (!targetTableSchema) { + console.log(`Dropping Table ${TABLE_NAME} from ${dbFullName}`); + yield (0, varDatabaseDbHandler_1.default)({ + queryString: `DROP TABLE \`${dbFullName}\`.\`${TABLE_NAME}\``, + }); + const deleteTableEntry = yield (0, dbHandler_1.default)({ + query: `DELETE FROM datasquirel.user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?`, + values: [userId, dbSlug, TABLE_NAME], + }); + // const oldTable = tables.find( + // (_table) => + // _table.tableNameOld && + // _table.tableNameOld === TABLE_NAME + // ); + // /** + // * @description Check if this table has been recently renamed. Rename + // * table id true. Drop table if false + // */ + // if (oldTable) { + // console.log("Renaming Table"); + // await varDatabaseDbHandler({ + // queryString: `RENAME TABLE \`${dbFullName}\`.\`${oldTable.tableNameOld}\` TO \`${oldTable.tableName}\``, + // }); + // } else { + // console.log( + // `Dropping Table ${TABLE_NAME} from ${dbFullName}` + // ); + // await varDatabaseDbHandler({ + // queryString: `DROP TABLE \`${dbFullName}\`.\`${TABLE_NAME}\``, + // }); + // const deleteTableEntry = await dbHandler({ + // query: `DELETE FROM datasquirel.user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?`, + // values: [userId, dbSlug, TABLE_NAME], + // }); + // } + } + } /** - * @description Check if table exists - * @type {any} + * @description Iterate through each table and perform table actions */ - const tableCheck = await varDatabaseDbHandler({ - queryString: ` + for (let t = 0; t < tables.length; t++) { + const table = tables[t]; + const { tableName, fields, indexes } = table; + if (targetTable && tableName !== targetTable) + continue; + console.log(`Handling table => ${tableName}`); + /** + * @description Check if table exists + * @type {any} + */ + const tableCheck = yield (0, varDatabaseDbHandler_1.default)({ + queryString: ` SELECT EXISTS ( SELECT TABLE_NAME @@ -118,98 +167,99 @@ export default async function createDbFromSchema({ userId, targetDatabase, dbSch TABLE_SCHEMA = ? AND TABLE_NAME = ? ) AS tableExists`, - queryValuesArray: [dbFullName, table.tableName], - }); - if (tableCheck && ((_b = tableCheck[0]) === null || _b === void 0 ? void 0 : _b.tableExists) > 0) { - /** - * @description Update table if table exists - */ - const updateExistingTable = await updateTable({ - dbFullName: dbFullName, - tableName: tableName, - tableFields: fields, - userId, - dbSchema: database, - tableIndexes: indexes, - recordedDbEntry, - tableSchema: table, - isMain, + queryValuesArray: [dbFullName, table.tableName], }); - if (table.childrenTables && table.childrenTables[0]) { - for (let ch = 0; ch < table.childrenTables.length; ch++) { - const childTable = table.childrenTables[ch]; - const childTableParentDbSchema = grabPrimaryRequiredDbSchema({ - dbId: childTable.dbId, - userId, - }); - if (!(childTableParentDbSchema === null || childTableParentDbSchema === void 0 ? void 0 : childTableParentDbSchema.dbFullName)) - continue; - const childTableSchema = childTableParentDbSchema.tables.find((tbl) => tbl.id == childTable.tableId); - if (!childTableSchema) - continue; - const updateExistingChildTable = await updateTable({ - dbFullName: childTableParentDbSchema.dbFullName, - tableName: childTableSchema.tableName, - tableFields: childTableSchema.fields, - userId, - dbSchema: childTableParentDbSchema, - tableIndexes: childTableSchema.indexes, - clone: true, - recordedDbEntry, - tableSchema: table, - isMain, + if (tableCheck && ((_c = tableCheck[0]) === null || _c === void 0 ? void 0 : _c.tableExists) > 0) { + /** + * @description Update table if table exists + */ + const updateExistingTable = yield (0, updateTable_1.default)({ + dbFullName: dbFullName, + tableName: tableName, + tableFields: fields, + userId, + dbSchema: database, + tableIndexes: indexes, + recordedDbEntry, + tableSchema: table, + isMain, + }); + if (table.childrenTables && table.childrenTables[0]) { + for (let ch = 0; ch < table.childrenTables.length; ch++) { + const childTable = table.childrenTables[ch]; + const childTableParentDbSchema = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({ + dbId: childTable.dbId, + userId, + }); + if (!(childTableParentDbSchema === null || childTableParentDbSchema === void 0 ? void 0 : childTableParentDbSchema.dbFullName)) + continue; + const childTableSchema = childTableParentDbSchema.tables.find((tbl) => tbl.id == childTable.tableId); + if (!childTableSchema) + continue; + const updateExistingChildTable = yield (0, updateTable_1.default)({ + dbFullName: childTableParentDbSchema.dbFullName, + tableName: childTableSchema.tableName, + tableFields: childTableSchema.fields, + userId, + dbSchema: childTableParentDbSchema, + tableIndexes: childTableSchema.indexes, + clone: true, + recordedDbEntry, + tableSchema: table, + isMain, + }); + } + } + } + else { + /** + * @description Create new Table if table doesnt exist + */ + const createNewTable = yield (0, createTable_1.default)({ + tableName: tableName, + tableInfoArray: fields, + dbFullName: dbFullName, + tableSchema: table, + recordedDbEntry, + isMain, + }); + /** + * Handle DATASQUIREL Table Indexes + * =================================================== + * @description Iterate through each datasquirel schema + * table index(if available), and perform operations + */ + if (indexes === null || indexes === void 0 ? void 0 : indexes[0]) { + (0, handle_indexes_1.default)({ + dbFullName, + indexes, + tableName, }); } } } - else { - /** - * @description Create new Table if table doesnt exist - */ - const createNewTable = await createTable({ - tableName: tableName, - tableInfoArray: fields, - dbFullName: dbFullName, - tableSchema: table, - recordedDbEntry, - isMain, - }); - /** - * Handle DATASQUIREL Table Indexes - * =================================================== - * @description Iterate through each datasquirel schema - * table index(if available), and perform operations - */ - if (indexes === null || indexes === void 0 ? void 0 : indexes[0]) { - handleIndexescreateDbFromSchema({ - dbFullName, - indexes, - tableName, - }); - } - } - } - /** - * @description Check all children databases - */ - if (childrenDatabases === null || childrenDatabases === void 0 ? void 0 : childrenDatabases[0]) { - for (let ch = 0; ch < childrenDatabases.length; ch++) { - const childDb = childrenDatabases[ch]; - const { dbId } = childDb; - const targetDatabase = dbSchema.find((dbSch) => dbSch.childDatabaseDbId == dbId); - if (targetDatabase === null || targetDatabase === void 0 ? void 0 : targetDatabase.id) { - await createDbFromSchema({ - userId, - dbId: targetDatabase === null || targetDatabase === void 0 ? void 0 : targetDatabase.id, - }); + /** + * @description Check all children databases + */ + if (childrenDatabases === null || childrenDatabases === void 0 ? void 0 : childrenDatabases[0]) { + for (let ch = 0; ch < childrenDatabases.length; ch++) { + const childDb = childrenDatabases[ch]; + const { dbId } = childDb; + const targetDatabase = dbSchema.find((dbSch) => dbSch.childDatabaseDbId == dbId); + if (targetDatabase === null || targetDatabase === void 0 ? void 0 : targetDatabase.id) { + yield createDbFromSchema({ + userId, + dbId: targetDatabase === null || targetDatabase === void 0 ? void 0 : targetDatabase.id, + }); + } } } } + return true; } - return true; - } - catch (error) { - console.log(`createDbFromSchema ERROR => ${error.message}`); - return false; - } + catch (error) { + console.log(`createDbFromSchema ERROR => ${error.message}`); + return false; + } + }); } diff --git a/dist/package-shared/shell/deploy.js b/dist/package-shared/shell/deploy.js index 7564176..2abfbc7 100644 --- a/dist/package-shared/shell/deploy.js +++ b/dist/package-shared/shell/deploy.js @@ -1,3 +1,15 @@ -async function deploy() { } +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +function deploy() { + return __awaiter(this, void 0, void 0, function* () { }); +} deploy(); -export {}; diff --git a/dist/package-shared/shell/encodingUpdate.js b/dist/package-shared/shell/encodingUpdate.js index 2806b7d..c50ffb7 100644 --- a/dist/package-shared/shell/encodingUpdate.js +++ b/dist/package-shared/shell/encodingUpdate.js @@ -1,5 +1,19 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "./../.env" }); -import varDatabaseDbHandler from "../functions/backend/varDatabaseDbHandler"; +const varDatabaseDbHandler_1 = __importDefault(require("../functions/backend/varDatabaseDbHandler")); /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ @@ -11,22 +25,22 @@ import varDatabaseDbHandler from "../functions/backend/varDatabaseDbHandler"; * * @description Grab Schema */ -varDatabaseDbHandler({ +(0, varDatabaseDbHandler_1.default)({ queryString: `SELECT user_database_tables.*,user_databases.db_full_name FROM user_database_tables JOIN user_databases ON user_database_tables.db_id=user_databases.id`, database: "datasquirel", -}).then(async (tables) => { +}).then((tables) => __awaiter(void 0, void 0, void 0, function* () { for (let i = 0; i < tables.length; i++) { const table = tables[i]; const { id, user_id, db_id, db_full_name, table_name, table_slug, table_description, } = table; - const tableInfo = await varDatabaseDbHandler({ + const tableInfo = yield (0, varDatabaseDbHandler_1.default)({ queryString: `SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='${db_full_name}' AND TABLE_NAME='${table_slug}'`, }); - const updateDbCharset = await varDatabaseDbHandler({ + const updateDbCharset = yield (0, varDatabaseDbHandler_1.default)({ queryString: `ALTER DATABASE ${db_full_name} CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;`, }); - const updateEncoding = await varDatabaseDbHandler({ + const updateEncoding = yield (0, varDatabaseDbHandler_1.default)({ queryString: `ALTER TABLE \`${db_full_name}\`.\`${table_slug}\` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin`, }); } process.exit(); -}); +})); diff --git a/dist/package-shared/shell/functions/jsonToBase64.js b/dist/package-shared/shell/functions/jsonToBase64.js index 3154405..c44ae99 100644 --- a/dist/package-shared/shell/functions/jsonToBase64.js +++ b/dist/package-shared/shell/functions/jsonToBase64.js @@ -1,5 +1,10 @@ -import fs from "fs"; -import path from "path"; -const jsonFile = path.resolve(__dirname, "../../jsonData/userPriviledges.json"); -const base64File = Buffer.from(fs.readFileSync(jsonFile, "utf8")).toString("base64"); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); +const jsonFile = path_1.default.resolve(__dirname, "../../jsonData/userPriviledges.json"); +const base64File = Buffer.from(fs_1.default.readFileSync(jsonFile, "utf8")).toString("base64"); console.log(base64File); diff --git a/dist/package-shared/shell/grantFullPriviledges.js b/dist/package-shared/shell/grantFullPriviledges.js index b5cb853..7e8a282 100644 --- a/dist/package-shared/shell/grantFullPriviledges.js +++ b/dist/package-shared/shell/grantFullPriviledges.js @@ -1,34 +1,50 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "./../.env" }); -import { AppNames } from "../dict/app-names"; -import serverError from "../functions/backend/serverError"; -import noDatabaseDbHandler from "./utils/noDatabaseDbHandler"; +const app_names_1 = require("../dict/app-names"); +const serverError_1 = __importDefault(require("../functions/backend/serverError")); +const noDatabaseDbHandler_1 = __importDefault(require("./utils/noDatabaseDbHandler")); /** * # Create Database From Schema */ -async function grantFullPrivileges({ userId }) { - /** - * Grab Schema - * - * @description Grab Schema - */ - try { - const defaultMariadbUserHost = process.env.DSQL_DB_HOST || "127.0.0.1"; - const allDatabases = await noDatabaseDbHandler(`SHOW DATABASES`); - const datasquirelUserDatabases = allDatabases.filter((database) => database.Database.match(new RegExp(`^${AppNames["DsqlDbPrefix"]}`))); - for (let i = 0; i < datasquirelUserDatabases.length; i++) { - const datasquirelUserDatabase = datasquirelUserDatabases[i]; - const { Database } = datasquirelUserDatabase; +function grantFullPrivileges(_a) { + return __awaiter(this, arguments, void 0, function* ({ userId }) { + /** + * Grab Schema + * + * @description Grab Schema + */ + try { + const defaultMariadbUserHost = process.env.DSQL_DB_HOST || "127.0.0.1"; + const allDatabases = yield (0, noDatabaseDbHandler_1.default)(`SHOW DATABASES`); + const datasquirelUserDatabases = allDatabases.filter((database) => database.Database.match(new RegExp(`^${app_names_1.AppNames["DsqlDbPrefix"]}`))); + for (let i = 0; i < datasquirelUserDatabases.length; i++) { + const datasquirelUserDatabase = datasquirelUserDatabases[i]; + const { Database } = datasquirelUserDatabase; + } + const flushPriviledged = yield (0, noDatabaseDbHandler_1.default)(`FLUSH PRIVILEGES`); } - const flushPriviledged = await noDatabaseDbHandler(`FLUSH PRIVILEGES`); - } - catch (error) { - serverError({ - component: "shell/grantDbPriviledges/main-catch-error", - message: error.message, - user: { id: userId }, - }); - } - process.exit(); + catch (error) { + (0, serverError_1.default)({ + component: "shell/grantDbPriviledges/main-catch-error", + message: error.message, + user: { id: userId }, + }); + } + process.exit(); + }); } const userArg = process.argv[process.argv.indexOf("--user")]; const externalUser = process.argv[process.argv.indexOf("--user") + 1]; diff --git a/dist/package-shared/shell/lessWatch.js b/dist/package-shared/shell/lessWatch.js index ebda906..bfcd42a 100644 --- a/dist/package-shared/shell/lessWatch.js +++ b/dist/package-shared/shell/lessWatch.js @@ -1,5 +1,10 @@ -import fs from "fs"; -import { exec } from "child_process"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = __importDefault(require("fs")); +const child_process_1 = require("child_process"); require("dotenv").config({ path: "./../.env" }); const sourceFile = process.argv.indexOf("--src") >= 0 ? process.argv[process.argv.indexOf("--src") + 1] @@ -16,7 +21,7 @@ if (!sourceFiles || !dstFiles) { for (let i = 0; i < sourceFiles.length; i++) { const srcFolder = sourceFiles[i]; const dstFile = dstFiles[i]; - fs.watch(srcFolder, { recursive: true }, (evtType, prev) => { + fs_1.default.watch(srcFolder, { recursive: true }, (evtType, prev) => { if ((prev === null || prev === void 0 ? void 0 : prev.match(/\(/)) || (prev === null || prev === void 0 ? void 0 : prev.match(/\.(j|t)s$/i))) { return; } @@ -33,13 +38,13 @@ for (let i = 0; i < sourceFiles.length; i++) { finalSrcPath = `${srcFolder}/${targetPathFull}`; finalDstPath = targetDstFilePath; } - exec(`lessc ${finalSrcPath} ${(finalDstPath === null || finalDstPath === void 0 ? void 0 : finalDstPath.match(/\.css$/)) + (0, child_process_1.exec)(`lessc ${finalSrcPath} ${(finalDstPath === null || finalDstPath === void 0 ? void 0 : finalDstPath.match(/\.css$/)) ? finalDstPath : finalDstPath.replace(/\/$/, "") + "/_main.css"}`, (error, stdout, stderr) => { if (error) { console.log("ERROR =>", error.message); if (!(evtType === null || evtType === void 0 ? void 0 : evtType.match(/change/i)) && (prev === null || prev === void 0 ? void 0 : prev.match(/\[/))) { - fs.unlinkSync(finalDstPath); + fs_1.default.unlinkSync(finalDstPath); } return; } diff --git a/dist/package-shared/shell/mariadb-users/handleGrants.js b/dist/package-shared/shell/mariadb-users/handleGrants.js index ceb0da0..94de0e7 100644 --- a/dist/package-shared/shell/mariadb-users/handleGrants.js +++ b/dist/package-shared/shell/mariadb-users/handleGrants.js @@ -1,57 +1,74 @@ -import noDatabaseDbHandler from "../utils/noDatabaseDbHandler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleGrants; +const noDatabaseDbHandler_1 = __importDefault(require("../utils/noDatabaseDbHandler")); /** * # Handle Grants for Users */ -export default async function handleGrants({ username, host, grants, userId, }) { - var _a; - let success = false; - console.log(`Handling Grants for User =>`, username, host); - if (!username) { - console.log(`No username provided.`); - return success; - } - if (!host) { - console.log(`No Host provided. \x1b[35m\`--host\`\x1b[0m flag is required`); - return success; - } - if (!grants) { - console.log(`No grants Array provided.`); - return success; - } - try { - const existingUser = await noDatabaseDbHandler(`SELECT * FROM mysql.user WHERE User = '${username}' AND Host = '${host}'`); - const isUserExisting = Boolean((_a = existingUser === null || existingUser === void 0 ? void 0 : existingUser[0]) === null || _a === void 0 ? void 0 : _a.User); - if (isUserExisting) { - const userGrants = await noDatabaseDbHandler(`SHOW GRANTS FOR '${username}'@'${host}'`); - for (let i = 0; i < userGrants.length; i++) { - const grantObject = userGrants[i]; - const grant = grantObject === null || grantObject === void 0 ? void 0 : grantObject[Object.keys(grantObject)[0]]; - if (grant === null || grant === void 0 ? void 0 : grant.match(/GRANT .* PRIVILEGES ON .* TO/)) { - const revokeGrantText = grant - .replace(/GRANT/, "REVOKE") - .replace(/ TO /, " FROM "); - const revokePrivilege = await noDatabaseDbHandler(revokeGrantText); +function handleGrants(_a) { + return __awaiter(this, arguments, void 0, function* ({ username, host, grants, userId, }) { + var _b; + let success = false; + console.log(`Handling Grants for User =>`, username, host); + if (!username) { + console.log(`No username provided.`); + return success; + } + if (!host) { + console.log(`No Host provided. \x1b[35m\`--host\`\x1b[0m flag is required`); + return success; + } + if (!grants) { + console.log(`No grants Array provided.`); + return success; + } + try { + const existingUser = yield (0, noDatabaseDbHandler_1.default)(`SELECT * FROM mysql.user WHERE User = '${username}' AND Host = '${host}'`); + const isUserExisting = Boolean((_b = existingUser === null || existingUser === void 0 ? void 0 : existingUser[0]) === null || _b === void 0 ? void 0 : _b.User); + if (isUserExisting) { + const userGrants = yield (0, noDatabaseDbHandler_1.default)(`SHOW GRANTS FOR '${username}'@'${host}'`); + for (let i = 0; i < userGrants.length; i++) { + const grantObject = userGrants[i]; + const grant = grantObject === null || grantObject === void 0 ? void 0 : grantObject[Object.keys(grantObject)[0]]; + if (grant === null || grant === void 0 ? void 0 : grant.match(/GRANT .* PRIVILEGES ON .* TO/)) { + const revokeGrantText = grant + .replace(/GRANT/, "REVOKE") + .replace(/ TO /, " FROM "); + const revokePrivilege = yield (0, noDatabaseDbHandler_1.default)(revokeGrantText); + } + } + const grantsArray = grants; + for (let i = 0; i < grantsArray.length; i++) { + const grantObject = grantsArray[i]; + const { database, table, privileges } = grantObject; + const tableText = table == "*" ? "*" : `\`${table}\``; + const databaseText = database == "*" + ? `\`${process.env.DSQL_USER_DB_PREFIX}${userId}_%\`` + : `\`${database}\``; + const privilegesText = privileges.includes("ALL") + ? "ALL PRIVILEGES" + : privileges.join(", "); + const grantText = `GRANT ${privilegesText} ON ${databaseText}.${tableText} TO '${username}'@'${host}'`; + const grantPriviledge = yield (0, noDatabaseDbHandler_1.default)(grantText); } } - const grantsArray = grants; - for (let i = 0; i < grantsArray.length; i++) { - const grantObject = grantsArray[i]; - const { database, table, privileges } = grantObject; - const tableText = table == "*" ? "*" : `\`${table}\``; - const databaseText = database == "*" - ? `\`${process.env.DSQL_USER_DB_PREFIX}${userId}_%\`` - : `\`${database}\``; - const privilegesText = privileges.includes("ALL") - ? "ALL PRIVILEGES" - : privileges.join(", "); - const grantText = `GRANT ${privilegesText} ON ${databaseText}.${tableText} TO '${username}'@'${host}'`; - const grantPriviledge = await noDatabaseDbHandler(grantText); - } + success = true; } - success = true; - } - catch ( /** @type {any} */error) { - console.log(`Error in adding SQL user =>`, error.message); - } - return success; + catch ( /** @type {any} */error) { + console.log(`Error in adding SQL user =>`, error.message); + } + return success; + }); } diff --git a/dist/package-shared/shell/mariadb-users/resetSQLPasswords.js b/dist/package-shared/shell/mariadb-users/resetSQLPasswords.js index 00aed47..07387d7 100644 --- a/dist/package-shared/shell/mariadb-users/resetSQLPasswords.js +++ b/dist/package-shared/shell/mariadb-users/resetSQLPasswords.js @@ -1,56 +1,72 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "../../.env" }); -import generator from "generate-password"; -import noDatabaseDbHandler from "../utils/noDatabaseDbHandler"; -import dbHandler from "../../functions/backend/dbHandler"; -import encrypt from "../../functions/dsql/encrypt"; -import grabSQLKeyName from "../../utils/grab-sql-key-name"; +const generate_password_1 = __importDefault(require("generate-password")); +const noDatabaseDbHandler_1 = __importDefault(require("../utils/noDatabaseDbHandler")); +const dbHandler_1 = __importDefault(require("../../functions/backend/dbHandler")); +const encrypt_1 = __importDefault(require("../../functions/dsql/encrypt")); +const grab_sql_key_name_1 = __importDefault(require("../../utils/grab-sql-key-name")); /** * # Reset SQL Passwords */ -async function resetSQLCredentialsPasswords() { - var _a; - const users = (await dbHandler({ - query: `SELECT * FROM users`, - })); - if (!users) { - process.exit(); - } - for (let i = 0; i < users.length; i++) { - const user = users[i]; - if (!user) - continue; - try { - const maridbUsers = (await dbHandler({ - query: `SELECT * FROM mysql.user WHERE User = '${grabSQLKeyName({ type: "user", userId: user.id })}'`, - })); - for (let j = 0; j < maridbUsers.length; j++) { - const { User, Host } = maridbUsers[j]; - const password = generator.generate({ - length: 16, - numbers: true, - symbols: true, - uppercase: true, - exclude: "*#.'`\"", - }); - const encryptedPassword = encrypt({ - data: password, - encryptionKey: process.env.DSQL_ENCRYPTION_PASSWORD, - encryptionSalt: process.env.DSQL_ENCRYPTION_SALT, - }); - await noDatabaseDbHandler(`SET PASSWORD FOR '${User}'@'${Host}' = PASSWORD('${password}')`); - if (user.mariadb_user == User && user.mariadb_host == Host) { - const updateUser = await dbHandler({ - query: `UPDATE users SET mariadb_pass = ? WHERE id = ?`, - values: [encryptedPassword, user.id], +function resetSQLCredentialsPasswords() { + return __awaiter(this, void 0, void 0, function* () { + var _a; + const users = (yield (0, dbHandler_1.default)({ + query: `SELECT * FROM users`, + })); + if (!users) { + process.exit(); + } + for (let i = 0; i < users.length; i++) { + const user = users[i]; + if (!user) + continue; + try { + const maridbUsers = (yield (0, dbHandler_1.default)({ + query: `SELECT * FROM mysql.user WHERE User = '${(0, grab_sql_key_name_1.default)({ type: "user", userId: user.id })}'`, + })); + for (let j = 0; j < maridbUsers.length; j++) { + const { User, Host } = maridbUsers[j]; + const password = generate_password_1.default.generate({ + length: 16, + numbers: true, + symbols: true, + uppercase: true, + exclude: "*#.'`\"", }); + const encryptedPassword = (0, encrypt_1.default)({ + data: password, + encryptionKey: process.env.DSQL_ENCRYPTION_PASSWORD, + encryptionSalt: process.env.DSQL_ENCRYPTION_SALT, + }); + yield (0, noDatabaseDbHandler_1.default)(`SET PASSWORD FOR '${User}'@'${Host}' = PASSWORD('${password}')`); + if (user.mariadb_user == User && user.mariadb_host == Host) { + const updateUser = yield (0, dbHandler_1.default)({ + query: `UPDATE users SET mariadb_pass = ? WHERE id = ?`, + values: [encryptedPassword, user.id], + }); + } + console.log(`User ${user.id}: ${user.first_name} ${user.last_name} Password Updated successfully added.`); } - console.log(`User ${user.id}: ${user.first_name} ${user.last_name} Password Updated successfully added.`); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Resetting MariaDB User Password`, error); } } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Resetting MariaDB User Password`, error); - } - } - process.exit(); + process.exit(); + }); } resetSQLCredentialsPasswords(); diff --git a/dist/package-shared/shell/mariadb-users/users/create-user.js b/dist/package-shared/shell/mariadb-users/users/create-user.js index f8b982e..e76e332 100644 --- a/dist/package-shared/shell/mariadb-users/users/create-user.js +++ b/dist/package-shared/shell/mariadb-users/users/create-user.js @@ -1,121 +1,137 @@ -import path from "path"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const path_1 = __importDefault(require("path")); require("dotenv").config({ path: "../../../.env" }); -import fs from "fs"; -import { execSync } from "child_process"; -import EJSON from "../../../utils/ejson"; -import DB_HANDLER from "../../../utils/backend/global-db/DB_HANDLER"; -import addDbEntry from "../../../functions/backend/db/addDbEntry"; -import addMariadbUser from "../../../functions/backend/addMariadbUser"; -import updateDbEntry from "../../../functions/backend/db/updateDbEntry"; -import hashPassword from "../../../functions/dsql/hashPassword"; -import grabDirNames from "../../../utils/backend/names/grab-dir-names"; +const fs_1 = __importDefault(require("fs")); +const child_process_1 = require("child_process"); +const ejson_1 = __importDefault(require("../../../utils/ejson")); +const DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DB_HANDLER")); +const addDbEntry_1 = __importDefault(require("../../../functions/backend/db/addDbEntry")); +const addMariadbUser_1 = __importDefault(require("../../../functions/backend/addMariadbUser")); +const updateDbEntry_1 = __importDefault(require("../../../functions/backend/db/updateDbEntry")); +const hashPassword_1 = __importDefault(require("../../../functions/dsql/hashPassword")); +const grab_dir_names_1 = __importDefault(require("../../../utils/backend/names/grab-dir-names")); const tmpDir = process.argv[process.argv.length - 1]; /** * # Create New User */ -async function createUser() { - var _a, _b; - /** - * Validate Form - * - * @description Check if request body is valid - */ - try { - const isTmpDir = Boolean(tmpDir === null || tmpDir === void 0 ? void 0 : tmpDir.match(/\.json$/)); - const targetPath = isTmpDir - ? path.resolve(process.cwd(), tmpDir) - : path.resolve(__dirname, "./new-user.json"); - const userObj = EJSON.parse(fs.readFileSync(targetPath, "utf-8")); - if (typeof userObj !== "object" || Array.isArray(userObj)) - throw new Error("User Object Invalid!"); - const ROOT_DIR = path.resolve(__dirname, "../../../"); +function createUser() { + return __awaiter(this, void 0, void 0, function* () { + var _a, _b; /** * Validate Form * * @description Check if request body is valid */ - const first_name = userObj.first_name; - const last_name = userObj.last_name; - const email = userObj.email; - const password = userObj.password; - const username = userObj.username; - if (!(email === null || email === void 0 ? void 0 : email.match(/.*@.*\..*/))) - return false; - if (!(first_name === null || first_name === void 0 ? void 0 : first_name.match(/^[a-zA-Z]+$/)) || - !(last_name === null || last_name === void 0 ? void 0 : last_name.match(/^[a-zA-Z]+$/))) - return false; - if (password === null || password === void 0 ? void 0 : password.match(/ /)) - return false; - if (username === null || username === void 0 ? void 0 : username.match(/ /)) - return false; - let hashedPassword = hashPassword({ - encryptionKey: process.env.DSQL_ENCRYPTION_PASSWORD || "", - password: password, - }); - let existingUser = await DB_HANDLER(`SELECT * FROM users WHERE email='${email}'`); - if (existingUser === null || existingUser === void 0 ? void 0 : existingUser[0]) { - console.log("User Exists"); - return false; - } - const newUser = await addDbEntry({ - dbFullName: "datasquirel", - tableName: "users", - data: Object.assign(Object.assign({}, userObj), { password: hashedPassword }), - }); - if (!((_a = newUser === null || newUser === void 0 ? void 0 : newUser.payload) === null || _a === void 0 ? void 0 : _a.insertId)) - return false; - /** - * Add a Mariadb User for this User - */ - await addMariadbUser({ userId: newUser.payload.insertId }); - const { STATIC_ROOT } = grabDirNames(); - if (!STATIC_ROOT) { - console.log("Static File ENV not Found!"); - throw new Error("No Static Path"); - } - /** - * Create new user folder and file - * - * @description Create new user folder and file - */ - let newUserSchemaFolderPath = `${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${newUser.payload.insertId}`; - let newUserMediaFolderPath = path.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}`); - fs.mkdirSync(newUserSchemaFolderPath, { recursive: true }); - fs.mkdirSync(newUserMediaFolderPath, { recursive: true }); - fs.writeFileSync(`${newUserSchemaFolderPath}/main.json`, JSON.stringify([]), "utf8"); - const imageBasePath = path.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}`); - if (!fs.existsSync(imageBasePath)) { - fs.mkdirSync(imageBasePath, { recursive: true }); - } - let imagePath = path.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}/user-${newUser.payload.insertId}-profile.jpg`); - let imageThumbnailPath = path.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}/user-${newUser.payload.insertId}-profile-thumbnail.jpg`); - let prodImageUrl = imagePath.replace(STATIC_ROOT, process.env.DSQL_STATIC_HOST || ""); - let prodImageThumbnailUrl = imageThumbnailPath.replace(STATIC_ROOT, process.env.DSQL_STATIC_HOST || ""); - fs.copyFileSync(path.join(ROOT_DIR, "/public/images/user-preset.png"), imagePath); - fs.copyFileSync(path.join(ROOT_DIR, "/public/images/user-preset-thumbnail.png"), imageThumbnailPath); - execSync(`chmod 644 ${imagePath} ${imageThumbnailPath}`); - const updateImages = await updateDbEntry({ - dbFullName: "datasquirel", - tableName: "users", - identifierColumnName: "id", - identifierValue: newUser.payload.insertId, - data: { - image: prodImageUrl, - image_thumbnail: prodImageThumbnailUrl, - }, - }); - if (isTmpDir) { - try { - fs.unlinkSync(path.resolve(process.cwd(), tmpDir)); + try { + const isTmpDir = Boolean(tmpDir === null || tmpDir === void 0 ? void 0 : tmpDir.match(/\.json$/)); + const targetPath = isTmpDir + ? path_1.default.resolve(process.cwd(), tmpDir) + : path_1.default.resolve(__dirname, "./new-user.json"); + const userObj = ejson_1.default.parse(fs_1.default.readFileSync(targetPath, "utf-8")); + if (typeof userObj !== "object" || Array.isArray(userObj)) + throw new Error("User Object Invalid!"); + const ROOT_DIR = path_1.default.resolve(__dirname, "../../../"); + /** + * Validate Form + * + * @description Check if request body is valid + */ + const first_name = userObj.first_name; + const last_name = userObj.last_name; + const email = userObj.email; + const password = userObj.password; + const username = userObj.username; + if (!(email === null || email === void 0 ? void 0 : email.match(/.*@.*\..*/))) + return false; + if (!(first_name === null || first_name === void 0 ? void 0 : first_name.match(/^[a-zA-Z]+$/)) || + !(last_name === null || last_name === void 0 ? void 0 : last_name.match(/^[a-zA-Z]+$/))) + return false; + if (password === null || password === void 0 ? void 0 : password.match(/ /)) + return false; + if (username === null || username === void 0 ? void 0 : username.match(/ /)) + return false; + let hashedPassword = (0, hashPassword_1.default)({ + encryptionKey: process.env.DSQL_ENCRYPTION_PASSWORD || "", + password: password, + }); + let existingUser = yield (0, DB_HANDLER_1.default)(`SELECT * FROM users WHERE email='${email}'`); + if (existingUser === null || existingUser === void 0 ? void 0 : existingUser[0]) { + console.log("User Exists"); + return false; } - catch (error) { } + const newUser = yield (0, addDbEntry_1.default)({ + dbFullName: "datasquirel", + tableName: "users", + data: Object.assign(Object.assign({}, userObj), { password: hashedPassword }), + }); + if (!((_a = newUser === null || newUser === void 0 ? void 0 : newUser.payload) === null || _a === void 0 ? void 0 : _a.insertId)) + return false; + /** + * Add a Mariadb User for this User + */ + yield (0, addMariadbUser_1.default)({ userId: newUser.payload.insertId }); + const { STATIC_ROOT } = (0, grab_dir_names_1.default)(); + if (!STATIC_ROOT) { + console.log("Static File ENV not Found!"); + throw new Error("No Static Path"); + } + /** + * Create new user folder and file + * + * @description Create new user folder and file + */ + let newUserSchemaFolderPath = `${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${newUser.payload.insertId}`; + let newUserMediaFolderPath = path_1.default.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}`); + fs_1.default.mkdirSync(newUserSchemaFolderPath, { recursive: true }); + fs_1.default.mkdirSync(newUserMediaFolderPath, { recursive: true }); + fs_1.default.writeFileSync(`${newUserSchemaFolderPath}/main.json`, JSON.stringify([]), "utf8"); + const imageBasePath = path_1.default.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}`); + if (!fs_1.default.existsSync(imageBasePath)) { + fs_1.default.mkdirSync(imageBasePath, { recursive: true }); + } + let imagePath = path_1.default.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}/user-${newUser.payload.insertId}-profile.jpg`); + let imageThumbnailPath = path_1.default.join(STATIC_ROOT, `images/user-images/user-${newUser.payload.insertId}/user-${newUser.payload.insertId}-profile-thumbnail.jpg`); + let prodImageUrl = imagePath.replace(STATIC_ROOT, process.env.DSQL_STATIC_HOST || ""); + let prodImageThumbnailUrl = imageThumbnailPath.replace(STATIC_ROOT, process.env.DSQL_STATIC_HOST || ""); + fs_1.default.copyFileSync(path_1.default.join(ROOT_DIR, "/public/images/user-preset.png"), imagePath); + fs_1.default.copyFileSync(path_1.default.join(ROOT_DIR, "/public/images/user-preset-thumbnail.png"), imageThumbnailPath); + (0, child_process_1.execSync)(`chmod 644 ${imagePath} ${imageThumbnailPath}`); + const updateImages = yield (0, updateDbEntry_1.default)({ + dbFullName: "datasquirel", + tableName: "users", + identifierColumnName: "id", + identifierValue: newUser.payload.insertId, + data: { + image: prodImageUrl, + image_thumbnail: prodImageThumbnailUrl, + }, + }); + if (isTmpDir) { + try { + fs_1.default.unlinkSync(path_1.default.resolve(process.cwd(), tmpDir)); + } + catch (error) { } + } + return true; } - return true; - } - catch (error) { - (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Creating User`, error); - return false; - } + catch (error) { + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Creating User`, error); + return false; + } + }); } createUser().then((res) => { if (res) { diff --git a/dist/package-shared/shell/mariadb-users/users/update-user.js b/dist/package-shared/shell/mariadb-users/users/update-user.js index cb20ada..8996d0a 100644 --- a/dist/package-shared/shell/mariadb-users/users/update-user.js +++ b/dist/package-shared/shell/mariadb-users/users/update-user.js @@ -1,59 +1,75 @@ -import path from "path"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const path_1 = __importDefault(require("path")); require("dotenv").config({ path: "../../../.env" }); -import fs from "fs"; -import EJSON from "../../../utils/ejson"; -import hashPassword from "../../../functions/dsql/hashPassword"; -import updateDbEntry from "../../../functions/backend/db/updateDbEntry"; +const fs_1 = __importDefault(require("fs")); +const ejson_1 = __importDefault(require("../../../utils/ejson")); +const hashPassword_1 = __importDefault(require("../../../functions/dsql/hashPassword")); +const updateDbEntry_1 = __importDefault(require("../../../functions/backend/db/updateDbEntry")); const tmpDir = process.argv[process.argv.length - 1]; /** * # Create New User */ -async function createUser() { - var _a; - /** - * Validate Form - * - * @description Check if request body is valid - */ - try { - const isTmpDir = Boolean(tmpDir === null || tmpDir === void 0 ? void 0 : tmpDir.match(/\.json$/)); - const targetPath = isTmpDir - ? path.resolve(process.cwd(), tmpDir) - : path.resolve(__dirname, "./update-user.json"); - const updateUserObj = EJSON.parse(fs.readFileSync(targetPath, "utf-8")); - if (typeof updateUserObj !== "object" || Array.isArray(updateUserObj)) - throw new Error("Update User Object Invalid!"); - let hashedPassword = updateUserObj.password - ? hashPassword({ - encryptionKey: process.env.DSQL_ENCRYPTION_PASSWORD || "", - password: updateUserObj.password, - }) - : undefined; - let updatePayload = Object.assign({}, updateUserObj); - if (hashedPassword) { - updatePayload["password"] = hashedPassword; - } - const newUser = await updateDbEntry({ - dbFullName: "datasquirel", - tableName: "users", - data: Object.assign(Object.assign({}, updatePayload), { id: undefined }), - identifierColumnName: "id", - identifierValue: updatePayload.id, - }); - if (!(newUser === null || newUser === void 0 ? void 0 : newUser.affectedRows)) - return false; - if (isTmpDir) { - try { - fs.unlinkSync(path.resolve(process.cwd(), tmpDir)); +function createUser() { + return __awaiter(this, void 0, void 0, function* () { + var _a; + /** + * Validate Form + * + * @description Check if request body is valid + */ + try { + const isTmpDir = Boolean(tmpDir === null || tmpDir === void 0 ? void 0 : tmpDir.match(/\.json$/)); + const targetPath = isTmpDir + ? path_1.default.resolve(process.cwd(), tmpDir) + : path_1.default.resolve(__dirname, "./update-user.json"); + const updateUserObj = ejson_1.default.parse(fs_1.default.readFileSync(targetPath, "utf-8")); + if (typeof updateUserObj !== "object" || Array.isArray(updateUserObj)) + throw new Error("Update User Object Invalid!"); + let hashedPassword = updateUserObj.password + ? (0, hashPassword_1.default)({ + encryptionKey: process.env.DSQL_ENCRYPTION_PASSWORD || "", + password: updateUserObj.password, + }) + : undefined; + let updatePayload = Object.assign({}, updateUserObj); + if (hashedPassword) { + updatePayload["password"] = hashedPassword; } - catch (error) { } + const newUser = yield (0, updateDbEntry_1.default)({ + dbFullName: "datasquirel", + tableName: "users", + data: Object.assign(Object.assign({}, updatePayload), { id: undefined }), + identifierColumnName: "id", + identifierValue: updatePayload.id, + }); + if (!(newUser === null || newUser === void 0 ? void 0 : newUser.affectedRows)) + return false; + if (isTmpDir) { + try { + fs_1.default.unlinkSync(path_1.default.resolve(process.cwd(), tmpDir)); + } + catch (error) { } + } + return true; } - return true; - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Updating User`, error); - return false; - } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Updating User`, error); + return false; + } + }); } createUser().then((res) => { if (res) { diff --git a/dist/package-shared/shell/readImage.js b/dist/package-shared/shell/readImage.js index 4e0f855..0693d08 100644 --- a/dist/package-shared/shell/readImage.js +++ b/dist/package-shared/shell/readImage.js @@ -1,2 +1,7 @@ -import fs from "fs"; -const imageBase64 = fs.readFileSync("./../public/images/unique-tokens-icon.png", "base64"); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = __importDefault(require("fs")); +const imageBase64 = fs_1.default.readFileSync("./../public/images/unique-tokens-icon.png", "base64"); diff --git a/dist/package-shared/shell/recoverMainJsonFromDb.js b/dist/package-shared/shell/recoverMainJsonFromDb.js index dd8258e..a88da32 100644 --- a/dist/package-shared/shell/recoverMainJsonFromDb.js +++ b/dist/package-shared/shell/recoverMainJsonFromDb.js @@ -1,7 +1,21 @@ -import fs from "fs"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = __importDefault(require("fs")); require("dotenv").config({ path: "./../.env" }); -import varDatabaseDbHandler from "../functions/backend/varDatabaseDbHandler"; -import DB_HANDLER from "../utils/backend/global-db/DB_HANDLER"; +const varDatabaseDbHandler_1 = __importDefault(require("../functions/backend/varDatabaseDbHandler")); +const DB_HANDLER_1 = __importDefault(require("../utils/backend/global-db/DB_HANDLER")); const userId = process.argv.indexOf("--userId") >= 0 ? process.argv[process.argv.indexOf("--userId") + 1] : null; @@ -10,61 +24,63 @@ const userId = process.argv.indexOf("--userId") >= 0 * * @description Grab Schema */ -async function recoverMainJsonFromDb() { - if (!userId) { - console.log("No user Id provided"); - return; - } - const databases = await DB_HANDLER(`SELECT * FROM user_databases WHERE user_id='${userId}'`); - const dbWrite = []; - for (let i = 0; i < databases.length; i++) { - const { id, db_name, db_slug, db_full_name, db_image, db_description } = databases[i]; - const dbObject = { - dbName: db_name, - dbSlug: db_slug, - dbFullName: db_full_name, - dbDescription: db_description, - dbImage: db_image, - tables: [], - }; - const tables = await DB_HANDLER(`SELECT * FROM user_database_tables WHERE user_id='${userId}' AND db_id='${id}'`); - for (let j = 0; j < tables.length; j++) { - const { table_name, table_slug, table_description } = tables[j]; - const tableObject = { - tableName: table_slug, - tableFullName: table_name, - fields: [], - indexes: [], - }; - const tableFields = await varDatabaseDbHandler({ - database: db_full_name, - queryString: `SHOW COLUMNS FROM ${db_full_name}.${table_slug}`, - }); - for (let k = 0; k < tableFields.length; k++) { - const { Field, Type, Null, Default, Key } = tableFields[k]; - const fieldObject = { - fieldName: Field, - dataType: Type.toUpperCase(), - }; - if ((Default === null || Default === void 0 ? void 0 : Default.match(/./)) && !(Default === null || Default === void 0 ? void 0 : Default.match(/timestamp/i))) - fieldObject["defaultValue"] = Default; - if (Key === null || Key === void 0 ? void 0 : Key.match(/pri/i)) { - fieldObject["primaryKey"] = true; - fieldObject["autoIncrement"] = true; - } - if (Default === null || Default === void 0 ? void 0 : Default.match(/timestamp/i)) - fieldObject["defaultValueLiteral"] = Default; - if (Null === null || Null === void 0 ? void 0 : Null.match(/yes/i)) - fieldObject["nullValue"] = true; - if (Null === null || Null === void 0 ? void 0 : Null.match(/no/i)) - fieldObject["notNullValue"] = true; - tableObject.fields.push(fieldObject); - } - dbObject.tables.push(tableObject); +function recoverMainJsonFromDb() { + return __awaiter(this, void 0, void 0, function* () { + if (!userId) { + console.log("No user Id provided"); + return; } - dbWrite.push(dbObject); - } - fs.writeFileSync(`${String(process.env.DSQL_USER_DB_SCHEMA_PATH)}/user-${userId}/main.json`, JSON.stringify(dbWrite, null, 4), "utf-8"); - process.exit(); + const databases = yield (0, DB_HANDLER_1.default)(`SELECT * FROM user_databases WHERE user_id='${userId}'`); + const dbWrite = []; + for (let i = 0; i < databases.length; i++) { + const { id, db_name, db_slug, db_full_name, db_image, db_description } = databases[i]; + const dbObject = { + dbName: db_name, + dbSlug: db_slug, + dbFullName: db_full_name, + dbDescription: db_description, + dbImage: db_image, + tables: [], + }; + const tables = yield (0, DB_HANDLER_1.default)(`SELECT * FROM user_database_tables WHERE user_id='${userId}' AND db_id='${id}'`); + for (let j = 0; j < tables.length; j++) { + const { table_name, table_slug, table_description } = tables[j]; + const tableObject = { + tableName: table_slug, + tableFullName: table_name, + fields: [], + indexes: [], + }; + const tableFields = yield (0, varDatabaseDbHandler_1.default)({ + database: db_full_name, + queryString: `SHOW COLUMNS FROM ${db_full_name}.${table_slug}`, + }); + for (let k = 0; k < tableFields.length; k++) { + const { Field, Type, Null, Default, Key } = tableFields[k]; + const fieldObject = { + fieldName: Field, + dataType: Type.toUpperCase(), + }; + if ((Default === null || Default === void 0 ? void 0 : Default.match(/./)) && !(Default === null || Default === void 0 ? void 0 : Default.match(/timestamp/i))) + fieldObject["defaultValue"] = Default; + if (Key === null || Key === void 0 ? void 0 : Key.match(/pri/i)) { + fieldObject["primaryKey"] = true; + fieldObject["autoIncrement"] = true; + } + if (Default === null || Default === void 0 ? void 0 : Default.match(/timestamp/i)) + fieldObject["defaultValueLiteral"] = Default; + if (Null === null || Null === void 0 ? void 0 : Null.match(/yes/i)) + fieldObject["nullValue"] = true; + if (Null === null || Null === void 0 ? void 0 : Null.match(/no/i)) + fieldObject["notNullValue"] = true; + tableObject.fields.push(fieldObject); + } + dbObject.tables.push(tableObject); + } + dbWrite.push(dbObject); + } + fs_1.default.writeFileSync(`${String(process.env.DSQL_USER_DB_SCHEMA_PATH)}/user-${userId}/main.json`, JSON.stringify(dbWrite, null, 4), "utf-8"); + process.exit(); + }); } recoverMainJsonFromDb(); diff --git a/dist/package-shared/shell/resetSQLCredentialsPasswords.js b/dist/package-shared/shell/resetSQLCredentialsPasswords.js index 0fdac4e..4c480fe 100644 --- a/dist/package-shared/shell/resetSQLCredentialsPasswords.js +++ b/dist/package-shared/shell/resetSQLCredentialsPasswords.js @@ -1,46 +1,62 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "./../.env" }); -import generator from "generate-password"; -import noDatabaseDbHandler from "./utils/noDatabaseDbHandler"; -import dbHandler from "../functions/backend/dbHandler"; -import encrypt from "../functions/dsql/encrypt"; -import grabSQLKeyName from "../utils/grab-sql-key-name"; +const generate_password_1 = __importDefault(require("generate-password")); +const noDatabaseDbHandler_1 = __importDefault(require("./utils/noDatabaseDbHandler")); +const dbHandler_1 = __importDefault(require("../functions/backend/dbHandler")); +const encrypt_1 = __importDefault(require("../functions/dsql/encrypt")); +const grab_sql_key_name_1 = __importDefault(require("../utils/grab-sql-key-name")); /** * # Create database from Schema Function */ -async function resetSQLCredentialsPasswords() { - var _a; - const users = (await dbHandler({ - query: `SELECT * FROM users`, - })); - if (!users) { +function resetSQLCredentialsPasswords() { + return __awaiter(this, void 0, void 0, function* () { + var _a; + const users = (yield (0, dbHandler_1.default)({ + query: `SELECT * FROM users`, + })); + if (!users) { + process.exit(); + } + for (let i = 0; i < users.length; i++) { + const user = users[i]; + if (!user) + continue; + const defaultMariadbUserHost = process.env.DSQL_DB_HOST || "127.0.0.1"; + try { + const username = (0, grab_sql_key_name_1.default)({ type: "user", userId: user.id }); + const password = generate_password_1.default.generate({ + length: 16, + numbers: true, + symbols: true, + uppercase: true, + exclude: "*#.'`\"", + }); + const encryptedPassword = (0, encrypt_1.default)({ data: password }); + yield (0, noDatabaseDbHandler_1.default)(`SET PASSWORD FOR '${username}'@'${defaultMariadbUserHost}' = PASSWORD('${password}')`); + const updateUser = yield (0, dbHandler_1.default)({ + query: `UPDATE users SET mariadb_pass = ? WHERE id = ?`, + values: [encryptedPassword, user.id], + }); + console.log(`User ${user.id}: ${user.first_name} ${user.last_name} Password Updated successfully added.`); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Updating MariaDB User`, error); + } + } process.exit(); - } - for (let i = 0; i < users.length; i++) { - const user = users[i]; - if (!user) - continue; - const defaultMariadbUserHost = process.env.DSQL_DB_HOST || "127.0.0.1"; - try { - const username = grabSQLKeyName({ type: "user", userId: user.id }); - const password = generator.generate({ - length: 16, - numbers: true, - symbols: true, - uppercase: true, - exclude: "*#.'`\"", - }); - const encryptedPassword = encrypt({ data: password }); - await noDatabaseDbHandler(`SET PASSWORD FOR '${username}'@'${defaultMariadbUserHost}' = PASSWORD('${password}')`); - const updateUser = await dbHandler({ - query: `UPDATE users SET mariadb_pass = ? WHERE id = ?`, - values: [encryptedPassword, user.id], - }); - console.log(`User ${user.id}: ${user.first_name} ${user.last_name} Password Updated successfully added.`); - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Updating MariaDB User`, error); - } - } - process.exit(); + }); } resetSQLCredentialsPasswords(); diff --git a/dist/package-shared/shell/scripts/convert-js-to-ts.js b/dist/package-shared/shell/scripts/convert-js-to-ts.js index 0f32034..9137347 100644 --- a/dist/package-shared/shell/scripts/convert-js-to-ts.js +++ b/dist/package-shared/shell/scripts/convert-js-to-ts.js @@ -1,14 +1,19 @@ -import path from "path"; -import fs from "fs"; -const rootDir = path.resolve(__dirname, "../../../"); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const path_1 = __importDefault(require("path")); +const fs_1 = __importDefault(require("fs")); +const rootDir = path_1.default.resolve(__dirname, "../../../"); const ignorePattern = /\/\.git\/|\/\.next\/|\/\.dist\/|node_modules|\/\.local_dist\/|\/\.tmp\/|\/types\/|\.config\.js|\/public\//; function transformJsToTs(dir) { var _a; - const dirContent = fs.readdirSync(dir); + const dirContent = fs_1.default.readdirSync(dir); for (let i = 0; i < dirContent.length; i++) { const fileFolder = dirContent[i]; - const fullFileFolderPath = path.join(dir, fileFolder); - const stat = fs.statSync(fullFileFolderPath); + const fullFileFolderPath = path_1.default.join(dir, fileFolder); + const stat = fs_1.default.statSync(fullFileFolderPath); if (stat.isDirectory()) { transformJsToTs(fullFileFolderPath); continue; @@ -26,8 +31,8 @@ function transformJsToTs(dir) { console.log(newFilePath); console.log("\n/////////////////////////////////////////"); console.log("/////////////////////////////////////////\n"); - fs.copyFileSync(fullFileFolderPath, newFilePath); - fs.unlinkSync(fullFileFolderPath); + fs_1.default.copyFileSync(fullFileFolderPath, newFilePath); + fs_1.default.unlinkSync(fullFileFolderPath); } } } diff --git a/dist/package-shared/shell/setSQLCredentials.js b/dist/package-shared/shell/setSQLCredentials.js index 2321757..56bea42 100644 --- a/dist/package-shared/shell/setSQLCredentials.js +++ b/dist/package-shared/shell/setSQLCredentials.js @@ -1,9 +1,23 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "./../.env" }); -import generator from "generate-password"; -import noDatabaseDbHandler from "./utils/noDatabaseDbHandler"; -import dbHandler from "../functions/backend/dbHandler"; -import encrypt from "../functions/dsql/encrypt"; -import grabSQLKeyName from "../utils/grab-sql-key-name"; +const generate_password_1 = __importDefault(require("generate-password")); +const noDatabaseDbHandler_1 = __importDefault(require("./utils/noDatabaseDbHandler")); +const dbHandler_1 = __importDefault(require("../functions/backend/dbHandler")); +const encrypt_1 = __importDefault(require("../functions/dsql/encrypt")); +const grab_sql_key_name_1 = __importDefault(require("../utils/grab-sql-key-name")); /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ @@ -13,43 +27,45 @@ import grabSQLKeyName from "../utils/grab-sql-key-name"; /** * # Set SQL Credentials */ -async function setSQLCredentials() { - var _a; - const users = (await dbHandler({ - query: `SELECT * FROM users`, - })); - if (!users) { - process.exit(); - } - for (let i = 0; i < users.length; i++) { - const user = users[i]; - if (!user) - continue; - if (user.mariadb_user && user.mariadb_pass) { - continue; +function setSQLCredentials() { + return __awaiter(this, void 0, void 0, function* () { + var _a; + const users = (yield (0, dbHandler_1.default)({ + query: `SELECT * FROM users`, + })); + if (!users) { + process.exit(); } - try { - const username = grabSQLKeyName({ type: "user", userId: user.id }); - const password = generator.generate({ - length: 16, - numbers: true, - symbols: true, - uppercase: true, - exclude: "*#.'`\"", - }); - const encryptedPassword = encrypt({ data: password }); - await noDatabaseDbHandler(`CREATE USER IF NOT EXISTS '${username}'@'127.0.0.1' IDENTIFIED BY '${password}'`); - await noDatabaseDbHandler(`GRANT ALL PRIVILEGES ON \`datasquirel\\_user\\_${user.id}\\_%\`.* TO '${username}'@'127.0.0.1'`); - await noDatabaseDbHandler(`FLUSH PRIVILEGES`); - const updateUser = await dbHandler({ - query: `UPDATE users SET mariadb_user = ?, mariadb_host = '127.0.0.1' mariadb_pass = ? WHERE id = ?`, - values: [username, encryptedPassword, user.id], - }); - console.log(`User ${user.id}: ${user.first_name} ${user.last_name} SQL credentials successfully added.`); + for (let i = 0; i < users.length; i++) { + const user = users[i]; + if (!user) + continue; + if (user.mariadb_user && user.mariadb_pass) { + continue; + } + try { + const username = (0, grab_sql_key_name_1.default)({ type: "user", userId: user.id }); + const password = generate_password_1.default.generate({ + length: 16, + numbers: true, + symbols: true, + uppercase: true, + exclude: "*#.'`\"", + }); + const encryptedPassword = (0, encrypt_1.default)({ data: password }); + yield (0, noDatabaseDbHandler_1.default)(`CREATE USER IF NOT EXISTS '${username}'@'127.0.0.1' IDENTIFIED BY '${password}'`); + yield (0, noDatabaseDbHandler_1.default)(`GRANT ALL PRIVILEGES ON \`datasquirel\\_user\\_${user.id}\\_%\`.* TO '${username}'@'127.0.0.1'`); + yield (0, noDatabaseDbHandler_1.default)(`FLUSH PRIVILEGES`); + const updateUser = yield (0, dbHandler_1.default)({ + query: `UPDATE users SET mariadb_user = ?, mariadb_host = '127.0.0.1' mariadb_pass = ? WHERE id = ?`, + values: [username, encryptedPassword, user.id], + }); + console.log(`User ${user.id}: ${user.first_name} ${user.last_name} SQL credentials successfully added.`); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Setting SQL credentials`, error); + } } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Setting SQL credentials`, error); - } - } + }); } setSQLCredentials(); diff --git a/dist/package-shared/shell/tailwindWatch.js b/dist/package-shared/shell/tailwindWatch.js index 3f843bb..468871d 100644 --- a/dist/package-shared/shell/tailwindWatch.js +++ b/dist/package-shared/shell/tailwindWatch.js @@ -1,5 +1,10 @@ -import fs from "fs"; -import { exec } from "child_process"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = __importDefault(require("fs")); +const child_process_1 = require("child_process"); require("dotenv").config({ path: "./../.env" }); const sourceFile = process.argv.indexOf("--src") >= 0 ? process.argv[process.argv.indexOf("--src") + 1] @@ -14,8 +19,8 @@ const destinationFile = process.argv.indexOf("--dst") >= 0 /** ****************************************************************************** */ /** ****************************************************************************** */ console.log("Running Tailwind CSS compiler ..."); -fs.watch("./../", (curr, prev) => { - exec(`bunx tailwindcss -i ./tailwind/main.css -o ./styles/tailwind.css`, (error, stdout, stderr) => { +fs_1.default.watch("./../", (curr, prev) => { + (0, child_process_1.exec)(`bunx tailwindcss -i ./tailwind/main.css -o ./styles/tailwind.css`, (error, stdout, stderr) => { if (error) { console.log("ERROR =>", error.message); return; diff --git a/dist/package-shared/shell/test-external-server.js b/dist/package-shared/shell/test-external-server.js index a3cf3de..b234c94 100644 --- a/dist/package-shared/shell/test-external-server.js +++ b/dist/package-shared/shell/test-external-server.js @@ -1,5 +1,19 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "./.env" }); -import grabDSQLConnection from "../utils/grab-dsql-connection"; +const grab_dsql_connection_1 = __importDefault(require("../utils/grab-dsql-connection")); /** * # Main DB Handler Function * @async @@ -11,16 +25,16 @@ import grabDSQLConnection from "../utils/grab-dsql-connection"; * * @returns {Promise} */ -(async () => { +(() => __awaiter(void 0, void 0, void 0, function* () { var _a; - const CONNECTION = grabDSQLConnection({ noDb: true }); + const CONNECTION = (0, grab_dsql_connection_1.default)({ noDb: true }); /** * Switch Database * * @description If a database is provided, switch to it */ try { - const result = await CONNECTION.query("SHOW DATABASES"); + const result = yield CONNECTION.query("SHOW DATABASES"); const parsedResults = JSON.parse(JSON.stringify(result)); console.log("parsedResults =>", parsedResults); } @@ -31,4 +45,4 @@ import grabDSQLConnection from "../utils/grab-dsql-connection"; CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end(); process.exit(); } -})(); +}))(); diff --git a/dist/package-shared/shell/testSQLEscape.js b/dist/package-shared/shell/testSQLEscape.js index 202ce56..5f46f41 100644 --- a/dist/package-shared/shell/testSQLEscape.js +++ b/dist/package-shared/shell/testSQLEscape.js @@ -1,54 +1,71 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = testSQLEscape; require("dotenv").config({ path: "./../.env" }); -import generator from "generate-password"; -import noDatabaseDbHandler from "./utils/noDatabaseDbHandler"; -import dbHandler from "../functions/backend/dbHandler"; -import encrypt from "../functions/dsql/encrypt"; -import grabSQLKeyName from "../utils/grab-sql-key-name"; +const generate_password_1 = __importDefault(require("generate-password")); +const noDatabaseDbHandler_1 = __importDefault(require("./utils/noDatabaseDbHandler")); +const dbHandler_1 = __importDefault(require("../functions/backend/dbHandler")); +const encrypt_1 = __importDefault(require("../functions/dsql/encrypt")); +const grab_sql_key_name_1 = __importDefault(require("../utils/grab-sql-key-name")); /** * # Test SQL Escape */ -export default async function testSQLEscape() { - var _a; - const users = (await dbHandler({ - query: `SELECT * FROM users`, - })); - if (!users) { +function testSQLEscape() { + return __awaiter(this, void 0, void 0, function* () { + var _a; + const users = (yield (0, dbHandler_1.default)({ + query: `SELECT * FROM users`, + })); + if (!users) { + process.exit(); + } + for (let i = 0; i < users.length; i++) { + const user = users[i]; + if (!user) + continue; + const defaultMariadbUserHost = process.env.DSQL_DB_HOST || "127.0.0.1"; + try { + const username = (0, grab_sql_key_name_1.default)({ type: "user", userId: user.id }); + const password = generate_password_1.default.generate({ + length: 16, + numbers: true, + symbols: true, + uppercase: true, + exclude: "*#.'`\"", + }); + const encryptedPassword = (0, encrypt_1.default)({ data: password }); + yield (0, noDatabaseDbHandler_1.default)(`DROP USER '${username}'@'${defaultMariadbUserHost}'`); + yield (0, noDatabaseDbHandler_1.default)(`CREATE USER IF NOT EXISTS '${username}'@'${defaultMariadbUserHost}' IDENTIFIED BY '${password}'`); + yield (0, noDatabaseDbHandler_1.default)(`GRANT ALL PRIVILEGES ON \`datasquirel\\_user\\_${user.id}\\_%\`.* TO '${username}'@'${defaultMariadbUserHost}'`); + yield (0, noDatabaseDbHandler_1.default)(`FLUSH PRIVILEGES`); + const updateUser = yield (0, dbHandler_1.default)({ + query: `UPDATE users SET mariadb_user = ?, mariadb_host = ? mariadb_pass = ? WHERE id = ?`, + values: [ + username, + defaultMariadbUserHost, + encryptedPassword, + user.id, + ], + }); + console.log(`User ${user.id}: ${user.first_name} ${user.last_name} SQL credentials successfully added.`); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Testing SQL Escape`, error); + } + } process.exit(); - } - for (let i = 0; i < users.length; i++) { - const user = users[i]; - if (!user) - continue; - const defaultMariadbUserHost = process.env.DSQL_DB_HOST || "127.0.0.1"; - try { - const username = grabSQLKeyName({ type: "user", userId: user.id }); - const password = generator.generate({ - length: 16, - numbers: true, - symbols: true, - uppercase: true, - exclude: "*#.'`\"", - }); - const encryptedPassword = encrypt({ data: password }); - await noDatabaseDbHandler(`DROP USER '${username}'@'${defaultMariadbUserHost}'`); - await noDatabaseDbHandler(`CREATE USER IF NOT EXISTS '${username}'@'${defaultMariadbUserHost}' IDENTIFIED BY '${password}'`); - await noDatabaseDbHandler(`GRANT ALL PRIVILEGES ON \`datasquirel\\_user\\_${user.id}\\_%\`.* TO '${username}'@'${defaultMariadbUserHost}'`); - await noDatabaseDbHandler(`FLUSH PRIVILEGES`); - const updateUser = await dbHandler({ - query: `UPDATE users SET mariadb_user = ?, mariadb_host = ? mariadb_pass = ? WHERE id = ?`, - values: [ - username, - defaultMariadbUserHost, - encryptedPassword, - user.id, - ], - }); - console.log(`User ${user.id}: ${user.first_name} ${user.last_name} SQL credentials successfully added.`); - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Testing SQL Escape`, error); - } - } - process.exit(); + }); } testSQLEscape(); diff --git a/dist/package-shared/shell/updateChildrenTablesOnDb.js b/dist/package-shared/shell/updateChildrenTablesOnDb.js index fc9992a..8d5512b 100644 --- a/dist/package-shared/shell/updateChildrenTablesOnDb.js +++ b/dist/package-shared/shell/updateChildrenTablesOnDb.js @@ -1,41 +1,57 @@ -import DB_HANDLER from "../utils/backend/global-db/DB_HANDLER"; -import fs from "fs"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const DB_HANDLER_1 = __importDefault(require("../utils/backend/global-db/DB_HANDLER")); +const fs_1 = __importDefault(require("fs")); require("dotenv").config({ path: "./../.env" }); -async function updateChildrenTablesOnDb() { - var _a; - /** - * Grab Schema - * - * @description Grab Schema - */ - try { - const rootDir = String(process.env.DSQL_USER_DB_SCHEMA_PATH); - const userFolders = fs.readdirSync(rootDir); - for (let i = 0; i < userFolders.length; i++) { - const folder = userFolders[i]; - const userId = folder.replace(/user-/, ""); - const databases = JSON.parse(fs.readFileSync(`${rootDir}/${folder}/main.json`, "utf-8")); - for (let j = 0; j < databases.length; j++) { - const db = databases[j]; - const dbTables = db.tables; - for (let k = 0; k < dbTables.length; k++) { - const table = dbTables[k]; - if (table === null || table === void 0 ? void 0 : table.childTable) { - const originTableName = table.childTableName; - const originDbName = table.childTableDbFullName; - const WHERE_CLAUSE = `WHERE user_id='${userId}' AND db_slug='${db.dbSlug}' AND table_slug='${table.tableName}'`; - const existingTableInDb = await DB_HANDLER(`SELECT * FROM user_database_tables ${WHERE_CLAUSE}`); - if (existingTableInDb && existingTableInDb[0]) { - const updateChildrenTablesInfo = await DB_HANDLER(`UPDATE user_database_tables SET child_table='1',child_table_parent_database='${originDbName}',child_table_parent_table='${originTableName}' WHERE id='${existingTableInDb[0].id}'`); +function updateChildrenTablesOnDb() { + return __awaiter(this, void 0, void 0, function* () { + var _a; + /** + * Grab Schema + * + * @description Grab Schema + */ + try { + const rootDir = String(process.env.DSQL_USER_DB_SCHEMA_PATH); + const userFolders = fs_1.default.readdirSync(rootDir); + for (let i = 0; i < userFolders.length; i++) { + const folder = userFolders[i]; + const userId = folder.replace(/user-/, ""); + const databases = JSON.parse(fs_1.default.readFileSync(`${rootDir}/${folder}/main.json`, "utf-8")); + for (let j = 0; j < databases.length; j++) { + const db = databases[j]; + const dbTables = db.tables; + for (let k = 0; k < dbTables.length; k++) { + const table = dbTables[k]; + if (table === null || table === void 0 ? void 0 : table.childTable) { + const originTableName = table.childTableName; + const originDbName = table.childTableDbFullName; + const WHERE_CLAUSE = `WHERE user_id='${userId}' AND db_slug='${db.dbSlug}' AND table_slug='${table.tableName}'`; + const existingTableInDb = yield (0, DB_HANDLER_1.default)(`SELECT * FROM user_database_tables ${WHERE_CLAUSE}`); + if (existingTableInDb && existingTableInDb[0]) { + const updateChildrenTablesInfo = yield (0, DB_HANDLER_1.default)(`UPDATE user_database_tables SET child_table='1',child_table_parent_database='${originDbName}',child_table_parent_table='${originTableName}' WHERE id='${existingTableInDb[0].id}'`); + } } } } } } - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Updating Children Tables on DB`, error); - } - process.exit(); + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Updating Children Tables on DB`, error); + } + process.exit(); + }); } updateChildrenTablesOnDb(); diff --git a/dist/package-shared/shell/updateDateTimestamps.js b/dist/package-shared/shell/updateDateTimestamps.js index 53ed2e3..3a1d1e7 100644 --- a/dist/package-shared/shell/updateDateTimestamps.js +++ b/dist/package-shared/shell/updateDateTimestamps.js @@ -1,27 +1,41 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "./../.env" }); -import varDatabaseDbHandler from "../functions/backend/varDatabaseDbHandler"; +const varDatabaseDbHandler_1 = __importDefault(require("../functions/backend/varDatabaseDbHandler")); /** * Grab Schema * * @description Grab Schema */ -varDatabaseDbHandler({ +(0, varDatabaseDbHandler_1.default)({ queryString: `SELECT user_database_tables.*,user_databases.db_full_name FROM user_database_tables JOIN user_databases ON user_database_tables.db_id=user_databases.id`, database: "datasquirel", -}).then(async (tables) => { +}).then((tables) => __awaiter(void 0, void 0, void 0, function* () { for (let i = 0; i < tables.length; i++) { const table = tables[i]; const { id, user_id, db_id, db_full_name, table_name, table_slug, table_description, } = table; - const tableInfo = await varDatabaseDbHandler({ + const tableInfo = yield (0, varDatabaseDbHandler_1.default)({ queryString: `SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='${db_full_name}' AND TABLE_NAME='${table_slug}'`, }); - const updateCreationDateTimestamp = await varDatabaseDbHandler({ + const updateCreationDateTimestamp = yield (0, varDatabaseDbHandler_1.default)({ queryString: `ALTER TABLE \`${db_full_name}\`.\`${table_slug}\` MODIFY COLUMN date_created_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP`, }); - const updateDateTimestamp = await varDatabaseDbHandler({ + const updateDateTimestamp = yield (0, varDatabaseDbHandler_1.default)({ queryString: `ALTER TABLE \`${db_full_name}\`.\`${table_slug}\` MODIFY COLUMN date_updated_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP`, }); console.log("Date Updated Column updated"); } process.exit(); -}); +})); diff --git a/dist/package-shared/shell/updateDbSlugsForTableRecords.js b/dist/package-shared/shell/updateDbSlugsForTableRecords.js index 540aab5..16778aa 100644 --- a/dist/package-shared/shell/updateDbSlugsForTableRecords.js +++ b/dist/package-shared/shell/updateDbSlugsForTableRecords.js @@ -1,7 +1,21 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "./../.env" }); -import serverError from "../functions/backend/serverError"; -import varDatabaseDbHandler from "./utils/varDatabaseDbHandler"; -import DB_HANDLER from "../utils/backend/global-db/DB_HANDLER"; +const serverError_1 = __importDefault(require("../functions/backend/serverError")); +const varDatabaseDbHandler_1 = __importDefault(require("./utils/varDatabaseDbHandler")); +const DB_HANDLER_1 = __importDefault(require("../utils/backend/global-db/DB_HANDLER")); /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ @@ -13,9 +27,9 @@ import DB_HANDLER from "../utils/backend/global-db/DB_HANDLER"; * * @description Grab Schema */ -varDatabaseDbHandler({ +(0, varDatabaseDbHandler_1.default)({ queryString: `SELECT DISTINCT db_id FROM datasquirel.user_database_tables`, -}).then(async (tables) => { +}).then((tables) => __awaiter(void 0, void 0, void 0, function* () { // console.log(tables); // process.exit(); var _a; @@ -23,11 +37,11 @@ varDatabaseDbHandler({ const table = tables[i]; try { const { db_id } = table; - const dbSlug = await DB_HANDLER(`SELECT db_slug FROM user_databases WHERE id='${db_id}'`); - const updateTableSlug = await DB_HANDLER(`UPDATE user_database_tables SET db_slug='${dbSlug[0].db_slug}' WHERE db_id='${db_id}'`); + const dbSlug = yield (0, DB_HANDLER_1.default)(`SELECT db_slug FROM user_databases WHERE id='${db_id}'`); + const updateTableSlug = yield (0, DB_HANDLER_1.default)(`UPDATE user_database_tables SET db_slug='${dbSlug[0].db_slug}' WHERE db_id='${db_id}'`); } catch (error) { - serverError({ + (0, serverError_1.default)({ component: "shell/updateDbSlugsForTableRecords/main-catch-error", message: error.message, user: {}, @@ -36,4 +50,4 @@ varDatabaseDbHandler({ } } process.exit(); -}); +})); diff --git a/dist/package-shared/shell/updateSSLUsers.js b/dist/package-shared/shell/updateSSLUsers.js index 69ff9e6..e63938f 100644 --- a/dist/package-shared/shell/updateSSLUsers.js +++ b/dist/package-shared/shell/updateSSLUsers.js @@ -1,6 +1,20 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv").config({ path: "./../.env" }); -import grabDSQLConnection from "../utils/grab-dsql-connection"; -import grabSQLKeyName from "../utils/grab-sql-key-name"; +const grab_dsql_connection_1 = __importDefault(require("../utils/grab-dsql-connection")); +const grab_sql_key_name_1 = __importDefault(require("../utils/grab-sql-key-name")); /** * # Main DB Handler Function * @async @@ -12,24 +26,24 @@ import grabSQLKeyName from "../utils/grab-sql-key-name"; * * @returns {Promise} */ -(async () => { +(() => __awaiter(void 0, void 0, void 0, function* () { var _a, _b; - const CONNECTION = grabDSQLConnection(); + const CONNECTION = (0, grab_dsql_connection_1.default)(); try { - const result = await CONNECTION.query("SELECT user,host,ssl_type FROM mysql.user"); + const result = yield CONNECTION.query("SELECT user,host,ssl_type FROM mysql.user"); const parsedResults = JSON.parse(JSON.stringify(result)); for (let i = 0; i < parsedResults.length; i++) { const user = parsedResults[i]; if (user.User !== process.env.DSQL_DB_READ_ONLY_USERNAME || user.User !== process.env.DSQL_DB_FULL_ACCESS_USERNAME || - !((_a = user.User) === null || _a === void 0 ? void 0 : _a.match(new RegExp(grabSQLKeyName({ type: "user" }))))) { + !((_a = user.User) === null || _a === void 0 ? void 0 : _a.match(new RegExp((0, grab_sql_key_name_1.default)({ type: "user" }))))) { continue; } const { User, Host, ssl_type } = user; if (ssl_type === "ANY") { continue; } - const addUserSSL = await CONNECTION.query(`ALTER USER '${User}'@'${Host}'`); + const addUserSSL = yield CONNECTION.query(`ALTER USER '${User}'@'${Host}'`); console.log(`addUserSSL => ${User}@${Host}`, addUserSSL); } } @@ -40,4 +54,4 @@ import grabSQLKeyName from "../utils/grab-sql-key-name"; CONNECTION.end(); process.exit(); } -})(); +}))(); diff --git a/dist/package-shared/shell/utils/camelJoinedtoCamelSpace.js b/dist/package-shared/shell/utils/camelJoinedtoCamelSpace.js index d3d3f7b..239bfc5 100644 --- a/dist/package-shared/shell/utils/camelJoinedtoCamelSpace.js +++ b/dist/package-shared/shell/utils/camelJoinedtoCamelSpace.js @@ -1,10 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = camelJoinedtoCamelSpace; /** * Convert Camel Joined Text to Camel Spaced Text * ============================================================================== * @description this function takes a camel cased text without spaces, and returns * a camel-case-spaced text */ -export default function camelJoinedtoCamelSpace(text) { +function camelJoinedtoCamelSpace(text) { if (!(text === null || text === void 0 ? void 0 : text.match(/./))) { return ""; } diff --git a/dist/package-shared/shell/utils/create-table-handle-table-record.js b/dist/package-shared/shell/utils/create-table-handle-table-record.js index 121746b..3cf6dd9 100644 --- a/dist/package-shared/shell/utils/create-table-handle-table-record.js +++ b/dist/package-shared/shell/utils/create-table-handle-table-record.js @@ -1,83 +1,100 @@ -import varDatabaseDbHandler from "./varDatabaseDbHandler"; -import numberfy from "../../utils/numberfy"; -import updateDbEntry from "../../functions/backend/db/updateDbEntry"; -import addDbEntry from "../../functions/backend/db/addDbEntry"; -import slugToNormalText from "../../utils/slug-to-normal-text"; -import _ from "lodash"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = default_1; +const varDatabaseDbHandler_1 = __importDefault(require("./varDatabaseDbHandler")); +const numberfy_1 = __importDefault(require("../../utils/numberfy")); +const updateDbEntry_1 = __importDefault(require("../../functions/backend/db/updateDbEntry")); +const addDbEntry_1 = __importDefault(require("../../functions/backend/db/addDbEntry")); +const slug_to_normal_text_1 = __importDefault(require("../../utils/slug-to-normal-text")); +const lodash_1 = __importDefault(require("lodash")); /** * # Handle Table Record Update and Insert */ -export default async function ({ tableSchema, recordedDbEntry, update, isMain, }) { - var _a; - if (isMain) - return undefined; - let tableId; - const targetDatabase = "datasquirel"; - const targetTableName = "user_database_tables"; - if (!(tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.tableName)) { - return undefined; - } - const newTableSchema = _.cloneDeep(tableSchema); - try { - if (!recordedDbEntry) { - throw new Error("Recorded Db entry not found!"); +function default_1(_a) { + return __awaiter(this, arguments, void 0, function* ({ tableSchema, recordedDbEntry, update, isMain, }) { + var _b; + if (isMain) + return undefined; + let tableId; + const targetDatabase = "datasquirel"; + const targetTableName = "user_database_tables"; + if (!(tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.tableName)) { + return undefined; } - // const existingTableName = newTableSchema.tableNameOld - // ? newTableSchema.tableNameOld - // : newTableSchema.tableName; - const newTableEntry = { - user_id: recordedDbEntry.user_id, - db_id: recordedDbEntry.id, - db_slug: recordedDbEntry.db_slug, - table_name: slugToNormalText(newTableSchema.tableName), - table_slug: newTableSchema.tableName, - child_table: newTableSchema.childTable ? 1 : 0, - child_table_parent_database_schema_id: newTableSchema.childTableDbId - ? numberfy(newTableSchema.childTableDbId) - : 0, - child_table_parent_table_schema_id: newTableSchema.childTableId - ? numberfy(newTableSchema.childTableId) - : 0, - table_schema_id: newTableSchema.id - ? numberfy(newTableSchema.id) - : 0, - active_data: newTableSchema.updateData ? 1 : 0, - }; - const existingTable = await varDatabaseDbHandler({ - queryString: `SELECT * FROM ${targetDatabase}.${targetTableName} WHERE db_id = ? AND table_slug = ?`, - queryValuesArray: [ - String(recordedDbEntry.id), - String(newTableSchema.tableName), - ], - }); - const table = existingTable === null || existingTable === void 0 ? void 0 : existingTable[0]; - if (table === null || table === void 0 ? void 0 : table.id) { - tableId = table.id; - if (update) { - await updateDbEntry({ + const newTableSchema = lodash_1.default.cloneDeep(tableSchema); + try { + if (!recordedDbEntry) { + throw new Error("Recorded Db entry not found!"); + } + // const existingTableName = newTableSchema.tableNameOld + // ? newTableSchema.tableNameOld + // : newTableSchema.tableName; + const newTableEntry = { + user_id: recordedDbEntry.user_id, + db_id: recordedDbEntry.id, + db_slug: recordedDbEntry.db_slug, + table_name: (0, slug_to_normal_text_1.default)(newTableSchema.tableName), + table_slug: newTableSchema.tableName, + child_table: newTableSchema.childTable ? 1 : 0, + child_table_parent_database_schema_id: newTableSchema.childTableDbId + ? (0, numberfy_1.default)(newTableSchema.childTableDbId) + : 0, + child_table_parent_table_schema_id: newTableSchema.childTableId + ? (0, numberfy_1.default)(newTableSchema.childTableId) + : 0, + table_schema_id: newTableSchema.id + ? (0, numberfy_1.default)(newTableSchema.id) + : 0, + active_data: newTableSchema.updateData ? 1 : 0, + }; + const existingTable = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SELECT * FROM ${targetDatabase}.${targetTableName} WHERE db_id = ? AND table_slug = ?`, + queryValuesArray: [ + String(recordedDbEntry.id), + String(newTableSchema.tableName), + ], + }); + const table = existingTable === null || existingTable === void 0 ? void 0 : existingTable[0]; + if (table === null || table === void 0 ? void 0 : table.id) { + tableId = table.id; + if (update) { + yield (0, updateDbEntry_1.default)({ + data: newTableEntry, + identifierColumnName: "id", + identifierValue: table.id, + tableName: targetTableName, + dbFullName: targetDatabase, + }); + } + } + else { + const newTableEntryRes = yield (0, addDbEntry_1.default)({ data: newTableEntry, - identifierColumnName: "id", - identifierValue: table.id, tableName: targetTableName, dbFullName: targetDatabase, }); + if ((_b = newTableEntryRes === null || newTableEntryRes === void 0 ? void 0 : newTableEntryRes.payload) === null || _b === void 0 ? void 0 : _b.insertId) { + tableId = newTableEntryRes.payload.insertId; + } } - } - else { - const newTableEntryRes = await addDbEntry({ - data: newTableEntry, - tableName: targetTableName, - dbFullName: targetDatabase, - }); - if ((_a = newTableEntryRes === null || newTableEntryRes === void 0 ? void 0 : newTableEntryRes.payload) === null || _a === void 0 ? void 0 : _a.insertId) { - tableId = newTableEntryRes.payload.insertId; + if (newTableSchema.tableNameOld) { } + return tableId; } - if (newTableSchema.tableNameOld) { + catch (error) { + return undefined; } - return tableId; - } - catch (error) { - return undefined; - } + }); } diff --git a/dist/package-shared/shell/utils/createTable.js b/dist/package-shared/shell/utils/createTable.js index 9c972f9..f544d67 100644 --- a/dist/package-shared/shell/utils/createTable.js +++ b/dist/package-shared/shell/utils/createTable.js @@ -1,55 +1,72 @@ -import varDatabaseDbHandler from "./varDatabaseDbHandler"; -import generateColumnDescription from "./generateColumnDescription"; -import supplementTable from "./supplementTable"; -import handleTableForeignKey from "./handle-table-foreign-key"; -import createTableHandleTableRecord from "./create-table-handle-table-record"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = createTable; +const varDatabaseDbHandler_1 = __importDefault(require("./varDatabaseDbHandler")); +const generateColumnDescription_1 = __importDefault(require("./generateColumnDescription")); +const supplementTable_1 = __importDefault(require("./supplementTable")); +const handle_table_foreign_key_1 = __importDefault(require("./handle-table-foreign-key")); +const create_table_handle_table_record_1 = __importDefault(require("./create-table-handle-table-record")); /** * # Create Table Functions */ -export default async function createTable({ dbFullName, tableName, tableInfoArray, tableSchema, recordedDbEntry, isMain, }) { - const finalTable = supplementTable({ tableInfoArray: tableInfoArray }); - let tableId = await createTableHandleTableRecord({ - recordedDbEntry, - tableSchema, - isMain, - }); - if (!tableId && !isMain) - throw new Error(`Couldn't grab table ID`); - const createTableQueryArray = []; - createTableQueryArray.push(`CREATE TABLE IF NOT EXISTS \`${dbFullName}\`.\`${tableName}\` (`); - let primaryKeySet = false; - for (let i = 0; i < finalTable.length; i++) { - const column = finalTable[i]; - let { fieldEntryText, newPrimaryKeySet } = generateColumnDescription({ - columnData: column, - primaryKeySet: primaryKeySet, +function createTable(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbFullName, tableName, tableInfoArray, tableSchema, recordedDbEntry, isMain, }) { + const finalTable = (0, supplementTable_1.default)({ tableInfoArray: tableInfoArray }); + let tableId = yield (0, create_table_handle_table_record_1.default)({ + recordedDbEntry, + tableSchema, + isMain, }); - primaryKeySet = newPrimaryKeySet; - const comma = (() => { - if (i === finalTable.length - 1) - return ""; - return ","; - })(); - createTableQueryArray.push(" " + fieldEntryText + comma); - } - createTableQueryArray.push(`) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;`); - const createTableQuery = createTableQueryArray.join("\n"); - const newTable = await varDatabaseDbHandler({ - queryString: createTableQuery, - }); - for (let i = 0; i < finalTable.length; i++) { - const column = finalTable[i]; - const { foreignKey, fieldName } = column; - if (!fieldName) - continue; - if (foreignKey) { - await handleTableForeignKey({ - dbFullName, - foreignKey, - tableName, - fieldName, + if (!tableId && !isMain) + throw new Error(`Couldn't grab table ID`); + const createTableQueryArray = []; + createTableQueryArray.push(`CREATE TABLE IF NOT EXISTS \`${dbFullName}\`.\`${tableName}\` (`); + let primaryKeySet = false; + for (let i = 0; i < finalTable.length; i++) { + const column = finalTable[i]; + let { fieldEntryText, newPrimaryKeySet } = (0, generateColumnDescription_1.default)({ + columnData: column, + primaryKeySet: primaryKeySet, }); + primaryKeySet = newPrimaryKeySet; + const comma = (() => { + if (i === finalTable.length - 1) + return ""; + return ","; + })(); + createTableQueryArray.push(" " + fieldEntryText + comma); } - } - return tableId; + createTableQueryArray.push(`) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;`); + const createTableQuery = createTableQueryArray.join("\n"); + const newTable = yield (0, varDatabaseDbHandler_1.default)({ + queryString: createTableQuery, + }); + for (let i = 0; i < finalTable.length; i++) { + const column = finalTable[i]; + const { foreignKey, fieldName } = column; + if (!fieldName) + continue; + if (foreignKey) { + yield (0, handle_table_foreign_key_1.default)({ + dbFullName, + foreignKey, + tableName, + fieldName, + }); + } + } + return tableId; + }); } diff --git a/dist/package-shared/shell/utils/drop-all-foreign-keys.js b/dist/package-shared/shell/utils/drop-all-foreign-keys.js index 6d35f6f..ce0efa2 100644 --- a/dist/package-shared/shell/utils/drop-all-foreign-keys.js +++ b/dist/package-shared/shell/utils/drop-all-foreign-keys.js @@ -1,35 +1,52 @@ -import grabSQLKeyName from "../../utils/grab-sql-key-name"; -import varDatabaseDbHandler from "./varDatabaseDbHandler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = dropAllForeignKeys; +const grab_sql_key_name_1 = __importDefault(require("../../utils/grab-sql-key-name")); +const varDatabaseDbHandler_1 = __importDefault(require("./varDatabaseDbHandler")); /** * # Drop All Foreign Keys */ -export default async function dropAllForeignKeys({ dbFullName, tableName, }) { - try { - // const rows = await varDatabaseDbHandler({ - // queryString: `SELECT CONSTRAINT_NAME FROM information_schema.REFERENTIAL_CONSTRAINTS WHERE TABLE_NAME = '${tableName}' AND CONSTRAINT_SCHEMA = '${dbFullName}'`, - // }); - // console.log("rows", rows); - // console.log("dbFullName", dbFullName); - // console.log("tableName", tableName); - // for (const row of rows) { - // await varDatabaseDbHandler({ - // queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP FOREIGN KEY \`${row.CONSTRAINT_NAME}\` - // `, - // }); - // } - const foreignKeys = await varDatabaseDbHandler({ - queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\` WHERE Key_name LIKE '${grabSQLKeyName({ type: "foreign_key" })}%'`, - }); - for (const fk of foreignKeys) { - if (fk.Key_name.match(new RegExp(grabSQLKeyName({ type: "foreign_key" })))) { - await varDatabaseDbHandler({ - queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${fk.Key_name}\` +function dropAllForeignKeys(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbFullName, tableName, }) { + try { + // const rows = await varDatabaseDbHandler({ + // queryString: `SELECT CONSTRAINT_NAME FROM information_schema.REFERENTIAL_CONSTRAINTS WHERE TABLE_NAME = '${tableName}' AND CONSTRAINT_SCHEMA = '${dbFullName}'`, + // }); + // console.log("rows", rows); + // console.log("dbFullName", dbFullName); + // console.log("tableName", tableName); + // for (const row of rows) { + // await varDatabaseDbHandler({ + // queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP FOREIGN KEY \`${row.CONSTRAINT_NAME}\` + // `, + // }); + // } + const foreignKeys = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\` WHERE Key_name LIKE '${(0, grab_sql_key_name_1.default)({ type: "foreign_key" })}%'`, + }); + for (const fk of foreignKeys) { + if (fk.Key_name.match(new RegExp((0, grab_sql_key_name_1.default)({ type: "foreign_key" })))) { + yield (0, varDatabaseDbHandler_1.default)({ + queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${fk.Key_name}\` `, - }); + }); + } } } - } - catch (error) { - console.log(`dropAllForeignKeys ERROR => ${error.message}`); - } + catch (error) { + console.log(`dropAllForeignKeys ERROR => ${error.message}`); + } + }); } diff --git a/dist/package-shared/shell/utils/generateColumnDescription.js b/dist/package-shared/shell/utils/generateColumnDescription.js index c7fa1c0..1efbd4c 100644 --- a/dist/package-shared/shell/utils/generateColumnDescription.js +++ b/dist/package-shared/shell/utils/generateColumnDescription.js @@ -1,13 +1,19 @@ -import dataTypeConstructor from "../../utils/db/schema/data-type-constructor"; -import dataTypeParser from "../../utils/db/schema/data-type-parser"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = generateColumnDescription; +const data_type_constructor_1 = __importDefault(require("../../utils/db/schema/data-type-constructor")); +const data_type_parser_1 = __importDefault(require("../../utils/db/schema/data-type-parser")); /** * # Generate Table Column Description */ -export default function generateColumnDescription({ columnData, primaryKeySet, }) { +function generateColumnDescription({ columnData, primaryKeySet, }) { const { fieldName, dataType, nullValue, primaryKey, autoIncrement, defaultValue, defaultValueLiteral, onUpdateLiteral, notNullValue, unique, } = columnData; let fieldEntryText = ""; - const finalDataTypeObject = dataTypeParser(dataType); - const finalDataType = dataTypeConstructor(finalDataTypeObject.type, finalDataTypeObject.limit, finalDataTypeObject.decimal); + const finalDataTypeObject = (0, data_type_parser_1.default)(dataType); + const finalDataType = (0, data_type_constructor_1.default)(finalDataTypeObject.type, finalDataTypeObject.limit, finalDataTypeObject.decimal); fieldEntryText += `\`${fieldName}\` ${finalDataType}`; if (nullValue) { fieldEntryText += " DEFAULT NULL"; diff --git a/dist/package-shared/shell/utils/grab-dsql-schema-index-comment.js b/dist/package-shared/shell/utils/grab-dsql-schema-index-comment.js index 3d3b766..f418e45 100644 --- a/dist/package-shared/shell/utils/grab-dsql-schema-index-comment.js +++ b/dist/package-shared/shell/utils/grab-dsql-schema-index-comment.js @@ -1,3 +1,6 @@ -export default function grabDSQLSchemaIndexComment() { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabDSQLSchemaIndexComment; +function grabDSQLSchemaIndexComment() { return `dsql_schema_index`; } diff --git a/dist/package-shared/shell/utils/handle-table-foreign-key.js b/dist/package-shared/shell/utils/handle-table-foreign-key.js index aac0d10..a7f5be1 100644 --- a/dist/package-shared/shell/utils/handle-table-foreign-key.js +++ b/dist/package-shared/shell/utils/handle-table-foreign-key.js @@ -1,24 +1,41 @@ -import varDatabaseDbHandler from "./varDatabaseDbHandler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = handleTableForeignKey; +const varDatabaseDbHandler_1 = __importDefault(require("./varDatabaseDbHandler")); /** * # Update table function */ -export default async function handleTableForeignKey({ dbFullName, tableName, foreignKey, errorLogs, fieldName, }) { - const { destinationTableName, destinationTableColumnName, cascadeDelete, cascadeUpdate, foreignKeyName, } = foreignKey; - let finalQueryString = `ALTER TABLE \`${dbFullName}\`.\`${tableName}\``; - finalQueryString += ` ADD CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (\`${fieldName}\`)`; - finalQueryString += ` REFERENCES \`${destinationTableName}\`(\`${destinationTableColumnName}\`)`; - if (cascadeDelete) - finalQueryString += ` ON DELETE CASCADE`; - if (cascadeUpdate) - finalQueryString += ` ON UPDATE CASCADE`; - // let foreinKeyText = `ADD CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (\`${destinationTableColumnType}\`) REFERENCES \`${destinationTableName}\`(\`${destinationTableColumnName}\`)${ - // cascadeDelete ? " ON DELETE CASCADE" : "" - // }${cascadeUpdate ? " ON UPDATE CASCADE" : ""}`; - // let finalQueryString = `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` ${foreinKeyText}`; - const addForeignKey = await varDatabaseDbHandler({ - queryString: finalQueryString, +function handleTableForeignKey(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbFullName, tableName, foreignKey, errorLogs, fieldName, }) { + const { destinationTableName, destinationTableColumnName, cascadeDelete, cascadeUpdate, foreignKeyName, } = foreignKey; + let finalQueryString = `ALTER TABLE \`${dbFullName}\`.\`${tableName}\``; + finalQueryString += ` ADD CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (\`${fieldName}\`)`; + finalQueryString += ` REFERENCES \`${destinationTableName}\`(\`${destinationTableColumnName}\`)`; + if (cascadeDelete) + finalQueryString += ` ON DELETE CASCADE`; + if (cascadeUpdate) + finalQueryString += ` ON UPDATE CASCADE`; + // let foreinKeyText = `ADD CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (\`${destinationTableColumnType}\`) REFERENCES \`${destinationTableName}\`(\`${destinationTableColumnName}\`)${ + // cascadeDelete ? " ON DELETE CASCADE" : "" + // }${cascadeUpdate ? " ON UPDATE CASCADE" : ""}`; + // let finalQueryString = `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` ${foreinKeyText}`; + const addForeignKey = yield (0, varDatabaseDbHandler_1.default)({ + queryString: finalQueryString, + }); + if (!(addForeignKey === null || addForeignKey === void 0 ? void 0 : addForeignKey.serverStatus)) { + errorLogs === null || errorLogs === void 0 ? void 0 : errorLogs.push(addForeignKey); + } }); - if (!(addForeignKey === null || addForeignKey === void 0 ? void 0 : addForeignKey.serverStatus)) { - errorLogs === null || errorLogs === void 0 ? void 0 : errorLogs.push(addForeignKey); - } } diff --git a/dist/package-shared/shell/utils/noDatabaseDbHandler.js b/dist/package-shared/shell/utils/noDatabaseDbHandler.js index fdb8396..e806608 100644 --- a/dist/package-shared/shell/utils/noDatabaseDbHandler.js +++ b/dist/package-shared/shell/utils/noDatabaseDbHandler.js @@ -1,17 +1,34 @@ -import dbHandler from "../../functions/backend/dbHandler"; -export default async function noDatabaseDbHandler(queryString) { - var _a; - let results; - try { - results = await dbHandler({ query: queryString }); - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `No DB Handler Error`, error); - } - if (results) { - return results; - } - else { - return null; - } +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = noDatabaseDbHandler; +const dbHandler_1 = __importDefault(require("../../functions/backend/dbHandler")); +function noDatabaseDbHandler(queryString) { + return __awaiter(this, void 0, void 0, function* () { + var _a; + let results; + try { + results = yield (0, dbHandler_1.default)({ query: queryString }); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `No DB Handler Error`, error); + } + if (results) { + return results; + } + else { + return null; + } + }); } diff --git a/dist/package-shared/shell/utils/slugToCamelTitle.js b/dist/package-shared/shell/utils/slugToCamelTitle.js index 5655743..300c96f 100644 --- a/dist/package-shared/shell/utils/slugToCamelTitle.js +++ b/dist/package-shared/shell/utils/slugToCamelTitle.js @@ -1,7 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = slugToCamelTitle; /** * # Sulg To Camel Case */ -export default function slugToCamelTitle(text) { +function slugToCamelTitle(text) { if (text) { let addArray = text.split("-").filter((item) => item !== ""); let camelArray = addArray.map((item) => { diff --git a/dist/package-shared/shell/utils/supplementTable.js b/dist/package-shared/shell/utils/supplementTable.js index f8f3b8d..c41d3dc 100644 --- a/dist/package-shared/shell/utils/supplementTable.js +++ b/dist/package-shared/shell/utils/supplementTable.js @@ -1,7 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = supplementTable; /** * # Supplement Table */ -export default function supplementTable({ tableInfoArray }) { +function supplementTable({ tableInfoArray }) { /** * Format tableInfoArray * diff --git a/dist/package-shared/shell/utils/updateTable.js b/dist/package-shared/shell/utils/updateTable.js index 2ad40c8..e2ce443 100644 --- a/dist/package-shared/shell/utils/updateTable.js +++ b/dist/package-shared/shell/utils/updateTable.js @@ -1,317 +1,334 @@ -import varDatabaseDbHandler from "./varDatabaseDbHandler"; -import generateColumnDescription from "./generateColumnDescription"; -import handleTableForeignKey from "./handle-table-foreign-key"; -import dropAllForeignKeys from "./drop-all-foreign-keys"; -import createTableHandleTableRecord from "./create-table-handle-table-record"; -import defaultFieldsRegexp from "../../functions/dsql/default-fields-regexp"; -import handleIndexescreateDbFromSchema from "../createDbFromSchema/handle-indexes"; -import _ from "lodash"; -import { writeUpdatedDbSchema } from "../createDbFromSchema/grab-required-database-schemas"; -import normalizeText from "../../utils/normalize-text"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = updateTable; +const varDatabaseDbHandler_1 = __importDefault(require("./varDatabaseDbHandler")); +const generateColumnDescription_1 = __importDefault(require("./generateColumnDescription")); +const handle_table_foreign_key_1 = __importDefault(require("./handle-table-foreign-key")); +const drop_all_foreign_keys_1 = __importDefault(require("./drop-all-foreign-keys")); +const create_table_handle_table_record_1 = __importDefault(require("./create-table-handle-table-record")); +const default_fields_regexp_1 = __importDefault(require("../../functions/dsql/default-fields-regexp")); +const handle_indexes_1 = __importDefault(require("../createDbFromSchema/handle-indexes")); +const lodash_1 = __importDefault(require("lodash")); +const grab_required_database_schemas_1 = require("../createDbFromSchema/grab-required-database-schemas"); +const normalize_text_1 = __importDefault(require("../../utils/normalize-text")); /** * # Update table function */ -export default async function updateTable({ dbFullName, tableName, tableFields, userId, dbSchema, tableIndexes, tableSchema, clone, recordedDbEntry, isMain, }) { - /** - * Initialize - * ========================================== - * @description Initial setup - */ - let errorLogs = []; - /** - * @description Initialize table info array. This value will be - * changing depending on if a field is renamed or not. - */ - let upToDateTableFieldsArray = _.cloneDeep(tableFields); - /** - * @type {string[]} - * @description Table update query string array - */ - const updateTableQueryArray = []; - /** - * @description Push the query initial value - */ - updateTableQueryArray.push(`ALTER TABLE \`${dbFullName}\`.\`${tableName}\``); - /** - * @description Grab Table Record - */ - if (!recordedDbEntry && !isMain) { - throw new Error("Recorded Db entry not found!"); - } - let tableID = await createTableHandleTableRecord({ - recordedDbEntry, - tableSchema, - update: true, - isMain, - }); - if (!tableID && !isMain) { - throw new Error("Recorded Table entry not found!"); - } - /** - * Handle Table updates - * - * @description Try to undate table, catch error if anything goes wrong - */ - try { +function updateTable(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbFullName, tableName, tableFields, userId, dbSchema, tableIndexes, tableSchema, clone, recordedDbEntry, isMain, }) { /** - * Handle MYSQL Table Indexes - * =================================================== - * @description Iterate through each table index(if available) - * and perform operations + * Initialize + * ========================================== + * @description Initial setup */ - const allExistingIndexes = await varDatabaseDbHandler({ - queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\` WHERE Index_comment LIKE '%schema_index%'`, - }); - for (let f = 0; f < allExistingIndexes.length; f++) { - const { Key_name } = allExistingIndexes[f]; - try { - const existingKeyInSchema = tableIndexes === null || tableIndexes === void 0 ? void 0 : tableIndexes.find((indexObject) => indexObject.alias === Key_name); - if (!existingKeyInSchema) - throw new Error(`This Index(${Key_name}) Has been Deleted!`); - } - catch (error) { - /** - * @description Drop Index: This happens when the MYSQL index is not - * present in the datasquirel DB schema - */ - await varDatabaseDbHandler({ - queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${Key_name}\``, - }); - } - } + let errorLogs = []; /** - * Handle DATASQUIREL Table Indexes - * =================================================== - * @description Iterate through each datasquirel schema - * table index(if available), and perform operations + * @description Initialize table info array. This value will be + * changing depending on if a field is renamed or not. */ - if (tableIndexes && tableIndexes[0]) { - handleIndexescreateDbFromSchema({ - dbFullName, - indexes: tableIndexes, - tableName, - }); - } - /** - * Handle MYSQL Foreign Keys - * =================================================== - * @description Iterate through each datasquirel schema - * table index(if available), and perform operations - */ - const allForeignKeys = await varDatabaseDbHandler({ - queryString: `SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '${dbFullName}' AND TABLE_NAME='${tableName}' AND CONSTRAINT_TYPE='FOREIGN KEY'`, - }); - if (allForeignKeys) { - for (let c = 0; c < allForeignKeys.length; c++) { - const { CONSTRAINT_NAME } = allForeignKeys[c]; - /** - * @description Skip if Key is the PRIMARY Key - */ - if (CONSTRAINT_NAME.match(/PRIMARY/)) - continue; - /** - * @description Drop all foreign Keys to avoid MYSQL errors when adding/updating - * Foreign keys - */ - const dropForeignKey = await varDatabaseDbHandler({ - queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP FOREIGN KEY \`${CONSTRAINT_NAME}\``, - }); - } - } - /** - * Handle MYSQL Unique Fields - * =================================================== - * @description Find all existing unique field constraints - * and remove them - */ - const allUniqueConstraints = await varDatabaseDbHandler({ - queryString: normalizeText(`SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS \ - WHERE CONSTRAINT_SCHEMA = '${dbFullName}' AND TABLE_NAME='${tableName}' AND \ - CONSTRAINT_TYPE='UNIQUE'`), - }); - if (allUniqueConstraints) { - for (let c = 0; c < allUniqueConstraints.length; c++) { - const { CONSTRAINT_NAME } = allUniqueConstraints[c]; - const dropUniqueConstraint = await varDatabaseDbHandler({ - queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${CONSTRAINT_NAME}\``, - }); - } - } - /** - * Handle MYSQL Columns (Fields) - * =================================================== - * @description Now handle all fields/columns - */ - let allExistingColumns = await varDatabaseDbHandler({ - queryString: `SHOW COLUMNS FROM \`${dbFullName}\`.\`${tableName}\``, - }); + let upToDateTableFieldsArray = lodash_1.default.cloneDeep(tableFields); /** * @type {string[]} - * @description Updated column names Array + * @description Table update query string array */ - const updatedColumnsArray = []; + const updateTableQueryArray = []; /** - * @description Iterate through every existing column + * @description Push the query initial value */ - for (let e = 0; e < allExistingColumns.length; e++) { - const { Field } = allExistingColumns[e]; - if (Field.match(defaultFieldsRegexp)) - continue; + updateTableQueryArray.push(`ALTER TABLE \`${dbFullName}\`.\`${tableName}\``); + /** + * @description Grab Table Record + */ + if (!recordedDbEntry && !isMain) { + throw new Error("Recorded Db entry not found!"); + } + let tableID = yield (0, create_table_handle_table_record_1.default)({ + recordedDbEntry, + tableSchema, + update: true, + isMain, + }); + if (!tableID && !isMain) { + throw new Error("Recorded Table entry not found!"); + } + /** + * Handle Table updates + * + * @description Try to undate table, catch error if anything goes wrong + */ + try { /** - * @description This finds out whether the fieldName corresponds with the MSQL Field name - * if the fildName doesn't match any MYSQL Field name, the field is deleted. + * Handle MYSQL Table Indexes + * =================================================== + * @description Iterate through each table index(if available) + * and perform operations */ - let existingEntry = upToDateTableFieldsArray.find((column) => column.fieldName === Field || column.originName === Field); - if (existingEntry) { - /** - * @description Check if Field name has been updated - */ - if (existingEntry.updatedField && existingEntry.fieldName) { - updatedColumnsArray.push(existingEntry.fieldName); - const renameColumn = await varDatabaseDbHandler({ - queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` RENAME COLUMN \`${existingEntry.originName}\` TO \`${existingEntry.fieldName}\``, - }); - console.log(`Column Renamed from "${existingEntry.originName}" to "${existingEntry.fieldName}"`); - /** - * Update Db Schema - * =================================================== - * @description Update Db Schema after renaming column - */ - try { - const updatedSchemaData = _.cloneDeep(dbSchema); - const targetTableIndex = updatedSchemaData.tables.findIndex((table) => table.tableName === tableName); - const targetFieldIndex = updatedSchemaData.tables[targetTableIndex].fields.findIndex((field) => field.fieldName === existingEntry.fieldName); - delete updatedSchemaData.tables[targetTableIndex] - .fields[targetFieldIndex]["originName"]; - delete updatedSchemaData.tables[targetTableIndex] - .fields[targetFieldIndex]["updatedField"]; - /** - * @description Set New Table Fields Array - */ - upToDateTableFieldsArray = - updatedSchemaData.tables[targetTableIndex].fields; - if (userId) { - writeUpdatedDbSchema({ - dbSchema: updatedSchemaData, - userId, - }); - } - allExistingColumns = await varDatabaseDbHandler({ - queryString: `SHOW COLUMNS FROM \`${dbFullName}\`.\`${tableName}\``, - }); - } - catch (error) { - console.log("Update table error =>", error.message); - } - //////////////////////////////////////// + const allExistingIndexes = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\` WHERE Index_comment LIKE '%schema_index%'`, + }); + for (let f = 0; f < allExistingIndexes.length; f++) { + const { Key_name } = allExistingIndexes[f]; + try { + const existingKeyInSchema = tableIndexes === null || tableIndexes === void 0 ? void 0 : tableIndexes.find((indexObject) => indexObject.alias === Key_name); + if (!existingKeyInSchema) + throw new Error(`This Index(${Key_name}) Has been Deleted!`); + } + catch (error) { + /** + * @description Drop Index: This happens when the MYSQL index is not + * present in the datasquirel DB schema + */ + yield (0, varDatabaseDbHandler_1.default)({ + queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${Key_name}\``, + }); } - //////////////////////////////////////// - continue; - //////////////////////////////////////// } - else { - await varDatabaseDbHandler({ - queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP COLUMN \`${Field}\``, + /** + * Handle DATASQUIREL Table Indexes + * =================================================== + * @description Iterate through each datasquirel schema + * table index(if available), and perform operations + */ + if (tableIndexes && tableIndexes[0]) { + (0, handle_indexes_1.default)({ + dbFullName, + indexes: tableIndexes, + tableName, }); } - } - /** - * Handle DATASQUIREL schema fields for current table - * =================================================== - * @description Iterate through each field object and - * perform operations - */ - for (let i = 0; i < upToDateTableFieldsArray.length; i++) { - const column = upToDateTableFieldsArray[i]; - // const prevColumn = upToDateTableFieldsArray[i - 1]; - // const nextColumn = upToDateTableFieldsArray[i + 1]; - const { fieldName, dataType, foreignKey } = column; - if (!fieldName) - continue; - if (defaultFieldsRegexp.test(fieldName)) - continue; - let updateText = ""; - const existingColumnIndex = allExistingColumns === null || allExistingColumns === void 0 ? void 0 : allExistingColumns.findIndex((_column, _index) => _column.Field === fieldName); - const existingColumn = existingColumnIndex >= 0 - ? allExistingColumns[existingColumnIndex] - : undefined; - let { fieldEntryText } = generateColumnDescription({ - columnData: column, + /** + * Handle MYSQL Foreign Keys + * =================================================== + * @description Iterate through each datasquirel schema + * table index(if available), and perform operations + */ + const allForeignKeys = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '${dbFullName}' AND TABLE_NAME='${tableName}' AND CONSTRAINT_TYPE='FOREIGN KEY'`, }); - /** - * @description Modify Column(Field) if it already exists - * in MYSQL database - */ - if (existingColumn === null || existingColumn === void 0 ? void 0 : existingColumn.Field) { - const { Field, Type } = existingColumn; - updateText += `MODIFY COLUMN ${fieldEntryText}`; - // if ( - // Field === fieldName && - // dataType?.toUpperCase() === Type.toUpperCase() - // ) { - // } else { - // updateText += `MODIFY COLUMN ${fieldEntryText}`; - // } - } - else { - /** - * @description Append new column to the end of existing columns - */ - updateText += `ADD COLUMN ${fieldEntryText}`; - } - /** - * @description Pust SQL code snippet to updateTableQueryArray Array - * Add a comma(,) to separate from the next snippet - */ - if (updateText.match(/./)) { - updateTableQueryArray.push(updateText + ","); - } - } - /** - * @description Construct final SQL query by combning all SQL snippets in - * updateTableQueryArray Arry, and trimming the final comma(,) - */ - const updateTableQuery = updateTableQueryArray - .filter((q) => Boolean(q.match(/./))) - .join(" ") - .replace(/,$/, ""); - //////////////////////////////////////// - /** - * @description Check if SQL snippets array has more than 1 entries - * This is because 1 entry means "ALTER TABLE table_name" only, without any - * Alter directives like "ADD COLUMN" or "MODIFY COLUMN" - */ - if (updateTableQueryArray.length > 1) { - const updateTable = await varDatabaseDbHandler({ - queryString: updateTableQuery, - }); - /** - * # Handle Foreign Keys - */ - await dropAllForeignKeys({ dbFullName, tableName }); - for (let i = 0; i < upToDateTableFieldsArray.length; i++) { - const { fieldName, foreignKey } = upToDateTableFieldsArray[i]; - if (!clone && foreignKey && fieldName) { - await handleTableForeignKey({ - dbFullName, - errorLogs, - foreignKey, - fieldName, - tableName, + if (allForeignKeys) { + for (let c = 0; c < allForeignKeys.length; c++) { + const { CONSTRAINT_NAME } = allForeignKeys[c]; + /** + * @description Skip if Key is the PRIMARY Key + */ + if (CONSTRAINT_NAME.match(/PRIMARY/)) + continue; + /** + * @description Drop all foreign Keys to avoid MYSQL errors when adding/updating + * Foreign keys + */ + const dropForeignKey = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP FOREIGN KEY \`${CONSTRAINT_NAME}\``, }); } } - } - else { /** - * @description If only 1 SQL snippet is left in updateTableQueryArray, this - * means that no updates have been made to the table + * Handle MYSQL Unique Fields + * =================================================== + * @description Find all existing unique field constraints + * and remove them */ + const allUniqueConstraints = yield (0, varDatabaseDbHandler_1.default)({ + queryString: (0, normalize_text_1.default)(`SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS \ + WHERE CONSTRAINT_SCHEMA = '${dbFullName}' AND TABLE_NAME='${tableName}' AND \ + CONSTRAINT_TYPE='UNIQUE'`), + }); + if (allUniqueConstraints) { + for (let c = 0; c < allUniqueConstraints.length; c++) { + const { CONSTRAINT_NAME } = allUniqueConstraints[c]; + const dropUniqueConstraint = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${CONSTRAINT_NAME}\``, + }); + } + } + /** + * Handle MYSQL Columns (Fields) + * =================================================== + * @description Now handle all fields/columns + */ + let allExistingColumns = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SHOW COLUMNS FROM \`${dbFullName}\`.\`${tableName}\``, + }); + /** + * @type {string[]} + * @description Updated column names Array + */ + const updatedColumnsArray = []; + /** + * @description Iterate through every existing column + */ + for (let e = 0; e < allExistingColumns.length; e++) { + const { Field } = allExistingColumns[e]; + if (Field.match(default_fields_regexp_1.default)) + continue; + /** + * @description This finds out whether the fieldName corresponds with the MSQL Field name + * if the fildName doesn't match any MYSQL Field name, the field is deleted. + */ + let existingEntry = upToDateTableFieldsArray.find((column) => column.fieldName === Field || column.originName === Field); + if (existingEntry) { + /** + * @description Check if Field name has been updated + */ + if (existingEntry.updatedField && existingEntry.fieldName) { + updatedColumnsArray.push(existingEntry.fieldName); + const renameColumn = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` RENAME COLUMN \`${existingEntry.originName}\` TO \`${existingEntry.fieldName}\``, + }); + console.log(`Column Renamed from "${existingEntry.originName}" to "${existingEntry.fieldName}"`); + /** + * Update Db Schema + * =================================================== + * @description Update Db Schema after renaming column + */ + try { + const updatedSchemaData = lodash_1.default.cloneDeep(dbSchema); + const targetTableIndex = updatedSchemaData.tables.findIndex((table) => table.tableName === tableName); + const targetFieldIndex = updatedSchemaData.tables[targetTableIndex].fields.findIndex((field) => field.fieldName === existingEntry.fieldName); + delete updatedSchemaData.tables[targetTableIndex] + .fields[targetFieldIndex]["originName"]; + delete updatedSchemaData.tables[targetTableIndex] + .fields[targetFieldIndex]["updatedField"]; + /** + * @description Set New Table Fields Array + */ + upToDateTableFieldsArray = + updatedSchemaData.tables[targetTableIndex].fields; + if (userId) { + (0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ + dbSchema: updatedSchemaData, + userId, + }); + } + allExistingColumns = yield (0, varDatabaseDbHandler_1.default)({ + queryString: `SHOW COLUMNS FROM \`${dbFullName}\`.\`${tableName}\``, + }); + } + catch (error) { + console.log("Update table error =>", error.message); + } + //////////////////////////////////////// + } + //////////////////////////////////////// + continue; + //////////////////////////////////////// + } + else { + yield (0, varDatabaseDbHandler_1.default)({ + queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP COLUMN \`${Field}\``, + }); + } + } + /** + * Handle DATASQUIREL schema fields for current table + * =================================================== + * @description Iterate through each field object and + * perform operations + */ + for (let i = 0; i < upToDateTableFieldsArray.length; i++) { + const column = upToDateTableFieldsArray[i]; + // const prevColumn = upToDateTableFieldsArray[i - 1]; + // const nextColumn = upToDateTableFieldsArray[i + 1]; + const { fieldName, dataType, foreignKey } = column; + if (!fieldName) + continue; + if (default_fields_regexp_1.default.test(fieldName)) + continue; + let updateText = ""; + const existingColumnIndex = allExistingColumns === null || allExistingColumns === void 0 ? void 0 : allExistingColumns.findIndex((_column, _index) => _column.Field === fieldName); + const existingColumn = existingColumnIndex >= 0 + ? allExistingColumns[existingColumnIndex] + : undefined; + let { fieldEntryText } = (0, generateColumnDescription_1.default)({ + columnData: column, + }); + /** + * @description Modify Column(Field) if it already exists + * in MYSQL database + */ + if (existingColumn === null || existingColumn === void 0 ? void 0 : existingColumn.Field) { + const { Field, Type } = existingColumn; + updateText += `MODIFY COLUMN ${fieldEntryText}`; + // if ( + // Field === fieldName && + // dataType?.toUpperCase() === Type.toUpperCase() + // ) { + // } else { + // updateText += `MODIFY COLUMN ${fieldEntryText}`; + // } + } + else { + /** + * @description Append new column to the end of existing columns + */ + updateText += `ADD COLUMN ${fieldEntryText}`; + } + /** + * @description Pust SQL code snippet to updateTableQueryArray Array + * Add a comma(,) to separate from the next snippet + */ + if (updateText.match(/./)) { + updateTableQueryArray.push(updateText + ","); + } + } + /** + * @description Construct final SQL query by combning all SQL snippets in + * updateTableQueryArray Arry, and trimming the final comma(,) + */ + const updateTableQuery = updateTableQueryArray + .filter((q) => Boolean(q.match(/./))) + .join(" ") + .replace(/,$/, ""); + //////////////////////////////////////// + /** + * @description Check if SQL snippets array has more than 1 entries + * This is because 1 entry means "ALTER TABLE table_name" only, without any + * Alter directives like "ADD COLUMN" or "MODIFY COLUMN" + */ + if (updateTableQueryArray.length > 1) { + const updateTable = yield (0, varDatabaseDbHandler_1.default)({ + queryString: updateTableQuery, + }); + /** + * # Handle Foreign Keys + */ + yield (0, drop_all_foreign_keys_1.default)({ dbFullName, tableName }); + for (let i = 0; i < upToDateTableFieldsArray.length; i++) { + const { fieldName, foreignKey } = upToDateTableFieldsArray[i]; + if (!clone && foreignKey && fieldName) { + yield (0, handle_table_foreign_key_1.default)({ + dbFullName, + errorLogs, + foreignKey, + fieldName, + tableName, + }); + } + } + } + else { + /** + * @description If only 1 SQL snippet is left in updateTableQueryArray, this + * means that no updates have been made to the table + */ + } + return tableID; } - return tableID; - } - catch (error) { - console.log('Error in "updateTable" shell function =>', error.message); - return tableID; - } + catch (error) { + console.log('Error in "updateTable" shell function =>', error.message); + return tableID; + } + }); } diff --git a/dist/package-shared/shell/utils/varDatabaseDbHandler.js b/dist/package-shared/shell/utils/varDatabaseDbHandler.js index 0625eb8..8a1a714 100644 --- a/dist/package-shared/shell/utils/varDatabaseDbHandler.js +++ b/dist/package-shared/shell/utils/varDatabaseDbHandler.js @@ -1,45 +1,62 @@ -import dbHandler from "../../functions/backend/dbHandler"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = varDatabaseDbHandler; +const dbHandler_1 = __importDefault(require("../../functions/backend/dbHandler")); /** * # DB handler for specific database */ -export default async function varDatabaseDbHandler({ queryString, queryValuesArray, }) { - /** - * Declare variables - * - * @description Declare "results" variable - */ - let results; - /** - * Fetch from db - * - * @description Fetch data from db if no cache - */ - try { - if (queryString && - queryValuesArray && - Array.isArray(queryValuesArray) && - queryValuesArray[0]) { - results = await dbHandler({ - query: queryString, - values: queryValuesArray, - }); +function varDatabaseDbHandler(_a) { + return __awaiter(this, arguments, void 0, function* ({ queryString, queryValuesArray, }) { + /** + * Declare variables + * + * @description Declare "results" variable + */ + let results; + /** + * Fetch from db + * + * @description Fetch data from db if no cache + */ + try { + if (queryString && + queryValuesArray && + Array.isArray(queryValuesArray) && + queryValuesArray[0]) { + results = yield (0, dbHandler_1.default)({ + query: queryString, + values: queryValuesArray, + }); + } + else { + results = yield (0, dbHandler_1.default)({ + query: queryString, + }); + } + //////////////////////////////////////// + //////////////////////////////////////// + //////////////////////////////////////// } - else { - results = await dbHandler({ - query: queryString, - }); + catch ( /** @type {any} */error) { + console.log("Shell Vardb Error =>", error.message); } - //////////////////////////////////////// - //////////////////////////////////////// - //////////////////////////////////////// - } - catch ( /** @type {any} */error) { - console.log("Shell Vardb Error =>", error.message); - } - /** - * Return results - * - * @description Return results add to cache if "req" param is passed - */ - return results; + /** + * Return results + * + * @description Return results add to cache if "req" param is passed + */ + return results; + }); } diff --git a/dist/package-shared/types/dsql.js b/dist/package-shared/types/dsql.js index 744cebf..318a234 100644 --- a/dist/package-shared/types/dsql.js +++ b/dist/package-shared/types/dsql.js @@ -1,4 +1,7 @@ -export const DsqlTables = [ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DsqlTables = void 0; +exports.DsqlTables = [ "users", "mariadb_users", "mariadb_user_databases", diff --git a/dist/package-shared/types/index.js b/dist/package-shared/types/index.js index 314c9b3..7026da5 100644 --- a/dist/package-shared/types/index.js +++ b/dist/package-shared/types/index.js @@ -1,4 +1,7 @@ -export const UsersOmitedFields = [ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EnvKeys = exports.AppVersions = exports.APIParadigms = exports.UserSQLPermissions = exports.SQLPermissions = exports.InvitedUserSelectFields = exports.DelegatedUserSelectFields = exports.UserSelectFields = exports.IndexTypes = exports.DefaultSQLValuesLiteral = exports.CurrentlyEditedFieldActions = exports.VideoMimeTypes = exports.FileMimeTypes = exports.ImageMimeTypes = exports.MediaTypes = exports.DockerComposeServices = exports.DatasquirelWindowEvents = exports.WebSocketEvents = exports.QueueJobTypes = exports.SignUpParadigms = exports.UserTypes = exports.QueryFields = exports.DsqlCrudActions = exports.DataCrudRequestMethodsLowerCase = exports.DataCrudRequestMethods = exports.ServerQueryEqualities = exports.ServerQueryOperators = exports.TextFieldTypesArray = exports.UsersOmitedFields = void 0; +exports.UsersOmitedFields = [ "password", "social_id", "verification_status", @@ -9,7 +12,7 @@ export const UsersOmitedFields = [ "date_updated_code", "date_updated_timestamp", ]; -export const TextFieldTypesArray = [ +exports.TextFieldTypesArray = [ { title: "Plain Text", value: "plain" }, { title: "Rich Text", value: "richText" }, { title: "JSON", value: "json" }, @@ -20,8 +23,8 @@ export const TextFieldTypesArray = [ { title: "Shell", value: "shell" }, { title: "Code", value: "code" }, ]; -export const ServerQueryOperators = ["AND", "OR"]; -export const ServerQueryEqualities = [ +exports.ServerQueryOperators = ["AND", "OR"]; +exports.ServerQueryEqualities = [ "EQUAL", "LIKE", "LIKE_RAW", @@ -43,7 +46,7 @@ export const ServerQueryEqualities = [ "LESS THAN", "LESS THAN OR EQUAL", ]; -export const DataCrudRequestMethods = [ +exports.DataCrudRequestMethods = [ "GET", "POST", "PUT", @@ -51,7 +54,7 @@ export const DataCrudRequestMethods = [ "DELETE", "OPTIONS", ]; -export const DataCrudRequestMethodsLowerCase = [ +exports.DataCrudRequestMethodsLowerCase = [ "get", "post", "put", @@ -59,8 +62,8 @@ export const DataCrudRequestMethodsLowerCase = [ "delete", "options", ]; -export const DsqlCrudActions = ["insert", "update", "delete", "get"]; -export const QueryFields = [ +exports.DsqlCrudActions = ["insert", "update", "delete", "get"]; +exports.QueryFields = [ "duplicate", "user_id", "delegated_user_id", @@ -68,8 +71,8 @@ export const QueryFields = [ "table_id", "db_slug", ]; -export const UserTypes = ["su", "admin"]; -export const SignUpParadigms = [ +exports.UserTypes = ["su", "admin"]; +exports.SignUpParadigms = [ { name: "email", }, @@ -77,8 +80,8 @@ export const SignUpParadigms = [ name: "google", }, ]; -export const QueueJobTypes = ["dummy", "import-database"]; -export const WebSocketEvents = [ +exports.QueueJobTypes = ["dummy", "import-database"]; +exports.WebSocketEvents = [ /** * # Client Events * @description Events sent from Client to Server @@ -101,12 +104,12 @@ export const WebSocketEvents = [ "server:queue-deleted", "server:pty-shell", ]; -export const DatasquirelWindowEvents = [ +exports.DatasquirelWindowEvents = [ "queue-started", "queue-complete", "queue-running", ]; -export const DockerComposeServices = [ +exports.DockerComposeServices = [ "setup", "cron", "reverse-proxy", @@ -123,8 +126,8 @@ export const DockerComposeServices = [ "db-cron", "web-app-post-db-setup", ]; -export const MediaTypes = ["image", "file", "video"]; -export const ImageMimeTypes = [ +exports.MediaTypes = ["image", "file", "video"]; +exports.ImageMimeTypes = [ "webp", "gif", "svg", @@ -132,7 +135,7 @@ export const ImageMimeTypes = [ "jpeg", "jpg", ]; -export const FileMimeTypes = [ +exports.FileMimeTypes = [ "pdf", "csv", "json", @@ -144,8 +147,8 @@ export const FileMimeTypes = [ "yaml", "yml", ]; -export const VideoMimeTypes = ["mp4", "wav"]; -export const CurrentlyEditedFieldActions = [ +exports.VideoMimeTypes = ["mp4", "wav"]; +exports.CurrentlyEditedFieldActions = [ "edit-field", "edit-index", "delete-field", @@ -156,7 +159,7 @@ export const CurrentlyEditedFieldActions = [ "move-down", "complete", ]; -export const DefaultSQLValuesLiteral = [ +exports.DefaultSQLValuesLiteral = [ { title: "CURRENT_TIMESTAMP", value: "CURRENT_TIMESTAMP", @@ -170,8 +173,8 @@ export const DefaultSQLValuesLiteral = [ dataType: "UUID", }, ]; -export const IndexTypes = ["regular", "full_text"]; -export const UserSelectFields = [ +exports.IndexTypes = ["regular", "full_text"]; +exports.UserSelectFields = [ { field: "first_name", alias: "user_first_name", @@ -189,7 +192,7 @@ export const UserSelectFields = [ alias: "user_image_thumbnail", }, ]; -export const DelegatedUserSelectFields = [ +exports.DelegatedUserSelectFields = [ { field: "first_name", alias: "delegated_user_first_name", @@ -207,7 +210,7 @@ export const DelegatedUserSelectFields = [ alias: "delegated_user_image_thumbnail", }, ]; -export const InvitedUserSelectFields = [ +exports.InvitedUserSelectFields = [ { field: "first_name", alias: "invited_user_first_name", @@ -225,7 +228,7 @@ export const InvitedUserSelectFields = [ alias: "invited_user_image_thumbnail", }, ]; -export const SQLPermissions = [ +exports.SQLPermissions = [ "ALL PRIVILEGES", "ALTER", "ALTER ROUTINE", @@ -253,7 +256,7 @@ export const SQLPermissions = [ "UPDATE", "USAGE", ]; -export const UserSQLPermissions = [ +exports.UserSQLPermissions = [ "SELECT", "ALTER", "ALTER ROUTINE", @@ -278,8 +281,8 @@ export const UserSQLPermissions = [ "UPDATE", "USAGE", ]; -export const APIParadigms = ["crud", "media", "sql"]; -export const AppVersions = [ +exports.APIParadigms = ["crud", "media", "sql"]; +exports.AppVersions = [ { title: "Community", value: "community", @@ -297,7 +300,7 @@ export const AppVersions = [ value: "full", }, ]; -export const EnvKeys = [ +exports.EnvKeys = [ "DSQL_HOST", "NEXT_PUBLIC_DSQL_HOST", "DSQL_STATIC_HOST", diff --git a/dist/package-shared/utils/backend/config/grab-config.js b/dist/package-shared/utils/backend/config/grab-config.js index f84c973..f92c915 100644 --- a/dist/package-shared/utils/backend/config/grab-config.js +++ b/dist/package-shared/utils/backend/config/grab-config.js @@ -1,23 +1,29 @@ -import fs from "fs"; -import grabDirNames from "../names/grab-dir-names"; -import EJSON from "../../ejson"; -import envsub from "../../envsub"; -export default function grabConfig(params) { - const { appConfigJSONFile, userConfigJSONFilePath } = grabDirNames({ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabConfig; +const fs_1 = __importDefault(require("fs")); +const grab_dir_names_1 = __importDefault(require("../names/grab-dir-names")); +const ejson_1 = __importDefault(require("../../ejson")); +const envsub_1 = __importDefault(require("../../envsub")); +function grabConfig(params) { + const { appConfigJSONFile, userConfigJSONFilePath } = (0, grab_dir_names_1.default)({ userId: params === null || params === void 0 ? void 0 : params.userId, }); - const appConfigJSON = envsub(fs.readFileSync(appConfigJSONFile, "utf-8")); - const appConfig = EJSON.parse(appConfigJSON); + const appConfigJSON = (0, envsub_1.default)(fs_1.default.readFileSync(appConfigJSONFile, "utf-8")); + const appConfig = ejson_1.default.parse(appConfigJSON); if (!userConfigJSONFilePath) { return { appConfig, userConfig: null }; } - if (!fs.existsSync(userConfigJSONFilePath)) { - fs.writeFileSync(userConfigJSONFilePath, JSON.stringify({ + if (!fs_1.default.existsSync(userConfigJSONFilePath)) { + fs_1.default.writeFileSync(userConfigJSONFilePath, JSON.stringify({ main: {}, }), "utf-8"); } - const userConfigJSON = envsub(fs.readFileSync(userConfigJSONFilePath, "utf-8")); - const userConfig = (EJSON.parse(userConfigJSON) || { + const userConfigJSON = (0, envsub_1.default)(fs_1.default.readFileSync(userConfigJSONFilePath, "utf-8")); + const userConfig = (ejson_1.default.parse(userConfigJSON) || { main: {}, }); return { appConfig, userConfig }; diff --git a/dist/package-shared/utils/backend/config/grab-main-config.js b/dist/package-shared/utils/backend/config/grab-main-config.js index 65321c3..0e1ed09 100644 --- a/dist/package-shared/utils/backend/config/grab-main-config.js +++ b/dist/package-shared/utils/backend/config/grab-main-config.js @@ -1,6 +1,12 @@ -import grabConfig from "./grab-config"; -export default function grabMainConfig(params) { - const { appConfig } = grabConfig(); - const { userConfig } = grabConfig({ userId: params === null || params === void 0 ? void 0 : params.userId }); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabMainConfig; +const grab_config_1 = __importDefault(require("./grab-config")); +function grabMainConfig(params) { + const { appConfig } = (0, grab_config_1.default)(); + const { userConfig } = (0, grab_config_1.default)({ userId: params === null || params === void 0 ? void 0 : params.userId }); return { appMainConfig: appConfig.main, userMainConfig: userConfig === null || userConfig === void 0 ? void 0 : userConfig.main }; } diff --git a/dist/package-shared/utils/backend/config/update-user-config.js b/dist/package-shared/utils/backend/config/update-user-config.js index d36d3b0..d1c59f9 100644 --- a/dist/package-shared/utils/backend/config/update-user-config.js +++ b/dist/package-shared/utils/backend/config/update-user-config.js @@ -1,25 +1,31 @@ -import fs from "fs"; -import grabDirNames from "../names/grab-dir-names"; -import grabConfig from "./grab-config"; -import _ from "lodash"; -export default function updateUserConfig({ newConfig, userId, }) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = updateUserConfig; +const fs_1 = __importDefault(require("fs")); +const grab_dir_names_1 = __importDefault(require("../names/grab-dir-names")); +const grab_config_1 = __importDefault(require("./grab-config")); +const lodash_1 = __importDefault(require("lodash")); +function updateUserConfig({ newConfig, userId, }) { if (!userId || !newConfig) { return { success: false, msg: `UserID or newConfig not provided`, }; } - const { userConfigJSONFilePath } = grabDirNames({ + const { userConfigJSONFilePath } = (0, grab_dir_names_1.default)({ userId, }); - if (!userConfigJSONFilePath || !fs.existsSync(userConfigJSONFilePath)) { + if (!userConfigJSONFilePath || !fs_1.default.existsSync(userConfigJSONFilePath)) { return { success: false, msg: `userConfigJSONFilePath not found!`, }; } - const { userConfig: existingUserConfig } = grabConfig({ userId }); - const updateConfig = _.merge(existingUserConfig, newConfig); - fs.writeFileSync(userConfigJSONFilePath, JSON.stringify(updateConfig), "utf-8"); + const { userConfig: existingUserConfig } = (0, grab_config_1.default)({ userId }); + const updateConfig = lodash_1.default.merge(existingUserConfig, newConfig); + fs_1.default.writeFileSync(userConfigJSONFilePath, JSON.stringify(updateConfig), "utf-8"); return { success: true }; } diff --git a/dist/package-shared/utils/backend/export-mariadb-database.js b/dist/package-shared/utils/backend/export-mariadb-database.js index 7d877ec..0010c01 100644 --- a/dist/package-shared/utils/backend/export-mariadb-database.js +++ b/dist/package-shared/utils/backend/export-mariadb-database.js @@ -1,7 +1,13 @@ -import { execSync } from "child_process"; -import os from "os"; -export default function exportMariadbDatabase({ dbFullName, targetFilePath, mariadbHost, mariadbPass, mariadbUser, }) { - const mysqlDumpPath = os.platform().match(/win/i) +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = exportMariadbDatabase; +const child_process_1 = require("child_process"); +const os_1 = __importDefault(require("os")); +function exportMariadbDatabase({ dbFullName, targetFilePath, mariadbHost, mariadbPass, mariadbUser, }) { + const mysqlDumpPath = os_1.default.platform().match(/win/i) ? "'" + "C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysqldump.exe" + "'" @@ -13,6 +19,6 @@ export default function exportMariadbDatabase({ dbFullName, targetFilePath, mari let execSyncOptions = { encoding: "utf-8", }; - const dumpDb = execSync(cmd, execSyncOptions); + const dumpDb = (0, child_process_1.execSync)(cmd, execSyncOptions); return dumpDb; } diff --git a/dist/package-shared/utils/backend/global-db/DB_HANDLER.js b/dist/package-shared/utils/backend/global-db/DB_HANDLER.js index ac1f7ff..d098d54 100644 --- a/dist/package-shared/utils/backend/global-db/DB_HANDLER.js +++ b/dist/package-shared/utils/backend/global-db/DB_HANDLER.js @@ -1,25 +1,42 @@ -import grabDSQLConnection from "../../grab-dsql-connection"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = DB_HANDLER; +const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection")); /** * # DSQL user read-only DB handler * @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database */ -export default async function DB_HANDLER(...args) { - var _a; - const CONNECTION = grabDSQLConnection(); - try { - if (!CONNECTION) - throw new Error("No Connection provided to DB_HANDLER function!"); - const results = await CONNECTION.query(...args); - return JSON.parse(JSON.stringify(results)); - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `DB_HANDLER Error`, error); - return { - success: false, - error: error.message, - }; - } - finally { - await (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end()); - } +function DB_HANDLER(...args) { + return __awaiter(this, void 0, void 0, function* () { + var _a; + const CONNECTION = (0, grab_dsql_connection_1.default)(); + try { + if (!CONNECTION) + throw new Error("No Connection provided to DB_HANDLER function!"); + const results = yield CONNECTION.query(...args); + return JSON.parse(JSON.stringify(results)); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `DB_HANDLER Error`, error); + return { + success: false, + error: error.message, + }; + } + finally { + yield (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end()); + } + }); } diff --git a/dist/package-shared/utils/backend/global-db/DSQL_USER_DB_HANDLER.js b/dist/package-shared/utils/backend/global-db/DSQL_USER_DB_HANDLER.js index 61ad5e4..648a5cb 100644 --- a/dist/package-shared/utils/backend/global-db/DSQL_USER_DB_HANDLER.js +++ b/dist/package-shared/utils/backend/global-db/DSQL_USER_DB_HANDLER.js @@ -1,21 +1,38 @@ -import connDbHandler from "../../db/conn-db-handler"; -import grabDSQLConnection from "../../grab-dsql-connection"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = DSQL_USER_DB_HANDLER; +const conn_db_handler_1 = __importDefault(require("../../db/conn-db-handler")); +const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection")); /** * # DSQL user read-only DB handler */ -export default async function DSQL_USER_DB_HANDLER({ paradigm, queryString, queryValues, }) { - var _a; - const CONNECTION = paradigm == "Read Only" - ? grabDSQLConnection({ ro: true }) - : grabDSQLConnection({ fa: true }); - try { - return await connDbHandler(CONNECTION, queryString, queryValues); - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `DSQL_USER_DB_HANDLER Error`, error); - return null; - } - finally { - CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end(); - } +function DSQL_USER_DB_HANDLER(_a) { + return __awaiter(this, arguments, void 0, function* ({ paradigm, queryString, queryValues, }) { + var _b; + const CONNECTION = paradigm == "Read Only" + ? (0, grab_dsql_connection_1.default)({ ro: true }) + : (0, grab_dsql_connection_1.default)({ fa: true }); + try { + return yield (0, conn_db_handler_1.default)(CONNECTION, queryString, queryValues); + } + catch (error) { + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `DSQL_USER_DB_HANDLER Error`, error); + return null; + } + finally { + CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end(); + } + }); } diff --git a/dist/package-shared/utils/backend/global-db/LOCAL_DB_HANDLER.js b/dist/package-shared/utils/backend/global-db/LOCAL_DB_HANDLER.js index 9e5786e..61951bc 100644 --- a/dist/package-shared/utils/backend/global-db/LOCAL_DB_HANDLER.js +++ b/dist/package-shared/utils/backend/global-db/LOCAL_DB_HANDLER.js @@ -1,22 +1,39 @@ -import grabDSQLConnection from "../../grab-dsql-connection"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = LOCAL_DB_HANDLER; +const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection")); /** * # DSQL user read-only DB handler */ -export default async function LOCAL_DB_HANDLER(...args) { - var _a; - const MASTER = grabDSQLConnection(); - try { - const results = await MASTER.query(...args); - return JSON.parse(JSON.stringify(results)); - } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `LOCAL_DB_HANDLER Error`, error); - return { - success: false, - error: error.message, - }; - } - finally { - await (MASTER === null || MASTER === void 0 ? void 0 : MASTER.end()); - } +function LOCAL_DB_HANDLER(...args) { + return __awaiter(this, void 0, void 0, function* () { + var _a; + const MASTER = (0, grab_dsql_connection_1.default)(); + try { + const results = yield MASTER.query(...args); + return JSON.parse(JSON.stringify(results)); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `LOCAL_DB_HANDLER Error`, error); + return { + success: false, + error: error.message, + }; + } + finally { + yield (MASTER === null || MASTER === void 0 ? void 0 : MASTER.end()); + } + }); } diff --git a/dist/package-shared/utils/backend/global-db/NO_DB_HANDLER.js b/dist/package-shared/utils/backend/global-db/NO_DB_HANDLER.js index 70c0885..497965e 100644 --- a/dist/package-shared/utils/backend/global-db/NO_DB_HANDLER.js +++ b/dist/package-shared/utils/backend/global-db/NO_DB_HANDLER.js @@ -1,10 +1,16 @@ -import grabDSQLConnection from "../../grab-dsql-connection"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = NO_DB_HANDLER; +const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection")); /** * # DSQL user read-only DB handler */ -export default function NO_DB_HANDLER(...args) { +function NO_DB_HANDLER(...args) { var _a; - const CONNECTION = grabDSQLConnection(); + const CONNECTION = (0, grab_dsql_connection_1.default)(); try { return new Promise((resolve, reject) => { CONNECTION.query(...args) diff --git a/dist/package-shared/utils/backend/global-db/ROOT_DB_HANDLER.js b/dist/package-shared/utils/backend/global-db/ROOT_DB_HANDLER.js index 04444b9..a0fcba2 100644 --- a/dist/package-shared/utils/backend/global-db/ROOT_DB_HANDLER.js +++ b/dist/package-shared/utils/backend/global-db/ROOT_DB_HANDLER.js @@ -1,10 +1,16 @@ -import grabDSQLConnection from "../../grab-dsql-connection"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = ROOT_DB_HANDLER; +const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection")); /** * # Root DB handler */ -export default function ROOT_DB_HANDLER(...args) { +function ROOT_DB_HANDLER(...args) { var _a; - const CONNECTION = grabDSQLConnection(); + const CONNECTION = (0, grab_dsql_connection_1.default)(); try { return new Promise((resolve, reject) => { CONNECTION.query(...args) diff --git a/dist/package-shared/utils/backend/grabDbSSL.js b/dist/package-shared/utils/backend/grabDbSSL.js index cd5ae75..2663703 100644 --- a/dist/package-shared/utils/backend/grabDbSSL.js +++ b/dist/package-shared/utils/backend/grabDbSSL.js @@ -1,19 +1,25 @@ -import fs from "fs"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabDbSSL; +const fs_1 = __importDefault(require("fs")); /** * # Grall SSL */ -export default function grabDbSSL() { +function grabDbSSL() { const SSL_DIR = process.env.DSQL_SSL_DIR; if (!(SSL_DIR === null || SSL_DIR === void 0 ? void 0 : SSL_DIR.match(/./))) { return undefined; } const caFilePath = `${SSL_DIR}/ca-cert.pem`; - if (!fs.existsSync(caFilePath)) { + if (!fs_1.default.existsSync(caFilePath)) { console.log(`${caFilePath} does not exist`); return undefined; } return { - ca: fs.readFileSync(`${SSL_DIR}/ca-cert.pem`), + ca: fs_1.default.readFileSync(`${SSL_DIR}/ca-cert.pem`), // key: fs.readFileSync(`${SSL_DIR}/client-key.pem`), // cert: fs.readFileSync(`${SSL_DIR}/client-cert.pem`), rejectUnauthorized: false, diff --git a/dist/package-shared/utils/backend/import-mariadb-database.js b/dist/package-shared/utils/backend/import-mariadb-database.js index f6989ab..27a2bbc 100644 --- a/dist/package-shared/utils/backend/import-mariadb-database.js +++ b/dist/package-shared/utils/backend/import-mariadb-database.js @@ -1,20 +1,37 @@ -import { execSync } from "child_process"; -import os from "os"; -import connDbHandler from "../db/conn-db-handler"; -export default async function importMariadbDatabase({ dbFullName, targetFilePath, mariadbHost, mariadbPass, mariadbUser, }) { - const mysqlPath = os.platform().match(/win/i) - ? "'" + - "C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql.exe" + - "'" - : "mysql"; - const finalMariadbUser = mariadbUser || process.env.DSQL_DB_USERNAME; - const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST; - const finalMariadbPass = mariadbPass || process.env.DSQL_DB_PASSWORD; - await connDbHandler(global.DSQL_DB_CONN, `CREATE DATABASE IF NOT EXISTS ${dbFullName}`); - const cmd = `${mysqlPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p"${finalMariadbPass}" ${dbFullName} < ${targetFilePath}`; - let execSyncOptions = { - encoding: "utf-8", - }; - const importDb = execSync(cmd, execSyncOptions); - return importDb; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = importMariadbDatabase; +const child_process_1 = require("child_process"); +const os_1 = __importDefault(require("os")); +const conn_db_handler_1 = __importDefault(require("../db/conn-db-handler")); +function importMariadbDatabase(_a) { + return __awaiter(this, arguments, void 0, function* ({ dbFullName, targetFilePath, mariadbHost, mariadbPass, mariadbUser, }) { + const mysqlPath = os_1.default.platform().match(/win/i) + ? "'" + + "C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql.exe" + + "'" + : "mysql"; + const finalMariadbUser = mariadbUser || process.env.DSQL_DB_USERNAME; + const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST; + const finalMariadbPass = mariadbPass || process.env.DSQL_DB_PASSWORD; + yield (0, conn_db_handler_1.default)(global.DSQL_DB_CONN, `CREATE DATABASE IF NOT EXISTS ${dbFullName}`); + const cmd = `${mysqlPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p"${finalMariadbPass}" ${dbFullName} < ${targetFilePath}`; + let execSyncOptions = { + encoding: "utf-8", + }; + const importDb = (0, child_process_1.execSync)(cmd, execSyncOptions); + return importDb; + }); } diff --git a/dist/package-shared/utils/backend/names/grab-dir-names.js b/dist/package-shared/utils/backend/names/grab-dir-names.js index 5e39253..14a9080 100644 --- a/dist/package-shared/utils/backend/names/grab-dir-names.js +++ b/dist/package-shared/utils/backend/names/grab-dir-names.js @@ -1,5 +1,11 @@ -import path from "path"; -export default function grabDirNames(param) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabDirNames; +const path_1 = __importDefault(require("path")); +function grabDirNames(param) { var _a; const appDir = (param === null || param === void 0 ? void 0 : param.appDir) || process.env.DSQL_APP_DIR; const DATA_DIR = (param === null || param === void 0 ? void 0 : param.dataDir) || process.env.DSQL_DATA_DIR || "/data"; @@ -8,104 +14,104 @@ export default function grabDirNames(param) { throw new Error("Please provide the `DSQL_APP_DIR` env variable."); if (!DATA_DIR) throw new Error("Please provide the `DATA_DIR` env variable."); - const STATIC_ROOT = path.join(DATA_DIR, "static"); - const publicImagesDir = path.join(STATIC_ROOT, `images`); - const publicDir = path.join(appDir, "public"); - const publicSSLDir = path.join(publicDir, "documents", "ssl"); - const appSSLDir = path.join(appDir, "ssl"); - const mainSSLDir = path.join(DATA_DIR, "ssl"); - const privateDataDir = path.join(DATA_DIR, "private"); + const STATIC_ROOT = path_1.default.join(DATA_DIR, "static"); + const publicImagesDir = path_1.default.join(STATIC_ROOT, `images`); + const publicDir = path_1.default.join(appDir, "public"); + const publicSSLDir = path_1.default.join(publicDir, "documents", "ssl"); + const appSSLDir = path_1.default.join(appDir, "ssl"); + const mainSSLDir = path_1.default.join(DATA_DIR, "ssl"); + const privateDataDir = path_1.default.join(DATA_DIR, "private"); /** * # DB Dir names * @description Database related Directories */ - const mainDbDataDir = path.join(DATA_DIR, "db"); - const mainDbGrastateDatFile = path.join(mainDbDataDir, "grastate.dat"); - const replica1DbDataDir = path.join(DATA_DIR, "replica-1"); - const mariadbMainConfigDir = path.join(DATA_DIR, "db-config", "main"); - const mariadbReplicaConfigDir = path.join(DATA_DIR, "db-config", "replica"); - const maxscaleConfigDir = path.join(DATA_DIR, "db-config", "maxscale"); - const mariadbMainConfigFile = path.join(mariadbMainConfigDir, "default.cnf"); - const mariadbReplicaConfigFile = path.join(mariadbReplicaConfigDir, "default.cnf"); - const galeraConfigFile = path.join(mariadbMainConfigDir, "galera.cnf"); - const galeraReplicaConfigFile = path.join(mariadbReplicaConfigDir, "galera.cnf"); - const maxscaleConfigFile = path.join(maxscaleConfigDir, "maxscale.cnf"); + const mainDbDataDir = path_1.default.join(DATA_DIR, "db"); + const mainDbGrastateDatFile = path_1.default.join(mainDbDataDir, "grastate.dat"); + const replica1DbDataDir = path_1.default.join(DATA_DIR, "replica-1"); + const mariadbMainConfigDir = path_1.default.join(DATA_DIR, "db-config", "main"); + const mariadbReplicaConfigDir = path_1.default.join(DATA_DIR, "db-config", "replica"); + const maxscaleConfigDir = path_1.default.join(DATA_DIR, "db-config", "maxscale"); + const mariadbMainConfigFile = path_1.default.join(mariadbMainConfigDir, "default.cnf"); + const mariadbReplicaConfigFile = path_1.default.join(mariadbReplicaConfigDir, "default.cnf"); + const galeraConfigFile = path_1.default.join(mariadbMainConfigDir, "galera.cnf"); + const galeraReplicaConfigFile = path_1.default.join(mariadbReplicaConfigDir, "galera.cnf"); + const maxscaleConfigFile = path_1.default.join(maxscaleConfigDir, "maxscale.cnf"); /** * # Schema Dir names * @description */ - const oldSchemasDir = path.join(appDir, "jsonData", "dbSchemas"); - const appSchemaJSONFile = path.join(oldSchemasDir, "1.json"); + const oldSchemasDir = path_1.default.join(appDir, "jsonData", "dbSchemas"); + const appSchemaJSONFile = path_1.default.join(oldSchemasDir, "1.json"); const tempDirName = ".tmp"; - const appConfigDir = path.join(appDir, "jsonData", "config"); - const appConfigJSONFile = path.join(appConfigDir, "app-config.json"); + const appConfigDir = path_1.default.join(appDir, "jsonData", "config"); + const appConfigJSONFile = path_1.default.join(appConfigDir, "app-config.json"); if (!privateDataDir) throw new Error("Please provide the `DSQL_DB_SCHEMA_DIR` env variable."); - const pakageSharedDir = path.join(appDir, `package-shared`); - const mainDbTypeDefFile = path.join(pakageSharedDir, `types/dsql.ts`); - const mainShemaJSONFilePath = path.join(oldSchemasDir, `main.json`); - const defaultTableFieldsJSONFilePath = path.join(pakageSharedDir, `data/defaultFields.json`); - const usersSchemaDir = path.join(privateDataDir, `users`); + const pakageSharedDir = path_1.default.join(appDir, `package-shared`); + const mainDbTypeDefFile = path_1.default.join(pakageSharedDir, `types/dsql.ts`); + const mainShemaJSONFilePath = path_1.default.join(oldSchemasDir, `main.json`); + const defaultTableFieldsJSONFilePath = path_1.default.join(pakageSharedDir, `data/defaultFields.json`); + const usersSchemaDir = path_1.default.join(privateDataDir, `users`); const targetUserPrivateDir = finalUserId - ? path.join(usersSchemaDir, `user-${finalUserId}`) + ? path_1.default.join(usersSchemaDir, `user-${finalUserId}`) : undefined; const userTempSQLFilePath = targetUserPrivateDir - ? path.join(targetUserPrivateDir, `tmp.sql`) + ? path_1.default.join(targetUserPrivateDir, `tmp.sql`) : undefined; const userMainShemaJSONFilePath = targetUserPrivateDir - ? path.join(targetUserPrivateDir, `main.json`) + ? path_1.default.join(targetUserPrivateDir, `main.json`) : undefined; const userConfigJSONFilePath = targetUserPrivateDir - ? path.join(targetUserPrivateDir, `config.json`) + ? path_1.default.join(targetUserPrivateDir, `config.json`) : undefined; const userSchemaMainJSONFilePath = targetUserPrivateDir - ? path.join(targetUserPrivateDir, `main.json`) + ? path_1.default.join(targetUserPrivateDir, `main.json`) : undefined; const userPrivateMediaDir = targetUserPrivateDir - ? path.join(targetUserPrivateDir, `media`) + ? path_1.default.join(targetUserPrivateDir, `media`) : undefined; const userPrivateExportsDir = targetUserPrivateDir - ? path.join(targetUserPrivateDir, `export`) + ? path_1.default.join(targetUserPrivateDir, `export`) : undefined; const userPrivateSQLExportsDir = userPrivateExportsDir - ? path.join(userPrivateExportsDir, `sql`) + ? path_1.default.join(userPrivateExportsDir, `sql`) : undefined; const userPrivateTempSQLExportsDir = userPrivateSQLExportsDir - ? path.join(userPrivateSQLExportsDir, tempDirName) + ? path_1.default.join(userPrivateSQLExportsDir, tempDirName) : undefined; const userPrivateTempJSONSchemaFilePath = userPrivateTempSQLExportsDir - ? path.join(userPrivateTempSQLExportsDir, `schema.json`) + ? path_1.default.join(userPrivateTempSQLExportsDir, `schema.json`) : undefined; const userPrivateDbExportZipFileName = `db-export.zip`; const userPrivateDbExportZipFilePath = userPrivateSQLExportsDir - ? path.join(userPrivateSQLExportsDir, userPrivateDbExportZipFileName) + ? path_1.default.join(userPrivateSQLExportsDir, userPrivateDbExportZipFileName) : undefined; const userPublicMediaDir = finalUserId - ? path.join(publicImagesDir, `user-images/user-${finalUserId}`) + ? path_1.default.join(publicImagesDir, `user-images/user-${finalUserId}`) : undefined; const userPrivateDbImportZipFileName = `db-export.zip`; const userPrivateDbImportZipFilePath = userPrivateSQLExportsDir - ? path.join(userPrivateSQLExportsDir, userPrivateDbImportZipFileName) + ? path_1.default.join(userPrivateSQLExportsDir, userPrivateDbImportZipFileName) : undefined; - const dbNginxLoadBalancerConfigFile = path.join(appDir, "docker/services/mariadb/load-balancer/config/template/nginx.conf"); - let dockerComposeFile = path.join(appDir, "docker-compose.yml"); - let dockerComposeFileAlt = path.join(appDir, "docker-compose.yaml"); - const testDockerComposeFile = path.join(appDir, "test.docker-compose.yml"); - const testDockerComposeFileAlt = path.join(appDir, "test.docker-compose.yaml"); - const dbDockerComposeFile = path.join(appDir, "db.docker-compose.yml"); - const dbDockerComposeFileAlt = path.join(appDir, "db.docker-compose.yaml"); - const extraDockerComposeFile = path.join(appDir, "extra.docker-compose.yml"); - const extraDockerComposeFileAlt = path.join(appDir, "extra.docker-compose.yaml"); - const siteSetupFile = path.join(appDir, "site-setup.json"); - const envFile = path.join(appDir, ".env"); - const testEnvFile = path.join(appDir, "test.env"); + const dbNginxLoadBalancerConfigFile = path_1.default.join(appDir, "docker/services/mariadb/load-balancer/config/template/nginx.conf"); + let dockerComposeFile = path_1.default.join(appDir, "docker-compose.yml"); + let dockerComposeFileAlt = path_1.default.join(appDir, "docker-compose.yaml"); + const testDockerComposeFile = path_1.default.join(appDir, "test.docker-compose.yml"); + const testDockerComposeFileAlt = path_1.default.join(appDir, "test.docker-compose.yaml"); + const dbDockerComposeFile = path_1.default.join(appDir, "db.docker-compose.yml"); + const dbDockerComposeFileAlt = path_1.default.join(appDir, "db.docker-compose.yaml"); + const extraDockerComposeFile = path_1.default.join(appDir, "extra.docker-compose.yml"); + const extraDockerComposeFileAlt = path_1.default.join(appDir, "extra.docker-compose.yaml"); + const siteSetupFile = path_1.default.join(appDir, "site-setup.json"); + const envFile = path_1.default.join(appDir, ".env"); + const testEnvFile = path_1.default.join(appDir, "test.env"); /** * # Backup Dir names * @description */ - const mainBackupDir = path.join(DATA_DIR, "backups"); + const mainBackupDir = path_1.default.join(DATA_DIR, "backups"); const userBackupDir = targetUserPrivateDir - ? path.join(targetUserPrivateDir, `backups`) + ? path_1.default.join(targetUserPrivateDir, `backups`) : undefined; const sqlBackupDirName = `sql`; const schemasBackupDirName = `schema`; diff --git a/dist/package-shared/utils/backend/names/grab-ip-addresses.js b/dist/package-shared/utils/backend/names/grab-ip-addresses.js index a818fef..0da7d99 100644 --- a/dist/package-shared/utils/backend/names/grab-ip-addresses.js +++ b/dist/package-shared/utils/backend/names/grab-ip-addresses.js @@ -1,7 +1,13 @@ -import grabDockerResourceIPNumbers from "../../grab-docker-resource-ip-numbers"; -export default function grabIPAddresses() { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabIPAddresses; +const grab_docker_resource_ip_numbers_1 = __importDefault(require("../../grab-docker-resource-ip-numbers")); +function grabIPAddresses() { const globalIPPrefix = process.env.DSQL_NETWORK_IP_PREFIX || "172.72.0"; - const { cron, db, maxscale, postDbSetup, web } = grabDockerResourceIPNumbers(); + const { cron, db, maxscale, postDbSetup, web } = (0, grab_docker_resource_ip_numbers_1.default)(); const webAppIP = `${globalIPPrefix}.${web}`; const appCronIP = `${globalIPPrefix}.${cron}`; const maxScaleIP = `${globalIPPrefix}.${maxscale}`; diff --git a/dist/package-shared/utils/backend/names/replace-datasquirel-db-name.js b/dist/package-shared/utils/backend/names/replace-datasquirel-db-name.js index 01346c3..9a1d93d 100644 --- a/dist/package-shared/utils/backend/names/replace-datasquirel-db-name.js +++ b/dist/package-shared/utils/backend/names/replace-datasquirel-db-name.js @@ -1,4 +1,7 @@ -export default function replaceDatasquirelDbName({ str, userId, }) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = replaceDatasquirelDbName; +function replaceDatasquirelDbName({ str, userId, }) { const dbNamePrefix = process.env.DSQL_USER_DB_PREFIX; const userNameRegex = new RegExp(`${dbNamePrefix}\\d+_`, "g"); const newPrefix = `${dbNamePrefix}${userId}_`; diff --git a/dist/package-shared/utils/backend/parseCookies.js b/dist/package-shared/utils/backend/parseCookies.js index f9ac5c6..81d0e03 100644 --- a/dist/package-shared/utils/backend/parseCookies.js +++ b/dist/package-shared/utils/backend/parseCookies.js @@ -1,3 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = parseCookies; /** * Parse request cookies * =================================================== @@ -5,7 +8,7 @@ * @description This function takes in a request object and * returns the cookies as a JS object */ -export default function parseCookies({ request, cookieString, }) { +function parseCookies({ request, cookieString, }) { var _a; try { /** @type {string | undefined} */ diff --git a/dist/package-shared/utils/camelJoinedtoCamelSpace.js b/dist/package-shared/utils/camelJoinedtoCamelSpace.js index d3d3f7b..239bfc5 100644 --- a/dist/package-shared/utils/camelJoinedtoCamelSpace.js +++ b/dist/package-shared/utils/camelJoinedtoCamelSpace.js @@ -1,10 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = camelJoinedtoCamelSpace; /** * Convert Camel Joined Text to Camel Spaced Text * ============================================================================== * @description this function takes a camel cased text without spaces, and returns * a camel-case-spaced text */ -export default function camelJoinedtoCamelSpace(text) { +function camelJoinedtoCamelSpace(text) { if (!(text === null || text === void 0 ? void 0 : text.match(/./))) { return ""; } diff --git a/dist/package-shared/utils/check-if-is-master.js b/dist/package-shared/utils/check-if-is-master.js index 5f13010..21e9e20 100644 --- a/dist/package-shared/utils/check-if-is-master.js +++ b/dist/package-shared/utils/check-if-is-master.js @@ -1,4 +1,7 @@ -export default function checkIfIsMaster({ dbContext, dbFullName }) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = checkIfIsMaster; +function checkIfIsMaster({ dbContext, dbFullName }) { return (dbContext === null || dbContext === void 0 ? void 0 : dbContext.match(/dsql.user/i)) ? false : global.DSQL_USE_LOCAL diff --git a/dist/package-shared/utils/console-colors.js b/dist/package-shared/utils/console-colors.js index e11e857..f44e56d 100644 --- a/dist/package-shared/utils/console-colors.js +++ b/dist/package-shared/utils/console-colors.js @@ -1,3 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ccol = void 0; const consoleColors = { Reset: "\x1b[0m", Bright: "\x1b[1m", @@ -25,5 +28,5 @@ const consoleColors = { BgWhite: "\x1b[47m", BgGray: "\x1b[100m", }; -export default consoleColors; -export const ccol = consoleColors; +exports.default = consoleColors; +exports.ccol = consoleColors; diff --git a/dist/package-shared/utils/cookies-actions.js b/dist/package-shared/utils/cookies-actions.js index ca1bc11..4867f5d 100644 --- a/dist/package-shared/utils/cookies-actions.js +++ b/dist/package-shared/utils/cookies-actions.js @@ -1,4 +1,10 @@ -export function setCookie(res, name, value, options = {}) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setCookie = setCookie; +exports.getCookie = getCookie; +exports.updateCookie = updateCookie; +exports.deleteCookie = deleteCookie; +function setCookie(res, name, value, options = {}) { const cookieParts = [ `${encodeURIComponent(name)}=${encodeURIComponent(value)}`, ]; @@ -22,7 +28,7 @@ export function setCookie(res, name, value, options = {}) { } res.setHeader("Set-Cookie", cookieParts.join("; ")); } -export function getCookie(req, name) { +function getCookie(req, name) { const cookieHeader = req.headers.cookie; if (!cookieHeader) return null; @@ -35,9 +41,9 @@ export function getCookie(req, name) { }, {}); return cookies[name] || null; } -export function updateCookie(res, name, value, options = {}) { +function updateCookie(res, name, value, options = {}) { setCookie(res, name, value, options); } -export function deleteCookie(res, name, options = {}) { +function deleteCookie(res, name, options = {}) { setCookie(res, name, "", Object.assign(Object.assign({}, options), { expires: new Date(0), maxAge: 0 })); } diff --git a/dist/package-shared/utils/create-user-sql-user.js b/dist/package-shared/utils/create-user-sql-user.js index ea4369d..1c06346 100644 --- a/dist/package-shared/utils/create-user-sql-user.js +++ b/dist/package-shared/utils/create-user-sql-user.js @@ -1,41 +1,58 @@ -import { generate } from "generate-password"; -import dbHandler from "../functions/backend/dbHandler"; -import dsqlCrud from "./data-fetching/crud"; -import encrypt from "../functions/dsql/encrypt"; -import grabUserMainSqlUserName from "./grab-user-main-sql-user-name"; -import grabDbNames from "./grab-db-names"; -import { createNewSQLUser } from "../functions/web-app/mariadb-user/handle-mariadb-user-creation"; -export default async function createUserSQLUser(user) { - const { fullName, host, username: mariaDBUsername, webHost, } = grabUserMainSqlUserName({ user }); - const { userDbPrefix } = grabDbNames({ user }); - await dbHandler({ - query: `DROP USER IF EXISTS '${mariaDBUsername}'@'${webHost}'`, - noErrorLogs: true, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - const newPassword = generate({ length: 32 }); - await createNewSQLUser({ - host: webHost, - password: newPassword, - username: mariaDBUsername, +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = createUserSQLUser; +const generate_password_1 = require("generate-password"); +const dbHandler_1 = __importDefault(require("../functions/backend/dbHandler")); +const crud_1 = __importDefault(require("./data-fetching/crud")); +const encrypt_1 = __importDefault(require("../functions/dsql/encrypt")); +const grab_user_main_sql_user_name_1 = __importDefault(require("./grab-user-main-sql-user-name")); +const grab_db_names_1 = __importDefault(require("./grab-db-names")); +const handle_mariadb_user_creation_1 = require("../functions/web-app/mariadb-user/handle-mariadb-user-creation"); +function createUserSQLUser(user) { + return __awaiter(this, void 0, void 0, function* () { + const { fullName, host, username: mariaDBUsername, webHost, } = (0, grab_user_main_sql_user_name_1.default)({ user }); + const { userDbPrefix } = (0, grab_db_names_1.default)({ user }); + yield (0, dbHandler_1.default)({ + query: `DROP USER IF EXISTS '${mariaDBUsername}'@'${webHost}'`, + noErrorLogs: true, + }); + const newPassword = (0, generate_password_1.generate)({ length: 32 }); + yield (0, handle_mariadb_user_creation_1.createNewSQLUser)({ + host: webHost, + password: newPassword, + username: mariaDBUsername, + }); + const updateWebHostGrants = (yield (0, dbHandler_1.default)({ + query: `GRANT ALL PRIVILEGES ON \`${userDbPrefix.replace(/\_/g, "\\_")}%\`.* TO '${mariaDBUsername}'@'${webHost}'`, + })); + const updateUser = yield (0, crud_1.default)({ + action: "update", + table: "users", + targetField: "id", + targetValue: user.id, + data: { + mariadb_host: webHost, + mariadb_pass: (0, encrypt_1.default)({ data: newPassword }) || undefined, + mariadb_user: mariaDBUsername, + }, + }); + return { + fullName, + host, + username: mariaDBUsername, + password: newPassword, + }; }); - const updateWebHostGrants = (await dbHandler({ - query: `GRANT ALL PRIVILEGES ON \`${userDbPrefix.replace(/\_/g, "\\_")}%\`.* TO '${mariaDBUsername}'@'${webHost}'`, - })); - const updateUser = await dsqlCrud({ - action: "update", - table: "users", - targetField: "id", - targetValue: user.id, - data: { - mariadb_host: webHost, - mariadb_pass: encrypt({ data: newPassword }) || undefined, - mariadb_user: mariaDBUsername, - }, - }); - return { - fullName, - host, - username: mariaDBUsername, - password: newPassword, - }; } diff --git a/dist/package-shared/utils/data-fetching/crud-get.js b/dist/package-shared/utils/data-fetching/crud-get.js index 8bbb62f..abb5091 100644 --- a/dist/package-shared/utils/data-fetching/crud-get.js +++ b/dist/package-shared/utils/data-fetching/crud-get.js @@ -1,60 +1,77 @@ -import sqlGenerator from "../../functions/dsql/sql/sql-generator"; -import connDbHandler from "../db/conn-db-handler"; -export default async function ({ table, query, count, countOnly, dbFullName, }) { - var _a, _b, _c, _d; - let queryObject; - queryObject = sqlGenerator({ - tableName: table, - genObject: query, - dbFullName, +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; - let connQueries = [ - { - query: queryObject === null || queryObject === void 0 ? void 0 : queryObject.string, - values: (queryObject === null || queryObject === void 0 ? void 0 : queryObject.values) || [], - }, - ]; - const countQueryObject = count || countOnly - ? sqlGenerator({ +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = default_1; +const sql_generator_1 = __importDefault(require("../../functions/dsql/sql/sql-generator")); +const conn_db_handler_1 = __importDefault(require("../db/conn-db-handler")); +function default_1(_a) { + return __awaiter(this, arguments, void 0, function* ({ table, query, count, countOnly, dbFullName, }) { + var _b, _c, _d, _e; + let queryObject; + queryObject = (0, sql_generator_1.default)({ tableName: table, genObject: query, - count: true, dbFullName, - }) - : undefined; - if (count && countQueryObject) { - connQueries.push({ - query: countQueryObject.string, - values: countQueryObject.values, }); - } - else if (countOnly && countQueryObject) { - connQueries = [ + const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; + let connQueries = [ { - query: countQueryObject.string, - values: countQueryObject.values, + query: queryObject === null || queryObject === void 0 ? void 0 : queryObject.string, + values: (queryObject === null || queryObject === void 0 ? void 0 : queryObject.values) || [], }, ]; - } - const res = await connDbHandler(DB_CONN, connQueries); - const isSuccess = Array.isArray(res) && Array.isArray(res[0]); - return { - success: isSuccess, - payload: isSuccess ? (countOnly ? null : res[0]) : null, - batchPayload: isSuccess ? (countOnly ? null : res) : null, - error: isSuccess ? undefined : res === null || res === void 0 ? void 0 : res.error, - errors: res === null || res === void 0 ? void 0 : res.errors, - queryObject: { - sql: queryObject === null || queryObject === void 0 ? void 0 : queryObject.string, - params: queryObject === null || queryObject === void 0 ? void 0 : queryObject.values, - }, - count: isSuccess - ? ((_b = (_a = res[1]) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b["COUNT(*)"]) - ? res[1][0]["COUNT(*)"] - : ((_d = (_c = res[0]) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d["COUNT(*)"]) - ? res[0][0]["COUNT(*)"] - : undefined - : undefined, - }; + const countQueryObject = count || countOnly + ? (0, sql_generator_1.default)({ + tableName: table, + genObject: query, + count: true, + dbFullName, + }) + : undefined; + if (count && countQueryObject) { + connQueries.push({ + query: countQueryObject.string, + values: countQueryObject.values, + }); + } + else if (countOnly && countQueryObject) { + connQueries = [ + { + query: countQueryObject.string, + values: countQueryObject.values, + }, + ]; + } + const res = yield (0, conn_db_handler_1.default)(DB_CONN, connQueries); + const isSuccess = Array.isArray(res) && Array.isArray(res[0]); + return { + success: isSuccess, + payload: isSuccess ? (countOnly ? null : res[0]) : null, + batchPayload: isSuccess ? (countOnly ? null : res) : null, + error: isSuccess ? undefined : res === null || res === void 0 ? void 0 : res.error, + errors: res === null || res === void 0 ? void 0 : res.errors, + queryObject: { + sql: queryObject === null || queryObject === void 0 ? void 0 : queryObject.string, + params: queryObject === null || queryObject === void 0 ? void 0 : queryObject.values, + }, + count: isSuccess + ? ((_c = (_b = res[1]) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c["COUNT(*)"]) + ? res[1][0]["COUNT(*)"] + : ((_e = (_d = res[0]) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e["COUNT(*)"]) + ? res[0][0]["COUNT(*)"] + : undefined + : undefined, + }; + }); } diff --git a/dist/package-shared/utils/data-fetching/crud.js b/dist/package-shared/utils/data-fetching/crud.js index 68b6fef..b374561 100644 --- a/dist/package-shared/utils/data-fetching/crud.js +++ b/dist/package-shared/utils/data-fetching/crud.js @@ -1,61 +1,78 @@ -import sqlDeleteGenerator from "../../functions/dsql/sql/sql-delete-generator"; -import dsqlCrudGet from "./crud-get"; -import connDbHandler from "../db/conn-db-handler"; -import addDbEntry from "../../functions/backend/db/addDbEntry"; -import updateDbEntry from "../../functions/backend/db/updateDbEntry"; -export default async function dsqlCrud(params) { - const { action, data, table, targetValue, sanitize, targetField, targetId, dbFullName, deleteData, batchData, deleteKeyValues, } = params; - const finalData = (sanitize ? sanitize({ data }) : data); - const finalBatchData = (sanitize ? sanitize({ batchData }) : batchData); - const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; - switch (action) { - case "get": - return await dsqlCrudGet(params); - // case "batch-get": - // return await dsqlCrudBatchGet(params); - case "insert": - const INSERT_RESULT = await addDbEntry({ - data: finalData, - batchData: finalBatchData, - tableName: table, - dbFullName, - }); - return INSERT_RESULT; - case "update": - data === null || data === void 0 ? true : delete data.id; - const UPDATE_RESULT = await updateDbEntry({ - data: finalData, - tableName: table, - dbFullName, - identifierColumnName: (targetField || "id"), - identifierValue: String(targetValue || targetId), - }); - return UPDATE_RESULT; - case "delete": - const deleteQuery = sqlDeleteGenerator({ - data: targetId - ? { id: targetId } - : targetField && targetValue - ? { [targetField]: targetValue } - : deleteData, - tableName: table, - dbFullName, - deleteKeyValues, - }); - const res = (await connDbHandler(DB_CONN, deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.query, deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.values)); - return { - success: Boolean(res.affectedRows), - payload: res, - queryObject: { - sql: (deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.query) || "", - params: (deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.values) || [], - }, - }; - default: - return { - success: false, - payload: undefined, - msg: "Invalid action", - }; - } +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = dsqlCrud; +const sql_delete_generator_1 = __importDefault(require("../../functions/dsql/sql/sql-delete-generator")); +const crud_get_1 = __importDefault(require("./crud-get")); +const conn_db_handler_1 = __importDefault(require("../db/conn-db-handler")); +const addDbEntry_1 = __importDefault(require("../../functions/backend/db/addDbEntry")); +const updateDbEntry_1 = __importDefault(require("../../functions/backend/db/updateDbEntry")); +function dsqlCrud(params) { + return __awaiter(this, void 0, void 0, function* () { + const { action, data, table, targetValue, sanitize, targetField, targetId, dbFullName, deleteData, batchData, deleteKeyValues, } = params; + const finalData = (sanitize ? sanitize({ data }) : data); + const finalBatchData = (sanitize ? sanitize({ batchData }) : batchData); + const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; + switch (action) { + case "get": + return yield (0, crud_get_1.default)(params); + // case "batch-get": + // return await dsqlCrudBatchGet(params); + case "insert": + const INSERT_RESULT = yield (0, addDbEntry_1.default)({ + data: finalData, + batchData: finalBatchData, + tableName: table, + dbFullName, + }); + return INSERT_RESULT; + case "update": + data === null || data === void 0 ? true : delete data.id; + const UPDATE_RESULT = yield (0, updateDbEntry_1.default)({ + data: finalData, + tableName: table, + dbFullName, + identifierColumnName: (targetField || "id"), + identifierValue: String(targetValue || targetId), + }); + return UPDATE_RESULT; + case "delete": + const deleteQuery = (0, sql_delete_generator_1.default)({ + data: targetId + ? { id: targetId } + : targetField && targetValue + ? { [targetField]: targetValue } + : deleteData, + tableName: table, + dbFullName, + deleteKeyValues, + }); + const res = (yield (0, conn_db_handler_1.default)(DB_CONN, deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.query, deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.values)); + return { + success: Boolean(res.affectedRows), + payload: res, + queryObject: { + sql: (deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.query) || "", + params: (deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.values) || [], + }, + }; + default: + return { + success: false, + payload: undefined, + msg: "Invalid action", + }; + } + }); } diff --git a/dist/package-shared/utils/data-fetching/method-crud.js b/dist/package-shared/utils/data-fetching/method-crud.js index 2a5c3b6..c24065a 100644 --- a/dist/package-shared/utils/data-fetching/method-crud.js +++ b/dist/package-shared/utils/data-fetching/method-crud.js @@ -1,150 +1,167 @@ -import _ from "lodash"; -import deserializeQuery from "../deserialize-query"; -import EJSON from "../ejson"; -import numberfy from "../numberfy"; -import dsqlCrud from "./crud"; -export default async function dsqlMethodCrud({ method, tableName, addUser, user, extraData, transformData, existingData, body, query, targetId, sanitize, transformQuery, debug, }) { - var _a, _b, _c, _d, _e; - let result = { - success: false, - }; - try { - let finalBody = body; - let finalQuery = deserializeQuery(query); - let LIMIT = 10; - let PAGE = 1; - let OFFSET = (PAGE - 1) * LIMIT; - if (method == "GET") { - const newFinalQuery = _.cloneDeep(finalQuery || {}); - Object.keys(newFinalQuery).forEach((key) => { - const value = newFinalQuery[key]; - if (typeof value == "string" && value.match(/^\{|^\[/)) { - newFinalQuery[key] = EJSON.stringify(value); - } - if (value == "true") { - newFinalQuery[key] = true; - } - if (value == "false") { - newFinalQuery[key] = false; - } - }); - if (newFinalQuery.limit) - LIMIT = numberfy(newFinalQuery.limit); - if (newFinalQuery.page) - PAGE = numberfy(newFinalQuery.page); - OFFSET = (PAGE - 1) * LIMIT; - finalQuery = newFinalQuery; - } - let finalData = finalBody - ? Object.assign(Object.assign({}, finalBody), extraData) - : {}; - if ((user === null || user === void 0 ? void 0 : user.id) && addUser) { - finalData = Object.assign(Object.assign({}, finalData), { [addUser.field]: String(user.id) }); - } - if (transformData) { - if (debug) { - console.log("DEBUG:::transforming Data ..."); +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = dsqlMethodCrud; +const lodash_1 = __importDefault(require("lodash")); +const deserialize_query_1 = __importDefault(require("../deserialize-query")); +const ejson_1 = __importDefault(require("../ejson")); +const numberfy_1 = __importDefault(require("../numberfy")); +const crud_1 = __importDefault(require("./crud")); +function dsqlMethodCrud(_a) { + return __awaiter(this, arguments, void 0, function* ({ method, tableName, addUser, user, extraData, transformData, existingData, body, query, targetId, sanitize, transformQuery, debug, }) { + var _b, _c, _d, _e, _f; + let result = { + success: false, + }; + try { + let finalBody = body; + let finalQuery = (0, deserialize_query_1.default)(query); + let LIMIT = 10; + let PAGE = 1; + let OFFSET = (PAGE - 1) * LIMIT; + if (method == "GET") { + const newFinalQuery = lodash_1.default.cloneDeep(finalQuery || {}); + Object.keys(newFinalQuery).forEach((key) => { + const value = newFinalQuery[key]; + if (typeof value == "string" && value.match(/^\{|^\[/)) { + newFinalQuery[key] = ejson_1.default.stringify(value); + } + if (value == "true") { + newFinalQuery[key] = true; + } + if (value == "false") { + newFinalQuery[key] = false; + } + }); + if (newFinalQuery.limit) + LIMIT = (0, numberfy_1.default)(newFinalQuery.limit); + if (newFinalQuery.page) + PAGE = (0, numberfy_1.default)(newFinalQuery.page); + OFFSET = (PAGE - 1) * LIMIT; + finalQuery = newFinalQuery; } - finalData = (await transformData({ - data: finalData, - existingData: existingData, - user, - reqMethod: method, - })); - } - if (transformQuery) { - if (debug) { - console.log("DEBUG:::transforming Query ..."); + let finalData = finalBody + ? Object.assign(Object.assign({}, finalBody), extraData) + : {}; + if ((user === null || user === void 0 ? void 0 : user.id) && addUser) { + finalData = Object.assign(Object.assign({}, finalData), { [addUser.field]: String(user.id) }); } - finalQuery = await transformQuery({ - query: finalQuery || {}, - user, - reqMethod: method, - }); + if (transformData) { + if (debug) { + console.log("DEBUG:::transforming Data ..."); + } + finalData = (yield transformData({ + data: finalData, + existingData: existingData, + user, + reqMethod: method, + })); + } + if (transformQuery) { + if (debug) { + console.log("DEBUG:::transforming Query ..."); + } + finalQuery = yield transformQuery({ + query: finalQuery || {}, + user, + reqMethod: method, + }); + } + if (debug) { + console.log("DEBUG:::finalQuery", finalQuery); + console.log("DEBUG:::finalData", finalData); + } + switch (method) { + case "GET": + const GET_RESULT = yield (0, crud_1.default)({ + action: "get", + table: tableName, + query: Object.assign(Object.assign({}, finalQuery), { query: Object.assign(Object.assign({}, finalQuery === null || finalQuery === void 0 ? void 0 : finalQuery.query), ((user === null || user === void 0 ? void 0 : user.id) && addUser + ? { + [addUser.field]: { + value: String(user.id), + }, + } + : undefined)), limit: LIMIT, offset: OFFSET }), + sanitize, + }); + result = { + success: Boolean(GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.success), + payload: GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.payload, + msg: GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.msg, + error: GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.error, + queryObject: { + string: ((_b = GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.queryObject) === null || _b === void 0 ? void 0 : _b.sql) || "", + values: ((_c = GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.queryObject) === null || _c === void 0 ? void 0 : _c.params) || [], + }, + }; + break; + case "POST": + const POST_RESULT = yield (0, crud_1.default)({ + action: "insert", + table: tableName, + data: finalData && ((_d = Object.keys(finalData)) === null || _d === void 0 ? void 0 : _d[0]) + ? finalData + : undefined, + sanitize, + }); + result = { + success: Boolean(POST_RESULT === null || POST_RESULT === void 0 ? void 0 : POST_RESULT.success), + payload: POST_RESULT === null || POST_RESULT === void 0 ? void 0 : POST_RESULT.payload, + msg: POST_RESULT === null || POST_RESULT === void 0 ? void 0 : POST_RESULT.msg, + error: POST_RESULT === null || POST_RESULT === void 0 ? void 0 : POST_RESULT.error, + }; + break; + case "PUT": + const PUT_RESULT = yield (0, crud_1.default)({ + action: "update", + table: tableName, + data: finalData && ((_e = Object.keys(finalData)) === null || _e === void 0 ? void 0 : _e[0]) + ? finalData + : undefined, + targetId, + sanitize, + }); + result = { + success: Boolean(PUT_RESULT === null || PUT_RESULT === void 0 ? void 0 : PUT_RESULT.success), + payload: PUT_RESULT === null || PUT_RESULT === void 0 ? void 0 : PUT_RESULT.payload, + msg: PUT_RESULT === null || PUT_RESULT === void 0 ? void 0 : PUT_RESULT.msg, + error: PUT_RESULT === null || PUT_RESULT === void 0 ? void 0 : PUT_RESULT.error, + }; + break; + case "DELETE": + const DELETE_RESULT = yield (0, crud_1.default)({ + action: "delete", + table: tableName, + targetId, + sanitize, + }); + result = { + success: Boolean(DELETE_RESULT === null || DELETE_RESULT === void 0 ? void 0 : DELETE_RESULT.success), + payload: DELETE_RESULT === null || DELETE_RESULT === void 0 ? void 0 : DELETE_RESULT.payload, + msg: DELETE_RESULT === null || DELETE_RESULT === void 0 ? void 0 : DELETE_RESULT.msg, + error: DELETE_RESULT === null || DELETE_RESULT === void 0 ? void 0 : DELETE_RESULT.error, + }; + break; + default: + break; + } + return result; } - if (debug) { - console.log("DEBUG:::finalQuery", finalQuery); - console.log("DEBUG:::finalData", finalData); + catch (error) { + (_f = global.ERROR_CALLBACK) === null || _f === void 0 ? void 0 : _f.call(global, `Method Crud Error`, error); + return result; } - switch (method) { - case "GET": - const GET_RESULT = await dsqlCrud({ - action: "get", - table: tableName, - query: Object.assign(Object.assign({}, finalQuery), { query: Object.assign(Object.assign({}, finalQuery === null || finalQuery === void 0 ? void 0 : finalQuery.query), ((user === null || user === void 0 ? void 0 : user.id) && addUser - ? { - [addUser.field]: { - value: String(user.id), - }, - } - : undefined)), limit: LIMIT, offset: OFFSET }), - sanitize, - }); - result = { - success: Boolean(GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.success), - payload: GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.payload, - msg: GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.msg, - error: GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.error, - queryObject: { - string: ((_a = GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.queryObject) === null || _a === void 0 ? void 0 : _a.sql) || "", - values: ((_b = GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.queryObject) === null || _b === void 0 ? void 0 : _b.params) || [], - }, - }; - break; - case "POST": - const POST_RESULT = await dsqlCrud({ - action: "insert", - table: tableName, - data: finalData && ((_c = Object.keys(finalData)) === null || _c === void 0 ? void 0 : _c[0]) - ? finalData - : undefined, - sanitize, - }); - result = { - success: Boolean(POST_RESULT === null || POST_RESULT === void 0 ? void 0 : POST_RESULT.success), - payload: POST_RESULT === null || POST_RESULT === void 0 ? void 0 : POST_RESULT.payload, - msg: POST_RESULT === null || POST_RESULT === void 0 ? void 0 : POST_RESULT.msg, - error: POST_RESULT === null || POST_RESULT === void 0 ? void 0 : POST_RESULT.error, - }; - break; - case "PUT": - const PUT_RESULT = await dsqlCrud({ - action: "update", - table: tableName, - data: finalData && ((_d = Object.keys(finalData)) === null || _d === void 0 ? void 0 : _d[0]) - ? finalData - : undefined, - targetId, - sanitize, - }); - result = { - success: Boolean(PUT_RESULT === null || PUT_RESULT === void 0 ? void 0 : PUT_RESULT.success), - payload: PUT_RESULT === null || PUT_RESULT === void 0 ? void 0 : PUT_RESULT.payload, - msg: PUT_RESULT === null || PUT_RESULT === void 0 ? void 0 : PUT_RESULT.msg, - error: PUT_RESULT === null || PUT_RESULT === void 0 ? void 0 : PUT_RESULT.error, - }; - break; - case "DELETE": - const DELETE_RESULT = await dsqlCrud({ - action: "delete", - table: tableName, - targetId, - sanitize, - }); - result = { - success: Boolean(DELETE_RESULT === null || DELETE_RESULT === void 0 ? void 0 : DELETE_RESULT.success), - payload: DELETE_RESULT === null || DELETE_RESULT === void 0 ? void 0 : DELETE_RESULT.payload, - msg: DELETE_RESULT === null || DELETE_RESULT === void 0 ? void 0 : DELETE_RESULT.msg, - error: DELETE_RESULT === null || DELETE_RESULT === void 0 ? void 0 : DELETE_RESULT.error, - }; - break; - default: - break; - } - return result; - } - catch (error) { - (_e = global.ERROR_CALLBACK) === null || _e === void 0 ? void 0 : _e.call(global, `Method Crud Error`, error); - return result; - } + }); } diff --git a/dist/package-shared/utils/db/conn-db-handler.js b/dist/package-shared/utils/db/conn-db-handler.js index ec8640a..96c13bf 100644 --- a/dist/package-shared/utils/db/conn-db-handler.js +++ b/dist/package-shared/utils/db/conn-db-handler.js @@ -1,10 +1,25 @@ -import debugLog from "../logging/debug-log"; +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = connDbHandler; +const debug_log_1 = __importDefault(require("../logging/debug-log")); /** * # Run Query From MySQL Connection * @description Run a query from a pre-existing MySQL/Mariadb Connection * setup with `serverless-mysql` npm module */ -export default async function connDbHandler( +function connDbHandler( /** * ServerlessMySQL Connection Object */ @@ -17,83 +32,85 @@ query, * Array of Values to Sanitize and Inject */ values, debug) { - var _a, _b; - try { - if (!conn) - throw new Error("No Connection Found!"); - if (!query) - throw new Error("Query String Required!"); - let queryErrorArray = []; - if (typeof query == "string") { - const res = await conn.query(trimQuery(query), values); - if (debug) { - debugLog({ - log: res, - addTime: true, - label: "res", - }); + return __awaiter(this, void 0, void 0, function* () { + var _a, _b; + try { + if (!conn) + throw new Error("No Connection Found!"); + if (!query) + throw new Error("Query String Required!"); + let queryErrorArray = []; + if (typeof query == "string") { + const res = yield conn.query(trimQuery(query), values); + if (debug) { + (0, debug_log_1.default)({ + log: res, + addTime: true, + label: "res", + }); + } + return JSON.parse(JSON.stringify(res)); } - return JSON.parse(JSON.stringify(res)); - } - else if (typeof query == "object") { - const resArray = []; - for (let i = 0; i < query.length; i++) { - let currentQueryError = {}; - try { - const queryObj = query[i]; - currentQueryError.sql = queryObj.query; - currentQueryError.sqlValues = queryObj.values; - const queryObjRes = await conn.query(trimQuery(queryObj.query), queryObj.values); - if (debug) { - debugLog({ - log: queryObjRes, - addTime: true, - label: "queryObjRes", - }); + else if (typeof query == "object") { + const resArray = []; + for (let i = 0; i < query.length; i++) { + let currentQueryError = {}; + try { + const queryObj = query[i]; + currentQueryError.sql = queryObj.query; + currentQueryError.sqlValues = queryObj.values; + const queryObjRes = yield conn.query(trimQuery(queryObj.query), queryObj.values); + if (debug) { + (0, debug_log_1.default)({ + log: queryObjRes, + addTime: true, + label: "queryObjRes", + }); + } + resArray.push(JSON.parse(JSON.stringify(queryObjRes))); + } + catch (error) { + (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Connection DB Handler Query Error`, error); + resArray.push(null); + currentQueryError["error"] = error.message; + queryErrorArray.push(currentQueryError); } - resArray.push(JSON.parse(JSON.stringify(queryObjRes))); } - catch (error) { - (_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Connection DB Handler Query Error`, error); - resArray.push(null); - currentQueryError["error"] = error.message; - queryErrorArray.push(currentQueryError); + if (debug) { + (0, debug_log_1.default)({ + log: resArray, + addTime: true, + label: "resArray", + }); } + if (queryErrorArray[0]) { + return { + errors: queryErrorArray, + }; + } + return resArray; } + else { + return null; + } + } + catch (error) { + (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Connection DB Handler Error`, error); if (debug) { - debugLog({ - log: resArray, + (0, debug_log_1.default)({ + log: `Connection DB Handler Error: ${error.message}`, addTime: true, - label: "resArray", + label: "Error", }); } - if (queryErrorArray[0]) { - return { - errors: queryErrorArray, - }; - } - return resArray; + return { + error: `Connection DB Handler Error: ${error.message}`, + }; } - else { - return null; + finally { + conn === null || conn === void 0 ? void 0 : conn.end(); } - } - catch (error) { - (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Connection DB Handler Error`, error); - if (debug) { - debugLog({ - log: `Connection DB Handler Error: ${error.message}`, - addTime: true, - label: "Error", - }); - } - return { - error: `Connection DB Handler Error: ${error.message}`, - }; - } - finally { - conn === null || conn === void 0 ? void 0 : conn.end(); - } + }); } function trimQuery(query) { return query.replace(/\n/gm, "").replace(/ {2,}/g, "").trim(); diff --git a/dist/package-shared/utils/db/schema/data-type-constructor.js b/dist/package-shared/utils/db/schema/data-type-constructor.js index 9990ef7..4c7317b 100644 --- a/dist/package-shared/utils/db/schema/data-type-constructor.js +++ b/dist/package-shared/utils/db/schema/data-type-constructor.js @@ -1,7 +1,43 @@ -import dataTypeParser, { DataTypesWithNumbers } from "./data-type-parser"; -export default function dataTypeConstructor(dataType, limit, decimal) { - let finalType = dataTypeParser(dataType).type; - if (!DataTypesWithNumbers.includes(finalType)) { +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = dataTypeConstructor; +const data_type_parser_1 = __importStar(require("./data-type-parser")); +function dataTypeConstructor(dataType, limit, decimal) { + let finalType = (0, data_type_parser_1.default)(dataType).type; + if (!data_type_parser_1.DataTypesWithNumbers.includes(finalType)) { return finalType; } if (finalType == "VARCHAR") { diff --git a/dist/package-shared/utils/db/schema/data-type-parser.js b/dist/package-shared/utils/db/schema/data-type-parser.js index 3cbc8c4..25b9493 100644 --- a/dist/package-shared/utils/db/schema/data-type-parser.js +++ b/dist/package-shared/utils/db/schema/data-type-parser.js @@ -1,16 +1,23 @@ -import numberfy from "../../numberfy"; -export const DataTypesWithNumbers = [ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DataTypesWithTwoNumbers = exports.DataTypesWithNumbers = void 0; +exports.default = dataTypeParser; +const numberfy_1 = __importDefault(require("../../numberfy")); +exports.DataTypesWithNumbers = [ "DECIMAL", "DOUBLE", "FLOAT", "VARCHAR", ]; -export const DataTypesWithTwoNumbers = [ +exports.DataTypesWithTwoNumbers = [ "DECIMAL", "DOUBLE", "FLOAT", ]; -export default function dataTypeParser(dataType) { +function dataTypeParser(dataType) { if (!dataType) { return { type: "VARCHAR", @@ -20,7 +27,7 @@ export default function dataTypeParser(dataType) { const dataTypeArray = dataType.split("("); const type = dataTypeArray[0]; const number = dataTypeArray[1]; - if (!DataTypesWithNumbers.includes(type)) { + if (!exports.DataTypesWithNumbers.includes(type)) { return { type, }; @@ -29,12 +36,12 @@ export default function dataTypeParser(dataType) { const numberArr = number.split(","); return { type, - limit: numberfy(numberArr[0]), - decimal: numberArr[1] ? numberfy(numberArr[1]) : undefined, + limit: (0, numberfy_1.default)(numberArr[0]), + decimal: numberArr[1] ? (0, numberfy_1.default)(numberArr[1]) : undefined, }; } return { type, - limit: number ? numberfy(number) : undefined, + limit: number ? (0, numberfy_1.default)(number) : undefined, }; } diff --git a/dist/package-shared/utils/db/schema/grab-target-db-schema-index.js b/dist/package-shared/utils/db/schema/grab-target-db-schema-index.js index 3a9a0dd..d3f2828 100644 --- a/dist/package-shared/utils/db/schema/grab-target-db-schema-index.js +++ b/dist/package-shared/utils/db/schema/grab-target-db-schema-index.js @@ -1,4 +1,7 @@ -export default function grabTargetDatabaseSchemaIndex({ dbs, dbFullName, dbSlug, dbSchema, childDbSchema, childTableSchema, }) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabTargetDatabaseSchemaIndex; +function grabTargetDatabaseSchemaIndex({ dbs, dbFullName, dbSlug, dbSchema, childDbSchema, childTableSchema, }) { if (!dbs) return undefined; const targetDbIndex = dbs.findIndex((db) => (dbSlug && dbSlug == db.dbSlug) || diff --git a/dist/package-shared/utils/db/schema/grab-target-table-schema-index.js b/dist/package-shared/utils/db/schema/grab-target-table-schema-index.js index 8ba2e0f..181b732 100644 --- a/dist/package-shared/utils/db/schema/grab-target-table-schema-index.js +++ b/dist/package-shared/utils/db/schema/grab-target-table-schema-index.js @@ -1,4 +1,7 @@ -export default function grabTargetTableSchemaIndex({ tables, tableName, tableSchema, childTableSchema, }) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabTargetTableSchemaIndex; +function grabTargetTableSchemaIndex({ tables, tableName, tableSchema, childTableSchema, }) { if (!tables) return undefined; const targetTableIndex = tables.findIndex((tbl) => (tableName && tableName == tbl.tableName) || diff --git a/dist/package-shared/utils/db/schema/grab-target-table-schema.js b/dist/package-shared/utils/db/schema/grab-target-table-schema.js index 8eb81fd..3dfc9e3 100644 --- a/dist/package-shared/utils/db/schema/grab-target-table-schema.js +++ b/dist/package-shared/utils/db/schema/grab-target-table-schema.js @@ -1,4 +1,7 @@ -export default function grabTargetTableSchema({ tables, tableName, }) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabTargetTableSchema; +function grabTargetTableSchema({ tables, tableName, }) { const targetTable = tables.find((tbl) => tableName && tableName == tbl.tableName); return targetTable; } diff --git a/dist/package-shared/utils/db/schema/grab-text-field-type.js b/dist/package-shared/utils/db/schema/grab-text-field-type.js index d111a8f..4a2d24e 100644 --- a/dist/package-shared/utils/db/schema/grab-text-field-type.js +++ b/dist/package-shared/utils/db/schema/grab-text-field-type.js @@ -1,4 +1,7 @@ -export default function grabTextFieldType(field, nullReturn) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabTextFieldType; +function grabTextFieldType(field, nullReturn) { if (field.richText) return "richText"; if (field.json) diff --git a/dist/package-shared/utils/db/schema/resolve-schema-children-handle-children-databases.js b/dist/package-shared/utils/db/schema/resolve-schema-children-handle-children-databases.js index 406185e..3f4adab 100644 --- a/dist/package-shared/utils/db/schema/resolve-schema-children-handle-children-databases.js +++ b/dist/package-shared/utils/db/schema/resolve-schema-children-handle-children-databases.js @@ -1,9 +1,15 @@ -import { grabPrimaryRequiredDbSchema, writeUpdatedDbSchema, } from "../../../shell/createDbFromSchema/grab-required-database-schemas"; -import _ from "lodash"; -import uniqueByKey from "../../unique-by-key"; -export default function ({ currentDbSchema, userId }) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = default_1; +const grab_required_database_schemas_1 = require("../../../shell/createDbFromSchema/grab-required-database-schemas"); +const lodash_1 = __importDefault(require("lodash")); +const unique_by_key_1 = __importDefault(require("../../unique-by-key")); +function default_1({ currentDbSchema, userId }) { var _a, _b, _c; - const newCurrentDbSchema = _.cloneDeep(currentDbSchema); + const newCurrentDbSchema = lodash_1.default.cloneDeep(currentDbSchema); if (newCurrentDbSchema.childrenDatabases) { for (let ch = 0; ch < newCurrentDbSchema.childrenDatabases.length; ch++) { const dbChildDb = newCurrentDbSchema.childrenDatabases[ch]; @@ -11,7 +17,7 @@ export default function ({ currentDbSchema, userId }) { newCurrentDbSchema.childrenDatabases.splice(ch, 1, {}); continue; } - const targetChildDatabase = grabPrimaryRequiredDbSchema({ + const targetChildDatabase = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({ dbId: dbChildDb.dbId, userId, }); @@ -21,7 +27,7 @@ export default function ({ currentDbSchema, userId }) { */ if ((targetChildDatabase === null || targetChildDatabase === void 0 ? void 0 : targetChildDatabase.id) && targetChildDatabase.childDatabase) { targetChildDatabase.tables = [...newCurrentDbSchema.tables]; - writeUpdatedDbSchema({ + (0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ dbSchema: targetChildDatabase, userId, }); @@ -31,13 +37,13 @@ export default function ({ currentDbSchema, userId }) { } } newCurrentDbSchema.childrenDatabases = - uniqueByKey(newCurrentDbSchema.childrenDatabases.filter((db) => Boolean(db.dbId)), "dbId"); + (0, unique_by_key_1.default)(newCurrentDbSchema.childrenDatabases.filter((db) => Boolean(db.dbId)), "dbId"); } /** * Handle scenario where this database is a child of another */ if (currentDbSchema.childDatabase && currentDbSchema.childDatabaseDbId) { - const targetParentDatabase = grabPrimaryRequiredDbSchema({ + const targetParentDatabase = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({ dbId: currentDbSchema.childDatabaseDbId, userId, }); @@ -74,14 +80,14 @@ export default function ({ currentDbSchema, userId }) { if (!(existingChildDb === null || existingChildDb === void 0 ? void 0 : existingChildDb.dbId)) { targetParentDatabase.childrenDatabases.push(newChildDatabaseObject); } - targetParentDatabase.childrenDatabases = uniqueByKey(targetParentDatabase.childrenDatabases, "dbId"); + targetParentDatabase.childrenDatabases = (0, unique_by_key_1.default)(targetParentDatabase.childrenDatabases, "dbId"); } /** * Update tables for child database, which is the current database */ if (targetParentDatabase === null || targetParentDatabase === void 0 ? void 0 : targetParentDatabase.id) { newCurrentDbSchema.tables = targetParentDatabase.tables; - writeUpdatedDbSchema({ dbSchema: targetParentDatabase, userId }); + (0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ dbSchema: targetParentDatabase, userId }); } } return newCurrentDbSchema; diff --git a/dist/package-shared/utils/db/schema/resolve-schema-children-handle-children-tables.js b/dist/package-shared/utils/db/schema/resolve-schema-children-handle-children-tables.js index 269dfad..d9f2019 100644 --- a/dist/package-shared/utils/db/schema/resolve-schema-children-handle-children-tables.js +++ b/dist/package-shared/utils/db/schema/resolve-schema-children-handle-children-tables.js @@ -1,12 +1,18 @@ -import { grabPrimaryRequiredDbSchema, writeUpdatedDbSchema, } from "../../../shell/createDbFromSchema/grab-required-database-schemas"; -import _ from "lodash"; -import uniqueByKey from "../../unique-by-key"; -export default function ({ currentDbSchema, currentTableSchema, currentTableSchemaIndex, userId, }) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = default_1; +const grab_required_database_schemas_1 = require("../../../shell/createDbFromSchema/grab-required-database-schemas"); +const lodash_1 = __importDefault(require("lodash")); +const unique_by_key_1 = __importDefault(require("../../unique-by-key")); +function default_1({ currentDbSchema, currentTableSchema, currentTableSchemaIndex, userId, }) { var _a, _b, _c, _d, _e, _f, _g; if (!currentDbSchema.dbFullName) { throw new Error(`Resolve Children tables ERROR => currentDbSchema.dbFullName not found!`); } - const newCurrentDbSchema = _.cloneDeep(currentDbSchema); + const newCurrentDbSchema = lodash_1.default.cloneDeep(currentDbSchema); if (newCurrentDbSchema.tables[currentTableSchemaIndex].childrenTables) { for (let ch = 0; ch < newCurrentDbSchema.tables[currentTableSchemaIndex].childrenTables @@ -17,7 +23,7 @@ export default function ({ currentDbSchema, currentTableSchema, currentTableSche (_a = newCurrentDbSchema.tables[currentTableSchemaIndex].childrenTables) === null || _a === void 0 ? void 0 : _a.splice(ch, 1, {}); continue; } - const targetChildTableParentDatabase = grabPrimaryRequiredDbSchema({ + const targetChildTableParentDatabase = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({ dbId: childTable.dbId, userId, }); @@ -39,7 +45,7 @@ export default function ({ currentDbSchema, currentTableSchema, currentTableSche if (targetChildTableParentDatabaseTable === null || targetChildTableParentDatabaseTable === void 0 ? void 0 : targetChildTableParentDatabaseTable.childTable) { targetChildTableParentDatabase.tables[targetChildTableParentDatabaseTableIndex].fields = [...currentTableSchema.fields]; targetChildTableParentDatabase.tables[targetChildTableParentDatabaseTableIndex].indexes = [...(currentTableSchema.indexes || [])]; - writeUpdatedDbSchema({ + (0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ dbSchema: targetChildTableParentDatabase, userId, }); @@ -52,7 +58,7 @@ export default function ({ currentDbSchema, currentTableSchema, currentTableSche if ((_d = newCurrentDbSchema.tables[currentTableSchemaIndex] .childrenTables) === null || _d === void 0 ? void 0 : _d[0]) { newCurrentDbSchema.tables[currentTableSchemaIndex].childrenTables = - uniqueByKey(newCurrentDbSchema.tables[currentTableSchemaIndex].childrenTables.filter((tbl) => Boolean(tbl.dbId) && Boolean(tbl.tableId)), "dbId"); + (0, unique_by_key_1.default)(newCurrentDbSchema.tables[currentTableSchemaIndex].childrenTables.filter((tbl) => Boolean(tbl.dbId) && Boolean(tbl.tableId)), "dbId"); } else { delete newCurrentDbSchema.tables[currentTableSchemaIndex] @@ -65,7 +71,7 @@ export default function ({ currentDbSchema, currentTableSchema, currentTableSche if (currentTableSchema.childTable && currentTableSchema.childTableDbId && currentTableSchema.childTableDbId) { - const targetParentDatabase = grabPrimaryRequiredDbSchema({ + const targetParentDatabase = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({ dbId: currentTableSchema.childTableDbId, userId, }); @@ -114,7 +120,7 @@ export default function ({ currentDbSchema, currentTableSchema, currentTableSche if (!(existingChildDbTable === null || existingChildDbTable === void 0 ? void 0 : existingChildDbTable.tableId)) { (_g = targetParentDatabase.tables[targetParentDatabaseTableIndex].childrenTables) === null || _g === void 0 ? void 0 : _g.push(newChildDatabaseTableObject); } - targetParentDatabase.tables[targetParentDatabaseTableIndex].childrenTables = uniqueByKey(targetParentDatabase.tables[targetParentDatabaseTableIndex] + targetParentDatabase.tables[targetParentDatabaseTableIndex].childrenTables = (0, unique_by_key_1.default)(targetParentDatabase.tables[targetParentDatabaseTableIndex] .childrenTables || [], ["dbId", "tableId"]); } /** @@ -126,7 +132,7 @@ export default function ({ currentDbSchema, currentTableSchema, currentTableSche targetParentDatabaseTable.fields; newCurrentDbSchema.tables[currentTableSchemaIndex].indexes = targetParentDatabaseTable.indexes; - writeUpdatedDbSchema({ dbSchema: targetParentDatabase, userId }); + (0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ dbSchema: targetParentDatabase, userId }); } } return newCurrentDbSchema; diff --git a/dist/package-shared/utils/db/schema/resolve-schema-children.js b/dist/package-shared/utils/db/schema/resolve-schema-children.js index 135b978..8a4f651 100644 --- a/dist/package-shared/utils/db/schema/resolve-schema-children.js +++ b/dist/package-shared/utils/db/schema/resolve-schema-children.js @@ -1,15 +1,21 @@ -import _ from "lodash"; -import resolveSchemaChildrenHandleChildrenDatabases from "./resolve-schema-children-handle-children-databases"; -import resolveSchemaChildrenHandleChildrenTables from "./resolve-schema-children-handle-children-tables"; -export default function resolveSchemaChildren({ dbSchema, userId }) { - let newDbSchema = _.cloneDeep(dbSchema); - newDbSchema = resolveSchemaChildrenHandleChildrenDatabases({ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = resolveSchemaChildren; +const lodash_1 = __importDefault(require("lodash")); +const resolve_schema_children_handle_children_databases_1 = __importDefault(require("./resolve-schema-children-handle-children-databases")); +const resolve_schema_children_handle_children_tables_1 = __importDefault(require("./resolve-schema-children-handle-children-tables")); +function resolveSchemaChildren({ dbSchema, userId }) { + let newDbSchema = lodash_1.default.cloneDeep(dbSchema); + newDbSchema = (0, resolve_schema_children_handle_children_databases_1.default)({ currentDbSchema: newDbSchema, userId, }); for (let t = 0; t < newDbSchema.tables.length; t++) { const tableSchema = newDbSchema.tables[t]; - newDbSchema = resolveSchemaChildrenHandleChildrenTables({ + newDbSchema = (0, resolve_schema_children_handle_children_tables_1.default)({ currentDbSchema: newDbSchema, currentTableSchema: tableSchema, currentTableSchemaIndex: t, diff --git a/dist/package-shared/utils/db/schema/resolve-schema-foreign-keys.js b/dist/package-shared/utils/db/schema/resolve-schema-foreign-keys.js index 860c115..9d56779 100644 --- a/dist/package-shared/utils/db/schema/resolve-schema-foreign-keys.js +++ b/dist/package-shared/utils/db/schema/resolve-schema-foreign-keys.js @@ -1,7 +1,13 @@ -import _ from "lodash"; -export default function resolveSchemaForeignKeys({ dbSchema, userId }) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = resolveSchemaForeignKeys; +const lodash_1 = __importDefault(require("lodash")); +function resolveSchemaForeignKeys({ dbSchema, userId }) { var _a; - let newDbSchema = _.cloneDeep(dbSchema); + let newDbSchema = lodash_1.default.cloneDeep(dbSchema); for (let t = 0; t < newDbSchema.tables.length; t++) { const tableSchema = newDbSchema.tables[t]; for (let f = 0; f < tableSchema.fields.length; f++) { diff --git a/dist/package-shared/utils/db/schema/resolve-users-schema-ids.js b/dist/package-shared/utils/db/schema/resolve-users-schema-ids.js index 5487fea..514a1d3 100644 --- a/dist/package-shared/utils/db/schema/resolve-users-schema-ids.js +++ b/dist/package-shared/utils/db/schema/resolve-users-schema-ids.js @@ -1,37 +1,44 @@ -import fs from "fs"; -import grabDirNames from "../../backend/names/grab-dir-names"; -import _n from "../../numberfy"; -import path from "path"; -import _ from "lodash"; -import EJSON from "../../ejson"; -import { writeUpdatedDbSchema } from "../../../shell/createDbFromSchema/grab-required-database-schemas"; -export default function resolveUsersSchemaIDs({ userId, dbId }) { - const { targetUserPrivateDir, tempDirName } = grabDirNames({ userId }); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = resolveUsersSchemaIDs; +exports.resolveUserDatabaseSchemaIDs = resolveUserDatabaseSchemaIDs; +const fs_1 = __importDefault(require("fs")); +const grab_dir_names_1 = __importDefault(require("../../backend/names/grab-dir-names")); +const numberfy_1 = __importDefault(require("../../numberfy")); +const path_1 = __importDefault(require("path")); +const lodash_1 = __importDefault(require("lodash")); +const ejson_1 = __importDefault(require("../../ejson")); +const grab_required_database_schemas_1 = require("../../../shell/createDbFromSchema/grab-required-database-schemas"); +function resolveUsersSchemaIDs({ userId, dbId }) { + const { targetUserPrivateDir, tempDirName } = (0, grab_dir_names_1.default)({ userId }); if (!targetUserPrivateDir) return false; - const schemaDirFilesFolders = fs.readdirSync(targetUserPrivateDir); + const schemaDirFilesFolders = fs_1.default.readdirSync(targetUserPrivateDir); for (let i = 0; i < schemaDirFilesFolders.length; i++) { const fileOrFolderName = schemaDirFilesFolders[i]; if (!fileOrFolderName.match(/^\d+.json/)) continue; - const fileDbId = _n(fileOrFolderName.split(".").shift()); + const fileDbId = (0, numberfy_1.default)(fileOrFolderName.split(".").shift()); if (!fileDbId) continue; - if (dbId && _n(dbId) !== fileDbId) { + if (dbId && (0, numberfy_1.default)(dbId) !== fileDbId) { continue; } - const schemaFullPath = path.join(targetUserPrivateDir, fileOrFolderName); - if (!fs.existsSync(schemaFullPath)) + const schemaFullPath = path_1.default.join(targetUserPrivateDir, fileOrFolderName); + if (!fs_1.default.existsSync(schemaFullPath)) continue; - const dbSchema = EJSON.parse(fs.readFileSync(schemaFullPath, "utf-8")); + const dbSchema = ejson_1.default.parse(fs_1.default.readFileSync(schemaFullPath, "utf-8")); if (!dbSchema) continue; let newDbSchema = resolveUserDatabaseSchemaIDs({ dbSchema }); - writeUpdatedDbSchema({ dbSchema: newDbSchema, userId }); + (0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ dbSchema: newDbSchema, userId }); } } -export function resolveUserDatabaseSchemaIDs({ dbSchema, }) { - let newDbSchema = _.cloneDeep(dbSchema); +function resolveUserDatabaseSchemaIDs({ dbSchema, }) { + let newDbSchema = lodash_1.default.cloneDeep(dbSchema); if (!newDbSchema.id) newDbSchema.id = dbSchema.id; newDbSchema.tables.forEach((tbl, index) => { diff --git a/dist/package-shared/utils/db/schema/set-text-field-type.js b/dist/package-shared/utils/db/schema/set-text-field-type.js index 8512e74..0a230af 100644 --- a/dist/package-shared/utils/db/schema/set-text-field-type.js +++ b/dist/package-shared/utils/db/schema/set-text-field-type.js @@ -1,6 +1,12 @@ -import _ from "lodash"; -export default function setTextFieldType(field, type) { - const newField = _.cloneDeep(field); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = setTextFieldType; +const lodash_1 = __importDefault(require("lodash")); +function setTextFieldType(field, type) { + const newField = lodash_1.default.cloneDeep(field); delete newField.css; delete newField.richText; delete newField.json; diff --git a/dist/package-shared/utils/delete-by-key.js b/dist/package-shared/utils/delete-by-key.js index 3690228..c9ebf04 100644 --- a/dist/package-shared/utils/delete-by-key.js +++ b/dist/package-shared/utils/delete-by-key.js @@ -1,9 +1,15 @@ -import _ from "lodash"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = deleteByKey; +const lodash_1 = __importDefault(require("lodash")); /** * # Delete all matches in an Array */ -export default function deleteByKey(arr, key) { - let newArray = _.cloneDeep(arr); +function deleteByKey(arr, key) { + let newArray = lodash_1.default.cloneDeep(arr); for (let i = 0; i < newArray.length; i++) { const item = newArray[i]; if (Array.isArray(key)) { diff --git a/dist/package-shared/utils/deserialize-query.js b/dist/package-shared/utils/deserialize-query.js index 4cc68f5..be4775d 100644 --- a/dist/package-shared/utils/deserialize-query.js +++ b/dist/package-shared/utils/deserialize-query.js @@ -1,16 +1,22 @@ -import EJSON from "./ejson"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = deserializeQuery; +const ejson_1 = __importDefault(require("./ejson")); /** * # Convert Serialized Query back to object */ -export default function deserializeQuery(query) { - let queryObject = typeof query == "object" ? query : Object(EJSON.parse(query)); +function deserializeQuery(query) { + let queryObject = typeof query == "object" ? query : Object(ejson_1.default.parse(query)); const keys = Object.keys(queryObject); for (let i = 0; i < keys.length; i++) { const key = keys[i]; const value = queryObject[key]; if (typeof value == "string") { if (value.match(/^\{|^\[/)) { - queryObject[key] = EJSON.parse(value); + queryObject[key] = ejson_1.default.parse(value); } } } diff --git a/dist/package-shared/utils/ejson.js b/dist/package-shared/utils/ejson.js index 799eb22..8d6a00c 100644 --- a/dist/package-shared/utils/ejson.js +++ b/dist/package-shared/utils/ejson.js @@ -1,3 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); /** * # EJSON parse string */ @@ -30,4 +32,4 @@ const EJSON = { parse, stringify, }; -export default EJSON; +exports.default = EJSON; diff --git a/dist/package-shared/utils/empty-dir.js b/dist/package-shared/utils/empty-dir.js index f7d7675..4fc500f 100644 --- a/dist/package-shared/utils/empty-dir.js +++ b/dist/package-shared/utils/empty-dir.js @@ -1,17 +1,23 @@ -import fs from "fs"; -import path from "path"; -export default function emptyDirectory(dir) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = emptyDirectory; +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); +function emptyDirectory(dir) { try { - const dirContent = fs.readdirSync(dir); + const dirContent = fs_1.default.readdirSync(dir); for (let i = 0; i < dirContent.length; i++) { const fileFolder = dirContent[i]; - const fullFileFolderPath = path.join(dir, fileFolder); - const stat = fs.statSync(fullFileFolderPath); + const fullFileFolderPath = path_1.default.join(dir, fileFolder); + const stat = fs_1.default.statSync(fullFileFolderPath); if (stat.isDirectory()) { emptyDirectory(fullFileFolderPath); continue; } - fs.unlinkSync(fullFileFolderPath); + fs_1.default.unlinkSync(fullFileFolderPath); } } catch (error) { diff --git a/dist/package-shared/utils/endConnection.js b/dist/package-shared/utils/endConnection.js index 5703275..84aadd0 100644 --- a/dist/package-shared/utils/endConnection.js +++ b/dist/package-shared/utils/endConnection.js @@ -1,3 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); /** * # End MYSQL Connection */ @@ -8,4 +10,4 @@ function endConnection(connection) { }); } } -export default endConnection; +exports.default = endConnection; diff --git a/dist/package-shared/utils/envsub.js b/dist/package-shared/utils/envsub.js index e26b9e0..f7ecd33 100644 --- a/dist/package-shared/utils/envsub.js +++ b/dist/package-shared/utils/envsub.js @@ -1,4 +1,7 @@ -export default function envsub(str) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = envsub; +function envsub(str) { return str.replace(/\$([A-Z_]+)|\${([A-Z_]+)}/g, (match, var1, var2) => { const varName = var1 || var2; return process.env[varName] || match; diff --git a/dist/package-shared/utils/generateColumnDescription.js b/dist/package-shared/utils/generateColumnDescription.js index 3ef7c39..ff9abc9 100644 --- a/dist/package-shared/utils/generateColumnDescription.js +++ b/dist/package-shared/utils/generateColumnDescription.js @@ -1,4 +1,7 @@ +"use strict"; // @ts-check +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = generateColumnDescription; /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ @@ -8,7 +11,7 @@ /** * # Generate SQL text for Field */ -export default function generateColumnDescription({ columnData, primaryKeySet, }) { +function generateColumnDescription({ columnData, primaryKeySet, }) { /** * Format tableInfoArray * diff --git a/dist/package-shared/utils/grab-api-base-path.js b/dist/package-shared/utils/grab-api-base-path.js index 843dde7..4235883 100644 --- a/dist/package-shared/utils/grab-api-base-path.js +++ b/dist/package-shared/utils/grab-api-base-path.js @@ -1,5 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabAPIBasePath; const APIParadigms = ["crud", "media", "schema"]; -export default function grabAPIBasePath({ version, paradigm }) { +function grabAPIBasePath({ version, paradigm }) { let basePath = `/api/v${version || "1"}`; if (paradigm) { basePath += `/${paradigm}`; diff --git a/dist/package-shared/utils/grab-app-main-db-schema.js b/dist/package-shared/utils/grab-app-main-db-schema.js index 939f1ff..f230f1d 100644 --- a/dist/package-shared/utils/grab-app-main-db-schema.js +++ b/dist/package-shared/utils/grab-app-main-db-schema.js @@ -1,11 +1,17 @@ -import fs from "fs"; -import grabDirNames from "./backend/names/grab-dir-names"; -import EJSON from "./ejson"; -export default function grabAppMainDbSchema() { - const { appSchemaJSONFile } = grabDirNames(); - if (!fs.existsSync(appSchemaJSONFile)) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabAppMainDbSchema; +const fs_1 = __importDefault(require("fs")); +const grab_dir_names_1 = __importDefault(require("./backend/names/grab-dir-names")); +const ejson_1 = __importDefault(require("./ejson")); +function grabAppMainDbSchema() { + const { appSchemaJSONFile } = (0, grab_dir_names_1.default)(); + if (!fs_1.default.existsSync(appSchemaJSONFile)) { return undefined; } - const parsedAppSchema = EJSON.parse(fs.readFileSync(appSchemaJSONFile, "utf-8")); + const parsedAppSchema = ejson_1.default.parse(fs_1.default.readFileSync(appSchemaJSONFile, "utf-8")); return parsedAppSchema; } diff --git a/dist/package-shared/utils/grab-app-version.js b/dist/package-shared/utils/grab-app-version.js index e11e58f..dfaef41 100644 --- a/dist/package-shared/utils/grab-app-version.js +++ b/dist/package-shared/utils/grab-app-version.js @@ -1,9 +1,12 @@ -import { AppVersions } from "../types"; -export default function grabAppVersion() { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabAppVersion; +const types_1 = require("../types"); +function grabAppVersion() { const appVersionEnv = process.env.NEXT_PUBLIC_VERSION; const finalAppVersion = (appVersionEnv || "community"); - const targetAppVersion = AppVersions.find((version) => version.value === finalAppVersion); + const targetAppVersion = types_1.AppVersions.find((version) => version.value === finalAppVersion); if (!targetAppVersion) { throw new Error(`Invalid App Version: ${finalAppVersion}`); } diff --git a/dist/package-shared/utils/grab-cookie-expirt-date.js b/dist/package-shared/utils/grab-cookie-expirt-date.js index 68df9b1..2364014 100644 --- a/dist/package-shared/utils/grab-cookie-expirt-date.js +++ b/dist/package-shared/utils/grab-cookie-expirt-date.js @@ -1,9 +1,15 @@ -import numberfy from "./numberfy"; -export default function grabCookieExpiryDate() { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabCookieExpiryDate; +const numberfy_1 = __importDefault(require("./numberfy")); +function grabCookieExpiryDate() { const ONE_DAY_IN_SECONDS = 60 * 60 * 24; const ONE_WEEK_IN_SECONDS = ONE_DAY_IN_SECONDS * 7; const COOKIE_EXPIRY_TIME_IN_SECONDS = process.env.DSQL_SESSION_EXPIRY_TIME - ? numberfy(process.env.DSQL_SESSION_EXPIRY_TIME) + ? (0, numberfy_1.default)(process.env.DSQL_SESSION_EXPIRY_TIME) : ONE_WEEK_IN_SECONDS; const COOKIE_EXPIRY_IN_MILLISECONDS = COOKIE_EXPIRY_TIME_IN_SECONDS * 1000; const COOKIE_EXPIRY_DATE = new Date(Date.now() + COOKIE_EXPIRY_IN_MILLISECONDS).toUTCString(); diff --git a/dist/package-shared/utils/grab-db-full-name.js b/dist/package-shared/utils/grab-db-full-name.js index 105fcb2..8dbb9ee 100644 --- a/dist/package-shared/utils/grab-db-full-name.js +++ b/dist/package-shared/utils/grab-db-full-name.js @@ -1,11 +1,17 @@ -import slugify from "./slugify"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabDbFullName; +const slugify_1 = __importDefault(require("./slugify")); /** * # Grab full database name * @description Grab full database name from slug or full name * @param param0 * @returns */ -export default function grabDbFullName({ dbName, userId, user, }) { +function grabDbFullName({ dbName, userId, user, }) { const finalUserId = (user === null || user === void 0 ? void 0 : user.id) || userId; if (!finalUserId) { return dbName; @@ -14,7 +20,7 @@ export default function grabDbFullName({ dbName, userId, user, }) { return; } const dbNamePrefix = process.env.DSQL_USER_DB_PREFIX; - const parsedDbName = slugify(dbName, "_"); + const parsedDbName = (0, slugify_1.default)(dbName, "_"); const dbSlug = parsedDbName.replace(new RegExp(`${dbNamePrefix}_?\\d+_`), ""); - return slugify(`${dbNamePrefix}_${finalUserId}_${dbSlug}`, "_"); + return (0, slugify_1.default)(`${dbNamePrefix}_${finalUserId}_${dbSlug}`, "_"); } diff --git a/dist/package-shared/utils/grab-db-names.js b/dist/package-shared/utils/grab-db-names.js index b56c911..bd69361 100644 --- a/dist/package-shared/utils/grab-db-names.js +++ b/dist/package-shared/utils/grab-db-names.js @@ -1,14 +1,20 @@ -import grabDbFullName from "./grab-db-full-name"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabDbNames; +const grab_db_full_name_1 = __importDefault(require("./grab-db-full-name")); /** * # Grab full database name * @description Grab full database name from slug or full name * @param param0 * @returns */ -export default function grabDbNames({ dbName, userId, user }) { +function grabDbNames({ dbName, userId, user }) { const dbNamePrefix = process.env.DSQL_USER_DB_PREFIX; const finalUserId = (user === null || user === void 0 ? void 0 : user.id) || userId; const userDbPrefix = `${dbNamePrefix}${finalUserId}_`; - const dbFullName = grabDbFullName({ dbName, user, userId }); + const dbFullName = (0, grab_db_full_name_1.default)({ dbName, user, userId }); return { userDbPrefix, dbFullName, dbNamePrefix }; } diff --git a/dist/package-shared/utils/grab-docker-resource-ip-numbers.js b/dist/package-shared/utils/grab-docker-resource-ip-numbers.js index 9a43e6d..2d5254a 100644 --- a/dist/package-shared/utils/grab-docker-resource-ip-numbers.js +++ b/dist/package-shared/utils/grab-docker-resource-ip-numbers.js @@ -1,4 +1,7 @@ -export default function grabDockerResourceIPNumbers() { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabDockerResourceIPNumbers; +function grabDockerResourceIPNumbers() { return { db: 32, maxscale: 24, diff --git a/dist/package-shared/utils/grab-dsql-connection.js b/dist/package-shared/utils/grab-dsql-connection.js index 58c22db..bcec92a 100644 --- a/dist/package-shared/utils/grab-dsql-connection.js +++ b/dist/package-shared/utils/grab-dsql-connection.js @@ -1,11 +1,17 @@ -import mysql from "serverless-mysql"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabDSQLConnection; +const serverless_mysql_1 = __importDefault(require("serverless-mysql")); /** * # Grab General CONNECTION for DSQL */ -export default function grabDSQLConnection(param) { +function grabDSQLConnection(param) { if (global.DSQL_USE_LOCAL || (param === null || param === void 0 ? void 0 : param.local)) { return (global.DSQL_DB_CONN || - mysql({ + (0, serverless_mysql_1.default)({ config: { host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_USERNAME, @@ -22,7 +28,7 @@ export default function grabDSQLConnection(param) { } if (param === null || param === void 0 ? void 0 : param.ro) { return (global.DSQL_READ_ONLY_DB_CONN || - mysql({ + (0, serverless_mysql_1.default)({ config: { host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_READ_ONLY_USERNAME, @@ -36,7 +42,7 @@ export default function grabDSQLConnection(param) { } if (param === null || param === void 0 ? void 0 : param.fa) { return (global.DSQL_FULL_ACCESS_DB_CONN || - mysql({ + (0, serverless_mysql_1.default)({ config: { host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_FULL_ACCESS_USERNAME, @@ -49,7 +55,7 @@ export default function grabDSQLConnection(param) { })); } return (global.DSQL_DB_CONN || - mysql({ + (0, serverless_mysql_1.default)({ config: { host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_USERNAME, diff --git a/dist/package-shared/utils/grab-host-names.js b/dist/package-shared/utils/grab-host-names.js index d4944ce..f7e52be 100644 --- a/dist/package-shared/utils/grab-host-names.js +++ b/dist/package-shared/utils/grab-host-names.js @@ -1,10 +1,16 @@ +"use strict"; // @ts-check -import https from "https"; -import http from "http"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabHostNames; +const https_1 = __importDefault(require("https")); +const http_1 = __importDefault(require("http")); /** * # Grab Names For Query */ -export default function grabHostNames(param) { +function grabHostNames(param) { var _a, _b; const finalEnv = (param === null || param === void 0 ? void 0 : param.env) ? Object.assign(Object.assign({}, process.env), param.env) : process.env; @@ -24,7 +30,7 @@ export default function grabHostNames(param) { return { host: remoteHost || localHost || "datasquirel.com", port: remoteHostPort || localHostPort || 443, - scheme: (scheme === null || scheme === void 0 ? void 0 : scheme.match(/^http$/i)) ? http : https, + scheme: (scheme === null || scheme === void 0 ? void 0 : scheme.match(/^http$/i)) ? http_1.default : https_1.default, user_id: (param === null || param === void 0 ? void 0 : param.userId) || String(finalEnv["DSQL_API_USER_ID"] || 0), }; } diff --git a/dist/package-shared/utils/grab-instance-global-network-name.js b/dist/package-shared/utils/grab-instance-global-network-name.js index 45b9f1f..62de228 100644 --- a/dist/package-shared/utils/grab-instance-global-network-name.js +++ b/dist/package-shared/utils/grab-instance-global-network-name.js @@ -1,4 +1,7 @@ -export default function grabInstanceGlobalNetWorkName() { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabInstanceGlobalNetWorkName; +function grabInstanceGlobalNetWorkName() { const deploymentName = process.env.DSQL_DEPLOYMENT_NAME || "dsql"; return `${deploymentName}_dsql_global_network`; } diff --git a/dist/package-shared/utils/grab-keys.js b/dist/package-shared/utils/grab-keys.js index 0586fc4..65e605a 100644 --- a/dist/package-shared/utils/grab-keys.js +++ b/dist/package-shared/utils/grab-keys.js @@ -1,9 +1,15 @@ -import numberfy from "./numberfy"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabKeys; +const numberfy_1 = __importDefault(require("./numberfy")); /** * # Grab Encryption Keys * @description Grab Required Encryption Keys */ -export default function grabKeys(param) { +function grabKeys(param) { return { key: (param === null || param === void 0 ? void 0 : param.encryptionKey) || process.env.DSQL_ENCRYPTION_PASSWORD, keyLen: process.env.DSQL_ENCRYPTION_KEY_LENGTH @@ -16,7 +22,7 @@ export default function grabKeys(param) { "aes-192-cbc", bufferAllocSize: (param === null || param === void 0 ? void 0 : param.bufferAllocSize) || (process.env.DSQL_ENCRYPTION_BUFFER_ALLOCATION_SIZE - ? numberfy(process.env.DSQL_ENCRYPTION_BUFFER_ALLOCATION_SIZE) + ? (0, numberfy_1.default)(process.env.DSQL_ENCRYPTION_BUFFER_ALLOCATION_SIZE) : undefined) || 16, }; diff --git a/dist/package-shared/utils/grab-query-and-values.js b/dist/package-shared/utils/grab-query-and-values.js index 5228fcb..9ce7c68 100644 --- a/dist/package-shared/utils/grab-query-and-values.js +++ b/dist/package-shared/utils/grab-query-and-values.js @@ -1,8 +1,14 @@ -import sqlGenerator from "../functions/dsql/sql/sql-generator"; -export default function apiGetGrabQueryAndValues({ query, values }) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = apiGetGrabQueryAndValues; +const sql_generator_1 = __importDefault(require("../functions/dsql/sql/sql-generator")); +function apiGetGrabQueryAndValues({ query, values }) { const queryGenObject = typeof query == "string" ? undefined - : sqlGenerator({ + : (0, sql_generator_1.default)({ tableName: query.table, genObject: query.query, dbFullName: query.dbFullName || "__db", diff --git a/dist/package-shared/utils/grab-sql-key-name.js b/dist/package-shared/utils/grab-sql-key-name.js index d513637..bba7cd2 100644 --- a/dist/package-shared/utils/grab-sql-key-name.js +++ b/dist/package-shared/utils/grab-sql-key-name.js @@ -1,8 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabSQLKeyName; /** * # Grab Key Names * @description Grab key names for foreign keys and indexes */ -export default function grabSQLKeyName({ type, userId, addDate }) { +function grabSQLKeyName({ type, userId, addDate }) { let prefixParadigm = (() => { if (type == "foreign_key") return "fk"; diff --git a/dist/package-shared/utils/grab-sql-user-name-for-user.js b/dist/package-shared/utils/grab-sql-user-name-for-user.js index 28b4b35..7460ebe 100644 --- a/dist/package-shared/utils/grab-sql-user-name-for-user.js +++ b/dist/package-shared/utils/grab-sql-user-name-for-user.js @@ -1,3 +1,6 @@ -export default function grabSQLUserNameForUser(userId) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabSQLUserNameForUser; +function grabSQLUserNameForUser(userId) { return `dsql_user_${userId || 0}`; } diff --git a/dist/package-shared/utils/grab-sql-user-name.js b/dist/package-shared/utils/grab-sql-user-name.js index 479e696..96b08d4 100644 --- a/dist/package-shared/utils/grab-sql-user-name.js +++ b/dist/package-shared/utils/grab-sql-user-name.js @@ -1,10 +1,16 @@ -import grabSQLUserNameForUser from "./grab-sql-user-name-for-user"; -export default function grabSQLUserName({ user, name: passedName, }) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabSQLUserName; +const grab_sql_user_name_for_user_1 = __importDefault(require("./grab-sql-user-name-for-user")); +function grabSQLUserName({ user, name: passedName, }) { if (!user) { console.log("No User Found"); return {}; } - const sqlUsername = grabSQLUserNameForUser(user.id); + const sqlUsername = (0, grab_sql_user_name_for_user_1.default)(user.id); const parsedPassedName = passedName ? passedName.replace(sqlUsername, "").replace(/^_+|_+$/, "") : undefined; diff --git a/dist/package-shared/utils/grab-user-main-sql-user-name.js b/dist/package-shared/utils/grab-user-main-sql-user-name.js index 0562198..a6295d8 100644 --- a/dist/package-shared/utils/grab-user-main-sql-user-name.js +++ b/dist/package-shared/utils/grab-user-main-sql-user-name.js @@ -1,8 +1,14 @@ -import grabSQLUserNameForUser from "./grab-sql-user-name-for-user"; -import grabIPAddresses from "../utils/backend/names/grab-ip-addresses"; -export default function grabUserMainSqlUserName({ HOST, user, username, }) { - const sqlUsername = grabSQLUserNameForUser(user === null || user === void 0 ? void 0 : user.id); - const { webAppIP, maxScaleIP } = grabIPAddresses(); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = grabUserMainSqlUserName; +const grab_sql_user_name_for_user_1 = __importDefault(require("./grab-sql-user-name-for-user")); +const grab_ip_addresses_1 = __importDefault(require("../utils/backend/names/grab-ip-addresses")); +function grabUserMainSqlUserName({ HOST, user, username, }) { + const sqlUsername = (0, grab_sql_user_name_for_user_1.default)(user === null || user === void 0 ? void 0 : user.id); + const { webAppIP, maxScaleIP } = (0, grab_ip_addresses_1.default)(); const finalUsername = username || sqlUsername; const finalHost = HOST || maxScaleIP || "127.0.0.1"; const fullName = `${finalUsername}@${webAppIP}`; diff --git a/dist/package-shared/utils/logging/debug-log.js b/dist/package-shared/utils/logging/debug-log.js index 9dad991..cf80770 100644 --- a/dist/package-shared/utils/logging/debug-log.js +++ b/dist/package-shared/utils/logging/debug-log.js @@ -1,17 +1,20 @@ -import { ccol } from "../console-colors"; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = debugLog; +const console_colors_1 = require("../console-colors"); const LogTypes = ["error", "warning"]; -export default function debugLog({ log, label, title, type, addTime }) { +function debugLog({ log, label, title, type, addTime }) { const logType = (() => { switch (type) { case "error": - return ccol.FgRed; + return console_colors_1.ccol.FgRed; case "warning": - return ccol.FgYellow; + return console_colors_1.ccol.FgYellow; default: - return ccol.FgGreen; + return console_colors_1.ccol.FgGreen; } })(); - let logTxt = `${logType}DEBUG${ccol.Reset}:::`; + let logTxt = `${logType}DEBUG${console_colors_1.ccol.Reset}:::`; const date = new Date(); const time = date.toLocaleTimeString("en-US", { hour: "numeric", @@ -21,10 +24,10 @@ export default function debugLog({ log, label, title, type, addTime }) { }); const logTime = `${date.toLocaleDateString()}][${time}`; if (addTime) - logTxt = `${ccol.BgWhite}[${logTime}]${ccol.Reset} ` + logTxt; + logTxt = `${console_colors_1.ccol.BgWhite}[${logTime}]${console_colors_1.ccol.Reset} ` + logTxt; if (title) - logTxt += `${ccol.FgBlue}${title}${ccol.Reset}::`; + logTxt += `${console_colors_1.ccol.FgBlue}${title}${console_colors_1.ccol.Reset}::`; if (label) - logTxt += `${ccol.FgWhite}${ccol.Bright}${label}${ccol.Reset} =>`; + logTxt += `${console_colors_1.ccol.FgWhite}${console_colors_1.ccol.Bright}${label}${console_colors_1.ccol.Reset} =>`; console.log(logTxt, log); } diff --git a/dist/package-shared/utils/normalize-text.js b/dist/package-shared/utils/normalize-text.js index c25bf7e..0056bb7 100644 --- a/dist/package-shared/utils/normalize-text.js +++ b/dist/package-shared/utils/normalize-text.js @@ -1,4 +1,7 @@ -export default function normalizeText(txt) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = normalizeText; +function normalizeText(txt) { return txt .replace(/\n|\r|\n\r/g, " ") .replace(/ {2,}/g, " ") diff --git a/dist/package-shared/utils/numberfy.js b/dist/package-shared/utils/numberfy.js index 7fbfbb9..6141e80 100644 --- a/dist/package-shared/utils/numberfy.js +++ b/dist/package-shared/utils/numberfy.js @@ -1,3 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = numberfy; /** * # Get Number from any input * @example @@ -7,7 +10,7 @@ * numberfy("123.456", 0) // 123 * numberfy("123.456", 3) // 123.456 */ -export default function numberfy(num, decimals) { +function numberfy(num, decimals) { var _a; try { const numberString = String(num) diff --git a/dist/package-shared/utils/parse-env.js b/dist/package-shared/utils/parse-env.js index 59587c8..9176d20 100644 --- a/dist/package-shared/utils/parse-env.js +++ b/dist/package-shared/utils/parse-env.js @@ -1,9 +1,15 @@ -import fs from "fs"; -export default function parseEnv( +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = parseEnv; +const fs_1 = __importDefault(require("fs")); +function parseEnv( /** The file path to the env. Eg. /app/.env */ envFile) { - if (!fs.existsSync(envFile)) + if (!fs_1.default.existsSync(envFile)) return undefined; - const envTextContent = fs.readFileSync(envFile, "utf-8"); + const envTextContent = fs_1.default.readFileSync(envFile, "utf-8"); const envLines = envTextContent .split("\n") .map((ln) => ln.trim()) diff --git a/dist/package-shared/utils/purge-default-fields.js b/dist/package-shared/utils/purge-default-fields.js index 2b47c4d..23901d8 100644 --- a/dist/package-shared/utils/purge-default-fields.js +++ b/dist/package-shared/utils/purge-default-fields.js @@ -1,13 +1,19 @@ -import _ from "lodash"; -import defaultFieldsRegexp from "../functions/dsql/default-fields-regexp"; -export default function purgeDefaultFields(entry) { - const newEntry = _.cloneDeep(entry); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = purgeDefaultFields; +const lodash_1 = __importDefault(require("lodash")); +const default_fields_regexp_1 = __importDefault(require("../functions/dsql/default-fields-regexp")); +function purgeDefaultFields(entry) { + const newEntry = lodash_1.default.cloneDeep(entry); if (Array.isArray(newEntry)) { const entryKeys = Object.keys(newEntry[0]); for (let i = 0; i < newEntry.length; i++) { for (let j = 0; j < entryKeys.length; j++) { const entryKey = entryKeys[j]; - if (defaultFieldsRegexp.test(entryKey)) { + if (default_fields_regexp_1.default.test(entryKey)) { delete newEntry[i][entryKey]; } } @@ -18,7 +24,7 @@ export default function purgeDefaultFields(entry) { const entryKeys = Object.keys(newEntry); for (let i = 0; i < entryKeys.length; i++) { const entryKey = entryKeys[i]; - if (defaultFieldsRegexp.test(entryKey)) { + if (default_fields_regexp_1.default.test(entryKey)) { delete newEntry[entryKey]; } } diff --git a/dist/package-shared/utils/serialize-cookies.js b/dist/package-shared/utils/serialize-cookies.js index 022ecd3..8b76b11 100644 --- a/dist/package-shared/utils/serialize-cookies.js +++ b/dist/package-shared/utils/serialize-cookies.js @@ -1,9 +1,12 @@ +"use strict"; // @ts-check +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = serializeCookies; /** * # Serialize Cookies * @description Convert cookie object to string array */ -export default function serializeCookies({ cookies, }) { +function serializeCookies({ cookies, }) { let cookiesStringsArray = []; for (let i = 0; i < cookies.length; i++) { const cookieObject = cookies[i]; diff --git a/dist/package-shared/utils/serialize-query.js b/dist/package-shared/utils/serialize-query.js index 2dd175a..7865a66 100644 --- a/dist/package-shared/utils/serialize-query.js +++ b/dist/package-shared/utils/serialize-query.js @@ -1,8 +1,14 @@ -import EJSON from "./ejson"; +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = serializeQuery; +const ejson_1 = __importDefault(require("./ejson")); /** * # Serialize Query */ -export default function serializeQuery(query) { +function serializeQuery(query) { let str = "?"; if (typeof query !== "object") { console.log("Invalid Query type"); @@ -23,7 +29,7 @@ export default function serializeQuery(query) { return; const value = query[key]; if (typeof value === "object") { - const jsonStr = EJSON.stringify(value); + const jsonStr = ejson_1.default.stringify(value); queryArr.push(`${key}=${encodeURIComponent(String(jsonStr))}`); } else if (typeof value === "string" || typeof value === "number") { diff --git a/dist/package-shared/utils/setup-global-network.js b/dist/package-shared/utils/setup-global-network.js index 0031be5..21cc021 100644 --- a/dist/package-shared/utils/setup-global-network.js +++ b/dist/package-shared/utils/setup-global-network.js @@ -1,11 +1,17 @@ -import { execSync } from "child_process"; -import grabInstanceGlobalNetWorkName from "./grab-instance-global-network-name"; -import grabIPAddresses from "./backend/names/grab-ip-addresses"; -export default function setupGlobalNetwork() { - const globalNetworkName = grabInstanceGlobalNetWorkName(); - const { globalIPPrefix } = grabIPAddresses(); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = setupGlobalNetwork; +const child_process_1 = require("child_process"); +const grab_instance_global_network_name_1 = __importDefault(require("./grab-instance-global-network-name")); +const grab_ip_addresses_1 = __importDefault(require("./backend/names/grab-ip-addresses")); +function setupGlobalNetwork() { + const globalNetworkName = (0, grab_instance_global_network_name_1.default)(); + const { globalIPPrefix } = (0, grab_ip_addresses_1.default)(); try { - execSync(`docker network rm ${globalNetworkName}`, {}); + (0, child_process_1.execSync)(`docker network rm ${globalNetworkName}`, {}); } catch (error) { } let newNtwkCmd = `docker network create`; @@ -13,5 +19,5 @@ export default function setupGlobalNetwork() { newNtwkCmd += ` --subnet ${globalIPPrefix}.0/24`; newNtwkCmd += ` --gateway ${globalIPPrefix}.1`; newNtwkCmd += ` ${globalNetworkName}`; - execSync(newNtwkCmd); + (0, child_process_1.execSync)(newNtwkCmd); } diff --git a/dist/package-shared/utils/slug-to-normal-text.js b/dist/package-shared/utils/slug-to-normal-text.js index 01afa5a..028cdf0 100644 --- a/dist/package-shared/utils/slug-to-normal-text.js +++ b/dist/package-shared/utils/slug-to-normal-text.js @@ -1,4 +1,7 @@ -export default function slugToNormalText(str) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = slugToNormalText; +function slugToNormalText(str) { if (!str) return ""; return str diff --git a/dist/package-shared/utils/slugToCamelTitle.js b/dist/package-shared/utils/slugToCamelTitle.js index 9e6772e..7c9023b 100644 --- a/dist/package-shared/utils/slugToCamelTitle.js +++ b/dist/package-shared/utils/slugToCamelTitle.js @@ -1,7 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = slugToCamelTitle; /** * # Slug to Camel case Title */ -export default function slugToCamelTitle(text) { +function slugToCamelTitle(text) { if (text) { let addArray = text.split("-").filter((item) => item !== ""); let camelArray = addArray.map((item) => { diff --git a/dist/package-shared/utils/slugify.js b/dist/package-shared/utils/slugify.js index 92a11ba..e76a0b6 100644 --- a/dist/package-shared/utils/slugify.js +++ b/dist/package-shared/utils/slugify.js @@ -1,3 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = slugify; /** * # Return the slug of a string * @@ -6,7 +9,7 @@ * slugify("Yes!") // "yes" * slugify("Hello!!! World!") // "hello-world" */ -export default function slugify(str, divider, allowTrailingDash) { +function slugify(str, divider, allowTrailingDash) { const finalSlugDivider = divider || "-"; try { if (!str) diff --git a/dist/package-shared/utils/sql-equality-parser.js b/dist/package-shared/utils/sql-equality-parser.js index 7623dc2..2455c48 100644 --- a/dist/package-shared/utils/sql-equality-parser.js +++ b/dist/package-shared/utils/sql-equality-parser.js @@ -1,4 +1,7 @@ -export default function sqlEqualityParser(eq) { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = sqlEqualityParser; +function sqlEqualityParser(eq) { switch (eq) { case "EQUAL": return "="; diff --git a/dist/package-shared/utils/trim-sql.js b/dist/package-shared/utils/trim-sql.js index 45d8305..21a1916 100644 --- a/dist/package-shared/utils/trim-sql.js +++ b/dist/package-shared/utils/trim-sql.js @@ -1,8 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = trimSql; /** * # Trim SQL * @description Remove Returns and miltiple spaces from SQL Query */ -export default function trimSql(sql) { +function trimSql(sql) { return sql .replace(/\n|\r|\n\r|\r\n/gm, " ") .replace(/ {2,}/g, " ") diff --git a/dist/package-shared/utils/unique-by-key.js b/dist/package-shared/utils/unique-by-key.js index c2c3010..0b63de6 100644 --- a/dist/package-shared/utils/unique-by-key.js +++ b/dist/package-shared/utils/unique-by-key.js @@ -1,5 +1,11 @@ -import slugify from "./slugify"; -export default function uniqueByKey(arr, key) { +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = uniqueByKey; +const slugify_1 = __importDefault(require("./slugify")); +function uniqueByKey(arr, key) { let newArray = []; let uniqueValues = []; for (let i = 0; i < arr.length; i++) { @@ -9,13 +15,13 @@ export default function uniqueByKey(arr, key) { const targetVals = []; for (let k = 0; k < key.length; k++) { const ky = key[k]; - const targetValuek = slugify(String(item[ky])); + const targetValuek = (0, slugify_1.default)(String(item[ky])); targetVals.push(targetValuek); } - targetValue = slugify(targetVals.join(",")); + targetValue = (0, slugify_1.default)(targetVals.join(",")); } else { - targetValue = slugify(String(item[key])); + targetValue = (0, slugify_1.default)(String(item[key])); } if (!targetValue) continue; diff --git a/dist/package-shared/utils/update-grastate-file-to-latest.js b/dist/package-shared/utils/update-grastate-file-to-latest.js index e08bcdb..35d196b 100644 --- a/dist/package-shared/utils/update-grastate-file-to-latest.js +++ b/dist/package-shared/utils/update-grastate-file-to-latest.js @@ -1,8 +1,14 @@ -import fs from "fs"; -import grabDirNames from "./backend/names/grab-dir-names"; -export default function updateGrastateToLatest() { - const { mainDbGrastateDatFile } = grabDirNames(); - const existingGrastateDatFile = fs.readFileSync(mainDbGrastateDatFile, "utf-8"); +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = updateGrastateToLatest; +const fs_1 = __importDefault(require("fs")); +const grab_dir_names_1 = __importDefault(require("./backend/names/grab-dir-names")); +function updateGrastateToLatest() { + const { mainDbGrastateDatFile } = (0, grab_dir_names_1.default)(); + const existingGrastateDatFile = fs_1.default.readFileSync(mainDbGrastateDatFile, "utf-8"); const newGrastateDatFile = existingGrastateDatFile.replace(/safe_to_bootstrap: .*/, `safe_to_bootstrap: 1`); - fs.writeFileSync(mainDbGrastateDatFile, newGrastateDatFile, "utf-8"); + fs_1.default.writeFileSync(mainDbGrastateDatFile, newGrastateDatFile, "utf-8"); } diff --git a/package.json b/package.json index 7d625d3..24f7f33 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "4.7.8", + "version": "4.7.9", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": { diff --git a/tsconfig.json b/tsconfig.json index c83214c..0a82e78 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { - "target": "es2017", - "module": "esnext", + "target": "ES2015", + "module": "commonjs", "maxNodeModuleJsDepth": 10, "esModuleInterop": true, "forceConsistentCasingInFileNames": true,