1 line
6.8 KiB
JavaScript
1 line
6.8 KiB
JavaScript
"use strict";(()=>{var e={};e.id=1084,e.ids=[1084],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")},5158:(e,r,t)=>{t.r(r),t.d(r,{patchFetch:()=>q,routeModule:()=>y,serverHooks:()=>m,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>A});var o={};t.r(o),t.d(o,{GET:()=>b});var n=t(96559),s=t(48088),a=t(37719),u=t(32190),i=t(19854),c=t(26690),d=t(87795),f=t(79464),l=t(36781);let p=e=>`email:unread:${e}`,g=e=>`email:unread-refresh:${e}`;async function b(e){try{let e=await (0,i.getServerSession)(c.N);if(!e||!e.user?.id)return u.NextResponse.json({error:"Not authenticated"},{status:401});let r=e.user.id,t=(0,l.nr)(),o=await t.get(p(r));if(o)return console.log(`[UNREAD_API] Using cached unread counts for user ${r}`),await t.ttl(p(r))<60&&await t.set(g(r),Date.now().toString(),"EX",30,"NX")&&(console.log(`[UNREAD_API] Scheduling background refresh for user ${r}`),setTimeout(()=>{h(r,t).catch(e=>console.error(`[UNREAD_API] Background refresh error: ${e}`)).finally(()=>{t.del(g(r)).catch(()=>{})})},0)),u.NextResponse.json(JSON.parse(o));if(console.log(`[UNREAD_API] Cache miss for user ${r}, fetching unread counts`),!await t.set(g(r),Date.now().toString(),"EX",30,"NX"))return console.log(`[UNREAD_API] Another process is refreshing unread counts for ${r}`),u.NextResponse.json({_status:"pending_refresh"});try{let e=await x(r);return await t.set(p(r),JSON.stringify(e),"EX",120),u.NextResponse.json(e)}finally{await t.del(g(r))}}catch(e){return console.error("[UNREAD_API] Error fetching unread counts:",e),u.NextResponse.json({error:"Failed to fetch unread counts",message:e.message},{status:500})}}async function h(e,r){try{console.log(`[UNREAD_API] Background refresh started for user ${e}`);let t=await x(e);await r.set(p(e),JSON.stringify(t),"EX",120),console.log(`[UNREAD_API] Background refresh completed for user ${e}`)}catch(r){throw console.error(`[UNREAD_API] Background refresh failed for user ${e}:`,r),r}}async function x(e){let r=await f.z.mailCredentials.findMany({where:{userId:e},select:{id:!0,email:!0}});if(console.log(`[UNREAD_API] Found ${r.length} accounts for user ${e}`),0===r.length)return{default:{}};let t={};for(let o of r){let r=o.id;try{console.log(`[UNREAD_API] Processing account ${r} (${o.email})`);let n=await (0,d.IF)(e,r);t[r]={};let s=["INBOX","Sent","Drafts","Trash","Junk","Spam","Archive","Sent Items","Archives","Notes","\xc9l\xe9ments supprim\xe9s"],a=(await n.list()).map(e=>e.path);for(let e of s)if(a.includes(e)||a.some(r=>r.toLowerCase()===e.toLowerCase()))try{let o=await n.status(e,{unseen:!0});o&&"number"==typeof o.unseen&&(t[r][e]=o.unseen,t[r][`${r}:${e}`]=o.unseen,console.log(`[UNREAD_API] Account ${r}, folder ${e}: ${o.unseen} unread`))}catch(t){console.error(`[UNREAD_API] Error getting unread count for ${r}:${e}:`,t)}}catch(e){console.error(`[UNREAD_API] Error processing account ${r}:`,e)}}return t}let y=new n.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/courrier/unread-counts/route",pathname:"/api/courrier/unread-counts",filename:"route",bundlePath:"app/api/courrier/unread-counts/route"},resolvedPagePath:"/Users/alma/Documents/NeahNew/app/api/courrier/unread-counts/route.ts",nextConfigOutput:"",userland:o}),{workAsyncStorage:w,workUnitAsyncStorage:A,serverHooks:m}=y;function q(){return(0,a.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:A})}},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 o={};Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s.default}});var n=t(12269);Object.keys(n).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(o,e))&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))});var s=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 o={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&({}).hasOwnProperty.call(e,s)){var u=n?Object.getOwnPropertyDescriptor(e,s):null;u&&(u.get||u.set)?Object.defineProperty(o,s,u):o[s]=e[s]}return o.default=e,t&&t.set(e,o),o}(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(s).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(o,e))&&(e in r&&r[e]===s[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return s[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":()=>o.uu,"40ffe2e562761be02ad5d7c3f8cee4316dd6e0d5f6":()=>o.vC,"60023f066940400bb4b31628f742482a64e8f8fb8d":()=>o.ZM,"600528b29b4effb3dfffbb4ac0b40a5892135cff9b":()=>o.IF,"60624dc244af7f822e7cf2f2a416fca71f0f6a3023":()=>o.QM,"60e95a1735db6ded320579f695ad4d93a03daaef8b":()=>o.nJ,"707a67d0a7ca9279d96141225e723a5fe214c4a735":()=>o.tE,"78d83111d1c012759dad167432affb7d8d8d98cd33":()=>o.Yg,"7c7f5d5e66956af89b74ffbd59650b767db2316b77":()=>o.Nw,"7c9b414f13445c0a6cf7f5af0864c0a3acf38a6878":()=>o.e9,"7e76edd695ba1c6b60a50d9f517953f2e592e97352":()=>o.cE});var o=t(87795)},41204:e=>{e.exports=require("string_decoder")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},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),o=r.X(0,[4243,5419,580,8794,1642,6724,762,8376,4612,2461,9908,6365,6781,6624],()=>t(5158));module.exports=o})(); |