1 line
8.7 KiB
JavaScript
1 line
8.7 KiB
JavaScript
"use strict";(()=>{var e={};e.id=2263,e.ids=[2263],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:e=>{e.exports=require("node:buffer")},8086:e=>{e.exports=require("module")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:e=>{e.exports=require("querystring")},12269:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0})},12412:e=>{e.exports=require("assert")},14255:(e,r,t)=>{t.r(r),t.d(r,{"409083e64f5fe82bb580397645258675cdecd4aedb":()=>s.vC,"40aaa3ff37ac0b9242a82825b209b3f3998b2827ea":()=>s.uu,"60301dd4c97b25a22f52a1b2ed0345927c7009f42a":()=>s.QM,"605c77ef308e7aab8c30ce77cbd91d7851d438cd06":()=>s.ZM,"6092b43564b136264f47b6839f2d73d16b93f0c144":()=>s.IF,"60942df3263695c44a36c3b274f620e2859980e1c0":()=>s.nJ,"70947927b21002dafca76b076ccfddf03253e7eb74":()=>s.tE,"78b69d87b0e79f11066ba9300fd1a70693d2c10285":()=>s.Yg,"7c4795a4c07f98f5945bac30357610c05c6e402ec1":()=>s.Nw,"7c77f9d2d4c8842439e682f54cfa5bc3173f505232":()=>s.e9,"7e6e570fb277cfaffa51dd4472fb1c179f100a8f64":()=>s.cE});var s=t(87795)},14985:e=>{e.exports=require("dns")},19854:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var s={};Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n.default}});var o=t(12269);Object.keys(o).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(s,e))&&(e in r&&r[e]===o[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return o[e]}}))});var n=function(e,r){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(r);if(t&&t.has(e))return t.get(e);var s={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&({}).hasOwnProperty.call(e,n)){var i=o?Object.getOwnPropertyDescriptor(e,n):null;i&&(i.get||i.set)?Object.defineProperty(s,n,i):s[n]=e[n]}return s.default=e,t&&t.set(e,s),s}(t(35426));function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}Object.keys(n).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(s,e))&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))})},21820:e=>{e.exports=require("os")},27910:e=>{e.exports=require("stream")},28354:e=>{e.exports=require("util")},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},34631:e=>{e.exports=require("tls")},41204:e=>{e.exports=require("string_decoder")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46265:(e,r,t)=>{t.r(r),t.d(r,{patchFetch:()=>j,routeModule:()=>h,serverHooks:()=>q,workAsyncStorage:()=>y,workUnitAsyncStorage:()=>m});var s={};t.r(s),t.d(s,{DELETE:()=>b,PATCH:()=>w,POST:()=>g});var o=t(96559),n=t(48088),a=t(37719),i=t(32190),u=t(19854),c=t(26690),d=t(87795),l=t(36781),p=t(79464),f=t(85663);async function x(e){let r=e.user.id,t=e.user.email;if(!r||!t)throw Error("Missing required user data in session");try{if(await p.z.user.findUnique({where:{id:r}}))return void console.log(`User ${r} already exists in database`);console.log(`User ${r} not found in database, creating from session data...`);let e=await f.Ay.hash(Math.random().toString(36).slice(-10),10);await p.z.user.create({data:{id:r,email:t,password:e,createdAt:new Date,updatedAt:new Date}}),console.log(`Successfully created user ${r} (${t}) in database`)}catch(e){if(console.error("Error ensuring user exists:",e),e instanceof Error&&e.message.includes("Unique constraint"))return void console.log("User may have been created by concurrent request, continuing...");throw e}}async function g(e){try{let r=await (0,u.getServerSession)(c.N);if(!r?.user?.id)return i.NextResponse.json({error:"Unauthorized"},{status:401});try{await x(r)}catch(e){return console.error("Error ensuring user exists:",e),i.NextResponse.json({error:"Failed to ensure user exists in database",details:e instanceof Error?e.message:"Unknown error"},{status:500})}let t=await e.json().catch(e=>(console.error("Error parsing request body:",e),{}));console.log("Adding account:",{...t,password:t.password?"***":void 0});let{email:s,password:o,host:n,port:a,secure:f,smtp_host:g,smtp_port:b,smtp_secure:w,display_name:h,color:y}=t,m=[];if(s||m.push("email"),o||m.push("password"),n||m.push("host"),void 0===a&&m.push("port"),m.length>0)return console.error(`Missing required fields: ${m.join(", ")}`),i.NextResponse.json({error:`Required fields missing: ${m.join(", ")}`},{status:400});let q=n;q.startsWith("http://")?q=q.substring(7):q.startsWith("https://")&&(q=q.substring(8));let j={email:s,password:o,host:q,port:"string"==typeof a?parseInt(a):a,secure:f??!0,...g&&{smtp_host:g},...b&&{smtp_port:"string"==typeof b?parseInt(b):b},...void 0!==w&&{smtp_secure:w},...h&&{display_name:h},...y&&{color:y}};console.log(`Testing connection before saving for user ${r.user.id}`);let v=await (0,d.vC)(j);if(!v.imap)return i.NextResponse.json({error:`Connection test failed: ${v.error||"Could not connect to IMAP server"}`},{status:400});console.log(`Saving credentials for user: ${r.user.id}`),await (0,d.tE)(r.user.id,s,j),console.log(`Email account successfully added for user ${r.user.id}`);let E=await p.z.mailCredentials.findFirst({where:{userId:r.user.id,email:s},select:{id:!0,email:!0,display_name:!0,color:!0}});return await (0,l.gU)(r.user.id,s,"*"),i.NextResponse.json({success:!0,account:E,message:"Email account added successfully"})}catch(e){return console.error("Error adding email account:",e),i.NextResponse.json({error:"Failed to add email account",details:e instanceof Error?e.message:"Unknown error"},{status:500})}}async function b(e){try{let r=await (0,u.getServerSession)(c.N);if(!r?.user?.id)return i.NextResponse.json({error:"Unauthorized"},{status:401});let{searchParams:t}=new URL(e.url),s=t.get("accountId");if(!s)return i.NextResponse.json({error:"Missing accountId"},{status:400});let o=await p.z.mailCredentials.findFirst({where:{id:s,userId:r.user.id}});if(!o)return i.NextResponse.json({error:"Account not found"},{status:404});return await p.z.mailCredentials.delete({where:{id:s}}),await (0,l.gU)(r.user.id,o.email,"*"),i.NextResponse.json({success:!0,message:"Account deleted"})}catch(e){return console.error("Error deleting account:",e),i.NextResponse.json({error:"Failed to delete account",details:e instanceof Error?e.message:"Unknown error"},{status:500})}}async function w(e){try{let r=await (0,u.getServerSession)(c.N);if(!r?.user?.id)return i.NextResponse.json({error:"Unauthorized"},{status:401});let{accountId:t,newPassword:s,display_name:o,color:n}=await e.json();if(!t)return i.NextResponse.json({error:"Account ID is required"},{status:400});if(!s&&!o&&!n)return i.NextResponse.json({error:"At least one field to update is required"},{status:400});if(!await p.z.mailCredentials.findFirst({where:{id:t,userId:r.user.id}}))return i.NextResponse.json({error:"Account not found"},{status:404});let a={};return s&&(a.password=s),void 0!==o&&(a.display_name=o),n&&(a.color=n),await p.z.mailCredentials.update({where:{id:t},data:a}),i.NextResponse.json({success:!0,message:"Account updated successfully"})}catch(e){return console.error("Error updating account:",e),i.NextResponse.json({error:"Failed to update account",details:e instanceof Error?e.message:"Unknown error"},{status:500})}}let h=new o.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/courrier/account/route",pathname:"/api/courrier/account",filename:"route",bundlePath:"app/api/courrier/account/route"},resolvedPagePath:"/Users/alma/Documents/NeahNew/app/api/courrier/account/route.ts",nextConfigOutput:"",userland:s}),{workAsyncStorage:y,workUnitAsyncStorage:m,serverHooks:q}=h;function j(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:m})}},48161:e=>{e.exports=require("node:os")},55511:e=>{e.exports=require("crypto")},55591:e=>{e.exports=require("https")},57075:e=>{e.exports=require("node:stream")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73566:e=>{e.exports=require("worker_threads")},74075:e=>{e.exports=require("zlib")},76760:e=>{e.exports=require("node:path")},78474:e=>{e.exports=require("node:events")},79428:e=>{e.exports=require("buffer")},79551:e=>{e.exports=require("url")},79646:e=>{e.exports=require("child_process")},81630:e=>{e.exports=require("http")},83997:e=>{e.exports=require("tty")},91645:e=>{e.exports=require("net")},94735:e=>{e.exports=require("events")},96330:e=>{e.exports=require("@prisma/client")}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[4243,5419,580,8794,1642,6724,762,8376,2461,9908,4612,6365,5663,6781,6624],()=>t(46265));module.exports=s})(); |