"use strict";(()=>{vare={};e.id=9368,e.ids=[9368],e.modules={76102:e=>{e.exports=require("@moduletrace/datasquirel/dist/client")},39383:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/actions/users/user-auth")},65967:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/utils/ejson")},93726:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/utils/numberfy")},30889:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/utils/slugify")},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:()=>b,default:()=>I,routeModule:()=>Q});vara={};s.r(a),s.d(a,{config:()=>h,default:()=>x});vart=s(89947),i=s(2706),n=s(96762),o=s(69842),l=s(29021),u=s.n(l),c=s(67619),d=s(6346),S=s(55153),_=s(33873),p=s.n(_),E=s(79646),f=s(21820),m=s.n(f),D=s(64292);asyncfunctionL({dbFullName:e,targetFilePath:r,mariadbHost:s,mariadbPass:a,mariadbUser:t}){leti=m().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,l=a||process.env.DSQL_DB_PASSWORD;await(0,D.A)(global.DSQL_DB_CONN,`CREATE DATABASE IF NOT EXISTS ${e}`);letu=`${i} -u ${n} -h ${o} -p${l}${e} < ${r}`;return(0,E.execSync)(u,{encoding:"utf-8"})}varA=s(21724),T=s(27825),y=s.n(T),g=s(10776),v=s(66866);asyncfunctionO({user:e,file:r}){let{userPrivateExportsDir:s,userSchemaMainJSONFilePath:a,userPrivateTempSQLExportsDir:t,userPrivateTempJSONSchemaFilePath:i,userPrivateDbExportZipFileName:n,userPrivateSQLExportsDir:o,userPrivateDbImportZipFilePath:l,userPrivateDbImportZipFileName:_}=(0,d.A)({userId:e.id}),f=r.fileBase64;if(!f)throwError("Base64 String not found in File");try{if(!s||!a||!t||!i||!n||!o||!l||!_)throwError("Couldn't pull dir names for user db export");if(!u().existsSync(a))throwError("User JSON schema file doesn't exist");u().mkdirSync(t,{recursive:!0});letr=S.On.parse(u().readFileSync(a,"utf-8")),c=Buffer.from(f,"base64");u().writeFileSync(l,c),(0,E.execSync)(`unzip -o ${l} -d ${o}/`);letd=u().readdirSync(t).filter(e=>!!e.match(/\.sql$/)),m=u().readFileSync(i,"utf-8"),D=S.On.parse(m),T=S.On.parse(function({str:e,userId:r}){lets=process.env.DSQL_USER_DB_PREFIX,a=RegExp(`${s}\\d+_`,"g"),t=`${s}${r}_`;returne.replace(a,t)}({str:m,userId:e.id}));for(lete=0;e<T.length;e++){letr=T[e],s=D.find(e=>e.dbSlug==r.dbSlug);if(!s)continue;leta=d.find(e=>e.includes(s.dbFullName));if(!a)continue;leti=p().join(t,a);if(!u().existsSync(i))throwError("Sql File Doesn't exist");awaitL({dbFullName:r.dbFullName,targetFilePath:i});try{await(0,v.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,v.A)(`GRANT SELECT ON ${r.dbFullName}.* TO '${process.env.DSQL_DB_READ_ONLY_USERNAME}'@'${process.env.DSQL_DB_TARGET_IP_ADDRESS||"%"}'`),await(0,v.A)("FLUSH PRIVILEGES")}catch(e){}}letO=[...r,...T],h=y().uniqBy(O,"dbFullName");(0,A.A)({schemaData:h,userId:e.id}),await(0,g.A)({dbSchemaData:h,userId:e.id});try{(0,E.execSync)(`rm -rf ${t}`),(0,E.execSync)(`rm -rf ${l}`)}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})}}leth={api:{bodyParser:{sizeLimit:"200mb"}}};asyncfunctionx(e,r){let{user:s}=await(0,o.A)(e,r);if(!s)returnr.json({success:!1,msg:"Unauthorized"});leta=e.body;try{if("POST"===e.method)returnawaitO({user:s,file:a.file}),r.json({success:!0});returnr.json({success:!1})}catch(e){console.log(e.message),r.json({success:!1})}}letI=(0,n.M)(a,"default")