16 lines
8.0 KiB
JavaScript
16 lines
8.0 KiB
JavaScript
"use strict";(()=>{var e={};e.id=3953,e.ids=[3953],e.modules={47795:e=>{e.exports=require("generate-password")},27825:e=>{e.exports=require("lodash")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},21572:e=>{e.exports=require("nodemailer")},72583:e=>{e.exports=require("sanitize-html")},9973:e=>{e.exports=require("serverless-mysql")},79428:e=>{e.exports=require("buffer")},79646:e=>{e.exports=require("child_process")},55511:e=>{e.exports=require("crypto")},29021:e=>{e.exports=require("fs")},81630:e=>{e.exports=require("http")},33873:e=>{e.exports=require("path")},3641:(e,r,s)=>{s.r(r),s.d(r,{config:()=>x,default:()=>w,routeModule:()=>N});var t={};s.r(t),s.d(t,{default:()=>R});var a=s(89947),i=s(2706),n=s(96762),l=s(20503),o=s.n(l),d=s(59474),u=s.n(d),c=s(48225),m=s.n(c),p=s(33873),_=s.n(p),g=s(79646),S=s(5194),f=s.n(S),E=s(51348),h=s.n(E),v=s(47670),y=s.n(v),b=s(33364),I=s.n(b),D=s(14533),A=s.n(D);let L=s(29021);async function R(e,r){if("POST"!==e.method)return r.json({user:null,msg:"Registration Failed!"});let s=e.body,{inviteObject:t}=s,a=s.first_name,i=s.last_name,n=s.email,l=s.password,d=s.username;if(!n.match(/.*@.*\..*/))return r.json({user:null,msg:"Invalid Email"});if(!a.match(/^[a-zA-Z]+$/)||!i.match(/^[a-zA-Z]+$/))return r.json({user:null,msg:"Invalid Name"});if(l?.match(/ /))return r.json({user:null,msg:"Invalid Password"});if(d?.match(/ /))return r.json({user:null,msg:"Invalid Username"});try{let e=A()({encryptionKey:process.env.DSQL_ENCRYPTION_PASSWORD||"",password:l}),s=await h()(`SELECT * FROM users WHERE email='${n}'`);if(s&&s[0])return r.json({user:null,msg:"User Already Exists"});let c=await y()({dbFullName:"datasquirel",tableName:"users",data:{first_name:a,last_name:i,email:n,password:e,username:d}});if(!c?.insertId)return r.json({user:null,msg:"Adding User to Database failed"});await f()({userId:c.insertId});let m=o()({data:JSON.stringify({id:c.insertId,email:n,dateCode:Date.now()})});u()({to:n,subject:"Verify Email Address",text:"Please click the link to verify your email address",html:L.readFileSync("./email/send-email-verification-link.html","utf8").replace(/{{host}}/,process.env.DSQL_HOST||"").replace(/{{token}}/,m||"")}).then(e=>{}),"production".match(/production/),c.insertId,c.insertId;let p=process.env.DSQL_STATIC_SERVER_DIR;if(!p)throw console.log("Static File ENV not Found!"),Error("No Static Path");let S=`${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${c.insertId}`,E=_().join(p,`images/user-images/user-${c.insertId}`);L.mkdirSync(S,{recursive:!0}),L.mkdirSync(E,{recursive:!0}),L.writeFileSync(`${S}/main.json`,JSON.stringify([]),"utf8");let v=_().join(p,`images/user-images/user-${c.insertId}/user-${c.insertId}-profile.jpg`),b=_().join(p,`images/user-images/user-${c.insertId}/user-${c.insertId}-profile-thumbnail.jpg`),D=v.replace(p,process.env.DSQL_STATIC_HOST||""),R=b.replace(p,process.env.DSQL_STATIC_HOST||"");if(L.copyFileSync("./public/images/user-preset.png",v),L.copyFileSync("./public/images/user-preset-thumbnail.png",b),(0,g.execSync)(`chmod 644 ${v} ${b}`),await I()({dbFullName:"datasquirel",tableName:"users",identifierColumnName:"id",identifierValue:c.insertId,data:{image:D,image_thumbnail:R}}),t){let e=await y()({dbFullName:"datasquirel",tableName:"user_users",data:{user_id:t.invite,invited_user_id:c.insertId,database_access:t.database_access,user_priviledge:t.priviledge,user_type:"admin",first_name:a,last_name:i,email:n,username:d,image:D,image_thumbnail:R}});await h()("UPDATE invitations SET invitation_status='Accepted' WHERE inviting_user_id=? AND invited_user_email=?",[t.invite,n]);let r=await h()("SELECT db_tables_data FROM invitations WHERE inviting_user_id=? AND invited_user_email=?",[t.invite,n]);if(await h()("DELETE FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=?",[t.invite,e.insertId]),r&&r[0]){let s=r[0].db_tables_data.split("|");for(let r=0;r<s.length;r++){let[a,i]=s[r].split("-");await y()({dbFullName:"datasquirel",tableName:"delegated_user_tables",data:{delegated_user_id:e.insertId,root_user_id:t.invite,database:a,table:i,priviledge:t.priviledge}})}}}r.json(c)}catch(e){console.log(`Error in creating user => ${e.message}`),m()({component:"/api/registerUser/main-catch-error",message:e.message,user:{first_name:a,last_name:i,email:n}}),r.json({user:null})}}let w=(0,n.M)(t,"default"),x=(0,n.M)(t,"config"),N=new a.PagesAPIRouteModule({definition:{kind:i.A.PAGES_API,page:"/api/registerUser",pathname:"/api/registerUser",bundlePath:"",filename:""},userland:t})},5194:(e,r,s)=>{let t=s(47795),a=s(51348),i=s(45356),n=s(47670),l=s(20503),o=s(44900);e.exports=async function({userId:e,useLocal:r}){try{let s=process.env.DSQL_DB_HOST||"127.0.0.1",d=`dsql_user_${e}`,u=t.generate({length:16,numbers:!0,symbols:!0,uppercase:!0,exclude:"*#.'`\""}),c=l({data:u}),m=`CREATE USER IF NOT EXISTS '${d}'@'127.0.0.1' IDENTIFIED BY '${u}' REQUIRE SSL`;r?await o(m):await i(m);let p="UPDATE users SET mariadb_user = ?, mariadb_host = '127.0.0.1', mariadb_pass = ? WHERE id = ?",_=[d,c,e];r?await o(p,_):await a(p,_),await n({tableName:"mariadb_users",data:{user_id:e,username:d,host:s,password:c,primary:"1",grants:'[{"database":"*","table":"*","privileges":["ALL"]}]'},dbContext:"Master",useLocal:r}),console.log(`User ${e} SQL credentials successfully added.`)}catch(e){console.log("Error in adding SQL user in 'addMariadbUser' function =>",e.message)}}},59474:(e,r,s)=>{let t=s(29021),a=s(21572).createTransport({host:process.env.DSQL_MAIL_HOST,port:465,secure:!0,auth:{user:process.env.DSQL_MAIL_EMAIL,pass:process.env.DSQL_MAIL_PASSWORD}});e.exports=async function({to:e,subject:r,text:s,html:i,alias:n}){let l;if(!process.env.DSQL_MAIL_HOST||!process.env.DSQL_MAIL_EMAIL||!process.env.DSQL_MAIL_PASSWORD)return null;let o=(n?.match(/support/i),process.env.DSQL_MAIL_EMAIL);if(!t.existsSync("./email/index.html"))return;let d=t.readFileSync("./email/index.html","utf8").replace(/{{email_body}}/,i||"").replace(/{{issue_date}}/,Date().substring(0,24));try{let t={};t.from=`"Datasquirel" <${o}>`,t.sender=o,n&&(t["replyTo "]=o),t.to=e,t.subject=r,t.text=s,t.html=d,l=await a.sendMail(t)}catch(e){console.log("ERROR in handleNodemailer Function =>",e.message)}return l}},48225:(e,r,s)=>{let t=s(29021),{IncomingMessage:a}=s(81630);e.exports=async function({user:e,message:r,component:s,noMail:a,req:i}){let n=new Date,l=(()=>{if(!i)return null;try{let e=i.headers["x-forwarded-for"],r=i.headers["x-real-ip"],s=i.headers["cf-connecting-ip"],t=Array.isArray(e)?e[0]:e?.split(",")[0],a=s||t||r||i.socket.remoteAddress;if(!a)return null;return String(a)}catch(e){return null}})();try{let a=`🚀 SERVER ERROR ===========================
|
|
Error Message: ${r}
|
|
Component: ${s}`;e?.id&&e?.first_name&&e?.last_name&&e?.email&&(a+=`
|
|
User Id: ${e?.id}
|
|
User Name: ${e?.first_name} ${e?.last_name}
|
|
User Email: ${e?.email}`),i?.url&&(a+=`
|
|
URL: ${i.url}`),i?.body&&(a+=`
|
|
Request Body: ${JSON.stringify(i.body,null,4)}`),l&&(a+=`
|
|
IP: ${l}`),a+=`
|
|
Date: ${n.toDateString()}
|
|
========================================`,t.existsSync("./.tmp/error.log")||t.writeFileSync("./.tmp/error.log","","utf-8");let o=t.readFileSync("./.tmp/error.log","utf-8");t.writeFileSync("./.tmp/error.log",a),t.appendFileSync("./.tmp/error.log",`
|
|
|
|
|
|
|
|
|
|
${o}`)}catch(e){console.log("Server Error Reporting Error:",e.message)}}},14533:(e,r,s)=>{let{createHmac:t}=s(55511);e.exports=function({password:e,encryptionKey:r}){let s=r||process.env.DSQL_ENCRYPTION_PASSWORD;if(!s?.match(/.{8,}/))throw Error("Encryption key is invalid");let a=t("sha512",s);return a.update(e),a.digest("base64")}},45356:(e,r,s)=>{let t=s(9973),a=s(21580),i=t({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_USERNAME,password:process.env.DSQL_DB_PASSWORD,charset:"utf8mb4",ssl:a()}});e.exports=function(...e){try{return new Promise((r,s)=>{i.query(...e).then(e=>{i.end(),r(JSON.parse(JSON.stringify(e)))}).catch(e=>{i.end(),r({error:e.message,sql:e.sql})})})}catch(e){return{success:!1,error:e.message}}}}};var r=require("../../webpack-api-runtime.js");r.C(e);var s=e=>r(r.s=e),t=r.X(0,[4050],()=>s(3641));module.exports=t})(); |