6 lines
6.9 KiB
JavaScript
6 lines
6.9 KiB
JavaScript
;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="6f591477-e033-b362-3828-015dc169c34c")}catch(e){}}();
|
|
module.exports=[64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},688947,(a,b,c)=>{b.exports=a.x("stream",()=>require("stream"))},224534,a=>{"use strict";let b;class c{analytics;errors;cache;logger;notifications;constructor(a,b,c,d,e){this.analytics=a,this.errors=b,this.cache=c,this.logger=d,this.notifications=e}}class d{track(a,b){}trackPageview(a){}}var e=a.i(459341);class f{options;websiteId;endpoint;logger;serverContext;constructor(a,b){this.options=a,this.websiteId=e.config.analytics.umami.websiteId,this.logger=b.child({component:"analytics-umami"}),this.endpoint=e.config.analytics.umami.apiEndpoint,this.logger.debug("Umami service initialized",{enabled:this.options.enabled,websiteId:this.websiteId?"configured":"not configured (client-side proxy mode)",endpoint:this.endpoint})}setServerContext(a){this.serverContext=a}async sendPayload(a,b){if(this.options.enabled){if(!this.websiteId)return void this.logger.warn("Umami tracking called on server but no Website ID configured");try{let c={website:this.websiteId,hostname:"server",screen:void 0,language:this.serverContext?.language,referrer:this.serverContext?.referrer,title:void 0,...b};this.logger.trace("Sending analytics payload",{type:a,url:b.url});let d=new AbortController,e=setTimeout(()=>d.abort(),2e3),f={"Content-Type":"application/json"};this.serverContext?.userAgent?f["User-Agent"]=this.serverContext.userAgent:f["User-Agent"]="KLZ-Server-Proxy",this.serverContext?.ip&&(f["X-Forwarded-For"]=this.serverContext.ip);try{let b=await fetch(`${this.endpoint}/api/send`,{method:"POST",headers:f,body:JSON.stringify({type:a,payload:c}),keepalive:!0,signal:d.signal});if(clearTimeout(e),!b.ok){let a=await b.text();this.logger.warn("Umami API responded with error",{status:b.status,error:a.slice(0,100)})}}catch(a){if(clearTimeout(e),"AbortError"===a.name)this.logger.error("Umami request timed out");else throw a}}catch(a){this.logger.error("Failed to send analytics",{error:a.message})}}}track(a,b){this.sendPayload("event",{name:a,data:b,url:void 0})}trackPageview(a){this.sendPayload("event",{url:a||void 0})}}class g{store=new Map;async get(a){let b=this.store.get(a);if(b)return b.expiresAt&&Date.now()>b.expiresAt?void this.store.delete(a):b.value}async set(a,b,c){let d=c?.ttlSeconds,e=d?Date.now()+1e3*d:void 0;this.store.set(a,{value:b,expiresAt:e})}async del(a){this.store.delete(a)}}class h{options;notifications;logger;sentryPromise;constructor(a,b,c){this.options=a,this.notifications=c,this.sentryPromise=null,this.logger=b.child({component:"error-reporting-glitchtip"}),this.options.enabled&&this.getSentry()}getSentry(){return this.sentryPromise||(this.sentryPromise=a.A(393096).then(a=>a)),this.sentryPromise}async captureException(a,b){if(this.options.enabled){if(this.notifications){let c=a instanceof Error?a.message:String(a),d=b?`
|
|
Context: ${JSON.stringify(b,null,2)}`:"";await this.notifications.notify({title:"🔥 Critical Error Captured",message:`Error: ${c}${d}`,priority:7})}return(await this.getSentry()).captureException(a,b)}}async captureMessage(a,b="error"){if(this.options.enabled)return this.notifications&&("error"===b||"fatal"===b||a.includes("Route Not Found"))&&await this.notifications.notify({title:"warning"===b?"⚠️ Warning Captured":"🔥 Critical Message Captured",message:a,priority:"warning"===b?5:7}),(await this.getSentry()).captureMessage(a,b)}setUser(a){this.options.enabled&&this.getSentry().then(b=>b.setUser(a))}setTag(a,b){this.options.enabled&&this.getSentry().then(c=>c.setTag(a,b))}withScope(a,b){return!this.options.enabled,a()}}class i{async captureException(a,b){}async captureMessage(a,b){}setUser(a){}setTag(a,b){}withScope(a,b){return a()}}class j{config;constructor(a){this.config=a}async notify(a){if(this.config.enabled)try{let{title:b,message:c,priority:d=4}=a,e=new URL("message",this.config.url);e.searchParams.set("token",this.config.token);let f=new AbortController,g=setTimeout(()=>f.abort(),5e3),h=await fetch(e.toString(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:b,message:c,priority:d}),signal:f.signal});if(clearTimeout(g),!h.ok){let a=await h.text();console.error("Gotify notification failed:",{status:h.status,error:a})}}catch(a){console.error("Gotify notification error:",a)}}}class k{async notify(){}}var l=a.i(64293);class m{logger;constructor(a,b){b?this.logger=b.child({name:a}):this.logger=(0,l.default)({name:a||"app",level:e.config.logging.level,transport:void 0})}trace(a,...b){this.logger.trace(a,...b)}debug(a,...b){this.logger.debug(a,...b)}info(a,...b){this.logger.info(a,...b)}warn(a,...b){this.logger.warn(a,...b)}error(a,...b){this.logger.error(a,...b)}fatal(a,...b){this.logger.fatal(a,...b)}child(a){let b=this.logger.child(a),c=Object.create(m.prototype);return c.logger=b,c}}function n(){if(b)return b;if(globalThis.__appServices)return b=globalThis.__appServices;let a=new m("server");a.info("Initializing server application services",{environment:(0,e.getMaskedConfig)(),timestamp:new Date().toISOString()}),a.info("Service configuration",{umamiEnabled:e.config.analytics.umami.enabled,sentryEnabled:e.config.errors.glitchtip.enabled,mailEnabled:!!(e.config.mail.host&&e.config.mail.user),gotifyEnabled:e.config.notifications.gotify.enabled});let l=e.config.analytics.umami.enabled?new f({enabled:!0},a):new d;e.config.analytics.umami.enabled?a.info("Umami analytics service initialized"):a.info("Noop analytics service initialized (analytics disabled)");let n=e.config.notifications.gotify.enabled?new j({url:e.config.notifications.gotify.url,token:e.config.notifications.gotify.token,enabled:!0}):new k;e.config.notifications.gotify.enabled?a.info("Gotify notification service initialized"):a.info("Noop notification service initialized (notifications disabled)");let o=e.config.errors.glitchtip.enabled?new h({enabled:!0,dsn:e.config.errors.glitchtip.dsn,tracesSampleRate:1},a,n):new i;e.config.errors.glitchtip.enabled?a.info("GlitchTip error reporting service initialized",{dsnPresent:!!e.config.errors.glitchtip.dsn}):a.info("Noop error reporting service initialized (error reporting disabled)");let p=new g;return a.info("Memory cache service initialized"),a.info("Pino logger service initialized",{name:"server",level:e.config.logging.level}),globalThis.__appServices=new c(l,o,p,a,n),a.info("All application services initialized successfully"),globalThis.__appServices}a.s(["getServerAppServices",()=>n],224534)},393096,a=>{a.v(a=>Promise.resolve().then(()=>a(305803)))},447461,a=>{a.v(b=>Promise.all(["server/chunks/ssr/468ab_next_dist_compiled_b9b2ac32._.js"].map(b=>a.l(b))).then(()=>b(647800)))}];
|
|
|
|
//# debugId=6f591477-e033-b362-3828-015dc169c34c
|
|
//# sourceMappingURL=%5Broot-of-the-server%5D__99789462._.js.map
|