dsql-admin/dsql-app/.local_dist/server/chunks/6934.js
Benjamin Toby 35fec57590 Updates
2025-01-28 19:43:16 +01:00

25 lines
15 KiB
JavaScript

"use strict";exports.id=6934,exports.ids=[6934],exports.modules={96762:(e,a)=>{Object.defineProperty(a,"M",{enumerable:!0,get:function(){return function e(a,t){return t in a?a[t]:"then"in a&&"function"==typeof a.then?a.then(a=>e(a,t)):"function"==typeof a&&"default"===t?a:void 0}}})},67619:(e,a,t)=>{t.d(a,{A:()=>i});var l=t(29021),r=t.n(l);async function i({user:e,message:a,component:t,noMail:l,req:i}){let n=new Date,d=(()=>{if(!i)return null;try{let e=i.headers["x-forwarded-for"],a=i.headers["x-real-ip"],t=i.headers["cf-connecting-ip"],l=Array.isArray(e)?e[0]:e?.split(",")[0],r=t||l||a||i.socket.remoteAddress;if(!r)return null;return String(r)}catch(e){return null}})();try{let l=`🚀 SERVER ERROR ===========================
Error Message: ${a}
Component: ${t}`;e?.id&&e?.first_name&&e?.last_name&&e?.email&&(l+=`
User Id: ${e?.id}
User Name: ${e?.first_name} ${e?.last_name}
User Email: ${e?.email}`),i?.url&&(l+=`
URL: ${i.url}`),i?.body&&(l+=`
Request Body: ${JSON.stringify(i.body,null,4)}`),d&&(l+=`
IP: ${d}`),l+=`
Date: ${n.toDateString()}
========================================`,r().existsSync("./.tmp/error.log")||r().writeFileSync("./.tmp/error.log","","utf-8");let s=r().readFileSync("./.tmp/error.log","utf-8");r().writeFileSync("./.tmp/error.log",l),r().appendFileSync("./.tmp/error.log",`
${s}`)}catch(e){console.log("Server Error Reporting Error:",e.message)}}},76856:(e,a,t)=>{t.d(a,{A:()=>A});var l=t(33873),r=t.n(l),i=t(29021),n=t.n(i),d=t(66866),s=t(41864);async function o({queryString:e,queryValuesArray:a}){let t;try{t=e&&a&&Array.isArray(a)&&a[0]?await (0,s.A)({query:e,values:a}):await (0,s.A)({query:e})}catch(e){console.log("Shell Vardb Error =>",e.message)}return t}function u({columnData:e,primaryKeySet:a}){let{fieldName:t,dataType:l,nullValue:r,primaryKey:i,autoIncrement:n,defaultValue:d,defaultValueLiteral:s,onUpdateLiteral:o,notNullValue:u}=e,E="";return E+=`\`${t}\` ${l}`,r?E+=" DEFAULT NULL":s?E+=` DEFAULT ${s}`:d?String(d).match(/uuid\(\)/i)?E+=" DEFAULT UUID()":E+=` DEFAULT '${d}'`:u&&(E+=" NOT NULL"),o&&(E+=` ON UPDATE ${o}`),i&&!a&&(E+=" PRIMARY KEY",a=!0),n&&(E+=" AUTO_INCREMENT",a=!0),{fieldEntryText:E,newPrimaryKeySet:a||!1}}async function E({dbFullName:e,tableName:a,tableInfoArray:l,tableSchema:r,recordedDbEntry:i}){let n=function({tableInfoArray:e}){let a=t(95610),l=e.filter(e=>e.primaryKey);return a.forEach(a=>{let t=e.filter(e=>e.fieldName===a.fieldName);t&&t[0]||("id"!==a.fieldName||l[0]?e.push(a):e.unshift(a))}),e}({tableInfoArray:l}),d=[];d.push(`CREATE TABLE IF NOT EXISTS \`${e}\`.\`${a}\` (`);try{if(!i)throw Error("Recorded Db entry not found!");let e=await o({queryString:"SELECT * FROM datasquirel.user_database_tables WHERE db_id = ? AND table_slug = ?",queryValuesArray:[i.id,r?.tableName]}),a=e?.[0];a?.id||await (0,s.A)({query:"INSERT INTO datasquirel.user_database_tables SET ?",values:{user_id:i.user_id,db_id:i.id,db_slug:i.db_slug,table_name:r?.tableFullName,table_slug:r?.tableName,child_table:r?.childTable?"1":null,child_table_parent_database:r?.childTableDbFullName||null,child_table_parent_table:r?.childTableName||null,date_created:Date(),date_created_code:Date.now(),date_updated:Date(),date_updated_code:Date.now()}})}catch(e){}let E=!1,_=[];for(let e=0;e<n.length;e++){let a=n[e],{fieldName:t,dataType:l,nullValue:r,primaryKey:i,autoIncrement:s,defaultValue:o,defaultValueLiteral:c,foreignKey:N,updatedField:A,onUpdate:S,onUpdateLiteral:f,onDelete:T,onDeleteLiteral:m,defaultField:b,encrypted:D,json:p,newTempField:R,notNullValue:y,originName:g,plainText:O,pattern:L,patternFlags:h,richText:$}=a;N&&_.push({...a});let{fieldEntryText:C,newPrimaryKeySet:I}=u({columnData:a,primaryKeySet:E});E=I;let M=_[0]?",":e===n.length-1?"":",";d.push(" "+C+M)}_[0]&&_.forEach((e,a,t)=>{let l=e.fieldName,r=e.foreignKey?.destinationTableName,i=e.foreignKey?.destinationTableColumnName,n=e.foreignKey?.cascadeDelete,s=e.foreignKey?.cascadeUpdate,o=e.foreignKey?.foreignKeyName,u=a===_.length-1?"":",";d.push(` CONSTRAINT \`${o}\` FOREIGN KEY (\`${l}\`) REFERENCES \`${r}\`(${i})${n?" ON DELETE CASCADE":""}${s?" ON UPDATE CASCADE":""}${u}`)}),d.push(") ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");let c=d.join("\n");return await o({queryString:c})}let _=/^id$|^uuid$|^date_created$|^date_created_code$|^date_created_timestamp$|^date_updated$|^date_updated_code$|^date_updated_timestamp$/;async function c({dbFullName:e,tableName:a,tableInfoArray:t,userId:l,dbSchema:r,tableIndexes:i,tableSchema:d,clone:E,childDb:c,tableIndex:N,tableNameFull:A,recordedDbEntry:S}){let f=[],T=t;try{let t=[];if(t.push(`ALTER TABLE \`${e}\`.\`${a}\``),c)try{if(!S)throw Error("Recorded Db entry not found!");let e=await o({queryString:"SELECT * FROM datasquirel.user_database_tables WHERE db_id = ? AND table_slug = ?",queryValuesArray:[S.id,a]}),t=e?.[0];t?.id||await (0,s.A)({query:"INSERT INTO datasquirel.user_database_tables SET ?",values:{user_id:S.user_id,db_id:S.id,db_slug:S.db_slug,table_name:A,table_slug:a,child_table:d?.childTable?"1":null,child_table_parent_database:d?.childTableDbFullName||null,child_table_parent_table:d.childTableName||null,date_created:Date(),date_created_code:Date.now(),date_updated:Date(),date_updated_code:Date.now()}})}catch(e){}let N=await o({queryString:`SHOW INDEXES FROM \`${e}\`.\`${a}\``}),m=await o({queryString:`SHOW COLUMNS FROM \`${e}\`.\`${a}\``}),b=[];for(let t=0;t<m.length;t++){let{Field:i}=m[t];if(i.match(_))continue;let d=T.filter(e=>e.fieldName===i||e.originName===i);if(d&&d[0]){if(d[0].updatedField&&d[0].fieldName){b.push(d[0].fieldName),await o({queryString:`ALTER TABLE \`${e}\`.\`${a}\` RENAME COLUMN \`${d[0].originName}\` TO \`${d[0].fieldName}\``}),console.log(`Column Renamed from "${d[0].originName}" to "${d[0].fieldName}"`);try{let t=r.findIndex(a=>a.dbFullName===e),i=r[t].tables.findIndex(e=>e.tableName===a),s=r[t].tables[i].fields.findIndex(e=>e.fieldName===d[0].fieldName);delete r[t].tables[i].fields[s].originName,delete r[t].tables[i].fields[s].updatedField,T=r[t].tables[i].fields,n().writeFileSync(`${String(process.env.DSQL_USER_DB_SCHEMA_PATH)}/user-${l}/main.json`,JSON.stringify(r),"utf8")}catch(e){console.log("Update table error =>",e.message)}}continue}await o({queryString:`ALTER TABLE \`${e}\`.\`${a}\` DROP COLUMN \`${i}\``})}for(let t=0;t<N.length;t++){let{Key_name:l,Index_comment:r}=N[t];if(r?.match(/schema_index/))try{let e=i?.filter(e=>e.alias===l);if(!e?.[0])throw Error(`This Index(${l}) Has been Deleted!`)}catch(t){await o({queryString:`ALTER TABLE \`${e}\`.\`${a}\` DROP INDEX \`${l}\``})}}if(i&&i[0])for(let t=0;t<i.length;t++){let{indexType:l,indexName:r,indexTableFields:n,alias:d}=i[t];if(d?.match(/./))try{if(!N.filter(e=>e.Key_name===d)[0])throw Error("This Index Does not Exist")}catch(t){await o({queryString:`CREATE${l?.match(/fullText/i)?" FULLTEXT":""} INDEX \`${d}\` ON \`${e}\`.\`${a}\`(${n?.map(e=>e.value).map(e=>`\`${e}\``).join(",")}) COMMENT 'schema_index'`})}}let D=await o({queryString:`SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '${e}' AND TABLE_NAME='${a}' AND CONSTRAINT_TYPE='FOREIGN KEY'`});if(D)for(let t=0;t<D.length;t++){let{CONSTRAINT_NAME:l}=D[t];l.match(/PRIMARY/)||await o({queryString:`ALTER TABLE \`${e}\`.\`${a}\` DROP FOREIGN KEY \`${l}\``})}for(let r=0;r<T.length;r++){let i;let n=T[r],d=T[r-1],s=T[r+1],{fieldName:_,dataType:c,nullValue:N,primaryKey:A,autoIncrement:S,defaultValue:b,defaultValueLiteral:D,foreignKey:p,updatedField:R}=n;if(_?.match(/^id$|^date_/))continue;let y="",g=m&&m[0]?m.filter((e,a)=>{if(e.Field===_)return i=a,!0}):null,{fieldEntryText:O}=u({columnData:n});if(g&&g[0]?.Field){let{Field:e,Type:a,Null:t,Key:n,Default:o,Extra:u}=g[0],E=r<i;(e!==_||E||c?.toUpperCase()!==a.toUpperCase())&&l?y+=`MODIFY COLUMN ${O}${E?d?.fieldName?" AFTER `"+d.fieldName+"`":s?.fieldName?" BEFORE `"+s.fieldName+"`":"":""}`:y+=`MODIFY COLUMN ${O}`}else d&&d.fieldName?y+=`ADD COLUMN ${O} AFTER \`${d.fieldName}\``:s&&s.fieldName?y+=`ADD COLUMN ${O} BEFORE \`${s.fieldName}\``:y+=`ADD COLUMN ${O}`;if(t.push(y+","),!E&&p){let{destinationTableName:t,destinationTableColumnName:l,cascadeDelete:r,cascadeUpdate:i,foreignKeyName:n}=p,d=`ADD CONSTRAINT \`${n}\` FOREIGN KEY (\`${_}\`) REFERENCES \`${t}\`(\`${l}\`)${r?" ON DELETE CASCADE":""}${i?" ON UPDATE CASCADE":""}`,s=`ALTER TABLE \`${e}\`.\`${a}\` ${d}`,u=await o({queryString:s});u?.serverStatus||f.push(u)}}let p=t.join(" ").replace(/,$/,"");if(t.length>1)return await o({queryString:p});return"No Changes Made to Table"}catch(e){return console.log('Error in "updateTable" shell function =>',e.message),"Error in Updating Table"}}var N=t(59338);async function A({userId:e,targetDatabase:a,dbSchemaData:t}){let l=e?r().join(String(process.env.DSQL_USER_DB_SCHEMA_PATH),`/user-${e}/main.json`):r().resolve(__dirname,"../../jsonData/dbSchemas/main.json"),i=t||N.A.parse(n().readFileSync(l,"utf8"));if(!i){console.log("Schema Not Found!");return}for(let t=0;t<i.length;t++){let l=i[t],{dbFullName:r,tables:n,dbName:u,dbSlug:_,childrenDatabases:N}=l;if(a&&r!=a)continue;let S=await (0,d.A)(`SELECT SCHEMA_NAME AS dbFullName FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${r}'`);S?.[0]?.dbFullName||await (0,d.A)(`CREATE DATABASE IF NOT EXISTS \`${r}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin`);let f=await (0,d.A)(`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${r}'`);for(let a=0;a<f.length;a++){let{TABLE_NAME:t}=f[a];if(!n.filter(e=>e.tableName===t)[0]){let a=n.filter(e=>e.tableNameOld&&e.tableNameOld===t);a&&a[0]?(console.log("Renaming Table"),await o({queryString:`RENAME TABLE \`${r}\`.\`${a[0].tableNameOld}\` TO \`${a[0].tableName}\``})):(console.log(`Dropping Table from ${r}`),await o({queryString:`DROP TABLE \`${r}\`.\`${t}\``}),await (0,s.A)({query:"DELETE FROM datasquirel.user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?",values:[e,_,t]}))}}let T=e?await o({queryString:"SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?",queryValuesArray:[r]}):void 0,m=T?.[0];for(let a=0;a<n.length;a++){let t=n[a],{tableName:d,fields:s,indexes:u}=t,_=await o({queryString:`
SELECT EXISTS (
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA = ? AND
TABLE_NAME = ?
) AS tableExists`,queryValuesArray:[r,t.tableName]});if(_&&_[0]?.tableExists>0){if(await c({dbFullName:r,tableName:d,tableNameFull:t.tableFullName,tableInfoArray:s,userId:e,dbSchema:i,tableIndexes:u,tableIndex:a,childDb:l.childDatabase||void 0,recordedDbEntry:m,tableSchema:t}),t.childrenTables&&t.childrenTables[0])for(let a=0;a<t.childrenTables.length;a++){let r=t.childrenTables[a];await c({dbFullName:r.dbNameFull,tableName:r.tableName,tableNameFull:r.tableNameFull,tableInfoArray:s,userId:e,dbSchema:i,tableIndexes:u,clone:!0,childDb:l.childDatabase||void 0,recordedDbEntry:m,tableSchema:t})}}else if(await E({tableName:d,tableInfoArray:s,dbFullName:r,tableSchema:t,recordedDbEntry:m}),u&&u[0]&&u&&u[0])for(let e=0;e<u.length;e++){let{indexType:a,indexName:t,indexTableFields:l,alias:i}=u[e];if(i?.match(/./))try{if(!(await o({queryString:`SHOW INDEXES FROM \`${r}\`.\`${d}\``})).filter(e=>e.Key_name===i)[0])throw Error("This Index Does not Exist")}catch(e){await o({queryString:`CREATE${a?.match(/fullText/i)?" FULLTEXT":""} INDEX \`${i}\` ON \`${r}\`.\`${d}\`(${l?.map(e=>e.value).map(e=>`\`${e}\``).join(",")}) COMMENT 'schema_index'`})}}}if(N?.[0])for(let a=0;a<N.length;a++){let{dbFullName:t}=N[a];await A({userId:e,targetDatabase:t})}}}},41864:(e,a,t)=>{t.d(a,{A:()=>s});var l=t(29021),r=t.n(l),i=t(33873),n=t.n(i),d=t(7447);async function s({query:e,values:a}){let t;let l=(0,d.A)();try{t=e&&a?await l.query(e,a):await l.query(e)}catch(a){if(process.env.FIRST_RUN)return null;console.log("ERROR in dbHandler =>",a.message),console.log(a),console.log(l.config());let e=n().resolve(process.cwd(),"./.tmp");r().existsSync(e)||r().mkdirSync(e,{recursive:!0}),r().appendFileSync(n().resolve(e,"./dbErrorLogs.txt"),JSON.stringify(a,null,4)+"\n"+Date()+"\n\n\n","utf8"),t=null}finally{await l?.end()}return t?JSON.parse(JSON.stringify(t)):null}},66866:(e,a,t)=>{t.d(a,{A:()=>r});var l=t(41864);async function r(e){let a;try{a=await (0,l.A)({query:e})}catch(e){console.log("ERROR in noDatabaseDbHandler =>",e.message)}return a||null}},59338:(e,a,t)=>{t.d(a,{A:()=>l});let l={parse:function(e,a){if(e){if("object"==typeof e)return e;if("string"==typeof e)try{return JSON.parse(e,a)}catch(e){return}}},stringify:function(e,a,t){try{return JSON.stringify(e,a||void 0,t)}catch(e){return}}}},7447:(e,a,t)=>{t.d(a,{A:()=>i});var l=t(9973),r=t.n(l);function i(e){return global.DSQL_USE_LOCAL||e?.local?global.DSQL_DB_CONN||r()({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_USERNAME,password:process.env.DSQL_DB_PASSWORD,database:e?.noDb?void 0:process.env.DSQL_DB_NAME,port:process.env.DSQL_DB_PORT?Number(process.env.DSQL_DB_PORT):void 0,charset:"utf8mb4"}}):e?.ro?global.DSQL_READ_ONLY_DB_CONN||r()({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_READ_ONLY_USERNAME,password:process.env.DSQL_DB_READ_ONLY_PASSWORD,port:process.env.DSQL_DB_PORT?Number(process.env.DSQL_DB_PORT):void 0,charset:"utf8mb4"}}):e?.fa?global.DSQL_FULL_ACCESS_DB_CONN||r()({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_FULL_ACCESS_USERNAME,password:process.env.DSQL_DB_FULL_ACCESS_PASSWORD,port:process.env.DSQL_DB_PORT?Number(process.env.DSQL_DB_PORT):void 0,charset:"utf8mb4"}}):global.DSQL_DB_CONN||r()({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_USERNAME,password:process.env.DSQL_DB_PASSWORD,database:e?.noDb?void 0:process.env.DSQL_DB_NAME,port:process.env.DSQL_DB_PORT?Number(process.env.DSQL_DB_PORT):void 0,charset:"utf8mb4"}})}},2706:(e,a)=>{Object.defineProperty(a,"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,a,t)=>{e.exports=t(75600)},95610:e=>{e.exports=JSON.parse('[{"fieldName":"id","dataType":"BIGINT","notNullValue":true,"primaryKey":true,"autoIncrement":true},{"fieldName":"uuid","dataType":"UUID","defaultValueLiteral":"UUID()"},{"fieldName":"date_created","dataType":"VARCHAR(250)","nullValue":true},{"fieldName":"date_created_code","dataType":"BIGINT","nullValue":true},{"fieldName":"date_created_timestamp","dataType":"TIMESTAMP","defaultValueLiteral":"CURRENT_TIMESTAMP"},{"fieldName":"date_updated","dataType":"VARCHAR(250)","nullValue":true},{"fieldName":"date_updated_code","dataType":"BIGINT","nullValue":true},{"fieldName":"date_updated_timestamp","dataType":"TIMESTAMP","defaultValueLiteral":"CURRENT_TIMESTAMP","onUpdateLiteral":"CURRENT_TIMESTAMP"}]')}};