"use strict"; (() => { var exports = {}; exports.id = 7398; exports.ids = [7398]; exports.modules = { /***/ 255: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check /** * ============================================================================== * Imports * ============================================================================== */ const fs = __webpack_require__(7147); //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// const datasquirel = __webpack_require__(9538); const serverError = __webpack_require__(2317); const DB_HANDLER = __webpack_require__(9395); const addDbEntry = __webpack_require__(7857); /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** * Add Admin User on Login * ============================================================================== * * @description this function handles admin users that have been invited by another * admin user. This fires when the invited user has been logged in or a new account * has been created for the invited user * * @param {object} params - parameters object * * @param {object} params.query - query object * @param {number} params.query.invite - Invitation user id * @param {string} params.query.database_access - String containing authorized databases * @param {string} params.query.priviledge - String containing databases priviledges * @param {string} params.query.email - Inviting user email address * * @param {import("@/package-shared/types").UserType} params.user - invited user object * * @returns {Promise} new user auth object payload */ module.exports = async function addAdminUserOnLogin({ query , user }) { try { /** * Fetch user * * @description Fetch user from db */ // @ts-ignore const { invite , database_access , priviledge , email } = query; const lastInviteTimeArray = await DB_HANDLER(`SELECT date_created_code FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`, [ invite, email ]); // if (lastInviteTimeArray && lastInviteTimeArray[0]?.date_created_code) { // const timeSinceLastInvite = Date.now() - parseInt(lastInviteTimeArray[0].date_created_code); // if (timeSinceLastInvite > 21600000) { // throw new Error("Invitation expired"); // } // } else if (!lastInviteTimeArray || !lastInviteTimeArray[0]) { // throw new Error("No Invitation Found"); // } if (!lastInviteTimeArray || !lastInviteTimeArray[0]) { throw new Error("No Invitation Found"); } //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// // @ts-ignore const invitingUserDb = await DB_HANDLER(`SELECT first_name,last_name,email FROM users WHERE id=?`, [ invite ]); if (invitingUserDb?.[0]) { const existingUserUser = await DB_HANDLER(`SELECT email FROM user_users WHERE user_id=? AND invited_user_id=? AND user_type='admin' AND email=?`, [ invite, user.id, email ]); if (existingUserUser?.[0]) { console.log("User already added"); } else { // const newUserUser = await DB_HANDLER( // `INSERT IGNORE INTO user_users // (user_id, invited_user_id, database_access, first_name, last_name, phone, email, username, user_type, user_priviledge) // VALUES // (?,?,?,?,?,?,?,?,?,?) // )`, // [ // invite, // user.id, // database_access, // user.first_name, // user.last_name, // user.phone, // user.email, // user.username, // "admin", // priviledge, // ] // ); 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 } }); //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// // @ts-ignore const dbTableData = await DB_HANDLER(`SELECT db_tables_data FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`, [ invite, email ]); // @ts-ignore const clearEntries = await DB_HANDLER(`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 } }); } } //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// } // @ts-ignore const inviteAccepted = await DB_HANDLER(`UPDATE invitations SET invitation_status='Accepted' WHERE inviting_user_id=? AND invited_user_email=?`, [ invite, email ]); } //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// } catch (/** @type {any} */ error) { //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// serverError({ component: "addAdminUserOnLogin", message: error.message, user: user }); } }; //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// /***/ }), /***/ 7857: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check /** * Imports: Handle imports */ const encrypt = __webpack_require__(2380); const sanitizeHtml = __webpack_require__(6109); const sanitizeHtmlOptions = __webpack_require__(6704); const updateDb = __webpack_require__(5851); const updateDbEntry = __webpack_require__(5851); const _ = __webpack_require__(6517); const DB_HANDLER = __webpack_require__(9395); const DSQL_USER_DB_HANDLER = __webpack_require__(8682); /** * Add a db Entry Function * ============================================================================== * @description Description * @async * * @param {object} params - An object containing the function parameters. * @param {("Master" | "Dsql User")} [params.dbContext] - What is the database context? "Master" * or "Dsql User". Defaults to "Master" * @param {("Read Only" | "Full Access")} [params.paradigm] - What is the paradigm for "Dsql User"? * "Read only" or "Full Access"? Defaults to "Read Only" * @param {string} [params.dbFullName] - Database full name * @param {string} params.tableName - Table name * @param {any} params.data - Data to add * @param {import("../../../types").DSQL_TableSchemaType} [params.tableSchema] - Table schema * @param {string} [params.duplicateColumnName] - Duplicate column name * @param {string} [params.duplicateColumnValue] - Duplicate column value * @param {boolean} [params.update] - Update this row if it exists * @param {string} [params.encryptionKey] - Update this row if it exists * @param {string} [params.encryptionSalt] - Update this row if it exists * * @returns {Promise} */ async function addDbEntry({ dbContext , paradigm , dbFullName , tableName , data , tableSchema , duplicateColumnName , duplicateColumnValue , update , encryptionKey , encryptionSalt , }) { /** * Initialize variables */ const isMaster = dbContext?.match(/dsql.user/i) ? false : dbFullName && !dbFullName.match(/^datasquirel$/) ? false : true; /** @type { any } */ const dbHandler = isMaster ? DB_HANDLER : DSQL_USER_DB_HANDLER; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// if (data?.["date_created_timestamp"]) delete data["date_created_timestamp"]; if (data?.["date_updated_timestamp"]) delete data["date_updated_timestamp"]; if (data?.["date_updated"]) delete data["date_updated"]; if (data?.["date_updated_code"]) delete data["date_updated_code"]; if (data?.["date_created"]) delete data["date_created"]; if (data?.["date_created_code"]) delete data["date_created_code"]; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Handle function logic */ if (duplicateColumnName && typeof duplicateColumnName === "string") { const duplicateValue = isMaster ? await dbHandler(`SELECT * FROM \`${tableName}\` WHERE \`${duplicateColumnName}\`=?`, [ duplicateColumnValue ]) : await dbHandler({ paradigm: "Read Only", database: dbFullName, queryString: `SELECT * FROM \`${tableName}\` WHERE \`${duplicateColumnName}\`=?`, queryValues: [ duplicateColumnValue ] }); if (duplicateValue?.[0] && !update) { return null; } else if (duplicateValue && duplicateValue[0] && update) { return await updateDbEntry({ dbContext, paradigm, dbFullName, tableName, data, tableSchema, encryptionKey, encryptionSalt, identifierColumnName: duplicateColumnName, identifierValue: duplicateColumnValue || "" }); } } /** * Declare variables * * @description Declare "results" variable */ const dataKeys = Object.keys(data); let insertKeysArray = []; let insertValuesArray = []; for(let i = 0; i < dataKeys.length; i++){ try { const dataKey = dataKeys[i]; // @ts-ignore let value = data?.[dataKey]; const targetFieldSchemaArray = tableSchema ? tableSchema?.fields?.filter((field)=>field.fieldName == dataKey) : null; const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] ? targetFieldSchemaArray[0] : null; if (value == null || value == undefined) continue; if (targetFieldSchema?.dataType?.match(/int$/i) && typeof value == "string" && !value?.match(/./)) continue; if (targetFieldSchema?.encrypted) { value = encrypt(value, encryptionKey, encryptionSalt); console.log("DSQL: Encrypted value =>", value); } if (targetFieldSchema?.richText) { value = sanitizeHtml(value, sanitizeHtmlOptions); } if (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 (/** @type {any} */ error) { console.log("DSQL: Error in parsing data keys =>", error.message); continue; } } //////////////////////////////////////// if (!data?.["date_created"]) { insertKeysArray.push("`date_created`"); insertValuesArray.push(Date()); } if (!data?.["date_created_code"]) { insertKeysArray.push("`date_created_code`"); insertValuesArray.push(Date.now()); } //////////////////////////////////////// if (!data?.["date_updated"]) { insertKeysArray.push("`date_updated`"); insertValuesArray.push(Date()); } if (!data?.["date_updated_code"]) { insertKeysArray.push("`date_updated_code`"); insertValuesArray.push(Date.now()); } //////////////////////////////////////// const query = `INSERT INTO \`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray.map(()=>"?").join(",")})`; const queryValuesArray = insertValuesArray; const newInsert = isMaster ? await dbHandler(query, queryValuesArray) : await dbHandler({ paradigm, database: dbFullName, queryString: query, queryValues: queryValuesArray }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Return statement */ return newInsert; } //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// module.exports = addDbEntry; /***/ }), /***/ 5851: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check /** * Imports: Handle imports */ const encrypt = __webpack_require__(2380); const sanitizeHtml = __webpack_require__(6109); const sanitizeHtmlOptions = __webpack_require__(6704); const DB_HANDLER = __webpack_require__(9395); const DSQL_USER_DB_HANDLER = __webpack_require__(8682); /** * Update DB Function * ============================================================================== * @description Description * @async * * @param {object} params - An object containing the function parameters. * @param {("Master" | "Dsql User")} [params.dbContext] - What is the database context? "Master" * or "Dsql User". Defaults to "Master" * @param {("Read Only" | "Full Access")} [params.paradigm] - What is the paradigm for "Dsql User"? * "Read only" or "Full Access"? Defaults to "Read Only" * @param {string} [params.dbFullName] - Database full name * @param {string} params.tableName - Table name * @param {string} [params.encryptionKey] * @param {string} [params.encryptionSalt] * @param {any} params.data - Data to add * @param {import("../../../types").DSQL_TableSchemaType} [params.tableSchema] - Table schema * @param {string} params.identifierColumnName - Update row identifier column name * @param {string | number} params.identifierValue - Update row identifier column value * * @returns {Promise} */ async function updateDbEntry({ dbContext , paradigm , dbFullName , tableName , data , tableSchema , identifierColumnName , identifierValue , encryptionKey , encryptionSalt , }) { /** * Check if data is valid */ if (!data || !Object.keys(data).length) return null; const isMaster = dbContext?.match(/dsql.user/i) ? false : dbFullName && !dbFullName.match(/^datasquirel$/) ? false : true; /** @type {(a1:any, a2?:any)=> any } */ const dbHandler = isMaster ? DB_HANDLER : DSQL_USER_DB_HANDLER; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Declare variables * * @description Declare "results" variable */ const dataKeys = Object.keys(data); let updateKeyValueArray = []; let updateValues = []; for(let i = 0; i < dataKeys.length; i++){ try { const dataKey = dataKeys[i]; // @ts-ignore let value = data[dataKey]; const targetFieldSchemaArray = tableSchema ? tableSchema?.fields?.filter((field)=>field.fieldName === dataKey) : null; const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] ? targetFieldSchemaArray[0] : null; if (value == null || value == undefined) continue; if (targetFieldSchema?.richText) { value = sanitizeHtml(value, sanitizeHtmlOptions); } if (targetFieldSchema?.encrypted) { value = encrypt(value, encryptionKey, encryptionSalt); } if (typeof value === "object") { value = JSON.stringify(value); } if (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); } //////////////////////////////////////// //////////////////////////////////////// } 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 ${tableName} SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`; updateValues.push(identifierValue); const updatedEntry = isMaster ? await dbHandler(query, updateValues) : await dbHandler({ paradigm, database: dbFullName, queryString: query, queryValues: updateValues }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Return statement */ return updatedEntry; } //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// module.exports = updateDbEntry; /***/ }), /***/ 2380: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check const { scryptSync , createCipheriv } = __webpack_require__(6113); const { Buffer } = __webpack_require__(4300); const serverError = __webpack_require__(7023); /** * @async * @param {string} data * @param {string} [encryptionKey] * @param {string} [encryptionSalt] * @returns {string | null} */ const encrypt = (data, encryptionKey, encryptionSalt)=>{ const algorithm = "aes-192-cbc"; const password = encryptionKey ? encryptionKey : process.env.DSQL_ENCRYPTION_PASSWORD || ""; /** ********************* Generate key */ const salt = encryptionSalt ? encryptionSalt : process.env.DSQL_ENCRYPTION_SALT || ""; let key = scryptSync(password, salt, 24); let iv = Buffer.alloc(16, 0); // @ts-ignore const cipher = createCipheriv(algorithm, key, iv); /** ********************* Encrypt data */ try { let encrypted = cipher.update(data, "utf8", "hex"); encrypted += cipher.final("hex"); return encrypted; } catch (/** @type {any} */ error) { serverError({ component: "encrypt", message: error.message }); return null; } }; module.exports = encrypt; /***/ }), /***/ 6704: /***/ ((module) => { // @ts-check const sanitizeHtmlOptions = { allowedTags: [ "b", "i", "em", "strong", "a", "p", "span", "ul", "ol", "li", "h1", "h2", "h3", "h4", "h5", "h6", "img", "div", "button", "pre", "code", "br" ], allowedAttributes: { a: [ "href" ], img: [ "src", "alt", "width", "height", "class", "style" ], "*": [ "style", "class" ] } }; module.exports = sanitizeHtmlOptions; /***/ }), /***/ 8214: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "CreateAccountContext": () => (/* binding */ CreateAccountContext), "default": () => (/* binding */ CreateAccount), "getServerSideProps": () => (/* binding */ getServerSideProps) }); // EXTERNAL MODULE: external "react/jsx-runtime" var jsx_runtime_ = __webpack_require__(997); // EXTERNAL MODULE: external "react" var external_react_ = __webpack_require__(6689); var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_); // EXTERNAL MODULE: ./layouts/GeneralLayout.jsx + 1 modules var GeneralLayout = __webpack_require__(6217); // EXTERNAL MODULE: ./components/general/PageHeadTags.jsx var PageHeadTags = __webpack_require__(4097); // EXTERNAL MODULE: ./components/pages/create-account/CreateAccountForm.jsx + 1 modules var CreateAccountForm = __webpack_require__(5114); ;// CONCATENATED MODULE: ./components/pages/create-account/Hero.jsx // @ts-check /** * ============================================================================== * Imports * ============================================================================== */ //////////////////////////////////////// /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** * ============================================================================== * Main Component { Functional } * ============================================================================== * @param {Object} props - Server props */ function Hero(props) { /** * Get Contexts * * @abstract { React.useContext } */ const { query , invitingUser } = external_react_default().useContext(CreateAccountContext); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Javascript Variables * * @abstract Non hook variables and functions */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * React Hooks * * @abstract { useState, useEffect, useRef, etc ... } */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Function Return * * @abstract Main Function Return */ return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("section", { className: "flex-col items-center lg:items-center gap-20 p-0", children: [ /*#__PURE__*/ jsx_runtime_.jsx("img", { src: "/images/grid.webp", alt: "Dotted image background", className: "absolute top-0 left-0 w-full h-full object-cover opacity-80 dark:opacity-10 z-0" }), /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", { className: "w-full lg:w-1/2 max-w-6xl gap-4 flex-col items-center px-4 py-10 bg-white dark:bg-slate-900 relative z-10", children: [ invitingUser?.first_name && /*#__PURE__*/ (0,jsx_runtime_.jsxs)("span", { className: "text-xs bg-emerald-100 rounded-full px-4 py-1 mb-4", children: [ "You have been invited by", " ", /*#__PURE__*/ (0,jsx_runtime_.jsxs)("b", { children: [ invitingUser.first_name, " ", invitingUser.last_name, " (", invitingUser.email, ")" ] }), " ", "to manage an account. Please create an account to gain access." ] }), /*#__PURE__*/ jsx_runtime_.jsx("h1", { className: "m-0 text-center text-2xl", children: "Create An Account" }), /*#__PURE__*/ jsx_runtime_.jsx(CreateAccountForm/* default */.Z, { query: query }) ] }) ] }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// } /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ // EXTERNAL MODULE: ./functions/backend/userAuth.js var userAuth = __webpack_require__(370); var userAuth_default = /*#__PURE__*/__webpack_require__.n(userAuth); // EXTERNAL MODULE: ./functions/backend/addAdminUserOnLogin.js var addAdminUserOnLogin = __webpack_require__(255); var addAdminUserOnLogin_default = /*#__PURE__*/__webpack_require__.n(addAdminUserOnLogin); // EXTERNAL MODULE: ./package-shared/utils/backend/global-db/DB_HANDLER.js var DB_HANDLER = __webpack_require__(9395); var DB_HANDLER_default = /*#__PURE__*/__webpack_require__.n(DB_HANDLER); // EXTERNAL MODULE: ./components/general/Logo.jsx var Logo = __webpack_require__(4017); // EXTERNAL MODULE: ./components/general/LoadingBlock.jsx var LoadingBlock = __webpack_require__(5264); // EXTERNAL MODULE: ./functions/frontend/fetchApi.js var fetchApi = __webpack_require__(6729); // EXTERNAL MODULE: ./components/general/LoadingScreen.jsx var LoadingScreen = __webpack_require__(6478); ;// CONCATENATED MODULE: ./pages/create-account.jsx // @ts-check /** * ============================================================================== * Imports * ============================================================================== */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** ****************************************************************************** */ /** ****************************************************************************** */ /** @type {import("@/package-shared/types").CreateAccountContextType} */ // @ts-ignore const init = {}; const CreateAccountContext = /*#__PURE__*/ external_react_default().createContext(init); /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** * ============================================================================== * Main Component { Functional } * ============================================================================== * @param {Object} props - Server props * @param {import("@/package-shared/types").CreateAccountQueryType} props.query * @param {any} props.invitingUser * @param {any} props.isAuthCookie * @param {import("@/package-shared/types").UserType} props.user */ function CreateAccount(props) { /** * Get Contexts * * @abstract { React.useContext } */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Javascript Variables * * @abstract Non hook variables and functions */ const pageTitle = "Create Account | Datasquirel"; const pageDescription = "Create a FREE account and start storing data."; let head = /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, { children: [ /*#__PURE__*/ jsx_runtime_.jsx("title", { children: pageTitle }), /*#__PURE__*/ jsx_runtime_.jsx("meta", { name: "description", content: pageDescription }), /*#__PURE__*/ jsx_runtime_.jsx(PageHeadTags/* default */.Z, { pageTitle: pageTitle, pageDescription: pageDescription, pagePathname: "/" }) ] }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * React Hooks * * @abstract { useState, useEffect, useRef, etc ... } */ const [user, setUser] = external_react_default().useState(null); external_react_default().useEffect(()=>{ if (props.query?.invite && !props.isAuthCookie) { setTimeout(()=>{ (0,fetchApi/* default */.Z)("/api/addAdminUserUser", { method: "POST", body: { query: props.query } }, true).then((res)=>{ window.location.pathname = `/admin/${props.user?.id}/users`; }); // clearCaches() // .then(() => { // console.log("caches cleared!"); // }) // .finally(() => { // window.location.reload(); // }); }, 1000); } }, []); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// if (props.query?.invite) { return /*#__PURE__*/ jsx_runtime_.jsx(LoadingScreen/* default */.Z, {}); } /** * Function Return * * @abstract Main Function Return */ return /*#__PURE__*/ jsx_runtime_.jsx(GeneralLayout/* default */.Z, { head: head, children: /*#__PURE__*/ jsx_runtime_.jsx(CreateAccountContext.Provider, { value: { user, query: props.query, invitingUser: props.invitingUser }, children: /*#__PURE__*/ jsx_runtime_.jsx("main", { children: /*#__PURE__*/ jsx_runtime_.jsx(Hero, {}) }) }) }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// } /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** * ============================================================================== * Server Side Props or Static Props * ============================================================================== * @type {import("next").GetServerSideProps} */ async function getServerSideProps({ req , res , query }) { if (true) { return { redirect: { destination: "/login", permanent: false } }; } /** * Page/Site Data Data Fetching * * @description Fetch data on the server before returning */ const user = await userAuth_default()(req, res); if (user?.logged_in_status && !query?.invite) { return { redirect: { destination: "/admin", permanent: false } }; } const isAuthCookie = req.cookies?.datasquirelAuthKey?.match(/./) ? true : false; let invitingUser = {}; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Page/Site Data Data Fetching * * @description Fetch data on the server before returning */ if (query?.email && user?.logged_in_status && user?.email === query.email) { console.log("Invitation Received by current logged in user"); const acceptInvitation = await addAdminUserOnLogin_default()({ // @ts-ignore query, user }); return { redirect: { destination: `/admin/${user?.id}/users`, permanent: false } }; } else if (query?.email && user?.logged_in_status && user?.email !== query.email) { console.log("Invitation Received but email doesn't match!"); return { redirect: { destination: "/logout?login=true&" + Object.keys(query).map((key)=>`${key}=${query[key]}`).join("&"), permanent: false } }; } else if (query?.invite && !user?.logged_in_status) { console.log("Invitation Received but no User Logged In"); const existingUser = await DB_HANDLER_default()(`SELECT first_name FROM users WHERE email='${query.email}'`); if (existingUser && existingUser[0]) { return { redirect: { destination: "/login?" + Object.keys(query).map((key)=>`${key}=${query[key]}`).join("&"), permanent: false } }; } const invitingUserDb = await DB_HANDLER_default()(`SELECT first_name,last_name,email FROM users WHERE id='${query.invite}'`); if (invitingUserDb && invitingUserDb[0]) invitingUser = invitingUserDb[0]; } else { // console.log("No Invitation Received!"); } //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Server props return * * @description Return data fetched on the server side */ return { props: { user: user, query, invitingUser, isAuthCookie } }; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// } /***/ }), /***/ 6843: /***/ ((module) => { module.exports = require("@mui/icons-material/ContentCopy"); /***/ }), /***/ 386: /***/ ((module) => { module.exports = require("@mui/icons-material/CottageTwoTone"); /***/ }), /***/ 5557: /***/ ((module) => { module.exports = require("@mui/icons-material/MenuBookTwoTone"); /***/ }), /***/ 9174: /***/ ((module) => { module.exports = require("@mui/material/Snackbar"); /***/ }), /***/ 9538: /***/ ((module) => { module.exports = require("datasquirel"); /***/ }), /***/ 6517: /***/ ((module) => { module.exports = require("lodash"); /***/ }), /***/ 2423: /***/ ((module) => { module.exports = require("lucide-react"); /***/ }), /***/ 968: /***/ ((module) => { module.exports = require("next/head"); /***/ }), /***/ 6689: /***/ ((module) => { module.exports = require("react"); /***/ }), /***/ 997: /***/ ((module) => { module.exports = require("react/jsx-runtime"); /***/ }), /***/ 6109: /***/ ((module) => { module.exports = require("sanitize-html"); /***/ }), /***/ 2261: /***/ ((module) => { module.exports = require("serverless-mysql"); /***/ }), /***/ 4300: /***/ ((module) => { module.exports = require("buffer"); /***/ }), /***/ 6113: /***/ ((module) => { module.exports = require("crypto"); /***/ }), /***/ 7147: /***/ ((module) => { module.exports = require("fs"); /***/ }), /***/ 3685: /***/ ((module) => { module.exports = require("http"); /***/ }), /***/ 1017: /***/ ((module) => { module.exports = require("path"); /***/ }) }; ; // load runtime var __webpack_require__ = require("../webpack-runtime.js"); __webpack_require__.C(exports); var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) var __webpack_exports__ = __webpack_require__.X(0, [4017,8313,5264,6729,5449,913,4480,370,9360,6217,4097,7023,8682,2317,7037,8374,5114,6478], () => (__webpack_exec__(8214))); module.exports = __webpack_exports__; })();