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
\nPlease 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
\nPlease 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