1 line
11 KiB
JavaScript

(()=>{var a={};a.id=276,a.ids=[276],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3333:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x,POST:()=>w});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(14710);async function w(a){try{let{roomId:b,message:c,username:d,platform:e}=await a.json();if(!b||!c||!d)return u.NextResponse.json({error:"Room ID, message, and username are required"},{status:400});let f={id:Date.now().toString(),roomId:b,username:d,message:c,platform:e||"web",timestamp:new Date().toISOString()};return await v.l.storeChatMessage(b,f),await v.l.publish(`chat:${b}`,f),u.NextResponse.json({success:!0,message:f})}catch(a){return console.error("Error posting chat message:",a),u.NextResponse.json({error:"Failed to post message"},{status:500})}}async function x(a){try{let{searchParams:b}=new URL(a.url),c=b.get("roomId"),d=parseInt(b.get("limit")||"50");if(!c)return u.NextResponse.json({error:"Room ID is required"},{status:400});let e=await v.l.getChatMessages(c,d);return u.NextResponse.json({success:!0,messages:e,count:e.length})}catch(a){return console.error("Error getting chat messages:",a),u.NextResponse.json({error:"Failed to get messages"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/chat/route",pathname:"/api/chat",filename:"route",bundlePath:"app/api/chat/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/xesar/Documentos/Nextream/AvanzaCast/src/app/api/chat/route.ts",nextConfigOutput:"",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/chat/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(L||b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14710:(a,b,c)=>{"use strict";c.d(b,{l:()=>h});var d=c(50453),e=c.n(d),f=c(81355);class g{constructor(){this.client=new(e())({host:f.$W.redis.host,port:f.$W.redis.port,password:f.$W.redis.password}),this.client.on("connect",()=>{console.log("✅ Redis connected successfully")}),this.client.on("error",a=>{console.error("❌ Redis connection error:",a)})}async storeChatMessage(a,b){let c=`chat:${a}`;await this.client.lpush(c,JSON.stringify(b)),await this.client.ltrim(c,0,99)}async getChatMessages(a,b=50){let c=`chat:${a}`;return(await this.client.lrange(c,0,b-1)).map(a=>JSON.parse(a)).reverse()}async storeSession(a,b,c=86400){let d=`session:${a}`;await this.client.setex(d,c,JSON.stringify(b))}async getSession(a){let b=`session:${a}`,c=await this.client.get(b);return c?JSON.parse(c):null}async deleteSession(a){let b=`session:${a}`;await this.client.del(b)}async cacheStreamMetadata(a,b,c=3600){let d=`stream:${a}`;await this.client.setex(d,c,JSON.stringify(b))}async getCachedStreamMetadata(a){let b=`stream:${a}`,c=await this.client.get(b);return c?JSON.parse(c):null}async addRoomParticipant(a,b,c){let d=`room:participants:${a}`;await this.client.hset(d,b,JSON.stringify(c))}async removeRoomParticipant(a,b){let c=`room:participants:${a}`;await this.client.hdel(c,b)}async getRoomParticipants(a){let b=`room:participants:${a}`;return Object.entries(await this.client.hgetall(b)).map(([a,b])=>({id:a,...JSON.parse(b)}))}async setWithExpiry(a,b,c){await this.client.setex(a,c,JSON.stringify(b))}async get(a){let b=await this.client.get(a);return b?JSON.parse(b):null}async delete(a){await this.client.del(a)}async increment(a){return await this.client.incr(a)}async publish(a,b){await this.client.publish(a,JSON.stringify(b))}async subscribe(a,b){let c=this.client.duplicate();await c.subscribe(a),c.on("message",(c,d)=>{c===a&&b(JSON.parse(d))})}async disconnect(){await this.client.quit()}}let h=new g},14985:a=>{"use strict";a.exports=require("dns")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34631:a=>{"use strict";a.exports=require("tls")},41204:a=>{"use strict";a.exports=require("string_decoder")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},79428:a=>{"use strict";a.exports=require("buffer")},79551:a=>{"use strict";a.exports=require("url")},81355:(a,b,c)=>{"use strict";c.d(b,{$W:()=>d});let d={app:{name:"AvanzaCast",url:"http://localhost:3000",env:"production"},auth:{secret:process.env.NEXTAUTH_SECRET,url:process.env.NEXTAUTH_URL||"http://localhost:3000"},livekit:{apiKey:process.env.LIVEKIT_API_KEY,apiSecret:process.env.LIVEKIT_API_SECRET,url:process.env.LIVEKIT_URL},redis:{host:process.env.MEET_REDIS_HOST||"localhost",port:parseInt(process.env.MEET_REDIS_PORT||"6379"),password:process.env.MEET_REDIS_PASSWORD},s3:{mode:process.env.MEET_BLOB_STORAGE_MODE||"s3",endpoint:process.env.MEET_S3_SERVICE_ENDPOINT,accessKey:process.env.MEET_S3_ACCESS_KEY,secretKey:process.env.MEET_S3_SECRET_KEY,bucket:process.env.MEET_S3_BUCKET||"avanzacast",pathStyleAccess:"true"===process.env.MEET_S3_WITH_PATH_STYLE_ACCESS},database:{url:process.env.DATABASE_URL},platforms:{youtube:{clientId:process.env.YOUTUBE_CLIENT_ID,clientSecret:process.env.YOUTUBE_CLIENT_SECRET},facebook:{appId:process.env.FACEBOOK_APP_ID,appSecret:process.env.FACEBOOK_APP_SECRET},twitch:{clientId:process.env.TWITCH_CLIENT_ID,clientSecret:process.env.TWITCH_CLIENT_SECRET},linkedin:{clientId:process.env.LINKEDIN_CLIENT_ID,clientSecret:process.env.LINKEDIN_CLIENT_SECRET}}}},83997:a=>{"use strict";a.exports=require("tty")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[586,930,453],()=>b(b.s=3333));module.exports=c})();