This commit is contained in:
Benjamin Toby
2025-02-12 17:56:44 +01:00
parent a5c3d59d24
commit 1b48c07ee8
431 changed files with 1665 additions and 827 deletions
@@ -0,0 +1,16 @@
"use strict";(()=>{var e={};e.id=8948,e.ids=[8948],e.modules={28187:e=>{e.exports=require("@moduletrace/datasquirel")},39383:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/actions/users/user-auth")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:e=>{e.exports=require("child_process")},29021:e=>{e.exports=require("fs")},21820:e=>{e.exports=require("os")},33873:e=>{e.exports=require("path")},96762:(e,r)=>{Object.defineProperty(r,"M",{enumerable:!0,get:function(){return function e(r,t){return t in r?r[t]:"then"in r&&"function"==typeof r.then?r.then(r=>e(r,t)):"function"==typeof r&&"default"===t?r:void 0}}})},36246:(e,r,t)=>{t.r(r),t.d(r,{config:()=>D,default:()=>A,routeModule:()=>_});var a={};t.r(a),t.d(a,{default:()=>v});var i=t(89947),s=t(2706),n=t(96762),o=t(53982),l=t(69842),d=t(29021),u=t.n(d),c=t(67619),m=t(6346),p=t(39180),f=t(33873),g=t.n(f),y=t(79646),b=t(21820),h=t.n(b);async function S({database:e,user:r,res:t}){let{tempDirName:a,userPrivateExportsDir:i,userSchemaMainJSONFilePath:s,userPrivateTempSQLExportsDir:n,userPrivateTempJSONSchemaFilePath:o,userPrivateDbExportZipFileName:l,userPrivateDbExportZipFilePath:d,userPrivateSQLExportsDir:f}=(0,m.A)({userId:r.id});try{if(!i||!s||!n||!o||!l||!f||!d)throw Error("Couldn't pull dir names for user db export");if(!u().existsSync(s))throw Error("User JSON schema file doesn't exist");let r=p.On.parse(u().readFileSync(s,"utf-8")),c=r.find(r=>r.dbFullName==e.db_full_name);if(!c)throw Error("`targetDbSchema` not found!");let m=[c];if(c.childDatabase&&c.childDatabaseDbFullName&&function e(t){let a=r.find(e=>e.dbFullName==t);a&&(m.push(a),a.childDatabase&&a.childDatabaseDbFullName&&e(a.childDatabaseDbFullName))}(c.childDatabaseDbFullName),c.childrenDatabases?.[0])for(let e=0;e<c.childrenDatabases.length;e++){let t=c.childrenDatabases[e],a=r.find(e=>e.dbFullName==t.dbFullName);a&&m.push(a)}u().mkdirSync(n,{recursive:!0}),m.forEach(e=>{let r=g().join(n,e.dbFullName+".sql");!function({dbFullName:e,targetFilePath:r,mariadbHost:t,mariadbPass:a,mariadbUser:i}){let s=h().platform().match(/win/i)?"'C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysqldump.exe'":"mysqldump",n=i||process.env.DSQL_DB_USERNAME,o=t||process.env.DSQL_DB_HOST,l=a||process.env.DSQL_DB_PASSWORD,d=`${s} -u ${n} -h ${o} -p${l} ${e} > ${r}`;(0,y.execSync)(d,{encoding:"utf-8"})}({dbFullName:e.dbFullName,targetFilePath:r})}),u().writeFileSync(o,JSON.stringify(m),"utf-8"),(0,y.execSync)(`zip -r ${l} ${a}`,{cwd:f}),u().createReadStream(d).pipe(t),setTimeout(()=>{(0,y.exec)(`rm -rf ${n}`,e=>{e&&console.log(`Error removing ${n} ${e.message}`)}),(0,y.exec)(`rm -rf ${d}`,e=>{e&&console.log(`Error removing ${d} ${e.message}`)})},1e3)}catch(e){console.log(`Error Exporting Database: ${e.message}`),(0,c.A)({component:"/functions/backend/users/export-database",message:e.message,user:r})}}async function v(e,r){let t=await (0,l.A)(e,r,!0);if(!t)return r.json({success:!1,msg:"Unauthorized"});try{let a=e.query.id,{database:i}=await (0,o.A)({userId:t.id,dbID:a});if(!i?.id)throw Error("Database not Found!");if("GET"===e.method)return await S({database:i,res:r,user:t});return r.json({success:!1,msg:"Not Handled!"})}catch(e){r.json({success:!1,msg:e.message})}}let A=(0,n.M)(a,"default"),D=(0,n.M)(a,"config"),_=new i.PagesAPIRouteModule({definition:{kind:s.A.PAGES_API,page:"/api/admin/databases/[id]/export",pathname:"/api/admin/databases/[id]/export",bundlePath:"",filename:""},userland:a})},39180:(e,r,t)=>{t.d(r,{On:()=>i()}),require("@moduletrace/datasquirel/dist/client");let a=require("@moduletrace/datasquirel/dist/package-shared/utils/ejson");var i=t.n(a);require("@moduletrace/datasquirel/dist/package-shared/utils/slugify"),require("@moduletrace/datasquirel/dist/package-shared/utils/numberfy")},53982:(e,r,t)=>{t.d(r,{A:()=>s});var a=t(28187),i=t.n(a);async function s({dbFullName:e,dbID:r,dbSlug:t,userId:a,query:s}){let n={};a&&(n={...n,query:{...n.query,user_id:{value:String(a)}}}),t&&(n={...n,query:{...n.query,db_slug:{value:String(t)}}}),r&&(n={...n,query:{...n.query,id:{value:String(r)}}}),e&&(n={...n,query:{...n.query,db_full_name:{value:String(e)}}});let o={...s,...n},l=await i().crud({action:"get",table:"user_databases",query:o}),d=l?.payload;return{database:d?.[0],databases:d}}},69842:(e,r,t)=>{t.d(r,{A:()=>s});var a=t(39383),i=t.n(a);async function s(e,r,t){return i()({req:e,level:t?"deep":void 0}).payload}},67619:(e,r,t)=>{t.d(r,{A:()=>s});var a=t(29021),i=t.n(a);async function s({user:e,message:r,component:t,noMail:a,req:s}){let n=new Date,o=(()=>{if(!s)return null;try{let e=s.headers["x-forwarded-for"],r=s.headers["x-real-ip"],t=s.headers["cf-connecting-ip"],a=Array.isArray(e)?e[0]:e?.split(",")[0],i=t||a||r||s.socket.remoteAddress;if(!i)return null;return String(i)}catch(e){return null}})();try{let a=`🚀 SERVER ERROR ===========================
Error Message: ${r}
Component: ${t}`;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}`),s?.url&&(a+=`
URL: ${s.url}`),s?.body&&(a+=`
Request Body: ${JSON.stringify(s.body,null,4)}`),o&&(a+=`
IP: ${o}`),a+=`
Date: ${n.toDateString()}
========================================`,i().existsSync("./.tmp/error.log")||i().writeFileSync("./.tmp/error.log","","utf-8");let l=i().readFileSync("./.tmp/error.log","utf-8");i().writeFileSync("./.tmp/error.log",a),i().appendFileSync("./.tmp/error.log",`
${l}`)}catch(e){console.log("Server Error Reporting Error:",e.message)}}},6346:(e,r,t)=>{t.d(r,{A:()=>s});var a=t(33873),i=t.n(a);function s(e){let r=process.env.DSQL_APP_DIR,t=process.env.DSQL_DB_SCHEMA_DIR,a=".tmp";if(!r)throw Error("Please provide the `DSQL_APP_DIR` env variable.");if(!t)throw Error("Please provide the `DSQL_DB_SCHEMA_DIR` env variable.");let s=i().join(r,"package-shared"),n=i().join(s,"types/dsql.ts"),o=i().join(t,"main.json"),l=i().join(s,"data/defaultFields.json"),d=i().join(t,"users"),u=e?.user?.id?i().join(d,`user-${e.user.id}`):e?.userId?i().join(d,`user-${e.userId}`):void 0,c=u?i().join(u,"main.json"):void 0,m=u?i().join(u,"media"):void 0,p=u?i().join(u,"export"):void 0,f=p?i().join(p,"sql"):void 0,g=f?i().join(f,a):void 0,y=g?i().join(g,"schema.json"):void 0,b="db-export.zip",h=f?i().join(f,b):void 0,S="db-export.zip",v=f?i().join(f,S):void 0;return{schemasDir:t,userDirPath:u,mainShemaJSONFilePath:o,mainDbTypeDefFile:n,tempDirName:a,defaultTableFieldsJSONFilePath:l,usersSchemaDir:d,userSchemaMainJSONFilePath:c,userPrivateMediaDir:m,userPrivateExportsDir:p,userPrivateSQLExportsDir:f,userPrivateTempSQLExportsDir:g,userPrivateTempJSONSchemaFilePath:y,userPrivateDbExportZipFileName:b,userPrivateDbExportZipFilePath:h,userPrivateDbImportZipFileName:S,userPrivateDbImportZipFilePath:v}}},2706:(e,r)=>{Object.defineProperty(r,"A",{enumerable:!0,get:function(){return t}});var t=function(e){return e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE",e.IMAGE="IMAGE",e}({})},89947:(e,r,t)=>{e.exports=t(75600)}};var r=require("../../../../../webpack-api-runtime.js");r.C(e);var t=r(r.s=36246);module.exports=t})();
File diff suppressed because one or more lines are too long