1 line
4.9 KiB
JavaScript
1 line
4.9 KiB
JavaScript
"use strict";(()=>{var e={};e.id=9368,e.ids=[9368],e.modules={28187:e=>{e.exports=require("@moduletrace/datasquirel")},39383:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/actions/users/user-auth")},27825:e=>{e.exports=require("lodash")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},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")},21820:e=>{e.exports=require("os")},33873:e=>{e.exports=require("path")},79456:(e,r,s)=>{s.r(r),s.d(r,{config:()=>R,default:()=>N,routeModule:()=>T});var a={};s.r(a),s.d(a,{config:()=>$,default:()=>L});var t=s(89947),i=s(2706),n=s(96762),o=s(69842),u=s(29021),l=s.n(u),c=s(67619),d=s(6346),p=s(39180),S=s(33873),f=s.n(S),m=s(79646),A=s(28187),_=s.n(A),y=s(21820),E=s.n(y);async function D({dbFullName:e,targetFilePath:r,mariadbHost:s,mariadbPass:a,mariadbUser:t}){let i=E().platform().match(/win/i)?"'C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql.exe'":"mysql",n=t||process.env.DSQL_DB_USERNAME,o=s||process.env.DSQL_DB_HOST,u=a||process.env.DSQL_DB_PASSWORD;await _().utils.connDbHandler(global.DSQL_DB_CONN,`CREATE DATABASE IF NOT EXISTS ${e}`);let l=`${i} -u ${n} -h ${o} -p${u} ${e} < ${r}`;return(0,m.execSync)(l,{encoding:"utf-8"})}var g=s(21724),h=s(27825),b=s.n(h),q=s(10776),x=s(66866);async function v({user:e,file:r}){let{tempDirName:s,userPrivateExportsDir:a,userSchemaMainJSONFilePath:t,userPrivateTempSQLExportsDir:i,userPrivateTempJSONSchemaFilePath:n,userPrivateDbExportZipFileName:o,userPrivateSQLExportsDir:u,userPrivateDbImportZipFilePath:S,userPrivateDbImportZipFileName:A}=(0,d.A)({userId:e.id}),_=r.fileBase64;if(!_)throw Error("Base64 String not found in File");try{if(!a||!t||!i||!n||!o||!u||!S||!A)throw Error("Couldn't pull dir names for user db export");if(!l().existsSync(t))throw Error("User JSON schema file doesn't exist");l().mkdirSync(i,{recursive:!0});let r=p.On.parse(l().readFileSync(t,"utf-8")),s=Buffer.from(_,"base64");l().writeFileSync(S,s),(0,m.execSync)(`unzip -o ${S} -d ${u}/`);let c=l().readdirSync(i).filter(e=>!!e.match(/\.sql$/)),d=l().readFileSync(n,"utf-8"),y=p.On.parse(d),E=p.On.parse(function({str:e,userId:r}){let s=process.env.DSQL_USER_DB_PREFIX,a=RegExp(`${s}\\d+_`,"g"),t=`${s}${r}_`;return e.replace(a,t)}({str:d,userId:e.id}));for(let e=0;e<E.length;e++){let r=E[e],s=y.find(e=>e.dbSlug==r.dbSlug);if(!s)continue;let a=c.find(e=>e.includes(s.dbFullName));if(!a)continue;let t=f().join(i,a);if(!l().existsSync(t))throw Error("Sql File Doesn't exist");await D({dbFullName:r.dbFullName,targetFilePath:t});try{await (0,x.A)(`GRANT ALL PRIVILEGES ON ${r.dbFullName}.* TO '${process.env.DSQL_DB_FULL_ACCESS_USERNAME}'@'${process.env.DSQL_DB_TARGET_IP_ADDRESS||"%"}' WITH GRANT OPTION`),await (0,x.A)(`GRANT SELECT ON ${r.dbFullName}.* TO '${process.env.DSQL_DB_READ_ONLY_USERNAME}'@'${process.env.DSQL_DB_TARGET_IP_ADDRESS||"%"}'`),await (0,x.A)("FLUSH PRIVILEGES")}catch(e){}}let h=[...r,...E],v=b().uniqBy(h,"dbFullName");(0,g.A)({schemaData:v,userId:e.id}),await (0,q.A)({dbSchemaData:v,userId:e.id});try{(0,m.execSync)(`rm -rf ${i}`),(0,m.execSync)(`rm -rf ${S}`)}catch(e){}}catch(r){console.log(`Error Exporting Database: ${r.message}`),(0,c.A)({component:"/functions/backend/users/export-database",message:r.message,user:e})}}let $={api:{bodyParser:{sizeLimit:"200mb"}}};async function L(e,r){let s=await (0,o.A)(e,r);if(!s)return r.json({success:!1,msg:"Unauthorized"});let a=e.body;try{if("POST"===e.method)return await v({user:s,file:a.file}),r.json({success:!0});return r.json({success:!1})}catch(e){console.log(e.message),r.json({success:!1})}}let N=(0,n.M)(a,"default"),R=(0,n.M)(a,"config"),T=new t.PagesAPIRouteModule({definition:{kind:i.A.PAGES_API,page:"/api/admin/databases/upload-database-file",pathname:"/api/admin/databases/upload-database-file",bundlePath:"",filename:""},userland:a})},39180:(e,r,s)=>{s.d(r,{On:()=>t()}),require("@moduletrace/datasquirel/dist/client");let a=require("@moduletrace/datasquirel/dist/package-shared/utils/ejson");var t=s.n(a);require("@moduletrace/datasquirel/dist/package-shared/utils/slugify"),require("@moduletrace/datasquirel/dist/package-shared/utils/numberfy")},69842:(e,r,s)=>{s.d(r,{A:()=>i});var a=s(39383),t=s.n(a);async function i(e,r,s){return t()({req:e,level:s?"deep":void 0}).payload}},21724:(e,r,s)=>{s.d(r,{A:()=>u});var a=s(67619),t=s(29021),i=s.n(t),n=s(33873),o=s.n(n);function u({userId:e,schemaData:r}){try{let s=o().resolve(process.cwd(),`${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${e}/main.json`);return i().writeFileSync(s,JSON.stringify(r),"utf8"),!0}catch(e){return(0,a.A)({component:"/functions/backend/setUserSchemaData",message:e.message}),!1}}}};var r=require("../../../../webpack-api-runtime.js");r.C(e);var s=e=>r(r.s=e),a=r.X(0,[6060,776],()=>s(79456));module.exports=a})(); |