1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[85],{12466:(e,t,r)=>{r.d(t,{Ay:()=>P,bZ:()=>R,fE:()=>_,iD:()=>S,jJ:()=>T,ki:()=>v,qT:()=>k,ve:()=>E,yd:()=>N});var a=r(91620),n=r(32587),o=r(12870),i=r(45740),s=r(22785),c=r(86202);let l=n.Ii.isNativePlatform(),u="https://api.theclub.ee",d=(0,s.R)(u),w=o.A.create({baseURL:u,withCredentials:!l,headers:{"Content-Type":"application/json",...d}}),h=["/doors/open","/me/access/open-turnstile","/access/unlock","/voucher-open-door"],m=null,g=null,p=!1,f=[],y=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;f.forEach(r=>{let{resolve:a,reject:n}=r;e?n(e):a(t)}),f=[]},I=async()=>{try{if(l){let e=await E();if(!e)throw Error("NO_REFRESH_TOKEN");let t={url:"".concat(u,"/api/v1/refresh"),headers:{"X-Refresh-Token":e||"","Content-Type":"application/json",...d},method:"POST"},r=await n.pX.post(t),a=r.data.data.access_token,o=r.data.data.refresh_token,i=r.data.data.user,s=r.data.data.organizations;if(a)return await v(a),await _(o),window.dispatchEvent(new CustomEvent("auth:user-updated",{detail:{user:i,token:a,organizations:s}})),a}else{let e=await o.A.post("".concat(u,"/api/v1/refresh"),{},{withCredentials:!0,headers:d}),t=e.data.data.access_token,r=e.data.data.refresh_token,a=e.data.data.user,n=e.data.data.organizations;if(t)return await v(t),await _(r),window.dispatchEvent(new CustomEvent("auth:user-updated",{detail:{user:a,token:t,organizations:n}})),t}return null}catch(r){var e,t;throw(null==(e=r.response)?void 0:e.status)===401||(null==(t=r.response)?void 0:t.status)===403||"NO_REFRESH_TOKEN"===r.message?(await R(),l&&await N(),window.dispatchEvent(new CustomEvent("auth:logout"))):console.log("Network/temporary error - keeping tokens, will retry on next request"),r}},v=async e=>{(0,i.s8)()||(g=e,l?await a.I.setItem("access_token",e):localStorage.setItem("access_token",e))},_=async e=>{if(l)try{await a.I.setItem("rt",e)}catch(e){throw Error("Failed to securely store authentication. Please try again.")}},S=()=>g,k=()=>!!g||(0,i.s8)(),E=async()=>{if(!l)return null;try{return await a.I.getItem("rt")||null}catch(e){return null}},R=async()=>{g=null,l?await a.I.removeItem("access_token"):localStorage.removeItem("access_token")},N=async()=>{l&&await a.I.removeItem("rt")},T=async()=>{try{let e=null;if(e=l?await a.I.getItem("access_token"):localStorage.getItem("access_token"))return g=e,e;return null}catch(e){return null}};w.interceptors.request.use(async e=>{if((0,i.s8)()){let t=(0,i.Qg)();return t&&(e.headers.Authorization="Bearer ".concat(t)),e}if((e=>!!e&&h.some(t=>e.includes(t)))(e.url)){let t=await (!m&&(m=(0,c.oT)().catch(()=>"")),m);t&&(e.headers["X-Device-Id"]=t)}let t=g;return t||(t=await T()),t&&(e.headers.Authorization="Bearer ".concat(t)),e},e=>Promise.reject(e));let C=async e=>{var t,r,a;let n=null==e?void 0:e.data;if(n){if("undefined"!=typeof Blob&&n instanceof Blob)try{let e=await n.text();return null==(a=JSON.parse(e))||null==(r=a.error)?void 0:r.code}catch(e){return}return null==n||null==(t=n.error)?void 0:t.code}};w.interceptors.response.use(e=>e,async e=>{var t;let r=e.config,a=await C(e.response);if((null==(t=e.response)?void 0:t.status)===401&&"TOKEN_INVALID"===a&&!r._retry){if((0,i.s8)())return(0,i.TD)(),window.dispatchEvent(new CustomEvent("auth:impersonation-ended")),Promise.reject(e);if(!g)return Promise.reject(e);if(p)return new Promise((e,t)=>{f.push({resolve:e,reject:t})}).then(e=>(e&&(r.headers.Authorization="Bearer ".concat(e)),w(r))).catch(e=>Promise.reject(e));r._retry=!0,p=!0;try{let e=await I(),t=await E();if(y(null,e),e)return r.headers.Authorization="Bearer ".concat(e),l&&(r.headers["X-Refresh-Token"]=t||""),w(r)}catch(e){return y(e,null),Promise.reject(e)}finally{p=!1}}return Promise.reject(e)});let P=w},22785:(e,t,r)=>{r.d(t,{R:()=>a});function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"https://api.theclub.ee";return e&&e.includes("ngrok")?{"ngrok-skip-browser-warning":"true"}:{}}},45740:(e,t,r)=>{r.d(t,{Qg:()=>u,TD:()=>d,dy:()=>s,hN:()=>c,s8:()=>l});let a="imp_at",n="imp_sid",o="imp_name",i="imp_kind";function s(){var e,t,r;let s=window.location.hash;if(!s||!s.includes("imp_at="))return null;
1let c=new URLSearchParams(null!=(e=s.replace(/^#/,"").split("?").pop())?e:""),l=c.get("imp_at"),u=c.get("imp_sid"),d=null!=(t=c.get("imp_name"))?t:"",w="guardian"===(null!=(r=c.get("imp_kind"))?r:"admin")?"guardian":"admin";if(!l||!u)return null;try{window.sessionStorage.setItem(a,l),window.sessionStorage.setItem(n,u),window.sessionStorage.setItem(o,d),window.sessionStorage.setItem(i,w)}catch(e){}try{let e=window.location.pathname+window.location.search;window.history.replaceState(null,"",e)}catch(e){}return{token:l,sessionId:Number(u),subjectName:d,kind:w}}function c(){try{let e=window.sessionStorage.getItem(i);return"guardian"===e?"guardian":"admin"}catch(e){return"admin"}}function l(){try{return!!window.sessionStorage.getItem(a)}catch(e){return!1}}function u(){try{return window.sessionStorage.getItem(a)}catch(e){return null}}function d(){try{window.sessionStorage.removeItem(a),window.sessionStorage.removeItem(n),window.sessionStorage.removeItem(o),window.sessionStorage.removeItem(i)}catch(e){}}},86202:(e,t,r)=>{r.d(t,{IP:()=>h,oT:()=>d});var a=r(32587),n=r(91620);let o=a.Ii.isNativePlatform(),i="device_session_id",s="dsid",c=()=>{let e=Date.now(),t=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15);return"".concat(e,"-").concat(t)},l=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:365,a=new Date;a.setTime(a.getTime()+24*r*36e5),document.cookie="".concat(e,"=").concat(t,";expires=").concat(a.toUTCString(),";path=/;SameSite=Lax")},u=e=>{let t=e+"=",r=document.cookie.split(";");for(let e=0;e<r.length;e++){let a=r[e];for(;" "===a.charAt(0);)a=a.substring(1,a.length);if(0===a.indexOf(t))return a.substring(t.length,a.length)}return null},d=async()=>{try{let e=null;return(e=o?await n.I.getItem(i)||null:u(s))||(e=c(),await w(e)),e}catch(e){return c()}},w=async e=>{try{o?await n.I.setItem(i,e):l(s,e,365)}catch(e){throw e}},h=async()=>{try{if(o)return await n.I.getItem(i)||"";return u(s)||""}catch(e){return""}}},91620:(e,t,r)=>{r.d(t,{I:()=>c});var a=r(32587),n=r(4077),o=r(84956);let i=a.Ii.isNativePlatform(),s=new Set(["rt","access_token"]),c={async setItem(e,t){i&&s.has(e)?await o.C.set({key:e,value:t}):i?await n.p.set({key:e,value:t}):"rt"!==e&&localStorage.setItem(e,t)},async getItem(e){if(i&&s.has(e))try{let{value:t}=await o.C.get({key:e});return t}catch(e){return null}if(i)try{let{value:t}=await n.p.get({key:e});return t}catch(e){return null}if("rt"!==e)return localStorage.getItem(e)},async removeItem(e){if(i&&s.has(e))try{await o.C.remove({key:e})}catch(t){console.error("ERROR: SecureStorage remove failed for ".concat(e),t)}else if(i)try{await n.p.remove({key:e})}catch(t){console.error("ERROR: Preferences remove failed for ".concat(e),t)}else"rt"!==e&&localStorage.removeItem(e)},async clear(){if(i)try{await n.p.clear(),await o.C.clear()}catch(e){console.log("ERROR: Failed to clear storage",e)}else localStorage.clear()}}}}]);
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.