"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")},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")},36268:(e,r,t)=>{t.r(r),t.d(r,{"406f28c76c2dd4d32ced5b13b189617b649b9bfed6":()=>s.uu,"40ffe2e562761be02ad5d7c3f8cee4316dd6e0d5f6":()=>s.vC,"60023f066940400bb4b31628f742482a64e8f8fb8d":()=>s.ZM,"600528b29b4effb3dfffbb4ac0b40a5892135cff9b":()=>s.IF,"60624dc244af7f822e7cf2f2a416fca71f0f6a3023":()=>s.QM,"60e95a1735db6ded320579f695ad4d93a03daaef8b":()=>s.nJ,"707a67d0a7ca9279d96141225e723a5fe214c4a735":()=>s.tE,"78d83111d1c012759dad167432affb7d8d8d98cd33":()=>s.Yg,"7c7f5d5e66956af89b74ffbd59650b767db2316b77":()=>s.Nw,"7c9b414f13445c0a6cf7f5af0864c0a3acf38a6878":()=>s.e9,"7e76edd695ba1c6b60a50d9f517953f2e592e97352":()=>s.cE});var s=t(87795)},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:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>m});var s={};t.r(s),t.d(s,{DELETE:()=>b,PATCH:()=>g,POST:()=>x});var o=t(96559),n=t(48088),a=t(37719),i=t(32190),u=t(19854),d=t(26690),c=t(87795),p=t(36781),l=t(79464);async function f(e){try{return!!await l.z.user.findUnique({where:{id:e},select:{id:!0}})}catch(e){return console.error("Error checking if user exists:",e),!1}}async function x(e){try{let r=await (0,u.getServerSession)(d.N);if(!r?.user?.id)return i.NextResponse.json({error:"Unauthorized"},{status:401});if(!await f(r.user.id))return console.error(`User with ID ${r.user.id} not found in database`),i.NextResponse.json({error:"User not found in database",details:`The user ID from your session (${r.user.id}) doesn't exist in the database. This may be due to a session/database mismatch.`},{status:400});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:x,smtp_host:b,smtp_port:g,smtp_secure:h,display_name:w,color:m}=t,y=[];if(s||y.push("email"),o||y.push("password"),n||y.push("host"),void 0===a&&y.push("port"),y.length>0)return console.error(`Missing required fields: ${y.join(", ")}`),i.NextResponse.json({error:`Required fields missing: ${y.join(", ")}`},{status:400});let j=n;j.startsWith("http://")?j=j.substring(7):j.startsWith("https://")&&(j=j.substring(8));let q={email:s,password:o,host:j,port:"string"==typeof a?parseInt(a):a,secure:x??!0,...b&&{smtp_host:b},...g&&{smtp_port:"string"==typeof g?parseInt(g):g},...void 0!==h&&{smtp_secure:h},...w&&{display_name:w},...m&&{color:m}};console.log(`Testing connection before saving for user ${r.user.id}`);let v=await (0,c.vC)(q);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,c.tE)(r.user.id,s,q),console.log(`Email account successfully added for user ${r.user.id}`);let N=await l.z.mailCredentials.findFirst({where:{userId:r.user.id,email:s},select:{id:!0,email:!0,display_name:!0,color:!0}});return await (0,p.gU)(r.user.id,s,"*"),i.NextResponse.json({success:!0,account:N,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)(d.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 l.z.mailCredentials.findFirst({where:{id:s,userId:r.user.id}});if(!o)return i.NextResponse.json({error:"Account not found"},{status:404});return await l.z.mailCredentials.delete({where:{id:s}}),await (0,p.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 g(e){try{let r=await (0,u.getServerSession)(d.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 l.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 l.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:w,workUnitAsyncStorage:m,serverHooks:y}=h;function j(){return(0,a.patchFetch)({workAsyncStorage:w,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,4612,2461,9908,6365,6781,6624],()=>t(46265));module.exports=s})();