exports.id=6300,exports.ids=[6300],exports.modules={12269:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0})},19854:(e,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={};Object.defineProperty(r,"default",{enumerable:!0,get:function(){return t.default}});var s=o(12269);Object.keys(s).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in r&&r[e]===s[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return s[e]}}))});var t=function(e,r){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var o=i(r);if(o&&o.has(e))return o.get(e);var n={__proto__:null},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if("default"!==t&&({}).hasOwnProperty.call(e,t)){var a=s?Object.getOwnPropertyDescriptor(e,t):null;a&&(a.get||a.set)?Object.defineProperty(n,t,a):n[t]=e[t]}return n.default=e,o&&o.set(e,n),n}(o(35426));function i(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,o=new WeakMap;return(i=function(e){return e?o:r})(e)}Object.keys(t).forEach(function(e){!("default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e))&&(e in r&&r[e]===t[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return t[e]}}))})},22039:(e,r,o)=>{"use strict";o.d(r,{_F:()=>c,dm:()=>p,fU:()=>l,jY:()=>m,nq:()=>d,vB:()=>f,zt:()=>u});var n=o(91043);let s=new n.S3Client({region:"us-east-1",endpoint:"https://dome-api.slm-lab.net",credentials:{accessKeyId:"4aBT4CMb7JIMMyUtp4Pl",secretAccessKey:"HGn39XhCIlqOjmDVzRK9MED2Fci2rYvDDgbLFElg"},forcePathStyle:!0});function t(e,r,o){return`missions/${r}/logo${o}`}function i(e,r,o){return`missions/${r}/attachments/${o}`}function a(e){return e.startsWith("missions/")?e:`missions/${e}`}function c(e){let r=a(e);return`/api/missions/image/${r}`}async function l(e,r){try{let o=a(r);console.log("Deleting mission logo:",{missionId:e,originalPath:r,normalizedPath:o})}catch(o){throw console.error("Error deleting mission logo:",{error:o,missionId:e,logoPath:r,errorType:o instanceof Error?o.constructor.name:typeof o,message:o instanceof Error?o.message:String(o)}),o}}async function u(e){try{let{DeleteObjectCommand:r}=await Promise.resolve().then(o.t.bind(o,91043,23)),n=a(e),t=n.replace(/^missions\//,"");console.log("Deleting mission attachment:",{originalPath:e,normalizedPath:n,minioPath:t});let i=new r({Bucket:"missions",Key:t});await s.send(i),console.log("Mission attachment deleted successfully:",t)}catch(r){throw console.error("Error deleting mission attachment:",{error:r,filePath:e,errorType:r instanceof Error?r.constructor.name:typeof r,message:r instanceof Error?r.message:String(r)}),r}}async function f(e,r,o){try{console.log("Starting logo upload:",{userId:e,missionId:r,fileName:o.name,fileSize:o.size,fileType:o.type});let i=o.name.substring(o.name.lastIndexOf(".")),a=t(e,r,i),c=a.replace(/^missions\//,""),l=await o.arrayBuffer(),u=Buffer.from(l);return console.log("Uploading to Minio:",{bucket:"missions",key:c,contentType:o.type}),await s.send(new n.PutObjectCommand({Bucket:"missions",Key:c,Body:u,ContentType:o.type,ACL:"public-read"})),console.log("Logo upload successful:",{filePath:a,minioPath:c}),{filePath:a}}catch(n){throw console.error("Error uploading mission logo:",{error:n,userId:e,missionId:r,fileName:o.name,errorType:n instanceof Error?n.constructor.name:typeof n,message:n instanceof Error?n.message:String(n)}),n}}async function m(e,r,o){try{console.log("Starting attachment upload:",{userId:e,missionId:r,fileName:o.name,fileSize:o.size,fileType:o.type});let t=i(e,r,o.name),a=t.replace(/^missions\//,""),c=await o.arrayBuffer(),l=Buffer.from(c);return console.log("Uploading to Minio:",{bucket:"missions",key:a,contentType:o.type}),await s.send(new n.PutObjectCommand({Bucket:"missions",Key:a,Body:l,ContentType:o.type,ACL:"public-read"})),console.log("Attachment upload successful:",{filePath:t,minioPath:a}),{filename:o.name,filePath:t,fileType:o.type,fileSize:o.size}}catch(n){throw console.error("Error uploading mission attachment:",{error:n,userId:e,missionId:r,fileName:o.name,errorType:n instanceof Error?n.constructor.name:typeof n,message:n instanceof Error?n.message:String(n)}),n}}async function d(e,r,o){throw t(e,r,o).replace(/^missions\//,""),Error("Presigned URL generation not implemented")}async function p(e,r,o){throw i(e,r,o).replace(/^missions\//,""),Error("Presigned URL generation not implemented")}},25037:(e,r,o)=>{"use strict";o.d(r,{_:()=>s});var n=o(70762);let s=n.z.object({NODE_ENV:n.z.enum(["development","test","production"]).default("development"),DATABASE_URL:n.z.string().url(),NEWSDB_URL:n.z.string().regex(/^postgresql:\/\//,"Must be a valid PostgreSQL URL"),NEWS_API_URL:n.z.string().url(),KEYCLOAK_CLIENT_ID:n.z.string(),KEYCLOAK_CLIENT_SECRET:n.z.string(),KEYCLOAK_REALM:n.z.string(),KEYCLOAK_ISSUER:n.z.string().url(),LEANTIME_TOKEN:n.z.string(),LEANTIME_API_URL:n.z.string().url(),ROCKET_CHAT_TOKEN:n.z.string(),ROCKET_CHAT_USER_ID:n.z.string()}).parse(process.env)},26690:(e,r,o)=>{"use strict";o.d(r,{N:()=>a});var n=o(1926),s=o(10591);function t(e){let r=process.env[e];if(!r)throw Error(`Missing required environment variable: ${e}`);return r}async function i(e){try{let r=await fetch(`${process.env.KEYCLOAK_ISSUER}/protocol/openid-connect/token`,{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:process.env.KEYCLOAK_CLIENT_ID,client_secret:process.env.KEYCLOAK_CLIENT_SECRET,grant_type:"refresh_token",refresh_token:e.refreshToken||""}),method:"POST"}),o=await r.json();if(!r.ok){if("invalid_grant"===o.error||o.error_description?.includes("Session not active")||o.error_description?.includes("Token is not active"))return console.log("Keycloak session invalidated (likely logged out from iframe), marking token for removal"),{...e,error:"SessionNotActive"};throw o}return{...e,accessToken:o.access_token,refreshToken:o.refresh_token??e.refreshToken,idToken:e.idToken,accessTokenExpires:Date.now()+1e3*o.expires_in}}catch(r){if(console.error("Error refreshing access token:",r),r?.error==="invalid_grant"||r?.error_description?.includes("Session not active")||r?.error_description?.includes("Token is not active"))return{...e,error:"SessionNotActive"};return{...e,error:"RefreshAccessTokenError"}}}let a={providers:[(0,n.A)({clientId:t("KEYCLOAK_CLIENT_ID"),clientSecret:t("KEYCLOAK_CLIENT_SECRET"),issuer:t("KEYCLOAK_ISSUER"),authorization:{params:{scope:"openid profile email roles"}},profile(e){console.log("Keycloak profile callback:",{rawProfile:e,rawRoles:e.roles,realmAccess:e.realm_access,groups:e.groups});let r=e.realm_access?.roles||[];console.log("Profile callback raw roles:",r);let o=r.map(e=>e.replace(/^ROLE_/,"").toLowerCase());return console.log("Profile callback cleaned roles:",o),{id:e.sub,name:e.name??e.preferred_username,email:e.email,first_name:e.given_name??"",last_name:e.family_name??"",username:e.preferred_username??e.email?.split("@")[0]??"",role:o}}})],session:{strategy:"jwt",maxAge:2592e3},callbacks:{async jwt({token:e,account:r,profile:o}){if(r&&o){let n=(o.realm_access?.roles||[]).map(e=>e.replace(/^ROLE_/,"").toLowerCase());e.accessToken=r.access_token??"",e.refreshToken=r.refresh_token??"",e.idToken=r.id_token??"",e.accessTokenExpires=r.expires_at??0,e.sub=o.sub,e.role=n,e.username=o.preferred_username??"",e.first_name=o.given_name??"",e.last_name=o.family_name??""}else if(e.accessToken)try{let r=(0,s.s)(e.accessToken);r.realm_access?.roles&&(e.role=r.realm_access.roles.map(e=>e.replace(/^ROLE_/,"").toLowerCase()))}catch(e){console.error("Error decoding token:",e)}let n=e.accessTokenExpires;if(n&&Date.now(){},79464:(e,r,o)=>{"use strict";o.d(r,{z:()=>t});var n=o(96330),s=o(25037);let t=globalThis.prisma||new n.PrismaClient({datasources:{db:{url:s._.DATABASE_URL}},log:["query"]})},96487:()=>{}};