1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{};e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];if(null!=r)for(var s in r)r.hasOwnProperty(s)&&(e[s]=r[s])}return e}({},e._sentryModuleMetadata[(new e.Error).stack],{"_sentryBundlerPluginAppKey:mentortools-frontend":!0});var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="91f5ac7a-3b37-4e5b-8bd0-7bf879a9cdf2",e._sentryDebugIdIdentifier="sentry-dbid-91f5ac7a-3b37-4e5b-8bd0-7bf879a9cdf2")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9837],{7425:(e,t,r)=>{"use strict";r.d(t,{e:()=>c,p:()=>u});var s=r(67768),a=r(74359),n=r(40097),i=r(78160),o=r(53497),l=r(20231);let d=e=>{let t=e.liveNow?(0,i.u)(e.liveNow):void 0,r=e.upcoming.map(e=>(0,i.u)(e)),s=e.past.map(e=>(0,i.u)(e));return{liveStream:t,upcomingStreams:r,pastStreams:s,streams:[...t?[t]:[],...r,...s]}},u=()=>{let e=(0,s.jE)(),t=(0,a.I)({queryKey:o.t.list.queryKey,queryFn:()=>l.U.listLiveStreams(),select:d,refetchInterval:15e3}),r=(0,n.n)({mutationFn:e=>l.U.scheduleLiveStream(e),onSuccess:()=>{e.invalidateQueries({queryKey:o.t.list.queryKey})}});return{streams:t.data?.streams??[],liveStream:t.data?.liveStream,upcomingStreams:t.data?.upcomingStreams??[],pastStreams:t.data?.pastStreams??[],getStreamById:e=>{if(!e||!t.data)return;let r=`${e}`;return t.data.streams.find(e=>e.id===r)},scheduleStream:e=>r.mutateAsync(e),isLoading:t.isLoading,isError:t.isError,error:t.error,isScheduling:r.isPending,refetch:t.refetch}},c=e=>{let{getStreamById:t,isLoading:r}=u(),s=e?`${e}`:void 0,n=t(s),d=(0,a.I)({queryKey:o.t.detail(s??"").queryKey,queryFn:()=>l.U.getLiveStream(s),enabled:!!s&&!n&&!r,select:i.u});return{stream:n??d.data,isLoading:r||d.isLoading,isError:d.isError,error:d.error}}},13816:(e,t,r)=>{"use strict";r.d(t,{FV:()=>u,Io:()=>c,Rv:()=>l,Zu:()=>d,j3:()=>y,vi:()=>m,xK:()=>o});var s=r(69884),a=r(22870);let n=/\/live\/([^/?#]+)\/(?:studio|recap)\/?/,i=/\/customer\/live\/([^/?#]+)\/?/;function o(e){let t=e.query.streamSessionId;if("string"==typeof t&&t)return t;if(Array.isArray(t)&&t[0])return t[0];let r=e.query.streamId;if("string"==typeof r&&r)return r;if(Array.isArray(r)&&r[0])return r[0];let s=e.asPath.match(n)??e.asPath.match(i);return s?.[1]}function l(e){let t=e.query.startNow;return"1"===t||"true"===t}function d(e){return"1"===e.query.recordOnStart}function u(e,t){let r={...e.query};return t?r.recordOnStart="1":delete r.recordOnStart,e.replace({pathname:e.pathname,query:r},void 0,{shallow:!0})}function c(e,t){let r=`/live/${e}/studio/`,s=new URLSearchParams;t?.startNow&&s.set("startNow","1"),t?.recordOnStart&&s.set("recordOnStart","1");let a=s.toString();return a?`${r}?${a}`:r}let m=e=>s.C.customerLive.replace("[streamId]",encodeURIComponent(e)),y=e=>{var t;return(t=m(e),new URL((0,a.ZM)(t),window.location.origin)).toString()}},20231:(e,t,r)=>{"use strict";r.d(t,{U:()=>b});var s=r(81495),a=r(48711),n=r(78028),i=r(22870),o=r(90154),l=r(10881);let d=()=>{let e=l.A.getUser()?.portal?.id;if(null!=e)return String(e);throw Error("Portal session required â sign in to use Live Studio.")},u=e=>{if(!(0,a.F0)(e)||!e.response)return e;let t=(e=>{if("string"==typeof e)return e;if(null==e)return"";try{return JSON.stringify(e)}catch{return String(e)}})(e.response.data);return 401===e.response.status?Error("Unauthorized â the portal session is missing or expired."):t.trimStart().startsWith("<!DOCTYPE")||t.trimStart().startsWith("<html")?Error("Request hit the Next.js app instead of streaming-service. Set NEXT_PUBLIC_STREAMING_SERVICE_URL=https://live.<host> (with CORS_ORIGINS on the server) or fix STREAMING_SERVICE_PROXY_URL in .env.local and restart npm run dev."):Error(`streaming-service ${e.response.status}: ${t.slice(0,300)}`)},c=e=>{if(!(0,a.F0)(e)||!e.response)return e;let t=e.response.data;return Error("object"==typeof t&&null!==t&&"error"in t?String(t.error):`streaming-service ${e.response.status}`)},m=e=>{let t=n.A.create({withCredentials:!0,baseURL:o.A.streamingServiceUrl?.replace(/\/+$/,"")}
1),r="control"===e,s=r?u:c;return t.interceptors.request.use(e=>{var t;let s,a=l.A.getUserToken();if(e.headers.Authorization=`Bearer ${a}`,s=(t=e.url||"").startsWith("/")?t:`/${t}`,e.url=o.A.streamingServiceUrl&&"same-origin"!==o.A.streamingServiceUrl||s.endsWith("/")?s:`${s}/`,e.baseURL=o.A.streamingServiceUrl?.replace(/\/+$/,""),r){e.headers["x-mentor-id"]=d();let t=o.A.streamingControlSecret||"";t&&(e.headers["x-service-secret"]=t)}return e}),t.interceptors.response.use(e=>e,e=>Promise.reject(s(e))),t},y=m("control"),p=m("viewer"),v=(e,t)=>`${(()=>{let e=o.A.streamingWsUrl||o.A.streamingServiceUrl;if(e&&"same-origin"!==e)return e.replace(/^http/,"ws").replace(/\/+$/,"");{let e="https:"===window.location.protocol?"wss:":"ws:";return`${e}//${window.location.host}${(0,i.ZM)("/")}`.replace(/\/+$/,"")}})()}${e}?${t.toString()}`,S=e=>`/v1/livekit/rooms/${encodeURIComponent(e)}`,h=(e,t)=>`/v1/livekit/rooms/${encodeURIComponent(e)}/participants/${encodeURIComponent(t)}`,g=e=>`/v1/livekit/invites/${encodeURIComponent(e)}`,f="/v1/live_streams",w=e=>`/v1/live_streams/${encodeURIComponent(e)}`,I=e=>`/v1/stream-sessions/${encodeURIComponent(e)}`,b={createLivekitRoom:async e=>{let t={displayName:e.displayName};e.title&&(t.title=e.title),(0,s.Yf)(e.streamSessionId)&&(t.streamSessionId=e.streamSessionId);let{data:r}=await y.post("/v1/livekit/rooms",t);return r},stopLivekitRoom:async e=>{let{data:t}=await y.post(`${S(e)}/stop`);return t},stopStreamSession:async e=>{let{data:t}=await y.post(`${I(e)}/stop`);return t},getStreamSession:async e=>{let{data:t}=await y.get(I(e));return t},startRecording:async e=>{let{data:t}=await y.post(`${I(e)}/recording/start`);return t},stopRecording:async e=>{let{data:t}=await y.post(`${I(e)}/recording/stop`);return t},createLivekitInvite:async e=>{let{data:t}=await y.post(`${S(e.roomName)}/invites`,{displayName:e.displayName,ttlMs:e.ttlMs});return t},grantScreenShare:async e=>{let{data:t}=await y.post(`${h(e.roomName,e.identity)}/screenshare`,{allow:e.allow});return t},setParticipantMuted:async e=>{let{data:t}=await y.post(`${h(e.roomName,e.identity)}/mute`,{source:e.source,muted:e.muted});return t},removeParticipant:async e=>{let{data:t}=await y.post(`${h(e.roomName,e.identity)}/remove`);return t},setScreenShareMode:async e=>{let{data:t}=await y.post(`${S(e.roomName)}/screenshare-mode`,{mode:e.mode});return t},getLiveStreamRecap:async e=>{let t,{data:r}=await y.get((t=e,`/v1/live_stream/${encodeURIComponent(t)}/recap`));return r},listLiveStreams:async()=>{let{data:e}=await y.get(f);return e},scheduleLiveStream:async e=>{let{data:t}=await y.post(f,e);return t},updateLiveStream:async(e,t)=>{let{data:r}=await y.patch(w(e),t);return r},getLiveStream:async e=>{let{data:t}=await y.get(w(e));return t},listPublicLiveStreams:async()=>{let{data:e}=await p.get("/v1/live/streams");return e.items??[]},buildAudienceStudioWsUrl:e=>{var t;let r,s;return t=`${S(e)}/audience/studio`,r=new URLSearchParams({mentorId:d()}),(s=o.A.streamingControlSecret||"")&&r.set("secret",s),v(t,r)},buildAudienceViewerWsUrl:(e,t)=>v(`${S(e)}/audience`,new URLSearchParams({displayName:t})),peekLivekitInvite:async e=>{let{data:t}=await p.get(g(e));return t},acceptLivekitInvite:async e=>{let{data:t}=await p.post(`${g(e)}/accept`);return t}}},29458:(e,t,r)=>{"use strict";r.r(t),r.d(t,{__N_SSP:()=>S,default:()=>h});var s=r(37876),a=r(14232),n=r(18847),i=r.n(n),o=r(89099),l=r(79378),d=r(66950),u=r(31941),c=r(12772),m=r(7425),y=r(13816);let p=i()(()=>Promise.all([r.e(2456),r.e(6924),r.e(1034)]).then(r.bind(r,1034)).then(e=>e.LiveStudio),{loadableGenerated:{webpack:()=>[1034]},ssr:!1,loading:()=>(0,s.jsx)(c.A,{})});class v extends a.Component{static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e){console.error("[LiveStudio] render error:",e)}render(){return this.state.error?(0,s.jsx)(d.A,{sx:{p:6},"data-sentry-element":"Box","data-sentry-component":"StudioErrorBoundary","data-sentry-source-file":"studio.tsx",children:(0,s.jsxs)(l.A,{severity:"error","data-sentry-element":"Alert","data-sentry-source-file":"studio.tsx",children:[(0,s.jsx)(u.A,{variant:"subtitle2","data-sentry-element":"Typography","data-sentry-source-file":"studio.tsx",children:"Studio failed to render"}),(0,s.jsx)(u.A,{variant:"body2",sx:{mt:1,whiteSpace:"pre-wrap"},"data-sentry-element":"Typography","data-sentry-source-file":"studio.tsx",children:this.state.error.message})]})}):this.props.children}constructor(...e){super(...e),this.state={error:null}}}var S=!0;let h=()=>{let e=(0,o.useRouter)(),t=(0,y.xK)(e),{stream:r,isLoading:a}=(0,m.e)(t);return!e.isReady||a?(0,s.jsx)(c.A,{}):r?(0,s.jsx)(v,{"data-sentry-element":"StudioErrorBoundary","data-sentry-component":"LiveStudioPage","data-sentry-source-file":"studio.tsx",children:(0,s.jsx)(p,{stream:r,"data-sentry-element":"LiveStudio","data-sentry-source-file":"studio.tsx"},r.id)}):(0,s.jsx)(d.A,{sx:{p:6},children:(0,s.jsxs)(l.A,{severity:"warning",children:[(0,s.jsxs)(u.A,{variant:"subtitle2",children:["Stream not found: ",String(t)]}),(0,s.jsxs)(u.A,{variant:"body2",sx:{mt:1},children:["pathname: ",e.pathname]}),(0,s.jsxs)(u.A,{variant:"body2",children:["asPath: ",e.asPath]}),(0,s.jsxs)(u.A,{variant:"body2",children:["query: ",JSON.stringify(e.query)]})]})})}},53497:(e,t,r)=>{"use strict";r.d(t,{t:()=>s});let s=(0,r(84961).DY)("liveStreams",{list:null,publicList:null,detail
1:e=>({queryKey:[e]}),recording:e=>({queryKey:[e]}),recap:e=>({queryKey:[e]}),invite:e=>({queryKey:[e]})})},63338:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/live/[streamId]/studio",function(){return r(29458)}])},78160:(e,t,r)=>{"use strict";r.d(t,{u:()=>n});var s=r(84409),a=r(81495);function n(e,t=""){var r;let i=e.scheduledAt,o=i?(0,s.QF)(i,e.timezone):(0,s.QF)(new Date().toISOString(),e.timezone);return{id:e.id,title:e.title,description:e.description??"",status:(0,a.MM)(e.status),sessionStatus:e.status,host:t,source:"screen"===(r=e.inputType)?"screen":"cam_screen"===r?"cam_screen":"camera",scheduledAt:i,timezone:e.timezone,roomName:e.roomName,playbackUrl:e.playbackUrl,startedAt:e.startedAt,endedAt:e.endedAt,courseId:e.courseId,lessonId:e.lessonId,communityId:e.communityId??null,coverImageId:e.coverImageId??null,...o,rsvps:e.rsvpCount,viewers:e.viewerCount}}},81495:(e,t,r)=>{"use strict";r.d(t,{KS:()=>o,MM:()=>l,Yf:()=>i});let s=["awaiting_publisher","live","recording"],a=["stopped","failed","ready-for-agent"],n=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,i=e=>!!(e&&n.test(e));function o(e){return s.includes(e)}function l(e){return o(e)?"live":a.includes(e)?"completed":"scheduled"}},84409:(e,t,r)=>{"use strict";r.d(t,{DM:()=>i,QF:()=>n,bf:()=>o});var s=r(24648),a=r(46940);function n(e,t){let r=t||a.nn,n=(0,s.qD)(e,r,"MMM").toUpperCase(),i=(0,s.qD)(e,r,"dd"),o=(0,s.qD)(e,r,"HH:mm"),l=(0,s.qD)(e,r,"MMM d, yyyy");return{month:n,day:i,time:o,dateLabel:`${l} \xb7 ${o}`}}function i(e,t){let r=(0,a.y_)({date:e,fromTZ:a.nn,toTZ:t});return(0,s.qD)(r,t,"yyyy-MM-dd'T'HH:mm:ssXXX")}function o(e){let t=new Date;return e?(0,s.qD)(t,e,"yyyy-MM-dd'T'HH:mm:ssXXX"):t.toISOString()}}},e=>{e.O(0,[636,6593,8792],()=>e(e.s=63338)),_N_E=e.O()}]); 2//# sourceMappingURL=studio-db86f790307be6b8.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.