dsql-admin/dsql-app/.local_dist/server/pages/api/connect/handshake.js

1 line
8.7 KiB
JavaScript
Raw Normal View History

2024-12-06 13:24:26 +00:00
"use strict";(()=>{var e={};e.id=4065,e.ids=[4065],e.modules={60818:e=>{e.exports=require("dotenv")},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")},81630:e=>{e.exports=require("http")},33873:e=>{e.exports=require("path")},79551:e=>{e.exports=require("url")},28354:e=>{e.exports=require("util")},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}}})},83919:(e,r,t)=>{t.r(r),t.d(r,{config:()=>g,default:()=>m,routeModule:()=>h});var s={};t.r(s),t.d(s,{default:()=>f});var n=t(89947),o=t(2706),a=t(96762),c=t(7753),i=t(48225),l=t.n(i),u=t(6420),_=t.n(u),p=t(33364),d=t.n(p);t(29021),t(28354);let{URL:S}=t(79551);async function f(e,r){if("POST"!==e.method)return r.json({msg:"Failed!"});let t=await _()(e,r,!0);if(!t)return r.json({success:!1,msg:"Unauthorized"});let{url:s,key:n,database:o,dbSchema:a,type:i,remoteDbs:u,targetDb:p}=e.body;try{if(!p?.tables)throw Error("No Target Database");await d()({tableName:"user_databases",data:{remote_connected:1,remote_connection_host:s,remote_connection_key:n,remote_connection_type:i,remote_db_full_name:p.dbFullName},identifierColumnName:"db_full_name",identifierValue:o.db_full_name}),await (0,c.e)({dbSchema:p,database:o,userId:t.id}),r.json({success:!0})}catch(e){console.log("Connect Handshake Error, =>",e.message),l()({component:"/api/connect/verify/main-catch-error",message:e.message,user:t}),r.json({success:!1,msg:"Operation Failed!"})}}let m=(0,a.M)(s,"default"),g=(0,a.M)(s,"config"),h=new n.PagesAPIRouteModule({definition:{kind:o.A.PAGES_API,page:"/api/connect/handshake",pathname:"/api/connect/handshake",bundlePath:"",filename:""},userland:s})},7753:(e,r,t)=>{let s=t(19261),{execSync:n}=t(79646),o=t(29021),a=t(33873),c=async({userId:e,dbSchema:r,targetDb:t})=>(await s({userId:e,targetDatabase:t}),`User ${e} Db Schema Updated`),i=async({userId:e,dbSchema:r,database:t})=>{let s=a.resolve(String(process.env.DSQL_USER_DB_SCHEMA_PATH),`user-${e}`,"main.json"),n=JSON.parse(o.readFileSync(s,"utf-8")),i=n.findIndex(e=>e.dbFullName==t.db_full_name);if(i<0)throw Error("Target Database not found in user schema data");let l={...n[i]};return n[i]=r,n[i].dbName=l.dbName,n[i].dbFullName=l.dbFullName,n[i].dbSlug=l.dbSlug,n[i].dbImage=l.dbImage,await c({dbSchema:n,userId:e,targetDb:t.db_full_name})};r.e=i},6420:(e,r,t)=>{t(81630);let s=t(51348),n=t(72835),o=t(29021),a=t(31341);async function c(e,r,t,c){let{keyCookieName:i,csrfCookieName:l}=a();if(!e.cookies?.[i]?.match(/./))return null;let u=n({encryptedString:e.cookies[i]});if(!u)return null;let _=JSON.parse(u);if(!_.csrf_k||t&&!e.headers["x-csrf-auth"]?.match(RegExp(`${_.csrf_k}`)))return null;let p=process.env.DSQL_USER_LOGIN_KEYS_PATH;if(!p)return console.log("DSQL_USER_LOGIN_KEYS_PATH env variable not found. Please set this variable."),null;if(t&&!o.existsSync(`${p}/${_.csrf_k}`))return null;if(0==_.verification_status&&!t){let e=await s(`SELECT verification_status FROM users WHERE id='${_.id}'`);e&&e[0]&&1==e[0].verification_status&&r.setHeader("Set-Cookie",["user_refresh=1"])}return _?.date&&Date.now()-_.date>6048e5?null:_}e.exports=c},31341:e=>{e.exports=function(){let e=process.env.DSQL_COOKIES_PREFIX||"dsql_";return{keyCookieName:e+(process.env.DSQL_COOKIES_KEY_NAME||"key"),csrfCookieName:e+(process.env.DSQL_COOKIES_CSRF_NAME||"csrf")}}},33364:(e,r,t)=>{let s=t(72583),n=t(16570),o=t(51348),a=t(21339),c=t(20503),i=t(44900);async function l({dbContext:e,paradigm:r,dbFullName:t,tableName:l,data:u,tableSchema:_,identifierColumnName:p,identifierValue:d,encryptionKey:S,encryptionSalt:f,useLocal:m}){if(!u||!Object.keys(u).length)return null;let g=!e?.match(/dsql.user/i)&&(!t||!!t.match(/^datasquirel$/