@tagadapay/plugin-sdk 3.0.12 → 3.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/external-tracker.js +3645 -115
- package/dist/external-tracker.min.js +25 -2
- package/dist/external-tracker.min.js.map +4 -4
- package/dist/react/types.d.ts +2 -0
- package/dist/v2/core/client.d.ts +5 -0
- package/dist/v2/core/client.js +135 -26
- package/dist/v2/core/config/environment.js +6 -0
- package/dist/v2/core/funnelClient.d.ts +27 -1
- package/dist/v2/core/funnelClient.js +124 -23
- package/dist/v2/core/resources/checkout.d.ts +76 -1
- package/dist/v2/core/resources/checkout.js +86 -1
- package/dist/v2/core/resources/funnel.d.ts +45 -4
- package/dist/v2/core/resources/offers.d.ts +26 -0
- package/dist/v2/core/resources/offers.js +37 -0
- package/dist/v2/core/types.d.ts +3 -1
- package/dist/v2/core/utils/authHandoff.d.ts +60 -0
- package/dist/v2/core/utils/authHandoff.js +154 -0
- package/dist/v2/core/utils/deviceInfo.d.ts +20 -3
- package/dist/v2/core/utils/deviceInfo.js +62 -94
- package/dist/v2/core/utils/previewMode.d.ts +4 -0
- package/dist/v2/core/utils/previewMode.js +4 -0
- package/dist/v2/react/hooks/useCheckoutQuery.d.ts +0 -1
- package/dist/v2/react/hooks/useCheckoutQuery.js +12 -4
- package/dist/v2/react/hooks/useFunnelLegacy.js +39 -11
- package/dist/v2/react/hooks/usePreviewOffer.d.ts +3 -3
- package/dist/v2/react/hooks/usePreviewOffer.js +20 -15
- package/dist/v2/react/hooks/useTranslation.js +12 -4
- package/dist/v2/react/providers/TagadaProvider.js +61 -1
- package/dist/v2/standalone/index.d.ts +2 -1
- package/dist/v2/standalone/index.js +2 -1
- package/package.json +3 -1
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* TagadaPay External Tracker v3.0.
|
|
2
|
+
* TagadaPay External Tracker v3.0.15
|
|
3
3
|
* CDN Bundle - Standalone tracking for external pages
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
|
-
"use strict";var TagadaTrackerBundle=(()=>{var ve=Object.defineProperty,Gn=Object.defineProperties,Wn=Object.getOwnPropertyDescriptor,Jn=Object.getOwnPropertyDescriptors,Yn=Object.getOwnPropertyNames,Bt=Object.getOwnPropertySymbols;var $t=Object.prototype.hasOwnProperty,Zn=Object.prototype.propertyIsEnumerable;var X=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Xn=t=>{throw TypeError(t)};var zt=(t,e,n)=>e in t?ve(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,w=(t,e)=>{for(var n in e||(e={}))$t.call(e,n)&&zt(t,n,e[n]);if(Bt)for(var n of Bt(e))Zn.call(e,n)&&zt(t,n,e[n]);return t},N=(t,e)=>Gn(t,Jn(e));var Kt=(t,e)=>{for(var n in e)ve(t,n,{get:e[n],enumerable:!0})},Qn=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Yn(e))!$t.call(t,i)&&i!==n&&ve(t,i,{get:()=>e[i],enumerable:!(r=Wn(e,i))||r.enumerable});return t};var er=t=>Qn(ve({},"__esModule",{value:!0}),t);var W=function(t,e){this[0]=t,this[1]=e},rt=(t,e,n)=>{var r=(s,a,u,d)=>{try{var c=n[s](a),p=(a=c.value)instanceof W,y=c.done;Promise.resolve(p?a[0]:a).then(m=>p?r(s==="return"?s:"next",a[1]?{done:m.done,value:m.value}:m,u,d):u({value:m,done:y})).catch(m=>r("throw",m,u,d))}catch(m){d(m)}},i=s=>o[s]=a=>new Promise((u,d)=>r(s,a,u,d)),o={};return n=n.apply(t,e),o[X("asyncIterator")]=()=>o,i("next"),i("throw"),i("return"),o},it=t=>{var e=t[X("asyncIterator")],n=!1,r,i={};return e==null?(e=t[X("iterator")](),r=o=>i[o]=s=>e[o](s)):(e=e.call(t),r=o=>i[o]=s=>{if(n){if(n=!1,o==="throw")throw s;return s}return n=!0,{done:!1,value:new W(new Promise(a=>{var u=e[o](s);u instanceof Object||Xn("Object expected"),a(u)}),1)}}),i[X("iterator")]=()=>i,r("next"),"throw"in e?r("throw"):i.throw=o=>{throw o},"return"in e&&r("return"),i},Ht=(t,e,n)=>(e=t[X("asyncIterator")])?e.call(t):(t=t[X("iterator")](),e={},n=(r,i)=>(i=t[r])&&(e[r]=o=>new Promise((s,a,u)=>(o=i.call(t,o),u=o.done,Promise.resolve(o.value).then(d=>s({value:d,done:u}),a)))),n("next"),n("return"),e);var Oi={};Kt(Oi,{TagadaExternalTracker:()=>xe,TagadaTracker:()=>Ft});function jt(t){var r;if(typeof document=="undefined")return null;let n="; ".concat(document.cookie).split("; ".concat(t,"="));return n.length===2&&((r=n.pop())==null?void 0:r.split(";").shift())||null}var Vt={production:{baseUrl:"https://app.tagadapay.com",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionStatus:"/api/v1/checkout/session/status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}},development:{baseUrl:"https://app.tagadapay.dev",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionStatus:"/api/v1/checkout/session/status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}},local:{baseUrl:"http://app.localhost:3000",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionStatus:"/api/v1/checkout/session/status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}}};function qt(t="local"){let e=Vt[t];if(!e)return console.warn("Unknown environment: ".concat(t,". Falling back to local.")),{environment:"local",apiConfig:Vt.local};let n=null;if(typeof window!="undefined"&&(n=new URLSearchParams(window.location.search).get("tagadaClientBaseUrl"),!n))try{n=localStorage.getItem("tgd_client_base_url")||jt("tgd_client_base_url")}catch(i){}return n?(console.log("[SDK] Using custom API base URL override: ".concat(n)),{environment:t,apiConfig:N(w({},e),{baseUrl:n})}):{environment:t,apiConfig:e}}function ce(){var i;if(typeof window=="undefined")return"local";let e=new URLSearchParams(window.location.search).get("tagadaClientEnv");if(e&&(e==="production"||e==="development"||e==="local"))return console.log("[SDK] Using explicit environment override: ".concat(e)),e;try{let o=localStorage.getItem("tgd_client_env")||jt("tgd_client_env");if(o&&(o==="production"||o==="development"||o==="local"))return console.log("[SDK] Using persisted environment override: ".concat(o)),o}catch(o){}let n=window.location.hostname,r=window.location.href;if(n==="localhost"||n.startsWith("127.")||n.startsWith("192.168.")||n.startsWith("10.")||n.includes(".local")||n===""||n==="0.0.0.0"){if(typeof window!="undefined"&&((i=window==null?void 0:window.__TAGADA_ENV__)!=null&&i.TAGADA_ENVIRONMENT)){let o=window.__TAGADA_ENV__.TAGADA_ENVIRONMENT.toLowerCase();if(o==="production"||o==="development"||o==="local")return console.log("[SDK] Local override detected: ".concat(o)),o}return"local"}return n==="app.tagadapay.com"||n.includes("tagadapay.com")||n.includes("yourproductiondomain.com")?"production":n==="app.tagadapay.dev"||n.includes("tagadapay.dev")||n.includes("vercel.app")||n.includes("netlify.app")||n.includes("surge.sh")||n.includes("github.io")||n.includes("herokuapp.com")||n.includes("railway.app")||r.includes("?env=dev")||r.includes("?dev=true")||r.includes("#dev")?"development":(console.warn("[SDK] Unknown domain: ".concat(n,", defaulting to production")),"production")}function de(t=!1){return ce()!=="local"?!1:t&&typeof window!="undefined"?!window.location.hostname.includes(".cdn."):!0}var ke=class{constructor(e){this.apiClient=e}async initialize(e){return this.apiClient.post("/api/v1/funnel/initialize",e)}async navigate(e){return this.apiClient.post("/api/v1/funnel/navigate",e)}async updateContext(e,n){return this.apiClient.patch("/api/v1/funnel/context/".concat(e),n)}async endSession(e){return this.apiClient.delete("/api/v1/funnel/session/".concat(e))}async getSession(e,n,r){let i=new URLSearchParams;n&&i.append("currentUrl",n),r&&i.append("includeDebugData","true");let o="/api/v1/funnel/session/".concat(e).concat(i.toString()?"?".concat(i):"");return this.apiClient.get(o)}};var Q=class{constructor(){this.listeners=new Set}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(e){this.listeners.forEach(n=>{try{n(e)}catch(r){console.error("Error in event listener:",r)}})}clear(){this.listeners.clear()}};var ot="tgd-funnel-session-id";function Gt(t){typeof document!="undefined"&&(document.cookie="".concat(ot,"=").concat(t,"; path=/; max-age=2592000; SameSite=Lax"))}function Wt(){if(typeof document=="undefined")return;let t=document.cookie.split("; ").find(e=>e.startsWith("".concat(ot,"=")));return t?t.split("=")[1]:void 0}function Jt(){typeof document!="undefined"&&(document.cookie="".concat(ot,"=; path=/; max-age=0"))}var st="cms_token";function J(t){if(typeof window!="undefined")try{localStorage.setItem(st,t),window.dispatchEvent(new Event("storage"))}catch(e){console.error("Failed to save token to localStorage:",e)}}function fe(){if(typeof window!="undefined")try{return localStorage.getItem(st)}catch(t){return console.error("Failed to get token from localStorage:",t),null}return null}function De(){if(typeof window!="undefined")try{localStorage.removeItem(st)}catch(t){console.error("Failed to clear token from localStorage:",t)}}var x={DRAFT:"tgd_draft",FUNNEL_TRACKING:"tgd_funnel_tracking",FORCE_RESET:"tgd_force_reset",CLIENT_ENV:"tgd_client_env",CLIENT_BASE_URL:"tgd_client_base_url"};function Ne(t){if(typeof window=="undefined")return null;try{return localStorage.getItem(t)}catch(e){return null}}function pe(t,e){if(typeof window!="undefined")try{localStorage.setItem(t,e)}catch(n){}}function Oe(t){var r;if(typeof document=="undefined")return null;let n=document.cookie.split(";").find(i=>i.trim().startsWith("".concat(t,"=")));return n?(r=n.split("=")[1])==null?void 0:r.trim():null}function Fe(t,e,n=86400){typeof document!="undefined"&&(document.cookie="".concat(t,"=").concat(e,"; path=/; max-age=").concat(n))}function tr(t){typeof document!="undefined"&&(document.cookie="".concat(t,"=; path=/; max-age=0"))}function _e(){if(typeof window=="undefined")return{};let t=new URLSearchParams(window.location.search),e,n=t.get("draft");if(n!==null)e=n==="true";else{let m=Ne(x.DRAFT)||Oe(x.DRAFT);m!==null&&(e=m==="true")}let r,i=t.get("funnelTracking");if(i!==null)r=i!=="false";else{let m=Ne(x.FUNNEL_TRACKING)||Oe(x.FUNNEL_TRACKING);m!==null&&(r=m!=="false")}let o=t.get("token")||fe()||null,s=t.get("funnelSessionId")||null,a=t.get("funnelId")||null,u=t.get("forceReset")==="true",d,c=t.get("tagadaClientEnv");if(c&&(c==="production"||c==="development"||c==="local"))d=c;else{let m=Ne(x.CLIENT_ENV)||Oe(x.CLIENT_ENV);m&&(m==="production"||m==="development"||m==="local")&&(d=m)}let p,y=t.get("tagadaClientBaseUrl");if(y)p=y;else{let m=Ne(x.CLIENT_BASE_URL)||Oe(x.CLIENT_BASE_URL);m&&(p=m)}return{forceReset:u,token:o,funnelSessionId:s,funnelId:a,draft:e,funnelTracking:r,tagadaClientEnv:d,tagadaClientBaseUrl:p}}function at(){var e;return(e=_e().draft)!=null?e:!1}function lt(t){typeof window!="undefined"&&(t?(pe(x.DRAFT,"true"),Fe(x.DRAFT,"true",86400)):(pe(x.DRAFT,"false"),tr(x.DRAFT)))}function Zt(t=!1){let e=_e(),n=e.forceReset||!1;return!n&&!e.token?(Yt(),!1):(t&&console.log("[SDK] Detected params:",e),n&&(t&&console.log("[SDK] Force reset: Clearing all stored state"),De(),Jt(),typeof window!="undefined"&&window.localStorage&&Object.keys(localStorage).forEach(i=>{(i.startsWith("tagadapay_")||i.startsWith("tgd_"))&&(t&&console.log("[SDK] Clearing localStorage: ".concat(i)),localStorage.removeItem(i))})),e.token!==null&&e.token!==void 0?(t&&console.log("[SDK] Using token from URL:",e.token.substring(0,20)+"..."),e.token===""||e.token==="null"?De():J(e.token)):n&&(t&&console.log("[SDK] Force reset mode (no token)"),De()),Yt(),e.funnelSessionId&&t&&console.log("[SDK] Using funnelSessionId from URL:",e.funnelSessionId),n)}function Yt(){if(typeof window=="undefined")return;let t=new URLSearchParams(window.location.search),e=t.get("draft");e!==null&<(e==="true");let n=t.get("funnelTracking");n!==null&&nr(n!=="false");let r=t.get("tagadaClientEnv");r&&(r==="production"||r==="development"||r==="local")&&rr(r);let i=t.get("tagadaClientBaseUrl");i&&ir(i)}function nr(t){if(typeof window=="undefined")return;let e=t?"true":"false";pe(x.FUNNEL_TRACKING,e),Fe(x.FUNNEL_TRACKING,e,86400)}function rr(t){typeof window!="undefined"&&(pe(x.CLIENT_ENV,t),Fe(x.CLIENT_ENV,t,86400))}function ir(t){typeof window!="undefined"&&(pe(x.CLIENT_BASE_URL,t),Fe(x.CLIENT_BASE_URL,t,86400))}function sr(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_ID__)return window.__TGD_FUNNEL_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function Xt(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_VARIANT_ID__)return window.__TGD_FUNNEL_VARIANT_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-variant-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function Qt(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_STEP_ID__)return window.__TGD_FUNNEL_STEP_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-step-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}var Le=class{constructor(e){this.eventDispatcher=new Q;this.isInitializing=!1;this.initializationAttempted=!1;this.config=e,this.resource=new ke(e.apiClient),this.state={context:null,isLoading:!1,isInitialized:!1,isNavigating:!1,error:null,sessionError:null}}setConfig(e){this.config=w(w({},this.config),e)}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}async autoInitialize(e,n,r){if(this.state.context)return this.state.context;if(this.isInitializing||this.initializationAttempted)return null;this.initializationAttempted=!0,this.isInitializing=!0,this.updateState({isLoading:!0,error:null});try{let i=new URLSearchParams(typeof window!="undefined"?window.location.search:""),s=i.get("funnelId")||r,a=i.get("funnelSessionId");a||(a=Wt()||null);let u=sr(),d=Xt(),c=Qt(),p=_e(),y=u||s;this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-initializing...",{existingSessionId:a,effectiveFunnelId:y,funnelVariantId:d,funnelStepId:c,draft:p.draft,funnelTracking:p.funnelTracking});let m=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:y,existingSessionId:a||void 0,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:d,funnelStepId:c,draft:p.draft,funnelTracking:p.funnelTracking});if(m.success&&m.context){let f=this.enrichContext(m.context);return this.handleSessionSuccess(f),f}else throw new Error(m.error||"Failed to initialize funnel session")}catch(i){let o=i instanceof Error?i:new Error(String(i));throw this.updateState({error:o,isLoading:!1}),this.config.debugMode&&console.error("\u274C [FunnelClient] Init failed:",o),o}finally{this.isInitializing=!1}}async initialize(e,n,r,i){this.updateState({isLoading:!0,error:null});try{let o=Xt(),s=Qt();this.config.debugMode&&(o&&console.log("\u{1F3AF} [FunnelClient] Detected A/B test variant:",o),s&&console.log("\u{1F3AF} [FunnelClient] Detected step ID:",s));let a=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:r,entryStepId:i,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:o,funnelStepId:s});if(a.success&&a.context){let u=this.enrichContext(a.context);return this.handleSessionSuccess(u),u}else throw new Error(a.error||"Failed to initialize")}catch(o){let s=o instanceof Error?o:new Error(String(o));throw this.updateState({error:s,isLoading:!1}),s}}async navigate(e){var n;if(!((n=this.state.context)!=null&&n.sessionId))throw new Error("No active session");this.updateState({isNavigating:!0,isLoading:!0});try{let r=await this.resource.navigate({sessionId:this.state.context.sessionId,event:e});if(r.success&&r.result){await this.refreshSession(),this.updateState({isNavigating:!1,isLoading:!1});let i=r.result;return this.config.autoRedirect!==!1&&(i!=null&&i.url)&&typeof window!="undefined"&&(this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-redirecting to:",i.url),window.location.href=i.url),i}throw new Error(r.error||"Navigation failed")}catch(r){let i=r instanceof Error?r:new Error(String(r));throw this.updateState({error:i,isNavigating:!1,isLoading:!1}),i}}async goToStep(e){return this.navigate({type:"direct_navigation",data:{targetStepId:e}})}async refreshSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{let n=await this.resource.getSession(this.state.context.sessionId);if(n.success&&n.context){let r=this.enrichContext(n.context);return this.updateState({context:r,sessionError:null}),r}}catch(n){this.updateState({sessionError:n instanceof Error?n:new Error(String(n))})}}async updateContext(e){var n;if(!((n=this.state.context)!=null&&n.sessionId))throw new Error("No active session");this.updateState({isLoading:!0});try{let r=await this.resource.updateContext(this.state.context.sessionId,{contextUpdates:e});if(r.success)await this.refreshSession();else throw new Error(r.error||"Failed to update context")}finally{this.updateState({isLoading:!1})}}async endSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{await this.resource.endSession(this.state.context.sessionId)}finally{this.state.context=null,this.updateState({context:null,isInitialized:!1})}}updateState(e){this.state=w(w({},this.state),e),this.eventDispatcher.notify(this.state)}handleSessionSuccess(e){Gt(e.sessionId),this.updateState({context:e,isLoading:!1,isInitialized:!0,error:null,sessionError:null})}enrichContext(e){var s,a;if((((s=this.config.environment)==null?void 0:s.environment)||ce())!=="local")return e;let r=((a=this.config.pluginConfig)==null?void 0:a.staticResources)||{};if(Object.keys(r).length===0)return e;let i=e.static||{};return Object.keys(r).every(u=>i[u]===r[u])&&Object.keys(i).length===Object.keys(r).length?e:N(w({},e),{static:w(w({},r),i)})}};function ge(t,e){return function(){return t.apply(e,arguments)}}var{toString:ar}=Object.prototype,{getPrototypeOf:ct}=Object,{iterator:Me,toStringTag:tn}=Symbol,Be=(t=>e=>{let n=ar.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),_=t=>(t=t.toLowerCase(),e=>Be(e)===t),ze=t=>e=>typeof e===t,{isArray:te}=Array,ee=ze("undefined");function me(t){return t!==null&&!ee(t)&&t.constructor!==null&&!ee(t.constructor)&&O(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}var nn=_("ArrayBuffer");function lr(t){let e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&nn(t.buffer),e}var ur=ze("string"),O=ze("function"),rn=ze("number"),he=t=>t!==null&&typeof t=="object",cr=t=>t===!0||t===!1,Ue=t=>{if(Be(t)!=="object")return!1;let e=ct(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(tn in t)&&!(Me in t)},dr=t=>{if(!he(t)||me(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(e){return!1}},fr=_("Date"),pr=_("File"),gr=_("Blob"),mr=_("FileList"),hr=t=>he(t)&&O(t.pipe),yr=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||O(t.append)&&((e=Be(t))==="formdata"||e==="object"&&O(t.toString)&&t.toString()==="[object FormData]"))},Sr=_("URLSearchParams"),[wr,Cr,br,Tr]=["ReadableStream","Request","Response","Headers"].map(_),Er=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ye(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t=="undefined")return;let r,i;if(typeof t!="object"&&(t=[t]),te(t))for(r=0,i=t.length;r<i;r++)e.call(null,t[r],r,t);else{if(me(t))return;let o=n?Object.getOwnPropertyNames(t):Object.keys(t),s=o.length,a;for(r=0;r<s;r++)a=o[r],e.call(null,t[a],a,t)}}function on(t,e){if(me(t))return null;e=e.toLowerCase();let n=Object.keys(t),r=n.length,i;for(;r-- >0;)if(i=n[r],e===i.toLowerCase())return i;return null}var Y=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,sn=t=>!ee(t)&&t!==Y;function ut(){let{caseless:t,skipUndefined:e}=sn(this)&&this||{},n={},r=(i,o)=>{let s=t&&on(n,o)||o;Ue(n[s])&&Ue(i)?n[s]=ut(n[s],i):Ue(i)?n[s]=ut({},i):te(i)?n[s]=i.slice():(!e||!ee(i))&&(n[s]=i)};for(let i=0,o=arguments.length;i<o;i++)arguments[i]&&ye(arguments[i],r);return n}var Rr=(t,e,n,{allOwnKeys:r}={})=>(ye(e,(i,o)=>{n&&O(i)?t[o]=ge(i,n):t[o]=i},{allOwnKeys:r}),t),Ar=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Ir=(t,e,n,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},xr=(t,e,n,r)=>{let i,o,s,a={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),o=i.length;o-- >0;)s=i[o],(!r||r(s,t,e))&&!a[s]&&(e[s]=t[s],a[s]=!0);t=n!==!1&&ct(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Pr=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;let r=t.indexOf(e,n);return r!==-1&&r===n},vr=t=>{if(!t)return null;if(te(t))return t;let e=t.length;if(!rn(e))return null;let n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},kr=(t=>e=>t&&e instanceof t)(typeof Uint8Array!="undefined"&&ct(Uint8Array)),Dr=(t,e)=>{let r=(t&&t[Me]).call(t),i;for(;(i=r.next())&&!i.done;){let o=i.value;e.call(t,o[0],o[1])}},Nr=(t,e)=>{let n,r=[];for(;(n=t.exec(e))!==null;)r.push(n);return r},Or=_("HTMLFormElement"),Fr=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),en=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),_r=_("RegExp"),an=(t,e)=>{let n=Object.getOwnPropertyDescriptors(t),r={};ye(n,(i,o)=>{let s;(s=e(i,o,t))!==!1&&(r[o]=s||i)}),Object.defineProperties(t,r)},Lr=t=>{an(t,(e,n)=>{if(O(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;let r=t[n];if(O(r)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Ur=(t,e)=>{let n={},r=i=>{i.forEach(o=>{n[o]=!0})};return te(t)?r(t):r(String(t).split(e)),n},Mr=()=>{},Br=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function zr(t){return!!(t&&O(t.append)&&t[tn]==="FormData"&&t[Me])}var $r=t=>{let e=new Array(10),n=(r,i)=>{if(he(r)){if(e.indexOf(r)>=0)return;if(me(r))return r;if(!("toJSON"in r)){e[i]=r;let o=te(r)?[]:{};return ye(r,(s,a)=>{let u=n(s,i+1);!ee(u)&&(o[a]=u)}),e[i]=void 0,o}}return r};return n(t,0)},Kr=_("AsyncFunction"),Hr=t=>t&&(he(t)||O(t))&&O(t.then)&&O(t.catch),ln=((t,e)=>t?setImmediate:e?((n,r)=>(Y.addEventListener("message",({source:i,data:o})=>{i===Y&&o===n&&r.length&&r.shift()()},!1),i=>{r.push(i),Y.postMessage(n,"*")}))("axios@".concat(Math.random()),[]):n=>setTimeout(n))(typeof setImmediate=="function",O(Y.postMessage)),Vr=typeof queueMicrotask!="undefined"?queueMicrotask.bind(Y):typeof process!="undefined"&&process.nextTick||ln,jr=t=>t!=null&&O(t[Me]),l={isArray:te,isArrayBuffer:nn,isBuffer:me,isFormData:yr,isArrayBufferView:lr,isString:ur,isNumber:rn,isBoolean:cr,isObject:he,isPlainObject:Ue,isEmptyObject:dr,isReadableStream:wr,isRequest:Cr,isResponse:br,isHeaders:Tr,isUndefined:ee,isDate:fr,isFile:pr,isBlob:gr,isRegExp:_r,isFunction:O,isStream:hr,isURLSearchParams:Sr,isTypedArray:kr,isFileList:mr,forEach:ye,merge:ut,extend:Rr,trim:Er,stripBOM:Ar,inherits:Ir,toFlatObject:xr,kindOf:Be,kindOfTest:_,endsWith:Pr,toArray:vr,forEachEntry:Dr,matchAll:Nr,isHTMLForm:Or,hasOwnProperty:en,hasOwnProp:en,reduceDescriptors:an,freezeMethods:Lr,toObjectSet:Ur,toCamelCase:Fr,noop:Mr,toFiniteNumber:Br,findKey:on,global:Y,isContextDefined:sn,isSpecCompliantForm:zr,toJSONObject:$r,isAsyncFn:Kr,isThenable:Hr,setImmediate:ln,asap:Vr,isIterable:jr};function ne(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}l.inherits(ne,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:l.toJSONObject(this.config),code:this.code,status:this.status}}});var un=ne.prototype,cn={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{cn[t]={value:t}});Object.defineProperties(ne,cn);Object.defineProperty(un,"isAxiosError",{value:!0});ne.from=(t,e,n,r,i,o)=>{let s=Object.create(un);l.toFlatObject(t,s,function(c){return c!==Error.prototype},d=>d!=="isAxiosError");let a=t&&t.message?t.message:"Error",u=e==null&&t?t.code:e;return ne.call(s,a,u,n,r,i),t&&s.cause==null&&Object.defineProperty(s,"cause",{value:t,configurable:!0}),s.name=t&&t.name||"Error",o&&Object.assign(s,o),s};var S=ne;var $e=null;function dt(t){return l.isPlainObject(t)||l.isArray(t)}function fn(t){return l.endsWith(t,"[]")?t.slice(0,-2):t}function dn(t,e,n){return t?t.concat(e).map(function(i,o){return i=fn(i),!n&&o?"["+i+"]":i}).join(n?".":""):e}function qr(t){return l.isArray(t)&&!t.some(dt)}var Gr=l.toFlatObject(l,{},null,function(e){return/^is[A-Z]/.test(e)});function Wr(t,e,n){if(!l.isObject(t))throw new TypeError("target must be an object");e=e||new($e||FormData),n=l.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(h,g){return!l.isUndefined(g[h])});let r=n.metaTokens,i=n.visitor||c,o=n.dots,s=n.indexes,u=(n.Blob||typeof Blob!="undefined"&&Blob)&&l.isSpecCompliantForm(e);if(!l.isFunction(i))throw new TypeError("visitor must be a function");function d(f){if(f===null)return"";if(l.isDate(f))return f.toISOString();if(l.isBoolean(f))return f.toString();if(!u&&l.isBlob(f))throw new S("Blob is not supported. Use a Buffer instead.");return l.isArrayBuffer(f)||l.isTypedArray(f)?u&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function c(f,h,g){let b=f;if(f&&!g&&typeof f=="object"){if(l.endsWith(h,"{}"))h=r?h:h.slice(0,-2),f=JSON.stringify(f);else if(l.isArray(f)&&qr(f)||(l.isFileList(f)||l.endsWith(h,"[]"))&&(b=l.toArray(f)))return h=fn(h),b.forEach(function(R,C){!(l.isUndefined(R)||R===null)&&e.append(s===!0?dn([h],C,o):s===null?h:h+"[]",d(R))}),!1}return dt(f)?!0:(e.append(dn(g,h,o),d(f)),!1)}let p=[],y=Object.assign(Gr,{defaultVisitor:c,convertValue:d,isVisitable:dt});function m(f,h){if(!l.isUndefined(f)){if(p.indexOf(f)!==-1)throw Error("Circular reference detected in "+h.join("."));p.push(f),l.forEach(f,function(b,k){(!(l.isUndefined(b)||b===null)&&i.call(e,b,l.isString(k)?k.trim():k,h,y))===!0&&m(b,h?h.concat(k):[k])}),p.pop()}}if(!l.isObject(t))throw new TypeError("data must be an object");return m(t),e}var q=Wr;function pn(t){let e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(r){return e[r]})}function gn(t,e){this._pairs=[],t&&q(t,this,e)}var mn=gn.prototype;mn.append=function(e,n){this._pairs.push([e,n])};mn.toString=function(e){let n=e?function(r){return e.call(this,r,pn)}:pn;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};var Ke=gn;function Jr(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Se(t,e,n){if(!e)return t;let r=n&&n.encode||Jr;l.isFunction(n)&&(n={serialize:n});let i=n&&n.serialize,o;if(i?o=i(e,n):o=l.isURLSearchParams(e)?e.toString():new Ke(e,n).toString(r),o){let s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+o}return t}var ft=class{constructor(){this.handlers=[]}use(e,n,r){return this.handlers.push({fulfilled:e,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){l.forEach(this.handlers,function(r){r!==null&&e(r)})}},pt=ft;var He={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var hn=typeof URLSearchParams!="undefined"?URLSearchParams:Ke;var yn=typeof FormData!="undefined"?FormData:null;var Sn=typeof Blob!="undefined"?Blob:null;var wn={isBrowser:!0,classes:{URLSearchParams:hn,FormData:yn,Blob:Sn},protocols:["http","https","file","blob","url","data"]};var ht={};Kt(ht,{hasBrowserEnv:()=>mt,hasStandardBrowserEnv:()=>Yr,hasStandardBrowserWebWorkerEnv:()=>Zr,navigator:()=>gt,origin:()=>Xr});var mt=typeof window!="undefined"&&typeof document!="undefined",gt=typeof navigator=="object"&&navigator||void 0,Yr=mt&&(!gt||["ReactNative","NativeScript","NS"].indexOf(gt.product)<0),Zr=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Xr=mt&&window.location.href||"http://localhost";var E=w(w({},ht),wn);function yt(t,e){return q(t,new E.classes.URLSearchParams,w({visitor:function(n,r,i,o){return E.isNode&&l.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},e))}function Qr(t){return l.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function ei(t){let e={},n=Object.keys(t),r,i=n.length,o;for(r=0;r<i;r++)o=n[r],e[o]=t[o];return e}function ti(t){function e(n,r,i,o){let s=n[o++];if(s==="__proto__")return!0;let a=Number.isFinite(+s),u=o>=n.length;return s=!s&&l.isArray(i)?i.length:s,u?(l.hasOwnProp(i,s)?i[s]=[i[s],r]:i[s]=r,!a):((!i[s]||!l.isObject(i[s]))&&(i[s]=[]),e(n,r,i[s],o)&&l.isArray(i[s])&&(i[s]=ei(i[s])),!a)}if(l.isFormData(t)&&l.isFunction(t.entries)){let n={};return l.forEachEntry(t,(r,i)=>{e(Qr(r),i,n,0)}),n}return null}var Ve=ti;function ni(t,e,n){if(l.isString(t))try{return(e||JSON.parse)(t),l.trim(t)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(t)}var St={transitional:He,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){let r=n.getContentType()||"",i=r.indexOf("application/json")>-1,o=l.isObject(e);if(o&&l.isHTMLForm(e)&&(e=new FormData(e)),l.isFormData(e))return i?JSON.stringify(Ve(e)):e;if(l.isArrayBuffer(e)||l.isBuffer(e)||l.isStream(e)||l.isFile(e)||l.isBlob(e)||l.isReadableStream(e))return e;if(l.isArrayBufferView(e))return e.buffer;if(l.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return yt(e,this.formSerializer).toString();if((a=l.isFileList(e))||r.indexOf("multipart/form-data")>-1){let u=this.env&&this.env.FormData;return q(a?{"files[]":e}:e,u&&new u,this.formSerializer)}}return o||i?(n.setContentType("application/json",!1),ni(e)):e}],transformResponse:[function(e){let n=this.transitional||St.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(l.isResponse(e)||l.isReadableStream(e))return e;if(e&&l.isString(e)&&(r&&!this.responseType||i)){let s=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(e,this.parseReviver)}catch(a){if(s)throw a.name==="SyntaxError"?S.from(a,S.ERR_BAD_RESPONSE,this,null,this.response):a}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:E.classes.FormData,Blob:E.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};l.forEach(["delete","get","head","post","put","patch"],t=>{St.headers[t]={}});var re=St;var ri=l.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Cn=t=>{let e={},n,r,i;return t&&t.split("\n").forEach(function(s){i=s.indexOf(":"),n=s.substring(0,i).trim().toLowerCase(),r=s.substring(i+1).trim(),!(!n||e[n]&&ri[n])&&(n==="set-cookie"?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)}),e};var bn=Symbol("internals");function we(t){return t&&String(t).trim().toLowerCase()}function je(t){return t===!1||t==null?t:l.isArray(t)?t.map(je):String(t)}function ii(t){let e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(t);)e[r[1]]=r[2];return e}var oi=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function wt(t,e,n,r,i){if(l.isFunction(r))return r.call(this,e,n);if(i&&(e=n),!!l.isString(e)){if(l.isString(r))return e.indexOf(r)!==-1;if(l.isRegExp(r))return r.test(e)}}function si(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,r)=>n.toUpperCase()+r)}function ai(t,e){let n=l.toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(t,r+n,{value:function(i,o,s){return this[r].call(this,e,i,o,s)},configurable:!0})})}var ie=class{constructor(e){e&&this.set(e)}set(e,n,r){let i=this;function o(a,u,d){let c=we(u);if(!c)throw new Error("header name must be a non-empty string");let p=l.findKey(i,c);(!p||i[p]===void 0||d===!0||d===void 0&&i[p]!==!1)&&(i[p||u]=je(a))}let s=(a,u)=>l.forEach(a,(d,c)=>o(d,c,u));if(l.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(l.isString(e)&&(e=e.trim())&&!oi(e))s(Cn(e),n);else if(l.isObject(e)&&l.isIterable(e)){let a={},u,d;for(let c of e){if(!l.isArray(c))throw TypeError("Object iterator must return a key-value pair");a[d=c[0]]=(u=a[d])?l.isArray(u)?[...u,c[1]]:[u,c[1]]:c[1]}s(a,n)}else e!=null&&o(n,e,r);return this}get(e,n){if(e=we(e),e){let r=l.findKey(this,e);if(r){let i=this[r];if(!n)return i;if(n===!0)return ii(i);if(l.isFunction(n))return n.call(this,i,r);if(l.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=we(e),e){let r=l.findKey(this,e);return!!(r&&this[r]!==void 0&&(!n||wt(this,this[r],r,n)))}return!1}delete(e,n){let r=this,i=!1;function o(s){if(s=we(s),s){let a=l.findKey(r,s);a&&(!n||wt(r,r[a],a,n))&&(delete r[a],i=!0)}}return l.isArray(e)?e.forEach(o):o(e),i}clear(e){let n=Object.keys(this),r=n.length,i=!1;for(;r--;){let o=n[r];(!e||wt(this,this[o],o,e,!0))&&(delete this[o],i=!0)}return i}normalize(e){let n=this,r={};return l.forEach(this,(i,o)=>{let s=l.findKey(r,o);if(s){n[s]=je(i),delete n[o];return}let a=e?si(o):String(o).trim();a!==o&&delete n[o],n[a]=je(i),r[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let n=Object.create(null);return l.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=e&&l.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){let r=new this(e);return n.forEach(i=>r.set(i)),r}static accessor(e){let r=(this[bn]=this[bn]={accessors:{}}).accessors,i=this.prototype;function o(s){let a=we(s);r[a]||(ai(i,s),r[a]=!0)}return l.isArray(e)?e.forEach(o):o(e),this}};ie.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);l.reduceDescriptors(ie.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(r){this[n]=r}}});l.freezeMethods(ie);var I=ie;function Ce(t,e){let n=this||re,r=e||n,i=I.from(r.headers),o=r.data;return l.forEach(t,function(a){o=a.call(n,o,i.normalize(),e?e.status:void 0)}),i.normalize(),o}function be(t){return!!(t&&t.__CANCEL__)}function Tn(t,e,n){S.call(this,t==null?"canceled":t,S.ERR_CANCELED,e,n),this.name="CanceledError"}l.inherits(Tn,S,{__CANCEL__:!0});var B=Tn;function Te(t,e,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?t(n):e(new S("Request failed with status code "+n.status,[S.ERR_BAD_REQUEST,S.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Ct(t){let e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function li(t,e){t=t||10;let n=new Array(t),r=new Array(t),i=0,o=0,s;return e=e!==void 0?e:1e3,function(u){let d=Date.now(),c=r[o];s||(s=d),n[i]=u,r[i]=d;let p=o,y=0;for(;p!==i;)y+=n[p++],p=p%t;if(i=(i+1)%t,i===o&&(o=(o+1)%t),d-s<e)return;let m=c&&d-c;return m?Math.round(y*1e3/m):void 0}}var En=li;function ui(t,e){let n=0,r=1e3/e,i,o,s=(d,c=Date.now())=>{n=c,i=null,o&&(clearTimeout(o),o=null),t(...d)};return[(...d)=>{let c=Date.now(),p=c-n;p>=r?s(d,c):(i=d,o||(o=setTimeout(()=>{o=null,s(i)},r-p)))},()=>i&&s(i)]}var Rn=ui;var oe=(t,e,n=3)=>{let r=0,i=En(50,250);return Rn(o=>{let s=o.loaded,a=o.lengthComputable?o.total:void 0,u=s-r,d=i(u),c=s<=a;r=s;let p={loaded:s,total:a,progress:a?s/a:void 0,bytes:u,rate:d||void 0,estimated:d&&a&&c?(a-s)/d:void 0,event:o,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(p)},n)},bt=(t,e)=>{let n=t!=null;return[r=>e[0]({lengthComputable:n,total:t,loaded:r}),e[1]]},Tt=t=>(...e)=>l.asap(()=>t(...e));var An=E.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,E.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(E.origin),E.navigator&&/(msie|trident)/i.test(E.navigator.userAgent)):()=>!0;var In=E.hasStandardBrowserEnv?{write(t,e,n,r,i,o,s){if(typeof document=="undefined")return;let a=["".concat(t,"=").concat(encodeURIComponent(e))];l.isNumber(n)&&a.push("expires=".concat(new Date(n).toUTCString())),l.isString(r)&&a.push("path=".concat(r)),l.isString(i)&&a.push("domain=".concat(i)),o===!0&&a.push("secure"),l.isString(s)&&a.push("SameSite=".concat(s)),document.cookie=a.join("; ")},read(t){if(typeof document=="undefined")return null;let e=document.cookie.match(new RegExp("(?:^|; )"+t+"=([^;]*)"));return e?decodeURIComponent(e[1]):null},remove(t){this.write(t,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function Et(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Rt(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function Ee(t,e,n){let r=!Et(e);return t&&(r||n==!1)?Rt(t,e):e}var xn=t=>t instanceof I?w({},t):t;function L(t,e){e=e||{};let n={};function r(d,c,p,y){return l.isPlainObject(d)&&l.isPlainObject(c)?l.merge.call({caseless:y},d,c):l.isPlainObject(c)?l.merge({},c):l.isArray(c)?c.slice():c}function i(d,c,p,y){if(l.isUndefined(c)){if(!l.isUndefined(d))return r(void 0,d,p,y)}else return r(d,c,p,y)}function o(d,c){if(!l.isUndefined(c))return r(void 0,c)}function s(d,c){if(l.isUndefined(c)){if(!l.isUndefined(d))return r(void 0,d)}else return r(void 0,c)}function a(d,c,p){if(p in e)return r(d,c);if(p in t)return r(void 0,d)}let u={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(d,c,p)=>i(xn(d),xn(c),p,!0)};return l.forEach(Object.keys(w(w({},t),e)),function(c){let p=u[c]||i,y=p(t[c],e[c],c);l.isUndefined(y)&&p!==a||(n[c]=y)}),n}var qe=t=>{let e=L({},t),{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:o,headers:s,auth:a}=e;if(e.headers=s=I.from(s),e.url=Se(Ee(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),l.isFormData(n)){if(E.hasStandardBrowserEnv||E.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(l.isFunction(n.getHeaders)){let u=n.getHeaders(),d=["content-type","content-length"];Object.entries(u).forEach(([c,p])=>{d.includes(c.toLowerCase())&&s.set(c,p)})}}if(E.hasStandardBrowserEnv&&(r&&l.isFunction(r)&&(r=r(e)),r||r!==!1&&An(e.url))){let u=i&&o&&In.read(o);u&&s.set(i,u)}return e};var ci=typeof XMLHttpRequest!="undefined",Pn=ci&&function(t){return new Promise(function(n,r){let i=qe(t),o=i.data,s=I.from(i.headers).normalize(),{responseType:a,onUploadProgress:u,onDownloadProgress:d}=i,c,p,y,m,f;function h(){m&&m(),f&&f(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let g=new XMLHttpRequest;g.open(i.method.toUpperCase(),i.url,!0),g.timeout=i.timeout;function b(){if(!g)return;let R=I.from("getAllResponseHeaders"in g&&g.getAllResponseHeaders()),P={data:!a||a==="text"||a==="json"?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:R,config:t,request:g};Te(function(v){n(v),h()},function(v){r(v),h()},P),g=null}"onloadend"in g?g.onloadend=b:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.indexOf("file:")===0)||setTimeout(b)},g.onabort=function(){g&&(r(new S("Request aborted",S.ECONNABORTED,t,g)),g=null)},g.onerror=function(C){let P=C&&C.message?C.message:"Network Error",T=new S(P,S.ERR_NETWORK,t,g);T.event=C||null,r(T),g=null},g.ontimeout=function(){let C=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded",P=i.transitional||He;i.timeoutErrorMessage&&(C=i.timeoutErrorMessage),r(new S(C,P.clarifyTimeoutError?S.ETIMEDOUT:S.ECONNABORTED,t,g)),g=null},o===void 0&&s.setContentType(null),"setRequestHeader"in g&&l.forEach(s.toJSON(),function(C,P){g.setRequestHeader(P,C)}),l.isUndefined(i.withCredentials)||(g.withCredentials=!!i.withCredentials),a&&a!=="json"&&(g.responseType=i.responseType),d&&([y,f]=oe(d,!0),g.addEventListener("progress",y)),u&&g.upload&&([p,m]=oe(u),g.upload.addEventListener("progress",p),g.upload.addEventListener("loadend",m)),(i.cancelToken||i.signal)&&(c=R=>{g&&(r(!R||R.type?new B(null,t,g):R),g.abort(),g=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));let k=Ct(i.url);if(k&&E.protocols.indexOf(k)===-1){r(new S("Unsupported protocol "+k+":",S.ERR_BAD_REQUEST,t));return}g.send(o||null)})};var di=(t,e)=>{let{length:n}=t=t?t.filter(Boolean):[];if(e||n){let r=new AbortController,i,o=function(d){if(!i){i=!0,a();let c=d instanceof Error?d:this.reason;r.abort(c instanceof S?c:new B(c instanceof Error?c.message:c))}},s=e&&setTimeout(()=>{s=null,o(new S("timeout ".concat(e," of ms exceeded"),S.ETIMEDOUT))},e),a=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(d=>{d.unsubscribe?d.unsubscribe(o):d.removeEventListener("abort",o)}),t=null)};t.forEach(d=>d.addEventListener("abort",o));let{signal:u}=r;return u.unsubscribe=()=>l.asap(a),u}},vn=di;var fi=function*(t,e){let n=t.byteLength;if(!e||n<e){yield t;return}let r=0,i;for(;r<n;)i=r+e,yield t.slice(r,i),r=i},pi=function(t,e){return rt(this,null,function*(){try{for(var n=Ht(gi(t)),r,i,o;r=!(i=yield new W(n.next())).done;r=!1){let s=i.value;yield*it(fi(s,e))}}catch(i){o=[i]}finally{try{r&&(i=n.return)&&(yield new W(i.call(n)))}finally{if(o)throw o[0]}}})},gi=function(t){return rt(this,null,function*(){if(t[Symbol.asyncIterator]){yield*it(t);return}let e=t.getReader();try{for(;;){let{done:n,value:r}=yield new W(e.read());if(n)break;yield r}}finally{yield new W(e.cancel())}})},At=(t,e,n,r)=>{let i=pi(t,e),o=0,s,a=u=>{s||(s=!0,r&&r(u))};return new ReadableStream({async pull(u){try{let{done:d,value:c}=await i.next();if(d){a(),u.close();return}let p=c.byteLength;if(n){let y=o+=p;n(y)}u.enqueue(new Uint8Array(c))}catch(d){throw a(d),d}},cancel(u){return a(u),i.return()}},{highWaterMark:2})};var kn=64*1024,{isFunction:Ge}=l,mi=(({Request:t,Response:e})=>({Request:t,Response:e}))(l.global),{ReadableStream:Dn,TextEncoder:Nn}=l.global,On=(t,...e)=>{try{return!!t(...e)}catch(n){return!1}},hi=t=>{t=l.merge.call({skipUndefined:!0},mi,t);let{fetch:e,Request:n,Response:r}=t,i=e?Ge(e):typeof fetch=="function",o=Ge(n),s=Ge(r);if(!i)return!1;let a=i&&Ge(Dn),u=i&&(typeof Nn=="function"?(f=>h=>f.encode(h))(new Nn):async f=>new Uint8Array(await new n(f).arrayBuffer())),d=o&&a&&On(()=>{let f=!1,h=new n(E.origin,{body:new Dn,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!h}),c=s&&a&&On(()=>l.isReadableStream(new r("").body)),p={stream:c&&(f=>f.body)};i&&["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!p[f]&&(p[f]=(h,g)=>{let b=h&&h[f];if(b)return b.call(h);throw new S("Response type '".concat(f,"' is not supported"),S.ERR_NOT_SUPPORT,g)})});let y=async f=>{if(f==null)return 0;if(l.isBlob(f))return f.size;if(l.isSpecCompliantForm(f))return(await new n(E.origin,{method:"POST",body:f}).arrayBuffer()).byteLength;if(l.isArrayBufferView(f)||l.isArrayBuffer(f))return f.byteLength;if(l.isURLSearchParams(f)&&(f=f+""),l.isString(f))return(await u(f)).byteLength},m=async(f,h)=>{let g=l.toFiniteNumber(f.getContentLength());return g==null?y(h):g};return async f=>{let{url:h,method:g,data:b,signal:k,cancelToken:R,timeout:C,onDownloadProgress:P,onUploadProgress:T,responseType:v,headers:U,withCredentials:le="same-origin",fetchOptions:F}=qe(f),H=e||fetch;v=v?(v+"").toLowerCase():"text";let D=vn([k,R&&R.toAbortSignal()],C),ue=null,G=D&&D.unsubscribe&&(()=>{D.unsubscribe()}),_t;try{if(T&&d&&g!=="get"&&g!=="head"&&(_t=await m(U,b))!==0){let j=new n(h,{method:"POST",body:b,duplex:"half"}),Z;if(l.isFormData(b)&&(Z=j.headers.get("content-type"))&&U.setContentType(Z),j.body){let[nt,Pe]=bt(_t,oe(Tt(T)));b=At(j.body,kn,nt,Pe)}}l.isString(le)||(le=le?"include":"omit");let M=o&&"credentials"in n.prototype,Lt=N(w({},F),{signal:D,method:g.toUpperCase(),headers:U.normalize().toJSON(),body:b,duplex:"half",credentials:M?le:void 0});ue=o&&new n(h,Lt);let V=await(o?H(ue,F):H(h,Lt)),Ut=c&&(v==="stream"||v==="response");if(c&&(P||Ut&&G)){let j={};["status","statusText","headers"].forEach(Mt=>{j[Mt]=V[Mt]});let Z=l.toFiniteNumber(V.headers.get("content-length")),[nt,Pe]=P&&bt(Z,oe(Tt(P),!0))||[];V=new r(At(V.body,kn,nt,()=>{Pe&&Pe(),G&&G()}),j)}v=v||"text";let qn=await p[l.findKey(p,v)||"text"](V,f);return!Ut&&G&&G(),await new Promise((j,Z)=>{Te(j,Z,{data:qn,headers:I.from(V.headers),status:V.status,statusText:V.statusText,config:f,request:ue})})}catch(M){throw G&&G(),M&&M.name==="TypeError"&&/Load failed|fetch/i.test(M.message)?Object.assign(new S("Network Error",S.ERR_NETWORK,f,ue),{cause:M.cause||M}):S.from(M,M&&M.code,f,ue)}}},yi=new Map,It=t=>{let e=t&&t.env||{},{fetch:n,Request:r,Response:i}=e,o=[r,i,n],s=o.length,a=s,u,d,c=yi;for(;a--;)u=o[a],d=c.get(u),d===void 0&&c.set(u,d=a?new Map:hi(e)),c=d;return d},ua=It();var xt={http:$e,xhr:Pn,fetch:{get:It}};l.forEach(xt,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}});var Fn=t=>"- ".concat(t),wi=t=>l.isFunction(t)||t===null||t===!1;function Ci(t,e){t=l.isArray(t)?t:[t];let{length:n}=t,r,i,o={};for(let s=0;s<n;s++){r=t[s];let a;if(i=r,!wi(r)&&(i=xt[(a=String(r)).toLowerCase()],i===void 0))throw new S("Unknown adapter '".concat(a,"'"));if(i&&(l.isFunction(i)||(i=i.get(e))))break;o[a||"#"+s]=i}if(!i){let s=Object.entries(o).map(([u,d])=>"adapter ".concat(u," ")+(d===!1?"is not supported by the environment":"is not available in the build")),a=n?s.length>1?"since :\n"+s.map(Fn).join("\n"):" "+Fn(s[0]):"as no adapter specified";throw new S("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return i}var We={getAdapter:Ci,adapters:xt};function Pt(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new B(null,t)}function Je(t){return Pt(t),t.headers=I.from(t.headers),t.data=Ce.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),We.getAdapter(t.adapter||re.adapter,t)(t).then(function(r){return Pt(t),r.data=Ce.call(t,t.transformResponse,r),r.headers=I.from(r.headers),r},function(r){return be(r)||(Pt(t),r&&r.response&&(r.response.data=Ce.call(t,t.transformResponse,r.response),r.response.headers=I.from(r.response.headers))),Promise.reject(r)})}var Ye="1.13.0";var Ze={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Ze[t]=function(r){return typeof r===t||"a"+(e<1?"n ":" ")+t}});var _n={};Ze.transitional=function(e,n,r){function i(o,s){return"[Axios v"+Ye+"] Transitional option '"+o+"'"+s+(r?". "+r:"")}return(o,s,a)=>{if(e===!1)throw new S(i(s," has been removed"+(n?" in "+n:"")),S.ERR_DEPRECATED);return n&&!_n[s]&&(_n[s]=!0,console.warn(i(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(o,s,a):!0}};Ze.spelling=function(e){return(n,r)=>(console.warn("".concat(r," is likely a misspelling of ").concat(e)),!0)};function bi(t,e,n){if(typeof t!="object")throw new S("options must be an object",S.ERR_BAD_OPTION_VALUE);let r=Object.keys(t),i=r.length;for(;i-- >0;){let o=r[i],s=e[o];if(s){let a=t[o],u=a===void 0||s(a,o,t);if(u!==!0)throw new S("option "+o+" must be "+u,S.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new S("Unknown option "+o,S.ERR_BAD_OPTION)}}var Re={assertOptions:bi,validators:Ze};var z=Re.validators,se=class{constructor(e){this.defaults=e||{},this.interceptors={request:new pt,response:new pt}}async request(e,n){try{return await this._request(e,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;let o=i.stack?i.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+="\n"+o):r.stack=o}catch(s){}}throw r}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=L(this.defaults,n);let{transitional:r,paramsSerializer:i,headers:o}=n;r!==void 0&&Re.assertOptions(r,{silentJSONParsing:z.transitional(z.boolean),forcedJSONParsing:z.transitional(z.boolean),clarifyTimeoutError:z.transitional(z.boolean)},!1),i!=null&&(l.isFunction(i)?n.paramsSerializer={serialize:i}:Re.assertOptions(i,{encode:z.function,serialize:z.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Re.assertOptions(n,{baseUrl:z.spelling("baseURL"),withXsrfToken:z.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=o&&l.merge(o.common,o[n.method]);o&&l.forEach(["delete","get","head","post","put","patch","common"],f=>{delete o[f]}),n.headers=I.concat(s,o);let a=[],u=!0;this.interceptors.request.forEach(function(h){typeof h.runWhen=="function"&&h.runWhen(n)===!1||(u=u&&h.synchronous,a.unshift(h.fulfilled,h.rejected))});let d=[];this.interceptors.response.forEach(function(h){d.push(h.fulfilled,h.rejected)});let c,p=0,y;if(!u){let f=[Je.bind(this),void 0];for(f.unshift(...a),f.push(...d),y=f.length,c=Promise.resolve(n);p<y;)c=c.then(f[p++],f[p++]);return c}y=a.length;let m=n;for(;p<y;){let f=a[p++],h=a[p++];try{m=f(m)}catch(g){h.call(this,g);break}}try{c=Je.call(this,m)}catch(f){return Promise.reject(f)}for(p=0,y=d.length;p<y;)c=c.then(d[p++],d[p++]);return c}getUri(e){e=L(this.defaults,e);let n=Ee(e.baseURL,e.url,e.allowAbsoluteUrls);return Se(n,e.params,e.paramsSerializer)}};l.forEach(["delete","get","head","options"],function(e){se.prototype[e]=function(n,r){return this.request(L(r||{},{method:e,url:n,data:(r||{}).data}))}});l.forEach(["post","put","patch"],function(e){function n(r){return function(o,s,a){return this.request(L(a||{},{method:e,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:s}))}}se.prototype[e]=n(),se.prototype[e+"Form"]=n(!0)});var Ae=se;var vt=class t{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(o){n=o});let r=this;this.promise.then(i=>{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](i);r._listeners=null}),this.promise.then=i=>{let o,s=new Promise(a=>{r.subscribe(a),o=a}).then(i);return s.cancel=function(){r.unsubscribe(o)},s},e(function(o,s,a){r.reason||(r.reason=new B(o,s,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){let e=new AbortController,n=r=>{e.abort(r)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new t(function(i){e=i}),cancel:e}}},Ln=vt;function kt(t){return function(n){return t.apply(null,n)}}function Dt(t){return l.isObject(t)&&t.isAxiosError===!0}var Nt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Nt).forEach(([t,e])=>{Nt[e]=t});var Un=Nt;function Mn(t){let e=new Ae(t),n=ge(Ae.prototype.request,e);return l.extend(n,Ae.prototype,e,{allOwnKeys:!0}),l.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return Mn(L(t,i))},n}var A=Mn(re);A.Axios=Ae;A.CanceledError=B;A.CancelToken=Ln;A.isCancel=be;A.VERSION=Ye;A.toFormData=q;A.AxiosError=S;A.Cancel=A.CanceledError;A.all=function(e){return Promise.all(e)};A.spread=kt;A.isAxiosError=Dt;A.mergeConfig=L;A.AxiosHeaders=I;A.formToJSON=t=>Ve(l.isHTMLForm(t)?new FormData(t):t);A.getAdapter=We.getAdapter;A.HttpStatusCode=Un;A.default=A;var Xe=A;var{Axios:al,AxiosError:ll,CanceledError:ul,isCancel:cl,CancelToken:dl,VERSION:fl,all:pl,Cancel:gl,isAxiosError:ml,spread:hl,toFormData:yl,AxiosHeaders:Sl,HttpStatusCode:wl,formToJSON:Cl,getAdapter:bl,mergeConfig:Tl}=Xe;var Ie=class{constructor(e){this.currentToken=null;this.tokenProvider=null;this.requestHistory=new Map;this.WINDOW_MS=5e3;this.MAX_REQUESTS=30;this.axios=Xe.create({baseURL:e.baseURL,timeout:e.timeout||3e4,headers:w({"Content-Type":"application/json"},e.headers)}),typeof setInterval!="undefined"&&setInterval(()=>this.cleanupHistory(),1e4),this.axios.interceptors.request.use(async n=>{var r,i;if(n.url)try{this.checkRequestLimit("".concat((r=n.method)==null?void 0:r.toUpperCase(),":").concat(n.url))}catch(o){return console.error("[SDK] \u{1F6D1} Request blocked by Circuit Breaker:",o),Promise.reject(o)}if(!n.skipAuth&&!this.currentToken&&this.tokenProvider)try{console.log("[SDK] Waiting for token...");let o=await this.tokenProvider();o&&(this.updateToken(o),n.headers["x-cms-token"]=o)}catch(o){console.error("[SDK] Failed to get token from provider:",o)}return!n.skipAuth&&this.currentToken&&(n.headers["x-cms-token"]=this.currentToken),console.log("[SDK] Making ".concat((i=n.method)==null?void 0:i.toUpperCase()," request to: ").concat(n.baseURL||"").concat(n.url)),n},n=>(console.error("[SDK] Request error:",n),Promise.reject(n instanceof Error?n:new Error(String(n))))),this.axios.interceptors.response.use(n=>n,n=>(console.error("[SDK] Response error:",n.message),Promise.reject(n instanceof Error?n:new Error(String(n)))))}setTokenProvider(e){this.tokenProvider=e}async get(e,n){return(await this.axios.get(e,n)).data}async post(e,n,r){return(await this.axios.post(e,n,r)).data}async put(e,n,r){return(await this.axios.put(e,n,r)).data}async patch(e,n,r){return(await this.axios.patch(e,n,r)).data}async delete(e,n){return(await this.axios.delete(e,n)).data}setHeader(e,n){this.axios.defaults.headers.common[e]=n}removeHeader(e){delete this.axios.defaults.headers.common[e]}updateToken(e){this.currentToken=e,e?this.setHeader("x-cms-token",e):(this.removeHeader("x-cms-token"),console.log("[SDK] Token removed from ApiClient"))}getCurrentToken(){return this.currentToken}updateConfig(e){e.baseURL&&(this.axios.defaults.baseURL=e.baseURL),e.timeout&&(this.axios.defaults.timeout=e.timeout),e.headers&&Object.assign(this.axios.defaults.headers.common,e.headers),console.log("[SDK] ApiClient configuration updated")}checkRequestLimit(e){let n=Date.now(),r=this.requestHistory.get(e);if(!r){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(n-r.firstRequestTime>this.WINDOW_MS){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(r.count++,r.count>this.MAX_REQUESTS){let i=new Error("Circuit Breaker: Too many requests to ".concat(e," (").concat(r.count," in ").concat(this.WINDOW_MS,"ms)"));throw i.isCircuitBreaker=!0,i}}cleanupHistory(){let e=Date.now();for(let[n,r]of this.requestHistory.entries())e-r.firstRequestTime>this.WINDOW_MS&&this.requestHistory.delete(n)}};function Ti(){let t=navigator.userAgent;if(t.includes("Chrome")){let e=/Chrome\/(\d+)/.exec(t);return{name:"Chrome",version:e?e[1]:"unknown"}}if(t.includes("Firefox")){let e=/Firefox\/(\d+)/.exec(t);return{name:"Firefox",version:e?e[1]:"unknown"}}if(t.includes("Safari")&&!t.includes("Chrome")){let e=/Version\/(\d+)/.exec(t);return{name:"Safari",version:e?e[1]:"unknown"}}if(t.includes("Edge")){let e=/Edge\/(\d+)/.exec(t);return{name:"Edge",version:e?e[1]:"unknown"}}return{name:"unknown",version:"unknown"}}function Ei(){let t=navigator.userAgent;if(t.includes("Windows"))return t.includes("Windows NT 10.0")?{name:"Windows",version:"10"}:t.includes("Windows NT 6.3")?{name:"Windows",version:"8.1"}:t.includes("Windows NT 6.2")?{name:"Windows",version:"8"}:t.includes("Windows NT 6.1")?{name:"Windows",version:"7"}:{name:"Windows",version:"unknown"};if(t.includes("Mac OS X")){let e=/Mac OS X (\d+[._]\d+)/.exec(t);return{name:"macOS",version:e?e[1].replace("_","."):"unknown"}}if(t.includes("iPhone")||t.includes("iPad")){let e=/OS (\d+[._]\d+)/.exec(t);return{name:"iOS",version:e?e[1].replace("_","."):"unknown"}}if(t.includes("Android")){let e=/Android (\d+[.\d]*)/.exec(t);return{name:"Android",version:e?e[1]:"unknown"}}return t.includes("Linux")?{name:"Linux",version:"unknown"}:{name:"unknown",version:"unknown"}}function Ri(){let t=navigator.userAgent;if(t.includes("iPhone"))return{type:"mobile",model:"iPhone"};if(t.includes("iPad"))return{type:"tablet",model:"iPad"};if(t.includes("Android"))return t.includes("Mobile")?{type:"mobile",model:"Android"}:{type:"tablet",model:"Android"}}function Ai(){return{width:window.screen.width,height:window.screen.height}}function Ii(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return console.error("Failed to get timezone:",t),"UTC"}}function Bn(){try{return navigator.language||"en-US"}catch(t){return console.error("Failed to get browser locale:",t),"en-US"}}function zn(){return typeof window=="undefined"?{userAgent:{browser:{name:"unknown",version:"unknown"},os:{name:"unknown",version:"unknown"}},screenResolution:{width:0,height:0},timeZone:"UTC"}:{userAgent:{browser:Ti(),os:Ei(),device:Ri()},screenResolution:Ai(),timeZone:Ii()}}function $n(){if(typeof window=="undefined")return{};let t=new URLSearchParams(window.location.search);return{locale:t.get("locale")||void 0,currency:t.get("currency")||void 0,utmSource:t.get("utm_source")||void 0,utmMedium:t.get("utm_medium")||void 0,utmCampaign:t.get("utm_campaign")||void 0}}var Qe=class{constructor(){this.listeners=new Map}on(e,n){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(n),()=>this.off(e,n)}off(e,n){this.listeners.has(e)&&this.listeners.get(e).delete(n)}async emit(e,n){if(this.listeners.has(e)){let r=Array.from(this.listeners.get(e));await Promise.all(r.map(i=>{try{return Promise.resolve(i(n))}catch(o){return console.error('[EventBus] Error in listener for event "'.concat(e,'":'),o),Promise.resolve()}}))}}clear(){this.listeners.clear()}};function Ot(t){try{let e=t.split(".");if(e.length!==3)return console.error("Invalid JWT token format"),null;let n=e[1],r=n+"=".repeat((4-n.length%4)%4),i=atob(r),o=JSON.parse(i);return o.exp&&Date.now()>=o.exp*1e3?(console.warn("JWT token is expired"),null):{sessionId:o.sessionId,storeId:o.storeId,accountId:o.accountId,customerId:o.customerId,role:o.role,isValid:!0,isLoading:!1}}catch(e){return console.error("Failed to decode JWT token:",e),null}}function Kn(t){try{let e=t.split(".");if(e.length!==3)return!0;let n=e[1],r=n+"=".repeat((4-n.length%4)%4),i=atob(r),o=JSON.parse(i);return o.exp?Date.now()>=o.exp*1e3:!1}catch(e){return console.error("Failed to check token expiration:",e),!0}}var ae={},xi=["","VITE_","REACT_APP_","NEXT_PUBLIC_"];function $(t,e=xi){var n,r,i;for(let o of e){let s=o?"".concat(o).concat(t):t;if(typeof process!="undefined"&&((n=process==null?void 0:process.env)!=null&&n[s]))return console.log("process.env[".concat(s,"]"),process.env[s]),process.env[s];if(typeof ae!="undefined"&&((r=ae==null?void 0:ae.env)!=null&&r[s]))return console.log("import.meta.env[".concat(s,"]"),ae.env[s]),ae.env[s];if(typeof window!="undefined"&&((i=window==null?void 0:window.__TAGADA_ENV__)!=null&&i[s]))return console.log("window.__TAGADA_ENV__[".concat(s,"]"),window.__TAGADA_ENV__[s]),window.__TAGADA_ENV__[s]}}var Pi=async(t="default")=>{try{if(($("TAGADA_ENV")||$("TAGADA_ENVIRONMENT"))==="production"||!de(!0))return null;let n=await fetch("/.local.json");if(!n.ok)return null;let r=await n.json(),i={},o=!1;try{let a=await fetch("/config/".concat(t,".tgd.json"));a.ok||(a=await fetch("/config/".concat(t,".json"))),a.ok&&(i=await a.json(),o=!0)}catch(a){}if(!o&&t!=="default"){console.warn("\u26A0\uFE0F Config variant '".concat(t,"' not found, falling back to 'default'"));try{let a=await fetch("/config/default.tgd.json");a.ok||(a=await fetch("/config/default.json")),a.ok&&(i=await a.json(),o=!0,console.log("\u2705 Fallback to 'default' config successful"))}catch(a){}}o||console.warn(t==="default"?"\u26A0\uFE0F No 'default' config found. Create /config/default.tgd.json":"\u26A0\uFE0F Neither '".concat(t,"' nor 'default' config found. Create /config/default.tgd.json"));let s={storeId:r.storeId,accountId:r.accountId,basePath:r.basePath,config:i};return console.log("\u{1F6E0}\uFE0F Using local development plugin config:",s),s}catch(e){return null}},vi=async()=>{try{if(($("TAGADA_ENV")||$("TAGADA_ENVIRONMENT"))==="production"||!de(!0))return null;console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/resources.static.json...");let e=await fetch("/config/resources.static.json");if(!e.ok)return console.log("\u{1F6E0}\uFE0F [V2] resources.static.json not found or failed to load"),null;let n=await e.json();return console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded local static resources:",n),n}catch(t){return console.error("\u{1F6E0}\uFE0F [V2] \u274C Error loading static resources:",t),null}},et=t=>{let e=document.querySelector('meta[name="'.concat(t,'"]'));return(e==null?void 0:e.getAttribute("content"))||void 0},ki=async()=>{try{if(typeof document=="undefined")return null;let t=et("x-plugin-store-id"),e=et("x-plugin-account-id");if(!t)return null;let n=et("x-plugin-base-path")||"/",r={};try{let o=et("x-plugin-config");if(o){let s=decodeURIComponent(o);r=JSON.parse(s)}}catch(o){console.warn("\u26A0\uFE0F Failed to parse plugin config from meta tag:",o)}e||console.warn("\u26A0\uFE0F Plugin config: Account ID not found in meta tags");let i={storeId:t,accountId:e,basePath:n,config:r};return console.log("\u{1F680} [HIGHEST PRIORITY] Plugin config loaded from meta tags (runtime injected config):",{storeId:t,accountId:e,basePath:n,configKeys:Object.keys(r),configSize:JSON.stringify(r).length}),i}catch(t){return console.warn("\u26A0\uFE0F Error loading production config from meta tags:",t),null}},Hn=async(t="default",e)=>{var s,a;console.log("\u{1F527} [V2] loadPluginConfig called with variant:",t);let n=await vi(),r=await ki();if(r){let u=N(w({},r),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using INJECTED config from meta tags (HIGHEST PRIORITY)"),u}if(e){let u={storeId:e.storeId,accountId:e.accountId,basePath:(s=e.basePath)!=null?s:"/",config:(a=e.config)!=null?a:{},staticResources:n!=null?n:void 0};return console.log("\u2705 [V2] Using raw config parameter (PRIORITY 2)"),u}let i=await Ni();if(i){let u=N(w({},i),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using environment variables config (PRIORITY 3 - build time)"),u}let o=await Pi(t);if(o){let u=N(w({},o),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using local dev config files (PRIORITY 4)"),u}return console.warn("\u26A0\uFE0F [V2] No plugin config found - using defaults"),{basePath:"/",config:{},staticResources:n!=null?n:void 0}};async function Di(t="default",e){try{if(!de())return null;if(e)return e;let n=["/config/".concat(t,".config.json"),"/config/".concat(t,".tgd.json"),"/config/".concat(t,".json")];for(let r of n)try{let i=await fetch(r);if(i.ok)return await i.json()}catch(i){continue}return console.warn("\u26A0\uFE0F [loadLocalConfig] No config found for '".concat(t,"'")),null}catch(n){return console.error("[loadLocalConfig] Error loading config:",n),null}}async function Ni(){try{if(!de())return;let t=$("TAGADA_STORE_ID"),e=$("TAGADA_ACCOUNT_ID"),n=$("TAGADA_BASE_PATH"),r=$("TAGADA_CONFIG_NAME");if(!t||!e)return;let i=await Di(r);if(!i)return;let o={storeId:t,accountId:e,basePath:n||"/",config:i};return console.log("\u{1F6E0}\uFE0F [createRawPluginConfig] Using environment variables (build-time config):",{hasStoreId:!!o.storeId,hasAccountId:!!o.accountId,basePath:o.basePath,hasConfig:!!o.config}),o}catch(t){console.error("[createRawPluginConfig] Error creating config:",t);return}}var tt=class{constructor(e={}){this.bus=new Qe;this.eventDispatcher=new Q;this.tokenPromise=null;this.tokenResolver=null;this.isInitializingSession=!1;this.lastSessionInitError=null;this.sessionInitRetryCount=0;this.MAX_SESSION_INIT_RETRIES=3;var a,u;this.config=e,this.instanceId=Math.random().toString(36).substr(2,9),this.boundHandleStorageChange=this.handleStorageChange.bind(this),this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Initializing...")),Zt(this.config.debugMode)&&this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Preview mode active - state cleared"));let r=this.resolveEnvironment(),i=qt(r);e.customApiConfig&&(i=N(w(w({},i),e.customApiConfig),{apiConfig:w(w({},i.apiConfig),e.customApiConfig.apiConfig)}),this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Applied custom API config:"),i.apiConfig.baseUrl)),this.state={auth:{isAuthenticated:!1,isLoading:!1,customer:null,session:null},session:null,customer:null,locale:{locale:"en-US",language:"en",region:"US",messages:{}},currency:{code:"USD",symbol:"$",name:"US Dollar"},store:null,environment:i,isLoading:!0,isInitialized:!1,isSessionInitialized:!1,pluginConfig:{basePath:"/",config:{}},pluginConfigLoading:!e.rawPluginConfig,debugMode:(a=e.debugMode)!=null?a:r!=="production",token:null},this.apiClient=new Ie({baseURL:i.apiConfig.baseUrl});let o=(u=e.features)==null?void 0:u.funnel;if(o!==!1){let d=typeof o=="object"?o:{};this.funnel=new Le({apiClient:this.apiClient,debugMode:this.state.debugMode,pluginConfig:this.state.pluginConfig,environment:this.state.environment,autoRedirect:d.autoRedirect})}this.apiClient.setTokenProvider(this.waitForToken.bind(this)),typeof window!="undefined"&&window.addEventListener("storage",this.boundHandleStorageChange),this.setupConfigHotReload(),this.initialize()}destroy(){typeof window!="undefined"&&window.removeEventListener("storage",this.boundHandleStorageChange),this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Destroyed")),this.eventDispatcher.clear(),this.bus.clear()}handleStorageChange(){if(fe()===this.state.token){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Token unchanged (ignoring event)"));return}if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping storage change"));return}if(this.sessionInitRetryCount>=this.MAX_SESSION_INIT_RETRIES&&this.lastSessionInitError){this.state.debugMode&&console.error("[TagadaClient ".concat(this.instanceId,"] Max session init retries reached, giving up"),this.lastSessionInitError);return}this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Storage changed, re-initializing token...")),this.initializeToken()}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}updateState(e){this.state=w(w({},this.state),e),this.eventDispatcher.notify(this.state)}resolveEnvironment(){return this.config.environment?this.config.environment:ce()}async initialize(){try{await this.initializePluginConfig(),this.state.pluginConfig.storeId?await this.initializeToken():(console.warn("[TagadaClient] No store ID found in plugin config. Skipping token initialization."),this.updateState({isLoading:!1,isInitialized:!0}))}catch(e){console.error("[TagadaClient] Initialization failed:",e),this.updateState({isLoading:!1,isInitialized:!0})}}async initializePluginConfig(){if(this.state.pluginConfigLoading)try{let e=this.config.localConfig||"default",n=await Hn(e,this.config.rawPluginConfig);this.updateState({pluginConfig:n,pluginConfigLoading:!1}),this.funnel&&this.funnel.setConfig({pluginConfig:n,environment:this.state.environment}),this.state.debugMode&&console.log("[TagadaClient] Plugin config loaded:",n)}catch(e){console.error("[TagadaClient] Failed to load plugin config:",e),this.updateState({pluginConfig:{basePath:"/",config:{}},pluginConfigLoading:!1})}}async initializeToken(){let e=fe(),r=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("token");this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Initializing token..."),{hasExistingToken:!!e,hasQueryToken:!!r});let i=null,o=!1;if(r?(i=r,o=!0):e&&!Kn(e)&&(i=e),i){this.setToken(i),o&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Persisting query token to storage...")),J(i));let s=Ot(i);s?(this.updateState({session:s}),await this.initializeSession(s)):(console.error("[TagadaClient] Failed to decode token"),this.updateState({isInitialized:!0,isLoading:!1}))}else{let s=this.state.pluginConfig.storeId;s?(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Creating anonymous token for store:"),s),await this.createAnonymousToken(s)):this.updateState({isInitialized:!0,isLoading:!1})}}setToken(e){this.apiClient.updateToken(e),this.updateState({token:e}),this.tokenResolver&&(this.tokenResolver(e),this.tokenPromise=null,this.tokenResolver=null)}waitForToken(){return this.apiClient.getCurrentToken()?Promise.resolve(this.apiClient.getCurrentToken()):(this.tokenPromise||(this.tokenPromise=new Promise(e=>{this.tokenResolver=e})),this.tokenPromise)}async createAnonymousToken(e){if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping anonymous token creation"));return}try{let n=at();this.state.debugMode&&console.log("[TagadaClient] Creating anonymous token for store:",e,{draft:n});let r=await this.apiClient.post("/api/v1/cms/session/anonymous",{storeId:e,role:"anonymous",draft:n},{skipAuth:!0});this.setToken(r.token),J(r.token);let i=Ot(r.token);i&&(this.updateState({session:i}),await this.initializeSession(i)),this.updateState({isSessionInitialized:!0})}catch(n){console.error("[TagadaClient] Failed to create anonymous token:",n),this.updateState({isInitialized:!0,isLoading:!1})}}async initializeSession(e){var n,r;if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization already in progress, skipping"));return}this.isInitializingSession=!0;try{this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Initializing session..."),{sessionId:e.sessionId});let i=zn(),o=$n(),s=Bn(),a=at(),u=new URLSearchParams(window.location.search).get("draft");u!==null&<(u==="true");let d={storeId:e.storeId,accountId:e.accountId,customerId:e.customerId,role:e.role,browserLocale:s,queryLocale:o.locale,queryCurrency:o.currency,utmSource:o.utmSource,utmMedium:o.utmMedium,utmCampaign:o.utmCampaign,browser:i.userAgent.browser.name,browserVersion:i.userAgent.browser.version,os:i.userAgent.os.name,osVersion:i.userAgent.os.version,deviceType:(n=i.userAgent.device)==null?void 0:n.type,deviceModel:(r=i.userAgent.device)==null?void 0:r.model,screenWidth:i.screenResolution.width,screenHeight:i.screenResolution.height,timeZone:i.timeZone,draft:a},c=await this.apiClient.post("/api/v1/cms/session/init",d);this.lastSessionInitError=null,this.sessionInitRetryCount=0,this.updateSessionState(c,e),this.updateState({isInitialized:!0,isSessionInitialized:!0,isLoading:!1}),this.state.debugMode&&console.log("[TagadaClient] Session initialized successfully")}catch(i){this.lastSessionInitError=i,this.sessionInitRetryCount++,console.error("[TagadaClient] Error initializing session (attempt ".concat(this.sessionInitRetryCount,"/").concat(this.MAX_SESSION_INIT_RETRIES,"):"),i),this.updateState({isInitialized:!0,isLoading:!1})}finally{this.isInitializingSession=!1}}updateSessionState(e,n){var o,s,a,u,d,c,p,y,m;if(e.store){let f=e.store,h=N(w({},e.store),{accountId:f.accountId||((o=this.state.pluginConfig)==null?void 0:o.accountId)||n.accountId||"",presentmentCurrencies:f.presentmentCurrencies||[e.store.currency||"USD"],chargeCurrencies:f.chargeCurrencies||[e.store.currency||"USD"]});this.updateState({store:h})}let r={locale:e.locale,language:e.locale.split("-")[0],region:(s=e.locale.split("-")[1])!=null?s:"US",messages:(a=e.messages)!=null?a:{}};if(this.updateState({locale:r}),e.store){let f={code:e.store.currency,symbol:this.getCurrencySymbol(e.store.currency),name:this.getCurrencyName(e.store.currency)};this.updateState({currency:f})}let i={isAuthenticated:(d=(u=e.customer)==null?void 0:u.isAuthenticated)!=null?d:!1,isLoading:!1,customer:(c=e.customer)!=null?c:null,session:n};if(this.updateState({customer:(p=e.customer)!=null?p:null,auth:i}),this.funnel&&n.customerId&&((y=e.store)!=null&&y.id)){let f=e.store.accountId||((m=this.state.pluginConfig)==null?void 0:m.accountId)||n.accountId||"";if(f){let g=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||void 0;this.state.debugMode&&console.log("[TagadaClient] Auto-initializing funnel...",{customerId:n.customerId,storeId:e.store.id,accountId:f,funnelId:g||"auto-detect"}),this.funnel.autoInitialize({customerId:n.customerId,sessionId:n.sessionId},{id:e.store.id,accountId:f},g).catch(b=>{console.error("[TagadaClient] Funnel auto-initialization failed:",b)})}else console.warn("[TagadaClient] Cannot auto-initialize funnel: accountId is missing")}}getCurrencySymbol(e){return{USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5",CAD:"C$",AUD:"A$"}[e]||e}getCurrencyName(e){return{USD:"US Dollar",EUR:"Euro",GBP:"British Pound",JPY:"Japanese Yen",CAD:"Canadian Dollar",AUD:"Australian Dollar"}[e]||e}getAccountId(){var e,n,r;return((e=this.state.store)==null?void 0:e.accountId)||((n=this.state.pluginConfig)==null?void 0:n.accountId)||((r=this.state.session)==null?void 0:r.accountId)||""}updatePluginConfig(e){this.state.debugMode&&console.log("[TagadaClient] Hot-reloading config:",e);let n=w(w({},this.state.pluginConfig.config),e);this.updateState({pluginConfig:N(w({},this.state.pluginConfig),{config:n})}),this.bus.emit("CONFIG_UPDATED",n),this.state.debugMode&&console.log("[TagadaClient] Config updated successfully")}setupConfigHotReload(){if(typeof window=="undefined")return;let e=n=>{var r,i;if(((r=n.data)==null?void 0:r.type)==="TAGADAPAY_CONFIG_UPDATE"){let{config:o}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received config update from parent:",o),this.updatePluginConfig(o)}else if(((i=n.data)==null?void 0:i.type)==="APPLY_STYLES_TO_ELEMENT"){let{elementId:o,styles:s}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received style application request:",{elementId:o,styles:s}),this.applyStylesToElement(o,s)}};window.addEventListener("message",e),this.state.debugMode&&console.log("[TagadaClient] Config hot-reload and style manipulation listeners enabled")}applyStylesToElement(e,n){if(typeof document=="undefined")return;let r="tagada-editor-highlight",i=document.getElementById(r);i&&i.remove();let o=p=>{var R;let m=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]).has(p.tagName.toLowerCase()),f=p;if(m){let C=p.parentElement;if((C==null?void 0:C.getAttribute("data-tagada-highlight-wrapper"))==="true"&&C instanceof HTMLElement)f=C;else{let T=document.createElement("div");T.setAttribute("data-tagada-highlight-wrapper","true");let v=window.getComputedStyle(p),U=v.display;if(U==="inline"?T.style.display="inline-block":T.style.display=U,T.style.position="relative",U==="inline"||U.includes("inline")){let F=v.verticalAlign;F&&F!=="baseline"&&(T.style.verticalAlign=F)}["width","height","minWidth","minHeight","maxWidth","maxHeight","flex","flexGrow","flexShrink","flexBasis","gridColumn","gridRow","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","gridArea","alignSelf","justifySelf","boxSizing","gap","rowGap","columnGap","order","aspectRatio"].forEach(F=>{let H=F.replace(/([A-Z])/g,"-$1").toLowerCase(),D=v.getPropertyValue(H);D&&D.trim()!==""&&(F==="flex"&&D!=="none"&&D!=="0 1 auto"?T.style.flex=D:F==="boxSizing"?T.style.boxSizing=D:T.style.setProperty(H,D))}),p.style&&["width","height","min-width","min-height","max-width","max-height","flex","flex-grow","flex-shrink","flex-basis","grid-column","grid-row","grid-column-start","grid-column-end","grid-row-start","grid-row-end","grid-area","align-self","justify-self","box-sizing","gap","row-gap","column-gap","order","aspect-ratio"].forEach(H=>{let D=p.style.getPropertyValue(H);D&&T.style.setProperty(H,D)}),(R=p.parentNode)==null||R.insertBefore(T,p),T.appendChild(p),f=T}}let h=getComputedStyle(m?p:f);(f.style.position==="static"||!f.style.position)&&(f.style.position="relative");let g=document.createElement("div");g.id=r,g.style.position="absolute",g.style.inset="0",g.style.pointerEvents="none",g.style.zIndex="9999",g.style.boxSizing="border-box",g.style.background="none",g.style.border="none",g.style.outline="none",g.style.margin="0",g.style.padding="0";let b=h.borderRadius;b&&(g.style.borderRadius=b),f.appendChild(g);let k=n||{boxShadow:"0 0 0 2px rgb(239 68 68)"};if(Object.entries(k).forEach(([C,P])=>{let T=C.includes("-")?C.replace(/-([a-z])/g,(v,U)=>U.toUpperCase()):C;C.includes("-")?g.style.setProperty(C,P):g.style[T]=P}),p.scrollIntoView({behavior:"smooth",block:"center"}),this.state.debugMode){let C=Object.entries(k).map(([P,T])=>"".concat(P,": ").concat(T)).join("; ");console.log("[TagadaClient] Applied styles to highlight div of element #".concat(e,":"),C)}},s=5,a=1e3,u=0,d=p=>{let y=window.getComputedStyle(p);return y.display==="none"||y.visibility==="hidden"||y.opacity==="0"||p.hidden||p.offsetWidth===0||p.offsetHeight===0},c=()=>{let p=document.querySelectorAll('[editor-id~="'.concat(e,'"]'));if(p.length===0){if(u+=1,u>=s){this.state.debugMode&&console.warn('[TagadaClient] Element with editor-id containing "'.concat(e,'" not found after ').concat(s," attempts"));return}this.state.debugMode&&console.warn('[TagadaClient] Element with editor-id containing "'.concat(e,'" not found (attempt ').concat(u,"/").concat(s,"), retrying in ").concat(a/1e3,"s")),setTimeout(c,a);return}let y=null;if(p.length===1)y=p[0];else{for(let m=0;m<p.length;m++)if(!d(p[m])){y=p[m];break}y||(y=p[0])}y&&o(y)};c()}};function Vn(t={}){return new tt(t)}function jn(t){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get(t)}function K(t,...e){t&&console.log("[TagadaTracker]",...e)}var xe=class{constructor(){this.config=null;this.client=null;this.initialized=!1;this.initializing=!1}async init(e){var n,r,i,o;if(this.initialized||this.initializing)return K(e.debug||!1,"Already initialized or initializing"),this.getSession();this.initializing=!0,this.config=w({debug:!1},e),K(this.config.debug,"\u{1F680} Initializing external tracker with SDK...",e);try{let s=jn("token");s&&(J(s),K(this.config.debug,"\u{1F511} Bootstrapped token from URL")),this.client=Vn({debugMode:this.config.debug,features:{funnel:!0}}),await this.waitForClientReady();let a=await this.initializeFunnel();K(this.config.debug,"\u2705 Session initialized (tracking handled by orchestrator):",a),this.initialized=!0;let u=this.getSession();return u&&((r=(n=this.config).onReady)==null||r.call(n,u)),u}catch(s){let a=s instanceof Error?s:new Error(String(s));throw K(this.config.debug,"\u274C Initialization failed:",a),(o=(i=this.config).onError)==null||o.call(i,a),a}finally{this.initializing=!1}}getSession(){var n,r;if(!((r=(n=this.client)==null?void 0:n.funnel)!=null&&r.state.context))return null;let e=this.client.funnel.state.context;return{sessionId:e.sessionId,customerId:e.customerId,storeId:e.storeId,funnelId:e.funnelId,currentStepId:e.currentStepId,cmsToken:this.client.state.token||void 0}}isReady(){var e,n;return this.initialized&&!!((n=(e=this.client)==null?void 0:e.funnel)!=null&&n.state.context)}async navigate(e){if(!this.isReady())throw new Error("Tracker not initialized. Call init() first.");K(this.config.debug,"\u{1F680} Navigating:",e);try{let n=await this.client.funnel.navigate({type:e.eventType,data:e.eventData||{}});return n!=null&&n.url?(K(this.config.debug,"\u2705 Navigation result:",n.url),typeof window!="undefined"&&(window.location.href=e.returnUrl||n.url),{url:n.url}):null}catch(n){throw K(this.config.debug,"\u274C Navigation failed:",n),n}}getCustomerId(){var e,n,r,i,o;return((n=(e=this.client)==null?void 0:e.state.auth.customer)==null?void 0:n.id)||((o=(i=(r=this.client)==null?void 0:r.funnel)==null?void 0:i.state.context)==null?void 0:o.customerId)||null}getFunnelSessionId(){var e,n,r;return((r=(n=(e=this.client)==null?void 0:e.funnel)==null?void 0:n.state.context)==null?void 0:r.sessionId)||null}buildUrl(e,n){let r=this.getSession();if(!r)return e;let i=new URL(e,typeof window!="undefined"?window.location.origin:void 0);return i.searchParams.set("funnelSessionId",r.sessionId),r.cmsToken&&i.searchParams.set("token",r.cmsToken),r.funnelId&&i.searchParams.set("funnelId",r.funnelId),i.searchParams.set("storeId",r.storeId),n&&Object.entries(n).forEach(([o,s])=>{i.searchParams.set(o,s)}),i.toString()}getClient(){return this.client}async waitForClientReady(){if(this.client)return new Promise(e=>{let n=0,r=()=>{var i,o;(i=this.client)!=null&&i.state.isInitialized||(o=this.client)!=null&&o.state.token||n>40?e():(n++,setTimeout(r,50))};r()})}async initializeFunnel(){var i,o,s;if(!((i=this.client)!=null&&i.funnel))return null;let e={customerId:((o=this.client.state.auth.customer)==null?void 0:o.id)||"anon_placeholder",sessionId:((s=this.client.state.auth.session)==null?void 0:s.sessionId)||"sess_placeholder"},n={id:this.config.storeId,accountId:this.config.accountId||""},r=this.config.stepId;if(!r)throw new Error("stepId is required for external page tracking (URL mapping does not work for external pages)");return K(this.config.debug,"\u{1F50D} Initializing external page at step:",r),this.client.funnel.initialize(e,n,this.config.funnelId||jn("funnelId")||void 0,r)}},Ft=new xe;typeof window!="undefined"&&(window.TagadaTracker=Ft);return er(Oi);})();
|
|
6
|
+
"use strict";var TagadaTrackerBundle=(()=>{var vt=Object.defineProperty,no=Object.defineProperties,io=Object.getOwnPropertyDescriptor,ro=Object.getOwnPropertyDescriptors,oo=Object.getOwnPropertyNames,Ei=Object.getOwnPropertySymbols;var bi=Object.prototype.hasOwnProperty,so=Object.prototype.propertyIsEnumerable;var _e=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),ao=t=>{throw TypeError(t)};var Ii=(t,e,n)=>e in t?vt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,R=(t,e)=>{for(var n in e||(e={}))bi.call(e,n)&&Ii(t,n,e[n]);if(Ei)for(var n of Ei(e))so.call(e,n)&&Ii(t,n,e[n]);return t},z=(t,e)=>no(t,ro(e));var wi=(t,e)=>{for(var n in e)vt(t,n,{get:e[n],enumerable:!0})},lo=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of oo(e))!bi.call(t,r)&&r!==n&&vt(t,r,{get:()=>e[r],enumerable:!(i=io(e,r))||i.enumerable});return t};var co=t=>lo(vt({},"__esModule",{value:!0}),t);var Re=function(t,e){this[0]=t,this[1]=e},hn=(t,e,n)=>{var i=(o,a,c,u)=>{try{var d=n[o](a),f=(a=d.value)instanceof Re,S=d.done;Promise.resolve(f?a[0]:a).then(I=>f?i(o==="return"?o:"next",a[1]?{done:I.done,value:I.value}:I,c,u):c({value:I,done:S})).catch(I=>i("throw",I,c,u))}catch(I){u(I)}},r=o=>s[o]=a=>new Promise((c,u)=>i(o,a,c,u)),s={};return n=n.apply(t,e),s[_e("asyncIterator")]=()=>s,r("next"),r("throw"),r("return"),s},An=t=>{var e=t[_e("asyncIterator")],n=!1,i,r={};return e==null?(e=t[_e("iterator")](),i=s=>r[s]=o=>e[s](o)):(e=e.call(t),i=s=>r[s]=o=>{if(n){if(n=!1,s==="throw")throw o;return o}return n=!0,{done:!1,value:new Re(new Promise(a=>{var c=e[s](o);c instanceof Object||ao("Object expected"),a(c)}),1)}}),r[_e("iterator")]=()=>r,i("next"),"throw"in e?i("throw"):r.throw=s=>{throw s},"return"in e&&i("return"),r},Si=(t,e,n)=>(e=t[_e("asyncIterator")])?e.call(t):(t=t[_e("iterator")](),e={},n=(i,r)=>(r=t[i])&&(e[i]=s=>new Promise((o,a,c)=>(s=r.call(t,s),c=s.done,Promise.resolve(s.value).then(u=>o({value:u,done:c}),a)))),n("next"),n("return"),e);var sa={};wi(sa,{TagadaExternalTracker:()=>Nt,TagadaTracker:()=>pi});function Ci(t){var i;if(typeof document=="undefined")return null;let n="; ".concat(document.cookie).split("; ".concat(t,"="));return n.length===2&&((i=n.pop())==null?void 0:i.split(";").shift())||null}var Ti={production:{baseUrl:"https://app.tagadapay.com",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionInitAsync:"/api/v1/checkout/session/init-async",sessionStatus:"/api/v1/checkout/session/status",asyncStatus:"/api/public/v1/checkout/async-status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}},development:{baseUrl:"https://app.tagadapay.dev",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionInitAsync:"/api/v1/checkout/session/init-async",sessionStatus:"/api/v1/checkout/session/status",asyncStatus:"/api/public/v1/checkout/async-status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}},local:{baseUrl:"http://app.localhost:3000",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionInitAsync:"/api/v1/checkout/session/init-async",sessionStatus:"/api/v1/checkout/session/status",asyncStatus:"/api/public/v1/checkout/async-status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}}};function Oi(t="local"){let e=Ti[t];if(!e)return console.warn("Unknown environment: ".concat(t,". Falling back to local.")),{environment:"local",apiConfig:Ti.local};let n=null;if(typeof window!="undefined"&&(n=new URLSearchParams(window.location.search).get("tagadaClientBaseUrl"),!n))try{n=localStorage.getItem("tgd_client_base_url")||Ci("tgd_client_base_url")}catch(r){}return n?(console.log("[SDK] Using custom API base URL override: ".concat(n)),{environment:t,apiConfig:z(R({},e),{baseUrl:n})}):{environment:t,apiConfig:e}}function Ze(){var r;if(typeof window=="undefined")return"local";let e=new URLSearchParams(window.location.search).get("tagadaClientEnv");if(e&&(e==="production"||e==="development"||e==="local"))return console.log("[SDK] Using explicit environment override: ".concat(e)),e;try{let s=localStorage.getItem("tgd_client_env")||Ci("tgd_client_env");if(s&&(s==="production"||s==="development"||s==="local"))return console.log("[SDK] Using persisted environment override: ".concat(s)),s}catch(s){}let n=window.location.hostname,i=window.location.href;if(n==="localhost"||n.startsWith("127.")||n.startsWith("192.168.")||n.startsWith("10.")||n.includes(".local")||n===""||n==="0.0.0.0"){if(typeof window!="undefined"&&((r=window==null?void 0:window.__TAGADA_ENV__)!=null&&r.TAGADA_ENVIRONMENT)){let s=window.__TAGADA_ENV__.TAGADA_ENVIRONMENT.toLowerCase();if(s==="production"||s==="development"||s==="local")return console.log("[SDK] Local override detected: ".concat(s)),s}return"local"}return n==="app.tagadapay.com"||n.includes("tagadapay.com")||n.includes("yourproductiondomain.com")?"production":n==="app.tagadapay.dev"||n.includes("tagadapay.dev")||n.includes("vercel.app")||n.includes("netlify.app")||n.includes("surge.sh")||n.includes("github.io")||n.includes("herokuapp.com")||n.includes("railway.app")||i.includes("?env=dev")||i.includes("?dev=true")||i.includes("#dev")?"development":(console.warn("[SDK] Unknown domain: ".concat(n,", defaulting to production")),"production")}function Qe(t=!1){return Ze()!=="local"?!1:t&&typeof window!="undefined"?!window.location.hostname.includes(".cdn."):!0}var Lt=class{constructor(e){this.apiClient=e}async initialize(e){return this.apiClient.post("/api/v1/funnel/initialize",e)}async navigate(e){return this.apiClient.post("/api/v1/funnel/navigate",e)}async updateContext(e,n){return this.apiClient.patch("/api/v1/funnel/context/".concat(e),n)}async endSession(e){return this.apiClient.delete("/api/v1/funnel/session/".concat(e))}async getSession(e,n,i){let r=new URLSearchParams;n&&r.append("currentUrl",n),i&&r.append("includeDebugData","true");let s="/api/v1/funnel/session/".concat(e).concat(r.toString()?"?".concat(r):"");return this.apiClient.get(s)}};var xe=class{constructor(){this.listeners=new Set}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(e){this.listeners.forEach(n=>{try{n(e)}catch(i){console.error("Error in event listener:",i)}})}clear(){this.listeners.clear()}};var En="tgd-funnel-session-id";function Ri(t){typeof document!="undefined"&&(document.cookie="".concat(En,"=").concat(t,"; path=/; max-age=2592000; SameSite=Lax"))}function yi(){if(typeof document=="undefined")return;let t=document.cookie.split("; ").find(e=>e.startsWith("".concat(En,"=")));return t?t.split("=")[1]:void 0}function Ni(){typeof document!="undefined"&&(document.cookie="".concat(En,"=; path=/; max-age=0"))}var In="cms_token";function fe(t){if(typeof window!="undefined")try{localStorage.setItem(In,t),window.dispatchEvent(new Event("storage"))}catch(e){console.error("Failed to save token to localStorage:",e)}}function et(){if(typeof window!="undefined")try{return localStorage.getItem(In)}catch(t){return console.error("Failed to get token from localStorage:",t),null}return null}function _t(){if(typeof window!="undefined")try{localStorage.removeItem(In)}catch(t){console.error("Failed to clear token from localStorage:",t)}}var V={DRAFT:"tgd_draft",FUNNEL_TRACKING:"tgd_funnel_tracking",FORCE_RESET:"tgd_force_reset",CLIENT_ENV:"tgd_client_env",CLIENT_BASE_URL:"tgd_client_base_url"};function xt(t){if(typeof window=="undefined")return null;try{return localStorage.getItem(t)}catch(e){return null}}function tt(t,e){if(typeof window!="undefined")try{localStorage.setItem(t,e)}catch(n){}}function Dt(t){var i;if(typeof document=="undefined")return null;let n=document.cookie.split(";").find(r=>r.trim().startsWith("".concat(t,"=")));return n?(i=n.split("=")[1])==null?void 0:i.trim():null}function kt(t,e,n=86400){typeof document!="undefined"&&(document.cookie="".concat(t,"=").concat(e,"; path=/; max-age=").concat(n))}function uo(t){typeof document!="undefined"&&(document.cookie="".concat(t,"=; path=/; max-age=0"))}function Bt(){if(typeof window=="undefined")return{};let t=new URLSearchParams(window.location.search),e,n=t.get("draft");if(n!==null)e=n==="true";else{let I=xt(V.DRAFT)||Dt(V.DRAFT);I!==null&&(e=I==="true")}let i,r=t.get("funnelTracking");if(r!==null)i=r!=="false";else{let I=xt(V.FUNNEL_TRACKING)||Dt(V.FUNNEL_TRACKING);I!==null&&(i=I!=="false")}let s=t.get("token")||et()||null,o=t.get("funnelSessionId")||null,a=t.get("funnelId")||null,c=t.get("forceReset")==="true",u,d=t.get("tagadaClientEnv");if(d&&(d==="production"||d==="development"||d==="local"))u=d;else{let I=xt(V.CLIENT_ENV)||Dt(V.CLIENT_ENV);I&&(I==="production"||I==="development"||I==="local")&&(u=I)}let f,S=t.get("tagadaClientBaseUrl");if(S)f=S;else{let I=xt(V.CLIENT_BASE_URL)||Dt(V.CLIENT_BASE_URL);I&&(f=I)}return{forceReset:c,token:s,funnelSessionId:o,funnelId:a,draft:e,funnelTracking:i,tagadaClientEnv:u,tagadaClientBaseUrl:f}}function bn(){var e;return(e=Bt().draft)!=null?e:!1}function wn(t){typeof window!="undefined"&&(t?(tt(V.DRAFT,"true"),kt(V.DRAFT,"true",86400)):(tt(V.DRAFT,"false"),uo(V.DRAFT)))}function vi(t=!1){let e=Bt(),n=e.forceReset||!1;return!n&&!e.token?(Pi(),!1):(t&&console.log("[SDK] Detected params:",e),n&&(t&&console.log("[SDK] Force reset: Clearing all stored state"),_t(),Ni(),typeof window!="undefined"&&window.localStorage&&Object.keys(localStorage).forEach(r=>{(r.startsWith("tagadapay_")||r.startsWith("tgd_"))&&(t&&console.log("[SDK] Clearing localStorage: ".concat(r)),localStorage.removeItem(r))})),e.token!==null&&e.token!==void 0?(t&&console.log("[SDK] Using token from URL:",e.token.substring(0,20)+"..."),e.token===""||e.token==="null"?_t():fe(e.token)):n&&(t&&console.log("[SDK] Force reset mode (no token)"),_t()),Pi(),e.funnelSessionId&&t&&console.log("[SDK] Using funnelSessionId from URL:",e.funnelSessionId),n)}function Pi(){if(typeof window=="undefined")return;let t=new URLSearchParams(window.location.search),e=t.get("draft");e!==null&&wn(e==="true");let n=t.get("funnelTracking");n!==null&&fo(n!=="false");let i=t.get("tagadaClientEnv");i&&(i==="production"||i==="development"||i==="local")&&po(i);let r=t.get("tagadaClientBaseUrl");r&&go(r)}function fo(t){if(typeof window=="undefined")return;let e=t?"true":"false";tt(V.FUNNEL_TRACKING,e),kt(V.FUNNEL_TRACKING,e,86400)}function po(t){typeof window!="undefined"&&(tt(V.CLIENT_ENV,t),kt(V.CLIENT_ENV,t,86400))}function go(t){typeof window!="undefined"&&(tt(V.CLIENT_BASE_URL,t),kt(V.CLIENT_BASE_URL,t,86400))}function ho(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_ID__)return window.__TGD_FUNNEL_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function Mt(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_VARIANT_ID__)return window.__TGD_FUNNEL_VARIANT_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-variant-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function nt(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_STEP_ID__)return window.__TGD_FUNNEL_STEP_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-step-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}var Ut=class{constructor(e){this.eventDispatcher=new xe;this.isInitializing=!1;this.initializationAttempted=!1;this.config=e,this.resource=new Lt(e.apiClient),this.state={context:null,isLoading:!1,isInitialized:!1,isNavigating:!1,error:null,sessionError:null}}setConfig(e){this.config=R(R({},this.config),e)}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}getDetectedSessionId(){var i;if((i=this.state.context)!=null&&i.sessionId)return this.state.context.sessionId;if(typeof window=="undefined")return null;let n=new URLSearchParams(window.location.search).get("funnelSessionId");return n||yi()||null}resetInitialization(){this.initializationAttempted=!1,this.isInitializing=!1,this.updateState({context:null,isInitialized:!1})}async autoInitialize(e,n,i){if(this.state.context)return this.state.context;if(this.isInitializing||this.initializationAttempted)return null;this.initializationAttempted=!0,this.isInitializing=!0,this.updateState({isLoading:!0,error:null});try{let r=this.getDetectedSessionId(),a=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||i,c=ho(),u=Mt(),d=nt(),f=Bt(),S=this.config.funnelId||c||a,I=this.config.stepId||d;this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-initializing...",{existingSessionId:r,effectiveFunnelId:S,funnelVariantId:u,funnelStepId:I,draft:f.draft,funnelTracking:f.funnelTracking,source:{funnelId:this.config.funnelId?"config":c?"injected":a?"url/prop":"none",stepId:this.config.stepId?"config":d?"injected":"none"}});let m=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:S,existingSessionId:r||void 0,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:u,funnelStepId:I,draft:f.draft,funnelTracking:f.funnelTracking});if(m.success&&m.context){let T=this.enrichContext(m.context);return this.handleSessionSuccess(T),T}else throw new Error(m.error||"Failed to initialize funnel session")}catch(r){let s=r instanceof Error?r:new Error(String(r));throw this.updateState({error:s,isLoading:!1}),this.config.debugMode&&console.error("\u274C [FunnelClient] Init failed:",s),s}finally{this.isInitializing=!1}}async initialize(e,n,i,r){this.updateState({isLoading:!0,error:null});try{let s=Mt(),o=nt();this.config.debugMode&&(s&&console.log("\u{1F3AF} [FunnelClient] Detected A/B test variant:",s),o&&console.log("\u{1F3AF} [FunnelClient] Detected step ID:",o));let a=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:i,entryStepId:r,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:s,funnelStepId:o});if(a.success&&a.context){let c=this.enrichContext(a.context);return this.handleSessionSuccess(c),c}else throw new Error(a.error||"Failed to initialize")}catch(s){let o=s instanceof Error?s:new Error(String(s));throw this.updateState({error:o,isLoading:!1}),o}}async navigate(e,n){var i,r,s;if(!((i=this.state.context)!=null&&i.sessionId))throw new Error("No active session");this.updateState({isNavigating:!0,isLoading:!0});try{let o=Mt(),a=nt(),c=typeof window!="undefined"?window.location.href:void 0;!a&&this.config.stepId&&(a=this.config.stepId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using stepId from config (no injection):",a)),!o&&this.config.variantId&&(o=this.config.variantId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using variantId from config (no injection):",o)),this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Sending to backend:",{sessionId:this.state.context.sessionId,currentUrl:c,funnelStepId:a||"(not found)",funnelVariantId:o||"(not found)",hasInjectedStepId:!!nt(),hasInjectedVariantId:!!Mt(),usedConfigFallback:!nt()&&!!this.config.stepId,customerTags:(n==null?void 0:n.customerTags)||"(none)",deviceId:(n==null?void 0:n.deviceId)||"(none)"});let u=(n==null?void 0:n.fireAndForget)||!1,d=await this.resource.navigate({sessionId:this.state.context.sessionId,event:e,currentUrl:c,funnelStepId:a,funnelVariantId:o,fireAndForget:u,customerTags:n==null?void 0:n.customerTags,deviceId:n==null?void 0:n.deviceId});if(!d.success||!d.result)throw new Error(d.error||"Navigation failed");let f=d.result;if(f.queued)return this.updateState({isNavigating:!1,isLoading:!1}),f.sessionId&&f.sessionId!==((r=this.state.context)==null?void 0:r.sessionId)&&(this.config.debugMode&&console.log("\u{1F525} [FunnelClient] Session ID updated: ".concat((s=this.state.context)==null?void 0:s.sessionId," \u2192 ").concat(f.sessionId)),this.state.context&&(this.state.context.sessionId=f.sessionId)),this.config.debugMode&&console.log("\u{1F525} [FunnelClient] Navigation queued (fire-and-forget mode)"),f;let S=this.config.autoRedirect!==!1;return S||(this.config.debugMode&&console.log("\u{1F504} [FunnelClient] Refreshing session (no auto-redirect)"),await this.refreshSession()),this.updateState({isNavigating:!1,isLoading:!1}),S&&(f!=null&&f.url)&&typeof window!="undefined"&&(this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-redirecting to:",f.url,"(skipped session refresh - next page will initialize)"),window.location.href=f.url),f}catch(o){let a=o instanceof Error?o:new Error(String(o));throw this.updateState({error:a,isNavigating:!1,isLoading:!1}),a}}async goToStep(e){return this.navigate({type:"direct_navigation",data:{targetStepId:e}})}async refreshSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{let n=await this.resource.getSession(this.state.context.sessionId);if(n.success&&n.context){let i=this.enrichContext(n.context);return this.updateState({context:i,sessionError:null}),i}}catch(n){this.updateState({sessionError:n instanceof Error?n:new Error(String(n))})}}async updateContext(e){var n;if(!((n=this.state.context)!=null&&n.sessionId))throw new Error("No active session");this.updateState({isLoading:!0});try{let i=await this.resource.updateContext(this.state.context.sessionId,{contextUpdates:e});if(i.success)await this.refreshSession();else throw new Error(i.error||"Failed to update context")}finally{this.updateState({isLoading:!1})}}async endSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{await this.resource.endSession(this.state.context.sessionId)}finally{this.state.context=null,this.updateState({context:null,isInitialized:!1})}}updateState(e){this.state=R(R({},this.state),e),this.eventDispatcher.notify(this.state)}handleSessionSuccess(e){Ri(e.sessionId),this.updateState({context:e,isLoading:!1,isInitialized:!0,error:null,sessionError:null})}enrichContext(e){var o,a;if((((o=this.config.environment)==null?void 0:o.environment)||Ze())!=="local")return e;let i=((a=this.config.pluginConfig)==null?void 0:a.staticResources)||{};if(Object.keys(i).length===0)return e;let r=e.static||{};return Object.keys(i).every(c=>r[c]===i[c])&&Object.keys(r).length===Object.keys(i).length?e:z(R({},e),{static:R(R({},i),r)})}};function it(t,e){return function(){return t.apply(e,arguments)}}var{toString:Ao}=Object.prototype,{getPrototypeOf:Tn}=Object,{iterator:Ht,toStringTag:_i}=Symbol,Gt=(t=>e=>{let n=Ao.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),ne=t=>(t=t.toLowerCase(),e=>Gt(e)===t),Vt=t=>e=>typeof e===t,{isArray:ke}=Array,De=Vt("undefined");function rt(t){return t!==null&&!De(t)&&t.constructor!==null&&!De(t.constructor)&&q(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}var xi=ne("ArrayBuffer");function Eo(t){let e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&xi(t.buffer),e}var Io=Vt("string"),q=Vt("function"),Di=Vt("number"),ot=t=>t!==null&&typeof t=="object",bo=t=>t===!0||t===!1,Ft=t=>{if(Gt(t)!=="object")return!1;let e=Tn(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(_i in t)&&!(Ht in t)},wo=t=>{if(!ot(t)||rt(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(e){return!1}},So=ne("Date"),To=ne("File"),Co=ne("Blob"),Oo=ne("FileList"),Ro=t=>ot(t)&&q(t.pipe),yo=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||q(t.append)&&((e=Gt(t))==="formdata"||e==="object"&&q(t.toString)&&t.toString()==="[object FormData]"))},No=ne("URLSearchParams"),[Po,vo,Lo,_o]=["ReadableStream","Request","Response","Headers"].map(ne),xo=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function st(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t=="undefined")return;let i,r;if(typeof t!="object"&&(t=[t]),ke(t))for(i=0,r=t.length;i<r;i++)e.call(null,t[i],i,t);else{if(rt(t))return;let s=n?Object.getOwnPropertyNames(t):Object.keys(t),o=s.length,a;for(i=0;i<o;i++)a=s[i],e.call(null,t[a],a,t)}}function ki(t,e){if(rt(t))return null;e=e.toLowerCase();let n=Object.keys(t),i=n.length,r;for(;i-- >0;)if(r=n[i],e===r.toLowerCase())return r;return null}var ye=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,Bi=t=>!De(t)&&t!==ye;function Sn(){let{caseless:t,skipUndefined:e}=Bi(this)&&this||{},n={},i=(r,s)=>{let o=t&&ki(n,s)||s;Ft(n[o])&&Ft(r)?n[o]=Sn(n[o],r):Ft(r)?n[o]=Sn({},r):ke(r)?n[o]=r.slice():(!e||!De(r))&&(n[o]=r)};for(let r=0,s=arguments.length;r<s;r++)arguments[r]&&st(arguments[r],i);return n}var Do=(t,e,n,{allOwnKeys:i}={})=>(st(e,(r,s)=>{n&&q(r)?t[s]=it(r,n):t[s]=r},{allOwnKeys:i}),t),ko=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Bo=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},Mo=(t,e,n,i)=>{let r,s,o,a={};if(e=e||{},t==null)return e;do{for(r=Object.getOwnPropertyNames(t),s=r.length;s-- >0;)o=r[s],(!i||i(o,t,e))&&!a[o]&&(e[o]=t[o],a[o]=!0);t=n!==!1&&Tn(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Uo=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;let i=t.indexOf(e,n);return i!==-1&&i===n},Fo=t=>{if(!t)return null;if(ke(t))return t;let e=t.length;if(!Di(e))return null;let n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},Ho=(t=>e=>t&&e instanceof t)(typeof Uint8Array!="undefined"&&Tn(Uint8Array)),Go=(t,e)=>{let i=(t&&t[Ht]).call(t),r;for(;(r=i.next())&&!r.done;){let s=r.value;e.call(t,s[0],s[1])}},Vo=(t,e)=>{let n,i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},Ko=ne("HTMLFormElement"),Wo=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,i,r){return i.toUpperCase()+r}),Li=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),zo=ne("RegExp"),Mi=(t,e)=>{let n=Object.getOwnPropertyDescriptors(t),i={};st(n,(r,s)=>{let o;(o=e(r,s,t))!==!1&&(i[s]=o||r)}),Object.defineProperties(t,i)},Yo=t=>{Mi(t,(e,n)=>{if(q(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;let i=t[n];if(q(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},jo=(t,e)=>{let n={},i=r=>{r.forEach(s=>{n[s]=!0})};return ke(t)?i(t):i(String(t).split(e)),n},$o=()=>{},Xo=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function qo(t){return!!(t&&q(t.append)&&t[_i]==="FormData"&&t[Ht])}var Jo=t=>{let e=new Array(10),n=(i,r)=>{if(ot(i)){if(e.indexOf(i)>=0)return;if(rt(i))return i;if(!("toJSON"in i)){e[r]=i;let s=ke(i)?[]:{};return st(i,(o,a)=>{let c=n(o,r+1);!De(c)&&(s[a]=c)}),e[r]=void 0,s}}return i};return n(t,0)},Zo=ne("AsyncFunction"),Qo=t=>t&&(ot(t)||q(t))&&q(t.then)&&q(t.catch),Ui=((t,e)=>t?setImmediate:e?((n,i)=>(ye.addEventListener("message",({source:r,data:s})=>{r===ye&&s===n&&i.length&&i.shift()()},!1),r=>{i.push(r),ye.postMessage(n,"*")}))("axios@".concat(Math.random()),[]):n=>setTimeout(n))(typeof setImmediate=="function",q(ye.postMessage)),es=typeof queueMicrotask!="undefined"?queueMicrotask.bind(ye):typeof process!="undefined"&&process.nextTick||Ui,ts=t=>t!=null&&q(t[Ht]),l={isArray:ke,isArrayBuffer:xi,isBuffer:rt,isFormData:yo,isArrayBufferView:Eo,isString:Io,isNumber:Di,isBoolean:bo,isObject:ot,isPlainObject:Ft,isEmptyObject:wo,isReadableStream:Po,isRequest:vo,isResponse:Lo,isHeaders:_o,isUndefined:De,isDate:So,isFile:To,isBlob:Co,isRegExp:zo,isFunction:q,isStream:Ro,isURLSearchParams:No,isTypedArray:Ho,isFileList:Oo,forEach:st,merge:Sn,extend:Do,trim:xo,stripBOM:ko,inherits:Bo,toFlatObject:Mo,kindOf:Gt,kindOfTest:ne,endsWith:Uo,toArray:Fo,forEachEntry:Go,matchAll:Vo,isHTMLForm:Ko,hasOwnProperty:Li,hasOwnProp:Li,reduceDescriptors:Mi,freezeMethods:Yo,toObjectSet:jo,toCamelCase:Wo,noop:$o,toFiniteNumber:Xo,findKey:ki,global:ye,isContextDefined:Bi,isSpecCompliantForm:qo,toJSONObject:Jo,isAsyncFn:Zo,isThenable:Qo,setImmediate:Ui,asap:es,isIterable:ts};function Be(t,e,n,i,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),i&&(this.request=i),r&&(this.response=r,this.status=r.status?r.status:null)}l.inherits(Be,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:l.toJSONObject(this.config),code:this.code,status:this.status}}});var Fi=Be.prototype,Hi={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{Hi[t]={value:t}});Object.defineProperties(Be,Hi);Object.defineProperty(Fi,"isAxiosError",{value:!0});Be.from=(t,e,n,i,r,s)=>{let o=Object.create(Fi);l.toFlatObject(t,o,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");let a=t&&t.message?t.message:"Error",c=e==null&&t?t.code:e;return Be.call(o,a,c,n,i,r),t&&o.cause==null&&Object.defineProperty(o,"cause",{value:t,configurable:!0}),o.name=t&&t.name||"Error",s&&Object.assign(o,s),o};var C=Be;var Kt=null;function Cn(t){return l.isPlainObject(t)||l.isArray(t)}function Vi(t){return l.endsWith(t,"[]")?t.slice(0,-2):t}function Gi(t,e,n){return t?t.concat(e).map(function(r,s){return r=Vi(r),!n&&s?"["+r+"]":r}).join(n?".":""):e}function ns(t){return l.isArray(t)&&!t.some(Cn)}var is=l.toFlatObject(l,{},null,function(e){return/^is[A-Z]/.test(e)});function rs(t,e,n){if(!l.isObject(t))throw new TypeError("target must be an object");e=e||new(Kt||FormData),n=l.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(T,b){return!l.isUndefined(b[T])});let i=n.metaTokens,r=n.visitor||d,s=n.dots,o=n.indexes,c=(n.Blob||typeof Blob!="undefined"&&Blob)&&l.isSpecCompliantForm(e);if(!l.isFunction(r))throw new TypeError("visitor must be a function");function u(m){if(m===null)return"";if(l.isDate(m))return m.toISOString();if(l.isBoolean(m))return m.toString();if(!c&&l.isBlob(m))throw new C("Blob is not supported. Use a Buffer instead.");return l.isArrayBuffer(m)||l.isTypedArray(m)?c&&typeof Blob=="function"?new Blob([m]):Buffer.from(m):m}function d(m,T,b){let v=m;if(m&&!b&&typeof m=="object"){if(l.endsWith(T,"{}"))T=i?T:T.slice(0,-2),m=JSON.stringify(m);else if(l.isArray(m)&&ns(m)||(l.isFileList(m)||l.endsWith(T,"[]"))&&(v=l.toArray(m)))return T=Vi(T),v.forEach(function(_,N){!(l.isUndefined(_)||_===null)&&e.append(o===!0?Gi([T],N,s):o===null?T:T+"[]",u(_))}),!1}return Cn(m)?!0:(e.append(Gi(b,T,s),u(m)),!1)}let f=[],S=Object.assign(is,{defaultVisitor:d,convertValue:u,isVisitable:Cn});function I(m,T){if(!l.isUndefined(m)){if(f.indexOf(m)!==-1)throw Error("Circular reference detected in "+T.join("."));f.push(m),l.forEach(m,function(v,k){(!(l.isUndefined(v)||v===null)&&r.call(e,v,l.isString(k)?k.trim():k,T,S))===!0&&I(v,T?T.concat(k):[k])}),f.pop()}}if(!l.isObject(t))throw new TypeError("data must be an object");return I(t),e}var be=rs;function Ki(t){let e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(i){return e[i]})}function Wi(t,e){this._pairs=[],t&&be(t,this,e)}var zi=Wi.prototype;zi.append=function(e,n){this._pairs.push([e,n])};zi.toString=function(e){let n=e?function(i){return e.call(this,i,Ki)}:Ki;return this._pairs.map(function(r){return n(r[0])+"="+n(r[1])},"").join("&")};var Wt=Wi;function os(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function at(t,e,n){if(!e)return t;let i=n&&n.encode||os;l.isFunction(n)&&(n={serialize:n});let r=n&&n.serialize,s;if(r?s=r(e,n):s=l.isURLSearchParams(e)?e.toString():new Wt(e,n).toString(i),s){let o=t.indexOf("#");o!==-1&&(t=t.slice(0,o)),t+=(t.indexOf("?")===-1?"?":"&")+s}return t}var On=class{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){l.forEach(this.handlers,function(i){i!==null&&e(i)})}},Rn=On;var zt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var Yi=typeof URLSearchParams!="undefined"?URLSearchParams:Wt;var ji=typeof FormData!="undefined"?FormData:null;var $i=typeof Blob!="undefined"?Blob:null;var Xi={isBrowser:!0,classes:{URLSearchParams:Yi,FormData:ji,Blob:$i},protocols:["http","https","file","blob","url","data"]};var Pn={};wi(Pn,{hasBrowserEnv:()=>Nn,hasStandardBrowserEnv:()=>ss,hasStandardBrowserWebWorkerEnv:()=>as,navigator:()=>yn,origin:()=>ls});var Nn=typeof window!="undefined"&&typeof document!="undefined",yn=typeof navigator=="object"&&navigator||void 0,ss=Nn&&(!yn||["ReactNative","NativeScript","NS"].indexOf(yn.product)<0),as=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ls=Nn&&window.location.href||"http://localhost";var B=R(R({},Pn),Xi);function vn(t,e){return be(t,new B.classes.URLSearchParams,R({visitor:function(n,i,r,s){return B.isNode&&l.isBuffer(n)?(this.append(i,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)}},e))}function cs(t){return l.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function us(t){let e={},n=Object.keys(t),i,r=n.length,s;for(i=0;i<r;i++)s=n[i],e[s]=t[s];return e}function ds(t){function e(n,i,r,s){let o=n[s++];if(o==="__proto__")return!0;let a=Number.isFinite(+o),c=s>=n.length;return o=!o&&l.isArray(r)?r.length:o,c?(l.hasOwnProp(r,o)?r[o]=[r[o],i]:r[o]=i,!a):((!r[o]||!l.isObject(r[o]))&&(r[o]=[]),e(n,i,r[o],s)&&l.isArray(r[o])&&(r[o]=us(r[o])),!a)}if(l.isFormData(t)&&l.isFunction(t.entries)){let n={};return l.forEachEntry(t,(i,r)=>{e(cs(i),r,n,0)}),n}return null}var Yt=ds;function fs(t,e,n){if(l.isString(t))try{return(e||JSON.parse)(t),l.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}var Ln={transitional:zt,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){let i=n.getContentType()||"",r=i.indexOf("application/json")>-1,s=l.isObject(e);if(s&&l.isHTMLForm(e)&&(e=new FormData(e)),l.isFormData(e))return r?JSON.stringify(Yt(e)):e;if(l.isArrayBuffer(e)||l.isBuffer(e)||l.isStream(e)||l.isFile(e)||l.isBlob(e)||l.isReadableStream(e))return e;if(l.isArrayBufferView(e))return e.buffer;if(l.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(s){if(i.indexOf("application/x-www-form-urlencoded")>-1)return vn(e,this.formSerializer).toString();if((a=l.isFileList(e))||i.indexOf("multipart/form-data")>-1){let c=this.env&&this.env.FormData;return be(a?{"files[]":e}:e,c&&new c,this.formSerializer)}}return s||r?(n.setContentType("application/json",!1),fs(e)):e}],transformResponse:[function(e){let n=this.transitional||Ln.transitional,i=n&&n.forcedJSONParsing,r=this.responseType==="json";if(l.isResponse(e)||l.isReadableStream(e))return e;if(e&&l.isString(e)&&(i&&!this.responseType||r)){let o=!(n&&n.silentJSONParsing)&&r;try{return JSON.parse(e,this.parseReviver)}catch(a){if(o)throw a.name==="SyntaxError"?C.from(a,C.ERR_BAD_RESPONSE,this,null,this.response):a}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:B.classes.FormData,Blob:B.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};l.forEach(["delete","get","head","post","put","patch"],t=>{Ln.headers[t]={}});var Me=Ln;var ps=l.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),qi=t=>{let e={},n,i,r;return t&&t.split("\n").forEach(function(o){r=o.indexOf(":"),n=o.substring(0,r).trim().toLowerCase(),i=o.substring(r+1).trim(),!(!n||e[n]&&ps[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e};var Ji=Symbol("internals");function lt(t){return t&&String(t).trim().toLowerCase()}function jt(t){return t===!1||t==null?t:l.isArray(t)?t.map(jt):String(t)}function gs(t){let e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}var ms=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function _n(t,e,n,i,r){if(l.isFunction(i))return i.call(this,e,n);if(r&&(e=n),!!l.isString(e)){if(l.isString(i))return e.indexOf(i)!==-1;if(l.isRegExp(i))return i.test(e)}}function hs(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function As(t,e){let n=l.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{value:function(r,s,o){return this[i].call(this,e,r,s,o)},configurable:!0})})}var Ue=class{constructor(e){e&&this.set(e)}set(e,n,i){let r=this;function s(a,c,u){let d=lt(c);if(!d)throw new Error("header name must be a non-empty string");let f=l.findKey(r,d);(!f||r[f]===void 0||u===!0||u===void 0&&r[f]!==!1)&&(r[f||c]=jt(a))}let o=(a,c)=>l.forEach(a,(u,d)=>s(u,d,c));if(l.isPlainObject(e)||e instanceof this.constructor)o(e,n);else if(l.isString(e)&&(e=e.trim())&&!ms(e))o(qi(e),n);else if(l.isObject(e)&&l.isIterable(e)){let a={},c,u;for(let d of e){if(!l.isArray(d))throw TypeError("Object iterator must return a key-value pair");a[u=d[0]]=(c=a[u])?l.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}o(a,n)}else e!=null&&s(n,e,i);return this}get(e,n){if(e=lt(e),e){let i=l.findKey(this,e);if(i){let r=this[i];if(!n)return r;if(n===!0)return gs(r);if(l.isFunction(n))return n.call(this,r,i);if(l.isRegExp(n))return n.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=lt(e),e){let i=l.findKey(this,e);return!!(i&&this[i]!==void 0&&(!n||_n(this,this[i],i,n)))}return!1}delete(e,n){let i=this,r=!1;function s(o){if(o=lt(o),o){let a=l.findKey(i,o);a&&(!n||_n(i,i[a],a,n))&&(delete i[a],r=!0)}}return l.isArray(e)?e.forEach(s):s(e),r}clear(e){let n=Object.keys(this),i=n.length,r=!1;for(;i--;){let s=n[i];(!e||_n(this,this[s],s,e,!0))&&(delete this[s],r=!0)}return r}normalize(e){let n=this,i={};return l.forEach(this,(r,s)=>{let o=l.findKey(i,s);if(o){n[o]=jt(r),delete n[s];return}let a=e?hs(s):String(s).trim();a!==s&&delete n[s],n[a]=jt(r),i[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let n=Object.create(null);return l.forEach(this,(i,r)=>{i!=null&&i!==!1&&(n[r]=e&&l.isArray(i)?i.join(", "):i)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){let i=new this(e);return n.forEach(r=>i.set(r)),i}static accessor(e){let i=(this[Ji]=this[Ji]={accessors:{}}).accessors,r=this.prototype;function s(o){let a=lt(o);i[a]||(As(r,o),i[a]=!0)}return l.isArray(e)?e.forEach(s):s(e),this}};Ue.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);l.reduceDescriptors(Ue.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}});l.freezeMethods(Ue);var G=Ue;function ct(t,e){let n=this||Me,i=e||n,r=G.from(i.headers),s=i.data;return l.forEach(t,function(a){s=a.call(n,s,r.normalize(),e?e.status:void 0)}),r.normalize(),s}function ut(t){return!!(t&&t.__CANCEL__)}function Zi(t,e,n){C.call(this,t==null?"canceled":t,C.ERR_CANCELED,e,n),this.name="CanceledError"}l.inherits(Zi,C,{__CANCEL__:!0});var ae=Zi;function dt(t,e,n){let i=n.config.validateStatus;!n.status||!i||i(n.status)?t(n):e(new C("Request failed with status code "+n.status,[C.ERR_BAD_REQUEST,C.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function xn(t){let e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function Es(t,e){t=t||10;let n=new Array(t),i=new Array(t),r=0,s=0,o;return e=e!==void 0?e:1e3,function(c){let u=Date.now(),d=i[s];o||(o=u),n[r]=c,i[r]=u;let f=s,S=0;for(;f!==r;)S+=n[f++],f=f%t;if(r=(r+1)%t,r===s&&(s=(s+1)%t),u-o<e)return;let I=d&&u-d;return I?Math.round(S*1e3/I):void 0}}var Qi=Es;function Is(t,e){let n=0,i=1e3/e,r,s,o=(u,d=Date.now())=>{n=d,r=null,s&&(clearTimeout(s),s=null),t(...u)};return[(...u)=>{let d=Date.now(),f=d-n;f>=i?o(u,d):(r=u,s||(s=setTimeout(()=>{s=null,o(r)},i-f)))},()=>r&&o(r)]}var er=Is;var Fe=(t,e,n=3)=>{let i=0,r=Qi(50,250);return er(s=>{let o=s.loaded,a=s.lengthComputable?s.total:void 0,c=o-i,u=r(c),d=o<=a;i=o;let f={loaded:o,total:a,progress:a?o/a:void 0,bytes:c,rate:u||void 0,estimated:u&&a&&d?(a-o)/u:void 0,event:s,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(f)},n)},Dn=(t,e)=>{let n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},kn=t=>(...e)=>l.asap(()=>t(...e));var tr=B.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,B.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(B.origin),B.navigator&&/(msie|trident)/i.test(B.navigator.userAgent)):()=>!0;var nr=B.hasStandardBrowserEnv?{write(t,e,n,i,r,s,o){if(typeof document=="undefined")return;let a=["".concat(t,"=").concat(encodeURIComponent(e))];l.isNumber(n)&&a.push("expires=".concat(new Date(n).toUTCString())),l.isString(i)&&a.push("path=".concat(i)),l.isString(r)&&a.push("domain=".concat(r)),s===!0&&a.push("secure"),l.isString(o)&&a.push("SameSite=".concat(o)),document.cookie=a.join("; ")},read(t){if(typeof document=="undefined")return null;let e=document.cookie.match(new RegExp("(?:^|; )"+t+"=([^;]*)"));return e?decodeURIComponent(e[1]):null},remove(t){this.write(t,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function Bn(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Mn(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function ft(t,e,n){let i=!Bn(e);return t&&(i||n==!1)?Mn(t,e):e}var ir=t=>t instanceof G?R({},t):t;function ie(t,e){e=e||{};let n={};function i(u,d,f,S){return l.isPlainObject(u)&&l.isPlainObject(d)?l.merge.call({caseless:S},u,d):l.isPlainObject(d)?l.merge({},d):l.isArray(d)?d.slice():d}function r(u,d,f,S){if(l.isUndefined(d)){if(!l.isUndefined(u))return i(void 0,u,f,S)}else return i(u,d,f,S)}function s(u,d){if(!l.isUndefined(d))return i(void 0,d)}function o(u,d){if(l.isUndefined(d)){if(!l.isUndefined(u))return i(void 0,u)}else return i(void 0,d)}function a(u,d,f){if(f in e)return i(u,d);if(f in t)return i(void 0,u)}let c={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(u,d,f)=>r(ir(u),ir(d),f,!0)};return l.forEach(Object.keys(R(R({},t),e)),function(d){let f=c[d]||r,S=f(t[d],e[d],d);l.isUndefined(S)&&f!==a||(n[d]=S)}),n}var $t=t=>{let e=ie({},t),{data:n,withXSRFToken:i,xsrfHeaderName:r,xsrfCookieName:s,headers:o,auth:a}=e;if(e.headers=o=G.from(o),e.url=at(ft(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),a&&o.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),l.isFormData(n)){if(B.hasStandardBrowserEnv||B.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(l.isFunction(n.getHeaders)){let c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,f])=>{u.includes(d.toLowerCase())&&o.set(d,f)})}}if(B.hasStandardBrowserEnv&&(i&&l.isFunction(i)&&(i=i(e)),i||i!==!1&&tr(e.url))){let c=r&&s&&nr.read(s);c&&o.set(r,c)}return e};var bs=typeof XMLHttpRequest!="undefined",rr=bs&&function(t){return new Promise(function(n,i){let r=$t(t),s=r.data,o=G.from(r.headers).normalize(),{responseType:a,onUploadProgress:c,onDownloadProgress:u}=r,d,f,S,I,m;function T(){I&&I(),m&&m(),r.cancelToken&&r.cancelToken.unsubscribe(d),r.signal&&r.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(r.method.toUpperCase(),r.url,!0),b.timeout=r.timeout;function v(){if(!b)return;let _=G.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),K={data:!a||a==="text"||a==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:_,config:t,request:b};dt(function(W){n(W),T()},function(W){i(W),T()},K),b=null}"onloadend"in b?b.onloadend=v:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(v)},b.onabort=function(){b&&(i(new C("Request aborted",C.ECONNABORTED,t,b)),b=null)},b.onerror=function(N){let K=N&&N.message?N.message:"Network Error",x=new C(K,C.ERR_NETWORK,t,b);x.event=N||null,i(x),b=null},b.ontimeout=function(){let N=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded",K=r.transitional||zt;r.timeoutErrorMessage&&(N=r.timeoutErrorMessage),i(new C(N,K.clarifyTimeoutError?C.ETIMEDOUT:C.ECONNABORTED,t,b)),b=null},s===void 0&&o.setContentType(null),"setRequestHeader"in b&&l.forEach(o.toJSON(),function(N,K){b.setRequestHeader(K,N)}),l.isUndefined(r.withCredentials)||(b.withCredentials=!!r.withCredentials),a&&a!=="json"&&(b.responseType=r.responseType),u&&([S,m]=Fe(u,!0),b.addEventListener("progress",S)),c&&b.upload&&([f,I]=Fe(c),b.upload.addEventListener("progress",f),b.upload.addEventListener("loadend",I)),(r.cancelToken||r.signal)&&(d=_=>{b&&(i(!_||_.type?new ae(null,t,b):_),b.abort(),b=null)},r.cancelToken&&r.cancelToken.subscribe(d),r.signal&&(r.signal.aborted?d():r.signal.addEventListener("abort",d)));let k=xn(r.url);if(k&&B.protocols.indexOf(k)===-1){i(new C("Unsupported protocol "+k+":",C.ERR_BAD_REQUEST,t));return}b.send(s||null)})};var ws=(t,e)=>{let{length:n}=t=t?t.filter(Boolean):[];if(e||n){let i=new AbortController,r,s=function(u){if(!r){r=!0,a();let d=u instanceof Error?u:this.reason;i.abort(d instanceof C?d:new ae(d instanceof Error?d.message:d))}},o=e&&setTimeout(()=>{o=null,s(new C("timeout ".concat(e," of ms exceeded"),C.ETIMEDOUT))},e),a=()=>{t&&(o&&clearTimeout(o),o=null,t.forEach(u=>{u.unsubscribe?u.unsubscribe(s):u.removeEventListener("abort",s)}),t=null)};t.forEach(u=>u.addEventListener("abort",s));let{signal:c}=i;return c.unsubscribe=()=>l.asap(a),c}},or=ws;var Ss=function*(t,e){let n=t.byteLength;if(!e||n<e){yield t;return}let i=0,r;for(;i<n;)r=i+e,yield t.slice(i,r),i=r},Ts=function(t,e){return hn(this,null,function*(){try{for(var n=Si(Cs(t)),i,r,s;i=!(r=yield new Re(n.next())).done;i=!1){let o=r.value;yield*An(Ss(o,e))}}catch(r){s=[r]}finally{try{i&&(r=n.return)&&(yield new Re(r.call(n)))}finally{if(s)throw s[0]}}})},Cs=function(t){return hn(this,null,function*(){if(t[Symbol.asyncIterator]){yield*An(t);return}let e=t.getReader();try{for(;;){let{done:n,value:i}=yield new Re(e.read());if(n)break;yield i}}finally{yield new Re(e.cancel())}})},Un=(t,e,n,i)=>{let r=Ts(t,e),s=0,o,a=c=>{o||(o=!0,i&&i(c))};return new ReadableStream({async pull(c){try{let{done:u,value:d}=await r.next();if(u){a(),c.close();return}let f=d.byteLength;if(n){let S=s+=f;n(S)}c.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(c){return a(c),r.return()}},{highWaterMark:2})};var sr=64*1024,{isFunction:Xt}=l,Os=(({Request:t,Response:e})=>({Request:t,Response:e}))(l.global),{ReadableStream:ar,TextEncoder:lr}=l.global,cr=(t,...e)=>{try{return!!t(...e)}catch(n){return!1}},Rs=t=>{t=l.merge.call({skipUndefined:!0},Os,t);let{fetch:e,Request:n,Response:i}=t,r=e?Xt(e):typeof fetch=="function",s=Xt(n),o=Xt(i);if(!r)return!1;let a=r&&Xt(ar),c=r&&(typeof lr=="function"?(m=>T=>m.encode(T))(new lr):async m=>new Uint8Array(await new n(m).arrayBuffer())),u=s&&a&&cr(()=>{let m=!1,T=new n(B.origin,{body:new ar,method:"POST",get duplex(){return m=!0,"half"}}).headers.has("Content-Type");return m&&!T}),d=o&&a&&cr(()=>l.isReadableStream(new i("").body)),f={stream:d&&(m=>m.body)};r&&["text","arrayBuffer","blob","formData","stream"].forEach(m=>{!f[m]&&(f[m]=(T,b)=>{let v=T&&T[m];if(v)return v.call(T);throw new C("Response type '".concat(m,"' is not supported"),C.ERR_NOT_SUPPORT,b)})});let S=async m=>{if(m==null)return 0;if(l.isBlob(m))return m.size;if(l.isSpecCompliantForm(m))return(await new n(B.origin,{method:"POST",body:m}).arrayBuffer()).byteLength;if(l.isArrayBufferView(m)||l.isArrayBuffer(m))return m.byteLength;if(l.isURLSearchParams(m)&&(m=m+""),l.isString(m))return(await c(m)).byteLength},I=async(m,T)=>{let b=l.toFiniteNumber(m.getContentLength());return b==null?S(T):b};return async m=>{let{url:T,method:b,data:v,signal:k,cancelToken:_,timeout:N,onDownloadProgress:K,onUploadProgress:x,responseType:W,headers:oe,withCredentials:qe="same-origin",fetchOptions:te}=$t(m),Ae=e||fetch;W=W?(W+"").toLowerCase():"text";let j=or([k,_&&_.toAbortSignal()],N),Je=null,Oe=j&&j.unsubscribe&&(()=>{j.unsubscribe()}),gi;try{if(x&&u&&b!=="get"&&b!=="head"&&(gi=await I(oe,v))!==0){let Ie=new n(T,{method:"POST",body:v,duplex:"half"}),Le;if(l.isFormData(v)&&(Le=Ie.headers.get("content-type"))&&oe.setContentType(Le),Ie.body){let[mn,Pt]=Dn(gi,Fe(kn(x)));v=Un(Ie.body,sr,mn,Pt)}}l.isString(qe)||(qe=qe?"include":"omit");let se=s&&"credentials"in n.prototype,mi=z(R({},te),{signal:j,method:b.toUpperCase(),headers:oe.normalize().toJSON(),body:v,duplex:"half",credentials:se?qe:void 0});Je=s&&new n(T,mi);let Ee=await(s?Ae(Je,te):Ae(T,mi)),hi=d&&(W==="stream"||W==="response");if(d&&(K||hi&&Oe)){let Ie={};["status","statusText","headers"].forEach(Ai=>{Ie[Ai]=Ee[Ai]});let Le=l.toFiniteNumber(Ee.headers.get("content-length")),[mn,Pt]=K&&Dn(Le,Fe(kn(K),!0))||[];Ee=new i(Un(Ee.body,sr,mn,()=>{Pt&&Pt(),Oe&&Oe()}),Ie)}W=W||"text";let to=await f[l.findKey(f,W)||"text"](Ee,m);return!hi&&Oe&&Oe(),await new Promise((Ie,Le)=>{dt(Ie,Le,{data:to,headers:G.from(Ee.headers),status:Ee.status,statusText:Ee.statusText,config:m,request:Je})})}catch(se){throw Oe&&Oe(),se&&se.name==="TypeError"&&/Load failed|fetch/i.test(se.message)?Object.assign(new C("Network Error",C.ERR_NETWORK,m,Je),{cause:se.cause||se}):C.from(se,se&&se.code,m,Je)}}},ys=new Map,Fn=t=>{let e=t&&t.env||{},{fetch:n,Request:i,Response:r}=e,s=[i,r,n],o=s.length,a=o,c,u,d=ys;for(;a--;)c=s[a],u=d.get(c),u===void 0&&d.set(c,u=a?new Map:Rs(e)),d=u;return u},kc=Fn();var Hn={http:Kt,xhr:rr,fetch:{get:Fn}};l.forEach(Hn,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}});var ur=t=>"- ".concat(t),Ps=t=>l.isFunction(t)||t===null||t===!1;function vs(t,e){t=l.isArray(t)?t:[t];let{length:n}=t,i,r,s={};for(let o=0;o<n;o++){i=t[o];let a;if(r=i,!Ps(i)&&(r=Hn[(a=String(i)).toLowerCase()],r===void 0))throw new C("Unknown adapter '".concat(a,"'"));if(r&&(l.isFunction(r)||(r=r.get(e))))break;s[a||"#"+o]=r}if(!r){let o=Object.entries(s).map(([c,u])=>"adapter ".concat(c," ")+(u===!1?"is not supported by the environment":"is not available in the build")),a=n?o.length>1?"since :\n"+o.map(ur).join("\n"):" "+ur(o[0]):"as no adapter specified";throw new C("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return r}var qt={getAdapter:vs,adapters:Hn};function Gn(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ae(null,t)}function Jt(t){return Gn(t),t.headers=G.from(t.headers),t.data=ct.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),qt.getAdapter(t.adapter||Me.adapter,t)(t).then(function(i){return Gn(t),i.data=ct.call(t,t.transformResponse,i),i.headers=G.from(i.headers),i},function(i){return ut(i)||(Gn(t),i&&i.response&&(i.response.data=ct.call(t,t.transformResponse,i.response),i.response.headers=G.from(i.response.headers))),Promise.reject(i)})}var Zt="1.13.0";var Qt={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Qt[t]=function(i){return typeof i===t||"a"+(e<1?"n ":" ")+t}});var dr={};Qt.transitional=function(e,n,i){function r(s,o){return"[Axios v"+Zt+"] Transitional option '"+s+"'"+o+(i?". "+i:"")}return(s,o,a)=>{if(e===!1)throw new C(r(o," has been removed"+(n?" in "+n:"")),C.ERR_DEPRECATED);return n&&!dr[o]&&(dr[o]=!0,console.warn(r(o," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(s,o,a):!0}};Qt.spelling=function(e){return(n,i)=>(console.warn("".concat(i," is likely a misspelling of ").concat(e)),!0)};function Ls(t,e,n){if(typeof t!="object")throw new C("options must be an object",C.ERR_BAD_OPTION_VALUE);let i=Object.keys(t),r=i.length;for(;r-- >0;){let s=i[r],o=e[s];if(o){let a=t[s],c=a===void 0||o(a,s,t);if(c!==!0)throw new C("option "+s+" must be "+c,C.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new C("Unknown option "+s,C.ERR_BAD_OPTION)}}var pt={assertOptions:Ls,validators:Qt};var le=pt.validators,He=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Rn,response:new Rn}}async request(e,n){try{return await this._request(e,n)}catch(i){if(i instanceof Error){let r={};Error.captureStackTrace?Error.captureStackTrace(r):r=new Error;let s=r.stack?r.stack.replace(/^.+\n/,""):"";try{i.stack?s&&!String(i.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(i.stack+="\n"+s):i.stack=s}catch(o){}}throw i}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=ie(this.defaults,n);let{transitional:i,paramsSerializer:r,headers:s}=n;i!==void 0&&pt.assertOptions(i,{silentJSONParsing:le.transitional(le.boolean),forcedJSONParsing:le.transitional(le.boolean),clarifyTimeoutError:le.transitional(le.boolean)},!1),r!=null&&(l.isFunction(r)?n.paramsSerializer={serialize:r}:pt.assertOptions(r,{encode:le.function,serialize:le.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),pt.assertOptions(n,{baseUrl:le.spelling("baseURL"),withXsrfToken:le.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=s&&l.merge(s.common,s[n.method]);s&&l.forEach(["delete","get","head","post","put","patch","common"],m=>{delete s[m]}),n.headers=G.concat(o,s);let a=[],c=!0;this.interceptors.request.forEach(function(T){typeof T.runWhen=="function"&&T.runWhen(n)===!1||(c=c&&T.synchronous,a.unshift(T.fulfilled,T.rejected))});let u=[];this.interceptors.response.forEach(function(T){u.push(T.fulfilled,T.rejected)});let d,f=0,S;if(!c){let m=[Jt.bind(this),void 0];for(m.unshift(...a),m.push(...u),S=m.length,d=Promise.resolve(n);f<S;)d=d.then(m[f++],m[f++]);return d}S=a.length;let I=n;for(;f<S;){let m=a[f++],T=a[f++];try{I=m(I)}catch(b){T.call(this,b);break}}try{d=Jt.call(this,I)}catch(m){return Promise.reject(m)}for(f=0,S=u.length;f<S;)d=d.then(u[f++],u[f++]);return d}getUri(e){e=ie(this.defaults,e);let n=ft(e.baseURL,e.url,e.allowAbsoluteUrls);return at(n,e.params,e.paramsSerializer)}};l.forEach(["delete","get","head","options"],function(e){He.prototype[e]=function(n,i){return this.request(ie(i||{},{method:e,url:n,data:(i||{}).data}))}});l.forEach(["post","put","patch"],function(e){function n(i){return function(s,o,a){return this.request(ie(a||{},{method:e,headers:i?{"Content-Type":"multipart/form-data"}:{},url:s,data:o}))}}He.prototype[e]=n(),He.prototype[e+"Form"]=n(!0)});var gt=He;var Vn=class t{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(s){n=s});let i=this;this.promise.then(r=>{if(!i._listeners)return;let s=i._listeners.length;for(;s-- >0;)i._listeners[s](r);i._listeners=null}),this.promise.then=r=>{let s,o=new Promise(a=>{i.subscribe(a),s=a}).then(r);return o.cancel=function(){i.unsubscribe(s)},o},e(function(s,o,a){i.reason||(i.reason=new ae(s,o,a),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){let e=new AbortController,n=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new t(function(r){e=r}),cancel:e}}},fr=Vn;function Kn(t){return function(n){return t.apply(null,n)}}function Wn(t){return l.isObject(t)&&t.isAxiosError===!0}var zn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(zn).forEach(([t,e])=>{zn[e]=t});var pr=zn;function gr(t){let e=new gt(t),n=it(gt.prototype.request,e);return l.extend(n,gt.prototype,e,{allOwnKeys:!0}),l.extend(n,e,null,{allOwnKeys:!0}),n.create=function(r){return gr(ie(t,r))},n}var F=gr(Me);F.Axios=gt;F.CanceledError=ae;F.CancelToken=fr;F.isCancel=ut;F.VERSION=Zt;F.toFormData=be;F.AxiosError=C;F.Cancel=F.CanceledError;F.all=function(e){return Promise.all(e)};F.spread=Kn;F.isAxiosError=Wn;F.mergeConfig=ie;F.AxiosHeaders=G;F.formToJSON=t=>Yt(l.isHTMLForm(t)?new FormData(t):t);F.getAdapter=qt.getAdapter;F.HttpStatusCode=pr;F.default=F;var en=F;var{Axios:xu,AxiosError:Du,CanceledError:ku,isCancel:Bu,CancelToken:Mu,VERSION:Uu,all:Fu,Cancel:Hu,isAxiosError:Gu,spread:Vu,toFormData:Ku,AxiosHeaders:Wu,HttpStatusCode:zu,formToJSON:Yu,getAdapter:ju,mergeConfig:$u}=en;var mt=class{constructor(e){this.currentToken=null;this.tokenProvider=null;this.requestHistory=new Map;this.WINDOW_MS=5e3;this.MAX_REQUESTS=30;this.axios=en.create({baseURL:e.baseURL,timeout:e.timeout||3e4,headers:R({"Content-Type":"application/json"},e.headers)}),typeof setInterval!="undefined"&&setInterval(()=>this.cleanupHistory(),1e4),this.axios.interceptors.request.use(async n=>{var i,r;if(n.url)try{this.checkRequestLimit("".concat((i=n.method)==null?void 0:i.toUpperCase(),":").concat(n.url))}catch(s){return console.error("[SDK] \u{1F6D1} Request blocked by Circuit Breaker:",s),Promise.reject(s)}if(!n.skipAuth&&!this.currentToken&&this.tokenProvider)try{console.log("[SDK] Waiting for token...");let s=await this.tokenProvider();s&&(this.updateToken(s),n.headers["x-cms-token"]=s)}catch(s){console.error("[SDK] Failed to get token from provider:",s)}return!n.skipAuth&&this.currentToken&&(n.headers["x-cms-token"]=this.currentToken),console.log("[SDK] Making ".concat((r=n.method)==null?void 0:r.toUpperCase()," request to: ").concat(n.baseURL||"").concat(n.url)),n},n=>(console.error("[SDK] Request error:",n),Promise.reject(n instanceof Error?n:new Error(String(n))))),this.axios.interceptors.response.use(n=>n,n=>(console.error("[SDK] Response error:",n.message),Promise.reject(n instanceof Error?n:new Error(String(n)))))}setTokenProvider(e){this.tokenProvider=e}async get(e,n){return(await this.axios.get(e,n)).data}async post(e,n,i){return(await this.axios.post(e,n,i)).data}async put(e,n,i){return(await this.axios.put(e,n,i)).data}async patch(e,n,i){return(await this.axios.patch(e,n,i)).data}async delete(e,n){return(await this.axios.delete(e,n)).data}setHeader(e,n){this.axios.defaults.headers.common[e]=n}removeHeader(e){delete this.axios.defaults.headers.common[e]}updateToken(e){this.currentToken=e,e?this.setHeader("x-cms-token",e):(this.removeHeader("x-cms-token"),console.log("[SDK] Token removed from ApiClient"))}getCurrentToken(){return this.currentToken}updateConfig(e){e.baseURL&&(this.axios.defaults.baseURL=e.baseURL),e.timeout&&(this.axios.defaults.timeout=e.timeout),e.headers&&Object.assign(this.axios.defaults.headers.common,e.headers),console.log("[SDK] ApiClient configuration updated")}checkRequestLimit(e){let n=Date.now(),i=this.requestHistory.get(e);if(!i){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(n-i.firstRequestTime>this.WINDOW_MS){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(i.count++,i.count>this.MAX_REQUESTS){let r=new Error("Circuit Breaker: Too many requests to ".concat(e," (").concat(i.count," in ").concat(this.WINDOW_MS,"ms)"));throw r.isCircuitBreaker=!0,r}}cleanupHistory(){let e=Date.now();for(let[n,i]of this.requestHistory.entries())e-i.firstRequestTime>this.WINDOW_MS&&this.requestHistory.delete(n)}};var _s="2.0.6",xs=500,mr="user-agent",Ye="",hr="?",M={FUNCTION:"function",OBJECT:"object",STRING:"string",UNDEFINED:"undefined"},J="browser",pe="cpu",de="device",re="engine",Q="os",We="result",h="name",p="type",A="vendor",E="version",$="architecture",Ct="major",g="model",St="console",O="mobile",P="tablet",H="smarttv",ce="wearable",tn="xr",Tt="embedded",Ge="inapp",oi="brands",Pe="formFactors",si="fullVersionList",ze="platform",ai="platformVersion",cn="bitness",Ce="sec-ch-ua",Ds=Ce+"-full-version-list",ks=Ce+"-arch",Bs=Ce+"-"+cn,Ms=Ce+"-form-factors",Us=Ce+"-"+O,Fs=Ce+"-"+g,vr=Ce+"-"+ze,Hs=vr+"-version",Lr=[oi,si,O,g,ze,ai,$,Pe,cn],nn="Amazon",Ve="Apple",Ar="ASUS",Er="BlackBerry",Ne="Google",Ir="Huawei",Yn="Lenovo",br="Honor",rn="LG",jn="Microsoft",$n="Motorola",Xn="Nvidia",wr="OnePlus",qn="OPPO",ht="Samsung",Sr="Sharp",At="Sony",Jn="Xiaomi",Zn="Zebra",Tr="Chrome",Cr="Chromium",we="Chromecast",sn="Edge",Et="Firefox",It="Opera",Qn="Facebook",Or="Sogou",Ke="Mobile ",bt=" Browser",ii="Windows",Gs=typeof window!==M.UNDEFINED,Z=Gs&&window.navigator?window.navigator:void 0,Se=Z&&Z.userAgentData?Z.userAgentData:void 0,Vs=function(t,e){var n={},i=e;if(!an(e)){i={};for(var r in e)for(var s in e[r])i[s]=e[r][s].concat(i[s]?i[s]:[])}for(var o in t)n[o]=i[o]&&i[o].length%2===0?i[o].concat(t[o]):t[o];return n},un=function(t){for(var e={},n=0;n<t.length;n++)e[t[n].toUpperCase()]=t[n];return e},ri=function(t,e){if(typeof t===M.OBJECT&&t.length>0){for(var n in t)if(Te(e)==Te(t[n]))return!0;return!1}return Ot(t)?Te(e)==Te(t):!1},an=function(t,e){for(var n in t)return/^(browser|cpu|device|engine|os)$/.test(n)||(e?an(t[n]):!1)},Ot=function(t){return typeof t===M.STRING},ei=function(t){if(t){for(var e=[],n=je(/\\?\"/g,t).split(","),i=0;i<n.length;i++)if(n[i].indexOf(";")>-1){var r=ln(n[i]).split(";v=");e[i]={brand:r[0],version:r[1]}}else e[i]=ln(n[i]);return e}},Te=function(t){return Ot(t)?t.toLowerCase():t},ti=function(t){return Ot(t)?je(/[^\d\.]/g,t).split(".")[0]:void 0},ge=function(t){for(var e in t)if(t.hasOwnProperty(e)){var n=t[e];typeof n==M.OBJECT&&n.length==2?this[n[0]]=n[1]:this[n]=void 0}return this},je=function(t,e){return Ot(e)?e.replace(t,Ye):e},wt=function(t){return je(/\\?\"/g,t)},ln=function(t,e){return t=je(/^\s\s*/,String(t)),typeof e===M.UNDEFINED?t:t.substring(0,e)},ni=function(t,e){if(!(!t||!e))for(var n=0,i,r,s,o,a,c;n<e.length&&!a;){var u=e[n],d=e[n+1];for(i=r=0;i<u.length&&!a&&u[i];)if(a=u[i++].exec(t),a)for(s=0;s<d.length;s++)c=a[++r],o=d[s],typeof o===M.OBJECT&&o.length>0?o.length===2?typeof o[1]==M.FUNCTION?this[o[0]]=o[1].call(this,c):this[o[0]]=o[1]:o.length>=3&&(typeof o[1]===M.FUNCTION&&!(o[1].exec&&o[1].test)?o.length>3?this[o[0]]=c?o[1].apply(this,o.slice(2)):void 0:this[o[0]]=c?o[1].call(this,c,o[2]):void 0:o.length==3?this[o[0]]=c?c.replace(o[1],o[2]):void 0:o.length==4?this[o[0]]=c?o[3].call(this,c.replace(o[1],o[2])):void 0:o.length>4&&(this[o[0]]=c?o[3].apply(this,[c.replace(o[1],o[2])].concat(o.slice(4))):void 0)):this[o]=c||void 0;n+=2}},ue=function(t,e){for(var n in e)if(typeof e[n]===M.OBJECT&&e[n].length>0){for(var i=0;i<e[n].length;i++)if(ri(e[n][i],t))return n===hr?void 0:n}else if(ri(e[n],t))return n===hr?void 0:n;return e.hasOwnProperty("*")?e["*"]:t},Rr={ME:"4.90","NT 3.51":"3.51","NT 4.0":"4.0",2e3:["5.0","5.01"],XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2","8.1":"6.3",10:["6.4","10.0"],NT:""},yr={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Ks={Chrome:"Google Chrome",Edge:"Microsoft Edge","Edge WebView2":"Microsoft Edge WebView2","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome","Huawei Browser":"HuaweiBrowser","MIUI Browser":"Miui Browser","Opera Mobi":"OperaMobile",Yandex:"YaBrowser"},Nr={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[E,[h,Ke+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[E,[h,sn+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[E,[h,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[h,E],[/opios[\/ ]+([\w\.]+)/i],[E,[h,It+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[E,[h,It+" GX"]],[/\bopr\/([\w\.]+)/i],[E,[h,It]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[E,[h,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[E,[h,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,/(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,/(qwant)(?:ios|mobile)\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[h,E],[/quark(?:pc)?\/([-\w\.]+)/i],[E,[h,"Quark"]],[/\bddg\/([\w\.]+)/i],[E,[h,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[E,[h,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[E,[h,"WeChat"]],[/konqueror\/([\w\.]+)/i],[E,[h,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[E,[h,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[E,[h,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[E,[h,"Smart "+Yn+bt]],[/(avast|avg)\/([\w\.]+)/i],[[h,/(.+)/,"$1 Secure"+bt],E],[/\bfocus\/([\w\.]+)/i],[E,[h,Et+" Focus"]],[/\bopt\/([\w\.]+)/i],[E,[h,It+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[E,[h,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[E,[h,"Dolphin"]],[/coast\/([\w\.]+)/i],[E,[h,It+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[E,[h,"MIUI"+bt]],[/fxios\/([\w\.-]+)/i],[E,[h,Ke+Et]],[/\bqihoobrowser\/?([\w\.]*)/i],[E,[h,"360"]],[/\b(qq)\/([\w\.]+)/i],[[h,/(.+)/,"$1Browser"],E],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[h,/(.+)/,"$1"+bt],E],[/samsungbrowser\/([\w\.]+)/i],[E,[h,ht+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[E,[h,Or+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[h,Or+" Mobile"],E],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[h,E],[/(lbbrowser|rekonq)/i],[h],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[E,h],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[h,Qn],E,[p,Ge]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(bing)(?:web|sapphire)\/([\w\.]+)/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[h,E,[p,Ge]],[/\bgsa\/([\w\.]+) .*safari\//i],[E,[h,"GSA"],[p,Ge]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[E,[h,"TikTok"],[p,Ge]],[/\[(linkedin)app\]/i],[h,[p,Ge]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[h,/(.+)/,"Zalo"],E,[p,Ge]],[/(chromium)[\/ ]([-\w\.]+)/i],[h,E],[/headlesschrome(?:\/([\w\.]+)| )/i],[E,[h,Tr+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[E,[h,sn+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[h,Tr+" WebView"],E],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[E,[h,"Android"+bt]],[/chrome\/([\w\.]+) mobile/i],[E,[h,Ke+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[h,E],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[E,[h,Ke+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[h,Ke+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[E,h],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[h,[E,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[h,E],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[h,Ke+Et],E],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[h,"Netscape"],E],[/(wolvic|librewolf)\/([\w\.]+)/i],[h,E],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[E,[h,Et+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[h,[E,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[h,[E,/[^\d\.]+./,Ye]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[$,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[$,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[$,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[$,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[$,"arm"]],[/ sun4\w[;\)]/i],[[$,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,/((ppc|powerpc)(64)?)( mac|;|\))/i,/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i],[[$,/ower/,Ye,Te]],[/mc680.0/i],[[$,"68k"]],[/winnt.+\[axp/i],[[$,"alpha"]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[g,[A,ht],[p,P]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[g,[A,ht],[p,O]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[g,[A,Ve],[p,O]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[g,[A,Ve],[p,P]],[/(macintosh);/i],[g,[A,Ve]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[g,[A,Sr],[p,O]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[g,[A,br],[p,P]],[/honor([-\w ]+)[;\)]/i],[g,[A,br],[p,O]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[g,[A,Ir],[p,P]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[g,[A,Ir],[p,O]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[g,/_/g," "],[A,Jn],[p,P]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[g,/_/g," "],[A,Jn],[p,O]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[g,[A,wr],[p,O]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[g,[A,qn],[p,O]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[g,[A,ue,{OnePlus:["203","304","403","404","413","415"],"*":qn}],[p,P]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[g,[A,"BLU"],[p,O]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[g,[A,"Vivo"],[p,O]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[g,[A,"Realme"],[p,O]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[g,[A,Yn],[p,P]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[g,[A,Yn],[p,O]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[g,[A,$n],[p,O]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[g,[A,$n],[p,P]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[g,[A,rn],[p,P]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[g,[A,rn],[p,O]],[/(nokia) (t[12][01])/i],[A,g,[p,P]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[g,/_/g," "],[p,O],[A,"Nokia"]],[/(pixel (c|tablet))\b/i],[g,[A,Ne],[p,P]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[g,[A,Ne],[p,O]],[/(google) (pixelbook( go)?)/i],[A,g],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[g,[A,At],[p,O]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[g,"Xperia Tablet"],[A,At],[p,P]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[g,[A,nn],[p,P]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[g,/(.+)/g,"Fire Phone $1"],[A,nn],[p,O]],[/(playbook);[-\w\),; ]+(rim)/i],[g,A,[p,P]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[g,[A,Er],[p,O]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[g,[A,Ar],[p,P]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[g,[A,Ar],[p,O]],[/(nexus 9)/i],[g,[A,"HTC"],[p,P]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[A,[g,/_/g," "],[p,O]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[g,[A,"TCL"],[p,P]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[g,[A,"TCL"],[p,O]],[/(itel) ((\w+))/i],[[A,Te],g,[p,ue,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[g,[A,"Acer"],[p,P]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[g,[A,"Meizu"],[p,O]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[g,[A,"Ulefone"],[p,O]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[g,[A,"Energizer"],[p,O]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[g,[A,"Cat"],[p,O]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[g,[A,"Smartfren"],[p,O]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[g,[A,"Nothing"],[p,O]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[g,[A,"Archos"],[p,P]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[g,[A,"Archos"],[p,O]],[/; (n159v)/i],[g,[A,"HMD"],[p,O]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[A,g,[p,P]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i,/(hisense) ([ehv][\w ]+)\)/i,/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i],[A,g,[p,O]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[A,g,[p,P]],[/(surface duo)/i],[g,[A,jn],[p,P]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[g,[A,"Fairphone"],[p,O]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[g,[A,Xn],[p,P]],[/(sprint) (\w+)/i],[A,g,[p,O]],[/(kin\.[onetw]{3})/i],[[g,/\./g," "],[A,jn],[p,O]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[g,[A,Zn],[p,P]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[g,[A,Zn],[p,O]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[A,[p,H]],[/hbbtv.+maple;(\d+)/i],[[g,/^/,"SmartTV"],[A,ht],[p,H]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[A,g,[p,H]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[A,rn],[p,H]],[/(apple) ?tv/i],[A,[g,Ve+" TV"],[p,H]],[/crkey.*devicetype\/chromecast/i],[[g,we+" Third Generation"],[A,Ne],[p,H]],[/crkey.*devicetype\/([^/]*)/i],[[g,/^/,"Chromecast "],[A,Ne],[p,H]],[/fuchsia.*crkey/i],[[g,we+" Nest Hub"],[A,Ne],[p,H]],[/crkey/i],[[g,we],[A,Ne],[p,H]],[/(portaltv)/i],[g,[A,Qn],[p,H]],[/droid.+aft(\w+)( bui|\))/i],[g,[A,nn],[p,H]],[/(shield \w+ tv)/i],[g,[A,Xn],[p,H]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[g,[A,Sr],[p,H]],[/(bravia[\w ]+)( bui|\))/i],[g,[A,At],[p,H]],[/(mi(tv|box)-?\w+) bui/i],[g,[A,Jn],[p,H]],[/Hbbtv.*(technisat) (.*);/i],[A,g,[p,H]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[A,/.+\/(\w+)/,"$1",ue,{LG:"lge"}],[g,ln],[p,H]],[/(playstation \w+)/i],[g,[A,At],[p,St]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[g,[A,jn],[p,St]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[A,g,[p,St]],[/droid.+; (shield)( bui|\))/i],[g,[A,Xn],[p,St]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[g,[A,ht],[p,ce]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[A,g,[p,ce]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[g,[A,qn],[p,ce]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[g,[A,Ve],[p,ce]],[/(opwwe\d{3})/i],[g,[A,wr],[p,ce]],[/(moto 360)/i],[g,[A,$n],[p,ce]],[/(smartwatch 3)/i],[g,[A,At],[p,ce]],[/(g watch r)/i],[g,[A,rn],[p,ce]],[/droid.+; (wt63?0{2,3})\)/i],[g,[A,Zn],[p,ce]],[/droid.+; (glass) \d/i],[g,[A,Ne],[p,tn]],[/(pico) ([\w ]+) os\d/i],[A,g,[p,tn]],[/(quest( \d| pro)?s?).+vr/i],[g,[A,Qn],[p,tn]],[/mobile vr; rv.+firefox/i],[[p,tn]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[A,[p,Tt]],[/(aeobc)\b/i],[g,[A,nn],[p,Tt]],[/(homepod).+mac os/i],[g,[A,Ve],[p,Tt]],[/windows iot/i],[[p,Tt]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[g,[p,H]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[p,H]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[g,[p,ue,{mobile:"Mobile",xr:"VR","*":P}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[p,P]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[p,O]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[g,[A,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[E,[h,sn+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[h,E],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[E,[h,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[h,E],[/ladybird\//i],[[h,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[E,h]],os:[[/(windows nt) (6\.[23]); arm/i],[[h,/N/,"R"],[E,ue,Rr]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[h,E],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[E,/(;|\))/g,"",ue,Rr],[h,ii]],[/(windows ce)\/?([\d\.]*)/i],[h,E],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w\.]+)/i,/cfnetwork\/.+darwin/i],[[E,/_/g,"."],[h,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[h,"macOS"],[E,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[E,[h,we+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[E,[h,we+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[E,[h,we+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[E,[h,we+" Linux"]],[/crkey\/([\d\.]+)/i],[E,[h,we]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[E,h],[/(ubuntu) ([\w\.]+) like android/i],[[h,/(.+)/,"$1 Touch"],E],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[h,E],[/\(bb(10);/i],[E,[h,Er]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[E,[h,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[E,[h,Et+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[E,[h,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[E,ue,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[h,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[E,[h,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[h,"Chrome OS"],E],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[h,E],[/(sunos) ?([\d\.]*)/i],[[h,"Solaris"],E],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[h,E]]},on=function(){var t={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return ge.call(t.init,[[J,[h,E,Ct,p]],[pe,[$]],[de,[p,g,A]],[re,[h,E]],[Q,[h,E]]]),ge.call(t.isIgnore,[[J,[E,Ct]],[re,[E]],[Q,[E]]]),ge.call(t.isIgnoreRgx,[[J,/ ?browser$/i],[Q,/ ?os$/i]]),ge.call(t.toString,[[J,[h,E]],[pe,[$]],[de,[A,g]],[re,[h,E]],[Q,[h,E]]]),t}(),Ws=function(t,e){var n=on.init[e],i=on.isIgnore[e]||0,r=on.isIgnoreRgx[e]||0,s=on.toString[e]||0;function o(){ge.call(this,n)}return o.prototype.getItem=function(){return t},o.prototype.withClientHints=function(){return Se?Se.getHighEntropyValues(Lr).then(function(a){return t.setCH(new _r(a,!1)).parseCH().get()}):t.parseCH().get()},o.prototype.withFeatureCheck=function(){return t.detectFeature().get()},e!=We&&(o.prototype.is=function(a){var c=!1;for(var u in this)if(this.hasOwnProperty(u)&&!ri(i,u)&&Te(r?je(r,this[u]):this[u])==Te(r?je(r,a):a)){if(c=!0,a!=M.UNDEFINED)break}else if(a==M.UNDEFINED&&c){c=!c;break}return c},o.prototype.toString=function(){var a=Ye;for(var c in s)typeof this[s[c]]!==M.UNDEFINED&&(a+=(a?" ":Ye)+this[s[c]]);return a||M.UNDEFINED}),Se||(o.prototype.then=function(a){var c=this,u=function(){for(var f in c)c.hasOwnProperty(f)&&(this[f]=c[f])};u.prototype={is:o.prototype.is,toString:o.prototype.toString};var d=new u;return a(d),d}),new o};function _r(t,e){if(t=t||{},ge.call(this,Lr),e)ge.call(this,[[oi,ei(t[Ce])],[si,ei(t[Ds])],[O,/\?1/.test(t[Us])],[g,wt(t[Fs])],[ze,wt(t[vr])],[ai,wt(t[Hs])],[$,wt(t[ks])],[Pe,ei(t[Ms])],[cn,wt(t[Bs])]]);else for(var n in t)this.hasOwnProperty(n)&&typeof t[n]!==M.UNDEFINED&&(this[n]=t[n])}function Pr(t,e,n,i){return this.get=function(r){return r?this.data.hasOwnProperty(r)?this.data[r]:void 0:this.data},this.set=function(r,s){return this.data[r]=s,this},this.setCH=function(r){return this.uaCH=r,this},this.detectFeature=function(){if(Z&&Z.userAgent==this.ua)switch(this.itemType){case J:Z.brave&&typeof Z.brave.isBrave==M.FUNCTION&&this.set(h,"Brave");break;case de:!this.get(p)&&Se&&Se[O]&&this.set(p,O),this.get(g)=="Macintosh"&&Z&&typeof Z.standalone!==M.UNDEFINED&&Z.maxTouchPoints&&Z.maxTouchPoints>2&&this.set(g,"iPad").set(p,P);break;case Q:!this.get(h)&&Se&&Se[ze]&&this.set(h,Se[ze]);break;case We:var r=this.data,s=function(o){return r[o].getItem().detectFeature().get()};this.set(J,s(J)).set(pe,s(pe)).set(de,s(de)).set(re,s(re)).set(Q,s(Q))}return this},this.parseUA=function(){switch(this.itemType!=We&&ni.call(this.data,this.ua,this.rgxMap),this.itemType){case J:this.set(Ct,ti(this.get(E)));break;case Q:if(this.get(h)=="iOS"&&this.get(E)=="18.6"){var r=/\) Version\/([\d\.]+)/.exec(this.ua);r&&parseInt(r[1].substring(0,2),10)>=26&&this.set(E,r[1])}break}return this},this.parseCH=function(){var r=this.uaCH,s=this.rgxMap;switch(this.itemType){case J:case re:var o=r[si]||r[oi],a;if(o)for(var c=0;c<o.length;c++){var u=o[c].brand||o[c],d=o[c].version;this.itemType==J&&!/not.a.brand/i.test(u)&&(!a||/Chrom/.test(a)&&u!=Cr||a==sn&&/WebView2/.test(u))&&(u=ue(u,Ks),a=this.get(h),a&&!/Chrom/.test(a)&&/Chrom/.test(u)||this.set(h,u).set(E,d).set(Ct,ti(d)),a=u),this.itemType==re&&u==Cr&&this.set(E,d)}break;case pe:var f=r[$];f&&(f&&r[cn]=="64"&&(f+="64"),ni.call(this.data,f+";",s));break;case de:if(r[O]&&this.set(p,O),r[g]&&(this.set(g,r[g]),!this.get(p)||!this.get(A))){var S={};ni.call(S,"droid 9; "+r[g]+")",s),!this.get(p)&&S.type&&this.set(p,S.type),!this.get(A)&&S.vendor&&this.set(A,S.vendor)}if(r[Pe]){var I;if(typeof r[Pe]!="string")for(var m=0;!I&&m<r[Pe].length;)I=ue(r[Pe][m++],yr);else I=ue(r[Pe],yr);this.set(p,I)}break;case Q:var T=r[ze];if(T){var b=r[ai];T==ii&&(b=parseInt(ti(b),10)>=13?"11":"10"),this.set(h,T).set(E,b)}this.get(h)==ii&&r[g]=="Xbox"&&this.set(h,"Xbox").set(E,void 0);break;case We:var v=this.data,k=function(_){return v[_].getItem().setCH(r).parseCH().get()};this.set(J,k(J)).set(pe,k(pe)).set(de,k(de)).set(re,k(re)).set(Q,k(Q))}return this},ge.call(this,[["itemType",t],["ua",e],["uaCH",i],["rgxMap",n],["data",Ws(this,t)]]),this}function ee(t,e,n){if(typeof t===M.OBJECT?(an(t,!0)?(typeof e===M.OBJECT&&(n=e),e=t):(n=t,e=void 0),t=void 0):typeof t===M.STRING&&!an(e,!0)&&(n=e,e=void 0),n)if(typeof n.append===M.FUNCTION){var i={};n.forEach(function(d,f){i[String(f).toLowerCase()]=d}),n=i}else{var r={};for(var s in n)n.hasOwnProperty(s)&&(r[String(s).toLowerCase()]=n[s]);n=r}if(!(this instanceof ee))return new ee(t,e,n).getResult();var o=typeof t===M.STRING?t:n&&n[mr]?n[mr]:Z&&Z.userAgent?Z.userAgent:Ye,a=new _r(n,!0),c=e?Vs(Nr,e):Nr,u=function(d){return d==We?function(){return new Pr(d,o,c,a).set("ua",o).set(J,this.getBrowser()).set(pe,this.getCPU()).set(de,this.getDevice()).set(re,this.getEngine()).set(Q,this.getOS()).get()}:function(){return new Pr(d,o,c[d],a).parseUA().get()}};return ge.call(this,[["getBrowser",u(J)],["getCPU",u(pe)],["getDevice",u(de)],["getEngine",u(re)],["getOS",u(Q)],["getResult",u(We)],["getUA",function(){return o}],["setUA",function(d){return Ot(d)&&(o=ln(d,xs)),this}]]).setUA(o),this}ee.VERSION=_s;ee.BROWSER=un([h,E,Ct,p]);ee.CPU=un([$]);ee.DEVICE=un([g,A,p,St,O,H,P,ce,Tt]);ee.ENGINE=ee.OS=un([h,E]);var id=Object.freeze({115:"115",2345:"2345",360:"360",ALIPAY:"Alipay",AMAYA:"Amaya",ANDROID:"Android Browser",ARORA:"Arora",AVANT:"Avant",AVAST:"Avast Secure Browser",AVG:"AVG Secure Browser",BAIDU:"Baidu Browser",BASILISK:"Basilisk",BING:"Bing",BLAZER:"Blazer",BOLT:"Bolt",BOWSER:"Bowser",BRAVE:"Brave",CAMINO:"Camino",CHIMERA:"Chimera",CHROME:"Chrome",CHROME_HEADLESS:"Chrome Headless",CHROME_MOBILE:"Mobile Chrome",CHROME_WEBVIEW:"Chrome WebView",CHROMIUM:"Chromium",COBALT:"Cobalt",COC_COC:"Coc Coc",CONKEROR:"Conkeror",DAUM:"Daum",DILLO:"Dillo",DOLPHIN:"Dolphin",DOOBLE:"Dooble",DORIS:"Doris",DRAGON:"Dragon",DUCKDUCKGO:"DuckDuckGo",ECOSIA:"Ecosia",EDGE:"Edge",EDGE_WEBVIEW:"Edge WebView",EDGE_WEBVIEW2:"Edge WebView2",EPIPHANY:"Epiphany",FACEBOOK:"Facebook",FALKON:"Falkon",FIREBIRD:"Firebird",FIREFOX:"Firefox",FIREFOX_FOCUS:"Firefox Focus",FIREFOX_MOBILE:"Mobile Firefox",FIREFOX_REALITY:"Firefox Reality",FENNEC:"Fennec",FLOCK:"Flock",FLOW:"Flow",GO:"GoBrowser",GOOGLE_SEARCH:"GSA",HELIO:"Helio",HEYTAP:"HeyTap",HONOR:"Honor",HUAWEI:"Huawei Browser",ICAB:"iCab",ICE:"ICE Browser",ICEAPE:"IceApe",ICECAT:"IceCat",ICEDRAGON:"IceDragon",ICEWEASEL:"IceWeasel",IE:"IE",INSTAGRAM:"Instagram",IRIDIUM:"Iridium",IRON:"Iron",JASMINE:"Jasmine",KONQUEROR:"Konqueror",KAKAO:"KakaoTalk",KHTML:"KHTML",K_MELEON:"K-Meleon",KLAR:"Klar",KLARNA:"Klarna",KINDLE:"Kindle",LENOVO:"Smart Lenovo Browser",LADYBIRD:"Ladybird",LG:"LG Browser",LIBREWOLF:"LibreWolf",LIEBAO:"LBBROWSER",LINE:"Line",LINKEDIN:"LinkedIn",LINKS:"Links",LUNASCAPE:"Lunascape",LYNX:"Lynx",MAEMO:"Maemo Browser",MAXTHON:"Maxthon",MIDORI:"Midori",MINIMO:"Minimo",MIUI:"MIUI Browser",MOZILLA:"Mozilla",MOSAIC:"Mosaic",NAVER:"Naver",NETFRONT:"NetFront",NETSCAPE:"Netscape",NETSURF:"Netsurf",NOKIA:"Nokia Browser",OBIGO:"Obigo",OCULUS:"Oculus Browser",OMNIWEB:"OmniWeb",OPERA:"Opera",OPERA_COAST:"Opera Coast",OPERA_GX:"Opera GX",OPERA_MINI:"Opera Mini",OPERA_MOBI:"Opera Mobi",OPERA_TABLET:"Opera Tablet",OPERA_TOUCH:"Opera Touch",OTTER:"Otter",OVI:"OviBrowser",PALEMOON:"PaleMoon",PHANTOMJS:"PhantomJS",PHOENIX:"Phoenix",PICOBROWSER:"Pico Browser",POLARIS:"Polaris",PUFFIN:"Puffin",QQ:"QQBrowser",QQ_LITE:"QQBrowserLite",QUARK:"Quark",QUPZILLA:"QupZilla",QUTEBROWSER:"qutebrowser",QWANT:"Qwant",REKONQ:"rekonq",ROCKMELT:"Rockmelt",SAFARI:"Safari",SAFARI_MOBILE:"Mobile Safari",SAILFISH:"Sailfish Browser",SAMSUNG:"Samsung Internet",SEAMONKEY:"SeaMonkey",SILK:"Silk",SKYFIRE:"Skyfire",SLEIPNIR:"Sleipnir",SLIMBOAT:"SlimBoat",SLIMBROWSER:"SlimBrowser",SLIMJET:"Slimjet",SNAPCHAT:"Snapchat",SOGOU_EXPLORER:"Sogou Explorer",SOGOU_MOBILE:"Sogou Mobile",SURF:"Surf",SWIFTFOX:"Swiftfox",TESLA:"Tesla",TIKTOK:"TikTok",TIZEN:"Tizen Browser",TWITTER:"Twitter",UC:"UCBrowser",UP:"UP.Browser",VIVALDI:"Vivaldi",VIVO:"Vivo Browser",W3M:"w3m",WATERFOX:"Waterfox",WEBKIT:"WebKit",WECHAT:"WeChat",WEIBO:"Weibo",WHALE:"Whale",WOLVIC:"Wolvic",YANDEX:"Yandex",ZALO:"Zalo"});var Rt=Object.freeze({CRAWLER:"crawler",CLI:"cli",EMAIL:"email",FETCHER:"fetcher",INAPP:"inapp",MEDIAPLAYER:"mediaplayer",LIBRARY:"library"}),xr=Object.freeze({"68K":"68k",ALPHA:"alpha",ARM:"arm",ARM_64:"arm64",ARM_HF:"armhf",AVR:"avr",AVR_32:"avr32",IA64:"ia64",IRIX:"irix",IRIX_64:"irix64",MIPS:"mips",MIPS_64:"mips64",PA_RISC:"pa-risc",PPC:"ppc",SPARC:"sparc",SPARC_64:"sparc64",X86:"ia32",X86_64:"amd64"});var rd=Object.freeze({CONSOLE:"console",DESKTOP:"desktop",EMBEDDED:"embedded",MOBILE:"mobile",SMARTTV:"smarttv",TABLET:"tablet",WEARABLE:"wearable",XR:"xr"});var od=Object.freeze({ACER:"Acer",ADVAN:"Advan",ALCATEL:"Alcatel",APPLE:"Apple",AMAZON:"Amazon",ARCHOS:"Archos",ASUS:"ASUS",ATT:"AT&T",BENQ:"BenQ",BLACKBERRY:"BlackBerry",BLU:"BLU",CAT:"Cat",DELL:"Dell",ENERGIZER:"Energizer",ESSENTIAL:"Essential",FACEBOOK:"Facebook",FAIRPHONE:"Fairphone",GEEKSPHONE:"GeeksPhone",GENERIC:"Generic",GOOGLE:"Google",HISENSE:"Hisense",HMD:"HMD",HP:"HP",HTC:"HTC",HUAWEI:"Huawei",IMO:"IMO",INFINIX:"Infinix",ITEL:"itel",JOLLA:"Jolla",KOBO:"Kobo",LAVA:"Lava",LENOVO:"Lenovo",LG:"LG",MEIZU:"Meizu",MICROMAX:"Micromax",MICROSOFT:"Microsoft",MOTOROLA:"Motorola",NEXIAN:"Nexian",NINTENDO:"Nintendo",NOKIA:"Nokia",NOTHING:"Nothing",NVIDIA:"Nvidia",ONEPLUS:"OnePlus",OPPO:"OPPO",OUYA:"Ouya",PALM:"Palm",PANASONIC:"Panasonic",PEBBLE:"Pebble",PHILIPS:"Philips",PICO:"Pico",POLYTRON:"Polytron",REALME:"Realme",RETROID:"Retroid",RIM:"RIM",ROKU:"Roku",SAMSUNG:"Samsung",SHARP:"Sharp",SIEMENS:"Siemens",SMARTFREN:"Smartfren",SONY:"Sony",SPRINT:"Sprint",TCL:"TCL",TECHNISAT:"TechniSAT",TECNO:"TECNO",TESLA:"Tesla",ULEFONE:"Ulefone",VIVO:"Vivo",VIZIO:"Vizio",VODAFONE:"Vodafone",WIKO:"Wiko",XBOX:"Xbox",XIAOMI:"Xiaomi",ZEBRA:"Zebra",ZTE:"ZTE"});var Dr=Object.freeze({AMAYA:"Amaya",ARKWEB:"ArkWeb",BLINK:"Blink",EDGEHTML:"EdgeHTML",FLOW:"Flow",GECKO:"Gecko",GOANNA:"Goanna",ICAB:"iCab",KHTML:"KHTML",LIBWEB:"LibWeb",LINKS:"Links",LYNX:"Lynx",NETFRONT:"NetFront",NETSURF:"NetSurf",PRESTO:"Presto",SERVO:"Servo",TASMAN:"Tasman",TRIDENT:"Trident",W3M:"w3m",WEBKIT:"WebKit"});var kr=Object.freeze({AIX:"AIX",AMIGA_OS:"Amiga OS",ANDROID:"Android",ANDROID_X86:"Android-x86",ARCAOS:"ArcaOS",ARCH:"Arch",BADA:"Bada",BEOS:"BeOS",BLACKBERRY:"BlackBerry",CENTOS:"CentOS",CHROME_OS:"Chrome OS",CHROMECAST:"Chromecast",CHROMECAST_ANDROID:"Chromecast Android",CHROMECAST_FUCHSIA:"Chromecast Fuchsia",CHROMECAST_LINUX:"Chromecast Linux",CHROMECAST_SMARTSPEAKER:"Chromecast SmartSpeaker",CONTIKI:"Contiki",DEBIAN:"Debian",DEEPIN:"Deepin",DRAGONFLY:"DragonFly",ELEMENTARY_OS:"elementary OS",FEDORA:"Fedora",FIREFOX_OS:"Firefox OS",FREEBSD:"FreeBSD",FUCHSIA:"Fuchsia",GENTOO:"Gentoo",GHOSTBSD:"GhostBSD",GNU:"GNU",HAIKU:"Haiku",HARMONYOS:"HarmonyOS",HP_UX:"HP-UX",HURD:"Hurd",IOS:"iOS",JOLI:"Joli",KAIOS:"KaiOS",KNOPPIX:"Knoppix",KUBUNTU:"Kubuntu",LINPUS:"Linpus",LINSPIRE:"Linspire",LINUX:"Linux",MACOS:"macOS",MAEMO:"Maemo",MAGEIA:"Mageia",MANDRIVA:"Mandriva",MANJARO:"Manjaro",MEEGO:"MeeGo",MINIX:"Minix",MINT:"Mint",MORPH_OS:"Morph OS",NETBSD:"NetBSD",NETRANGE:"NetRange",NETTV:"NetTV",NINTENDO:"Nintendo",OPENHARMONY:"OpenHarmony",OPENBSD:"OpenBSD",OPENVMS:"OpenVMS",OS2:"OS/2",PALM:"Palm",PC_BSD:"PC-BSD",PCLINUXOS:"PCLinuxOS",PICO:"Pico",PLAN9:"Plan9",PLAYSTATION:"PlayStation",QNX:"QNX",RASPBIAN:"Raspbian",REDHAT:"RedHat",RIM_TABLET_OS:"RIM Tablet OS",RISC_OS:"RISC OS",SABAYON:"Sabayon",SAILFISH:"Sailfish",SERENITYOS:"SerenityOS",SERIES40:"Series40",SLACKWARE:"Slackware",SOLARIS:"Solaris",SUSE:"SUSE",SYMBIAN:"Symbian",TIZEN:"Tizen",UBUNTU:"Ubuntu",UBUNTU_TOUCH:"Ubuntu Touch",UNIX:"Unix",VECTORLINUX:"VectorLinux",WATCHOS:"watchOS",WEBOS:"WebOS",WINDOWS:"Windows",WINDOWS_CE:"Windows CE",WINDOWS_IOT:"Windows IoT",WINDOWS_MOBILE:"Windows Mobile",WINDOWS_PHONE:"Windows Phone",WINDOWS_RT:"Windows RT",XBOX:"Xbox",XUBUNTU:"Xubuntu",ZENWALK:"Zenwalk"});var Br=Object.freeze({BrowserName:{CLI:{CURL:"curl",ELINKS:"ELinks",HTTPIE:"HTTPie",LYNX:"Lynx",WGET:"Wget"},Crawler:{AHREFS_BOT:"AhrefsBot",AI2_BOT:"AI2Bot",AIHIT_BOT:"aiHitBot",ALGOLIA_CRAWLER:"Algolia Crawler",APPLE_BOT:"Applebot",APPLE_BOT_EXTENDED:"Applebot-Extended",ASK_TEOMA:"Teoma",AMAZON_BOT:"Amazonbot",AMAZON_CONTXBOT:"contxbot",ANTHROPIC_AI:"anthropic-ai",ANTHROPIC_CLAUDE_BOT:"ClaudeBot",ANTHROPIC_CLAUDE_SEARCHBOT:"Claude-SearchBot",ANTHROPIC_CLAUDE_WEB:"Claude-Web",ARCHIVEORG_BOT:"archive.org_bot",BAIDU_ADS:"Baidu-ADS",BAIDU_SPIDER:"Baiduspider",BAIDU_SPIDER_ADS:"Baiduspider-ads",BAIDU_SPIDER_CPRO:"Baiduspider-cpro",BAIDU_SPIDER_FAVO:"Baiduspider-favo",BAIDU_SPIDER_IMAGE:"Baiduspider-image",BAIDU_SPIDER_NEWS:"Baiduspider-news",BAIDU_SPIDER_RENDER:"Baiduspider-render",BAIDU_SPIDER_VIDEO:"Baiduspider-video",BLEX_BOT:"BLEXBot",BOTIFY:"botify",BRAVE_BOT:"Bravebot",BYTEDANCE_BYTESPIDER:"Bytespider",BYTEDANCE_TIKTOKSPIDER:"TikTokSpider",COMMON_CRAWL_CCBOT:"CCBot",COCCOC_BOT_WEB:"coccocbot-web",COCCOC_BOT_IMAGE:"coccocbot-image",COHERE_TRAINING_DATA_CRAWLER:"cohere-training-data-crawler",COTOYOGI:"Cotoyogi",COVEO_BOT:"Coveobot",CRITEO_BOT:"CriteoBot",DATAFORSEO_BOT:"DataForSeoBot",DAUM:"Daum",DAUM_DAUMOA:"Daumoa",DAUM_DAUMOA_IMAGE:"Daumoa-image",DEEPSEEK_BOT:"DeepSeekBot",DIFFBOT:"Diffbot",DUCKDUCKGO_BOT:"DuckDuckBot",DUCKDUCKGO_FAVICONS_BOT:"DuckDuckGo-Favicons-Bot",ELASTIC:"Elastic",ELASTIC_SWIFTYPE_BOT:"Swiftbot",EXALEAD_EXABOT:"Exabot",FIRECRAWL_AGENT:"FirecrawlAgent",FREESPOKE:"Freespoke",GOOGLE_ADSBOT:"AdsBot-Google",GOOGLE_ADSBOT_MOBILE:"Adsbot-Google-Mobile",GOOGLE_ADSENSE:"AdSense",GOOGLE_APIS:"APIs-Google",GOOGLE_BOT:"Googlebot",GOOGLE_BOT_IMAGE:"Googlebot-Image",GOOGLE_BOT_NEWS:"Googlebot-News",GOOGLE_BOT_VIDEO:"Googlebot-Video",GOOGLE_CLOUDVERTEXBOT:"Google-CloudVertexBot",GOOGLE_EXTENDED:"Google-Extended",GOOGLE_INSPECTIONTOOL:"Google-InspectionTool",GOOGLE_OTHER:"GoogleOther",GOOGLE_OTHER_IMAGE:"GoogleOther-Image",GOOGLE_OTHER_VIDEO:"GoogleOther-Video",GOOGLE_SAFETY:"Google-Safety",GOOGLE_STOREBOT:"Storebot-Google",HIVE_IMAGESIFTBOT:"ImagesiftBot",HUAWEI_PANGUBOT:"PanguBot",HUAWEI_PETALBOT:"PetalBot",HUGGINGFACE_BOT:"HuggingFace-Bot",HUNTER_VELENPUBLICWEBCRAWLER:"VelenPublicWebCrawler",IA_ARCHIVER:"ia_archiver",IASK_BOT:"iAskBot",KAGI_BOT:"Kagibot",KANGAROO_BOT:"Kangaroo Bot",LINE_SPIDER:"Linespider",LINKEDIN_BOT:"LinkedInBot",MAGPIE_CRAWLER:"magpie-crawler",MARGINALIA:"marginalia",META_EXTERNALAGENT:"meta-externalagent",META_FACEBOOKBOT:"FacebookBot",META_FACEBOOKCATALOG:"facebookcatalog",META_FACEBOOKEXTERNALHIT:"facebookexternalhit",MAJESTIC_MJ12BOT:"MJ12bot",MICROSOFT_BINGBOT:"Bingbot",MICROSOFT_MSNBOT:"msnbot",MICROSOFT_ADIDXBOT:"adidxbot",MOJEEK_BOT:"MojeekBot",MOZ_DOTBOT:"DotBot",ONCRAWL:"OnCrawl",ONESPOT_SCRAPERBOT:"Onespot-ScraperBot",OPENAI_GPTBOT:"GPTBot",OPENAI_SEARCH_BOT:"OAI-SearchBot",PERPLEXITY_BOT:"PerplexityBot",QIHOO_360_SPIDER:"360Spider",QWANT_BOT:"Qwantbot",QWANT_BOT_NEWS:"Qwantbot-news",REPLICATE_BOT:"Replicate-Bot",RUNPOD_BOT:"RunPod-Bot",SB_INTUITIONS_BOT:"SBIntuitionsBot",SEEKPORT_BOT:"SeekportBot",SEMRUSH_BOT:"SemrushBot",SEMRUSH_BOT_BACKLINK:"SemrushBot-BA",SEMRUSH_BOT_CONTENTSHAKE:"SemrushBot-OCOB",SEMRUSH_BOT_SEO_CHECKER:"SemrushBot-SI",SEZNAM_BOT:"SeznamBot",SITEIMPROVE:"Siteimprove",SOGOU_PIC_SPIDER:"Sogou Pic Spider",SOGOU_WEB_SPIDER:"Sogou web spider",STARTPAGE:"Startpage",SURLY_BOT:"SurdotlyBot",TIMPI_BOT:"Timpibot",TOGETHER_BOT:"Together-Bot",TURNITIN_BOT:"TurnitinBot",TWIN_AGENT:"TwinAgent",VERCEL_V0BOT:"v0bot",WEBZIO:"webzio",WEBZIO_EXTENDED:"Webzio-Extended",WEBZIO_OMGILI:"omgili",WEBZIO_OMGILI_BOT:"omgilibot",XAI_BOT:"xAI-Bot",YAHOO_JAPAN:"Y!J-BRW",YAHOO_SLURP:"Yahoo! Slurp",YANDEX_ACCESSIBILITY_BOT:"YandexAccessibilityBot",YANDEX_ADDITIONAL_BOT:"YandexAdditionalBot",YANDEX_ADNET:"YandexAdNet",YANDEX_BLOGS:"YandexBlogs",YANDEX_BOT:"YandexBot",YANDEX_BOT_MIRRORDETECTOR:"YandexBot MirrorDetector",YANDEX_COMBOT:"YandexComBot",YANDEX_FAVICONS:"YandexFavicons",YANDEX_IMAGE_RESIZER:"YandexImageResizer",YANDEX_IMAGES:"YandexImages",YANDEX_MARKET:"YandexMarket",YANDEX_MEDIA:"YandexMedia",YANDEX_METRIKA:"YandexMetrika",YANDEX_MOBILE_BOT:"YandexMobileBot",YANDEX_MOBILE_SCREENSHOT_BOT:"YandexMobileScreenShotBot",YANDEX_NEWS:"YandexNews",YANDEX_ONTODB:"YandexOntoDB",YANDEX_ONTODB_API:"YandexOntoDBAPI",YANDEX_PARTNER:"YandexPartner",YANDEX_RCA:"YandexRCA",YANDEX_RENDERRESOURCES_BOT:"YandexRenderResourcesBot",YANDEX_SCREENSHOT_BOT:"YandexScreenshotBot",YANDEX_SPRAV_BOT:"YandexSpravBot",YANDEX_TRACKER:"YandexTracker",YANDEX_VERTICALS:"YandexVerticals",YANDEX_VERTIS:"YandexVertis",YANDEX_VIDEO:"YandexVideo",YANDEX_VIDEO_PARSER:"YandexVideoParser",YANDEX_WEBMASTER:"YandexWebmaster",YEP_BOT:"YepBot",YETI:"Yeti",YISOU_SPIDER:"YisouSpider",YOU_BOT:"YouBot",ZHIPU_CHATGLM_SPIDER:"ChatGLM-Spider",ZUM_BOT:"ZumBot"},Email:{AIRMAIL:"Airmail",APPLE_MAIL:"Mail",BLUEMAIL:"BlueMail",DAUM_MAIL:"DaumMail",EVOLUTION:"Evolution",EM_CLIENT:"eM Client",FOXMAIL:"Foxmail",KMAIL:"KMail",KMAIL2:"kmail2",KONTACT:"Kontact",MICROSOFT_OUTLOOK:"Microsoft Outlook",MICROSOFT_OUTLOOK_MAC:"MacOutlook",NAVER_MAILAPP:"NaverMailApp",POLYMAIL:"Polymail",PROTON_MAIL:"ProtonMail",SPARK_MAIL:"SparkDesktop",SPARROW:"Sparrow",THUNDERBIRD:"Thunderbird",YAHOO_MAIL:"Yahoo",ZIMBRA:"Zimbra",ZOHO_MAIL:"ZohoMail-Desktop"},Fetcher:{AHREFS_SITEAUDIT:"AhrefsSiteAudit",ANTHROPIC_CLAUDE_USER:"Claude-User",ASANA:"Asana",BETTER_UPTIME_BOT:"Better Uptime Bot",BITLY_BOT:"bitlybot",BLUESKY:"Bluesky",BUFFER_LINKPREVIEWBOT:"BufferLinkPreviewBot",COHERE_AI:"Cohere-AI",DISCORD_BOT:"Discordbot",DUCKDUCKGO_ASSISTBOT:"DuckAssistBot",GOOGLE_CHROME_LIGHTHOUSE:"Chrome-Lighthouse",GOOGLE_FEEDFETCHER:"FeedFetcher-Google",GOOGLE_GEMINI_DEEP_RESEARCH:"Gemini-Deep-Research",GOOGLE_IMAGEPROXY:"GoogleImageProxy",GOOGLE_PAGERENDERER:"Google-PageRenderer",GOOGLE_READ_ALOUD:"Google-Read-Aloud",GOOGLE_PRODUCER:"GoogleProducer",GOOGLE_SITE_VERIFICATION:"Google-Site-Verification",HUBSPOT_PAGE_FETCHER:"HubSpot Page Fetcher",IFRAMELY:"Iframely",KAKAOTALK_SCRAP:"kakaotalk-scrap",KEYBASE_BOT:"KeybaseBot",META_EXTERNALFETCHER:"meta-externalfetcher",META_WHATSAPP:"WhatsApp",MICROSOFT_BINGPREVIEW:"BingPreview",MICROSOFT_PREVIEW:"MicrosoftPreview",MISTRALAI_USER:"MistralAI-User",NAVER_BLUENO:"Blueno",ONCRAWL_ROGERBOT:"rogerbot",OPENAI_CHATGPT_USER:"ChatGPT-User",PERPLEXITY_USER:"Perplexity-User",PINTEREST_BOT:"Pinterestbot",SEMRUSH_SITEAUDITBOT:"SiteAuditBot",SLACK_BOT:"Slackbot",SLACK_BOT_LINKEXPANDING:"Slackbot-LinkExpanding",SLACK_IMGPROXY:"Slack-ImgProxy",SNAP_URL_PREVIEW:"Snap URL Preview",SKYPE_URIPREVIEW:"SkypeUriPreview",TELEGRAM_BOT:"TelegramBot",UPTIMEROBOT:"UptimeRobot",VERCEL_FAVICON_BOT:"vercel-favicon-bot",VERCEL_SCREENSHOT_BOT:"vercel-screenshot-bot",VERCEL_BOT:"Vercelbot",VERCEL_FLAGS:"vercelflags",VERCEL_TRACING:"verceltracing",X_TWITTERBOT:"Twitterbot",YANDEX_CALENDAR:"YandexCalendar",YANDEX_DIRECT:"YandexDirect",YANDEX_DIRECTDYN:"YandexDirectDyn",YANDEX_DIRECTFETCHER:"YaDirectFetcher",YANDEX_FORDOMAIN:"YandexForDomain",YANDEX_PAGECHECKER:"YandexPagechecker",YANDEX_SEARCHSHOP:"YandexSearchShop",YANDEX_SITELINKS:"YandexSitelinks",YANDEX_USERPROXY:"YandexUserproxy",ZOOMINFO_BOT:"Zoombot"},InApp:{DISCORD:"Discord",EVERNOTE:"Evernote",FIGMA:"Figma",FLIPBOARD:"Flipboard",MATTERMOST:"Mattermost",TEAMS:"Teams",NOTION:"Notion",POSTMAN:"Postman",RAMBOX:"Rambox",ROCKETCHAT:"Rocket.Chat",SLACK:"Slack",TIKTOK_LITE:"TikTok Lite",VSCODE:"VS Code",YAHOO_JAPAN:"Yahoo! Japan"},Library:{ADOBE_AIR:"AdobeAIR",AIOHTTP:"aiohttp",APACHE_HTTPCLIENT:"Apache-HttpClient",AXIOS:"axios",GO_HTTP_CLIENT:"go-http-client",GOT:"got",GUZZLEHTTP:"GuzzleHttp",JAVA:"Java",JAVA_HTTPCLIENT:"Java-http-client",JSDOM:"jsdom",LIBWWW_PERL:"libwww-perl",LUA_RESTY_HTTP:"lua-resty-http",NEEDLE:"Needle",NUTCH:"Nutch",OKHTTP:"OkHttp",NODE_FETCH:"node-fetch",NODE_SUPERAGENT:"node-superagent",PHP_SOAP:"PHP-SOAP",POSTMAN_RUNTIME:"PostmanRuntime",PYTHON_HTTPX:"python-httpx",PYTHON_URLLIB:"python-urllib",PYTHON_URLLIB3:"python-urllib3",PYTHON_REQUESTS:"python-requests",SCRAPY:"Scrapy"}},DeviceVendor:{Vehicle:{BMW:"BMW",BYD:"BYD",JEEP:"Jeep",RIVIAN:"Rivian",TESLA:"Tesla",VOLVO:"Volvo"}}});var D="model",U="name",y="type",L="vendor",Y="version",ve="mobile",X="tablet",li="crawler",zs="cli",Mr="email",Ur="fetcher",$e="inapp",yt="mediaplayer",Ys="library",js=Object.freeze({browser:[[/(wget|curl|lynx|elinks|httpie)[\/ ]\(?([\w\.-]+)/i],[U,Y,[y,zs]]]}),Hr=Object.freeze({browser:[[/((?:adidx|ahrefs|amazon|bing|brave|cc|contx|coveo|criteo|dot|duckduck(?:go-favicons-)?|exa|facebook|gpt|iask|kagi|kangaroo |linkedin|mj12|mojeek|oai-search|onespot-scraper|perplexity|sbintuitions|semrush|seznam|surdotly|swift|yep)bot)\/([\w\.-]+)/i,/(algolia crawler(?: renderscript)?)\/?([\w\.]*)/i,/(applebot(?:-extended)?)\/?([\w\.]*)/i,/(baiduspider[-imagevdonwsfcpr]{0,7})\/?([\w\.]*)/i,/(claude(?:bot|-searchbot|-web)|anthropic-ai)\/?([\w\.]*)/i,/(coccocbot-(?:image|web))\/([\w\.]+)/i,/(daum(?:oa)?(?:-image)?)[ \/]([\w\.]+)/i,/(facebook(?:externalhit|catalog)|meta-externalagent)\/([\w\.]+)/i,/(google(?:bot|other|-inspectiontool)(?:-image|-video|-news)?|storebot-google)\/?([\w\.]*)/i,/(ia_archiver|archive\.org_bot)\/?([\w\.]*)/i,/(oncrawl) mobile\/([\w\.]+)/i,/(qwantbot(?:-news)?)[-\w]*\/?([\w\.]*)/i,/((?:semrush|splitsignal)bot[-abcfimostw]*)\/?([\w\.-]*)/i,/(sogou (?:pic|head|web|orion|news) spider)\/([\w\.]+)/i,/(y!?j-(?:asr|br[uw]|dscv|mmp|vsidx|wsc))\/([\w\.]+)/i,/(yandex(?:(?:mobile)?(?:accessibility|additional|com|renderresources|screenshot|sprav)?bot(?!.+mirror)|image(?:s|resizer)|adnet|blogs|favicons|market|media|metrika|news|ontodb(?:api)?|partner|rca|tracker|turbo|verti(?:cal)?s|webmaster|video(?:parser)?))\/([\w\.]+)/i,/(yeti)\/([\w\.]+)/i,/((?:aihit|blex|diff|huggingface-|msn|pangu|replicate-|runpod-|timpi|together-|xai-|you|zum)bot|(?:magpie-|velenpublicweb)crawler|(?:chatglm-|line|screaming frog seo |yisou)spider|cotoyogi|firecrawlagent|freespoke|omgili(?:bot)?|openai image downloader|startpageprivateimageproxy|twinagent|webzio-extended)\/?([\w\.]*)/i],[U,Y,[y,li]],[/(yandexbot\/([\w\.]+); mirrordetector)/i],[[U,/\/.+;/ig,""],Y,[y,li]],[/((?:adsbot|apis|mediapartners)-google(?:-mobile)?|google-?(?:other|cloudvertexbot|extended|safety))/i,/\b((ai2|aspiegel|dataforseo|deepseek|imagesift|petal|seekport|turnitin|v0)bot|360spider-?(image|video)?|baidu-ads|botify|(byte|tiktok)spider|cohere-training-data-crawler|elastic(?=\/s)|marginalia|siteimprove(?=bot|\.com)|teoma|webzio|yahoo! slurp)/i],[U,[y,li]]]}),ad=Object.freeze({device:[[/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[L,D,[y,X]],[/(u304aa)/i],[D,[L,"AT&T"],[y,ve]],[/\bsie-(\w*)/i],[D,[L,"Siemens"],[y,ve]],[/\b(rct\w+) b/i],[D,[L,"RCA"],[y,X]],[/\b(venue[\d ]{2,7}) b/i],[D,[L,"Dell"],[y,X]],[/\b(q(?:mv|ta)\w+) b/i],[D,[L,"Verizon"],[y,X]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[D,[L,"Barnes & Noble"],[y,X]],[/\b(tm\d{3}\w+) b/i],[D,[L,"NuVision"],[y,X]],[/\b(k88) b/i],[D,[L,"ZTE"],[y,X]],[/\b(nx\d{3}j) b/i],[D,[L,"ZTE"],[y,ve]],[/\b(gen\d{3}) b.+49h/i],[D,[L,"Swiss"],[y,ve]],[/\b(zur\d{3}) b/i],[D,[L,"Swiss"],[y,X]],[/^((zeki)?tb.*\b) b/i],[D,[L,"Zeki"],[y,X]],[/\b([yr]\d{2}) b/i,/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i],[D,[L,"Dragon Touch"],[y,X]],[/\b(ns-?\w{0,9}) b/i],[D,[L,"Insignia"],[y,X]],[/\b((nxa|next)-?\w{0,9}) b/i],[D,[L,"NextBook"],[y,X]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[L,"Voice"],D,[y,ve]],[/\b(lvtel\-)?(v1[12]) b/i],[[L,"LvTel"],D,[y,ve]],[/\b(ph-1) /i],[D,[L,"Essential"],[y,ve]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[D,[L,"Envizen"],[y,X]],[/\b(trio[-\w\. ]+) b/i],[D,[L,"MachSpeed"],[y,X]],[/\btu_(1491) b/i],[D,[L,"Rotor"],[y,X]]]}),ld=Object.freeze({browser:[[/((?:air|blue|daum|fox|poly|proton)mail|emclient|evolution|kmail2?|kontact|(?:microsoft |mac)?outlook(?:-express)?|navermailapp|(?!chrom.+)sparrow|sparkdesktop|thunderbird|yahoo|zohomail-desktop)(?:m.+ail; |[\/ ])([\w\.]+)/i,/(mail)\/([\w\.]+) cf/i],[U,Y,[y,Mr]],[/zdesktop\/([\w\.]+)/i],[Y,[U,"Zimbra"],[y,Mr]]]}),Fr=Object.freeze({browser:[[/(asana|ahrefssiteaudit|(?:bing|microsoft)preview|blueno|(?:chatgpt|claude|mistralai|perplexity)-user|cohere-ai|hubspot page fetcher|mastodon|(?:bitly|bufferlinkpreview|discord|duckassist|linkedin|pinterest|reddit|roger|siteaudit|twitter|uptimero|zoom)bot|google-site-verification|iframely|kakaotalk-scrap|meta-externalfetcher|y!?j-dlc|yandex(?:calendar|direct(?:dyn)?|fordomain|pagechecker|searchshop)|yadirectfetcher)\/([\w\.]+)/i,/(bluesky) cardyb\/([\w\.]+)/i,/(skypeuripreview) preview\/([\w\.]+)/i,/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i,/(whatsapp)\/([\w\.]+)/i],[U,Y,[y,Ur]],[/((?:better uptime |keybase|telegram|vercel)bot|chrome-lighthouse|feedfetcher-google|gemini-deep-research|google(?:imageproxy|-read-aloud|-pagerenderer|producer)|snap url preview|vercel(flags|tracing|-(favicon|screenshot)-bot)|yandex(?:sitelinks|userproxy))/i],[U,[y,Ur]]],os:[[/whatsapp\/[\d\.]+ (a|i)/i],[[U,t=>t=="A"?"Android":"iOS"]]]}),cd=Object.freeze({browser:[[/\b(discord|figma|mattermost|notion|postman|rambox|rocket.chat|slack|teams)\/([\w\.]+).+(electron\/|; ios)/i,/(flipboard)\/([\w\.]+)/i],[U,Y,[y,$e]],[/(evernote) win/i,/(teams)mobile-(ios|and)/i],[U,[y,$e]],[/chatlyio\/([\d\.]+)/i],[Y,[U,"Slack"],[y,$e]],[/ultralite app_version\/([\w\.]+)/i],[Y,[U,"TikTok Lite"],[y,$e]],[/\) code\/([\d\.]+).+electron\//i],[Y,[U,"VS Code"],[y,$e]],[/jp\.co\.yahoo\.(?:android\.yjtop|ipn\.appli)\/([\d\.]+)/i],[Y,[U,"Yahoo! Japan"],[y,$e]]]}),ud=Object.freeze({browser:[[/(apple(?:coremedia|tv))\/([\w\._]+)/i,/(coremedia) v([\w\._]+)/i,/(ares|clementine|music player daemon|nexplayer|ossproxy) ([\w\.-]+)/i,/^(aqualung|audacious|audimusicstream|amarok|bass|bsplayer|core|gnomemplayer|gvfs|irapp|lyssna|music on console|nero (?:home|scout)|nokia\d+|nsplayer|psp-internetradioplayer|quicktime|rma|radioapp|radioclientapplication|soundtap|stagefright|streamium|totem|videos|xbmc|xine|xmms)\/([\w\.-]+)/i,/(lg player|nexplayer) ([\d\.]+)/i,/player\/(nexplayer|lg player) ([\w\.-]+)/i,/(gstreamer) souphttpsrc.+libsoup\/([\w\.-]+)/i,/(htc streaming player) [\w_]+ \/ ([\d\.]+)/i,/(lavf)([\d\.]+)/i,/(mplayer)(?: |\/)(?:(?:sherpya-){0,1}svn)(?:-| )(r\d+(?:-\d+[\w\.-]+))/i,/ (songbird)\/([\w\.-]+)/i,/(winamp)(?:3 version|mpeg| ) ([\w\.-]+)/i,/(vlc)(?:\/| media player - version )([\w\.-]+)/i,/^(foobar2000|itunes|smp)\/([\d\.]+)/i,/com\.(riseupradioalarm)\/([\d\.]*)/i,/(mplayer)(?:\s|\/| unknown-)([\w\.\-]+)/i,/(windows)\/([\w\.-]+) upnp\/[\d\.]+ dlnadoc\/[\d\.]+ home media server/i],[U,Y,[y,yt]],[/(flrp)\/([\w\.-]+)/i],[[U,"Flip Player"],Y,[y,yt]],[/(fstream|media player classic|inlight radio|mplayer|nativehost|nero showtime|ocms-bot|queryseekspider|tapinradio|tunein radio|winamp|yourmuze)/i],[U,[y,yt]],[/(htc_one_s|windows-media-player|wmplayer)\/([\w\.-]+)/i],[[U,/[_-]/g," "],Y,[y,yt]],[/(rad.io|radio.(?:de|at|fr)) ([\d\.]+)/i],[[U,"rad.io"],Y,[y,yt]]]}),$s=Object.freeze({browser:[[/^(apache-httpclient|axios|(?:go|java)-http-client|got|guzzlehttp|java|libwww-perl|lua-resty-http|needle|node-(?:fetch|superagent)|okhttp|php-soap|postmanruntime|python-(?:httpx|urllib[23]?|requests)|scrapy)\/([\w\.]+)/i,/(adobeair|aiohttp|jsdom)\/([\w\.]+)/i,/(nutch)-([\w\.-]+)(\(|$)/i,/\((java)\/([\w\.]+)/i],[U,Y,[y,Ys]]]}),dd=Object.freeze({device:[[/aftlbt962e2/i],[[L,"BMW"]],[/dilink.+(byd) auto/i],[L],[/aftlft962x3/i],[[L,"Jeep"],[D,"Wagooner"]],[/(rivian) (r1t)/i],[L,D],[/vcc.+netfront/i],[[L,"Volvo"]]]}),Gr=Object.freeze({browser:[...js.browser,...Fr.browser,...Hr.browser,...$s.browser],os:[...Fr.os]});var w={ANDORRA:{ANDORRA:"Europe/Andorra"},AUSTRIA:{VIENNA:"Europe/Vienna"},BELGIUM:{BRUSSELS:"Europe/Brussels"},BULGARIA:{SOFIA:"Europe/Sofia"},CROATIA:{ZAGREB:"Europe/Zagreb"},CYPRUS:{NICOSIA_EUROPE:"Europe/Nicosia",NICOSIA_ASIA:"Asia/Nicosia",FAMAGUSTA:"Asia/Famagusta"},CZECHIA:{PRAGUE:"Europe/Prague"},DENMARK:{COPENHAGEN:"Europe/Copenhagen",FAROE:"Atlantic/Faroe"},ESTONIA:{TALLINN:"Europe/Tallinn"},FINLAND:{HELSINKI:"Europe/Helsinki",MARIEHAMN:"Europe/Mariehamn"},FRANCE:{PARIS:"Europe/Paris",CAYENNE:"America/Cayenne",GUADELOUPE:"America/Guadeloupe",MARIGOT:"America/Marigot",MARTINIQUE:"America/Martinique",MAYOTTE:"Indian/Mayotte",REUNION:"Indian/Reunion"},GERMANY:{BERLIN:"Europe/Berlin",BUSINGEN:"Europe/Busingen"},GREECE:{ATHENS:"Europe/Athens"},HUNGARY:{BUDAPEST:"Europe/Budapest"},ICELAND:{REYKJAVIK:"Atlantic/Reykjavik"},IRELAND:{DUBLIN:"Europe/Dublin"},ITALY:{ROME:"Europe/Rome"},LATVIA:{RIGA:"Europe/Riga"},LIECHTENSTEIN:{VADUZ:"Europe/Vaduz"},LITHUANIA:{VILNIUS:"Europe/Vilnius"},LUXEMBOURG:{LUXEMBOURG:"Europe/Luxembourg"},MALTA:{MALTA:"Europe/Malta"},MONACO:{MONACO:"Europe/Monaco"},NETHERLANDS:{AMSTERDAM:"Europe/Amsterdam",ARUBA:"America/Aruba",CURACAO:"America/Curacao",KRALENDIJK:"America/Kralendijk",LOWER_PRINCES:"America/Lower_Princes"},NORWAY:{OSLO:"Europe/Oslo",JAN_MAYEN:"Atlantic/Jan_Mayen",LONGYEARBYEN:"Arctic/Longyearbyen"},POLAND:{WARSAW:"Europe/Warsaw"},PORTUGAL:{LISBON:"Europe/Lisbon",AZORES:"Atlantic/Azores",MADEIRA:"Atlantic/Madeira"},ROMANIA:{BUCHAREST:"Europe/Bucharest"},SAN_MARINO:{SAN_MARINO:"Europe/San_Marino"},SLOVAKIA:{BRATISLAVA:"Europe/Bratislava"},SLOVENIA:{LJUBLJANA:"Europe/Ljubljana"},SPAIN:{MADRID:"Europe/Madrid",CANARY:"Atlantic/Canary",CEUTA:"Africa/Ceuta"},SWEDEN:{STOCKHOLM:"Europe/Stockholm"},SWITZERLAND:{ZURICH:"Europe/Zurich"},VATICAN:{VATICAN:"Europe/Vatican"}},Xs=[w.AUSTRIA.VIENNA,w.BELGIUM.BRUSSELS,w.BULGARIA.SOFIA,w.CROATIA.ZAGREB,w.CYPRUS.NICOSIA_EUROPE,w.CYPRUS.NICOSIA_ASIA,w.CYPRUS.FAMAGUSTA,w.CZECHIA.PRAGUE,w.DENMARK.COPENHAGEN,w.ESTONIA.TALLINN,w.FINLAND.HELSINKI,w.FINLAND.MARIEHAMN,w.FRANCE.PARIS,w.GERMANY.BERLIN,w.GREECE.ATHENS,w.HUNGARY.BUDAPEST,w.IRELAND.DUBLIN,w.ITALY.ROME,w.LATVIA.RIGA,w.LITHUANIA.VILNIUS,w.LUXEMBOURG.LUXEMBOURG,w.MALTA.MALTA,w.NETHERLANDS.AMSTERDAM,w.POLAND.WARSAW,w.PORTUGAL.LISBON,w.ROMANIA.BUCHAREST,w.SLOVAKIA.BRATISLAVA,w.SLOVENIA.LJUBLJANA,w.SPAIN.MADRID,w.SWEDEN.STOCKHOLM,w.FRANCE.CAYENNE,w.FRANCE.GUADELOUPE,w.FRANCE.MARIGOT,w.FRANCE.MARTINIQUE,w.FRANCE.MAYOTTE,w.FRANCE.REUNION,w.PORTUGAL.AZORES,w.PORTUGAL.MADEIRA,w.SPAIN.CANARY],Vr=[w.ICELAND.REYKJAVIK,w.LIECHTENSTEIN.VADUZ,w.NORWAY.OSLO,w.NORWAY.JAN_MAYEN],pd=[...Xs,...Vr],gd=[w.SWITZERLAND.ZURICH,...Vr],md=[w.AUSTRIA.VIENNA,w.BELGIUM.BRUSSELS,w.BULGARIA.SOFIA,w.CROATIA.ZAGREB,w.CZECHIA.PRAGUE,w.DENMARK.COPENHAGEN,w.ESTONIA.TALLINN,w.FINLAND.HELSINKI,w.FINLAND.MARIEHAMN,w.FRANCE.PARIS,w.GERMANY.BERLIN,w.GREECE.ATHENS,w.HUNGARY.BUDAPEST,w.ITALY.ROME,w.LATVIA.RIGA,w.LITHUANIA.VILNIUS,w.LUXEMBOURG.LUXEMBOURG,w.MALTA.MALTA,w.NETHERLANDS.AMSTERDAM,w.POLAND.WARSAW,w.PORTUGAL.LISBON,w.PORTUGAL.AZORES,w.PORTUGAL.MADEIRA,w.ROMANIA.BUCHAREST,w.SLOVAKIA.BRATISLAVA,w.SLOVENIA.LJUBLJANA,w.SPAIN.MADRID,w.SPAIN.CANARY,w.SWEDEN.STOCKHOLM,w.ANDORRA.ANDORRA,w.GERMANY.BUSINGEN,w.ICELAND.REYKJAVIK,w.LIECHTENSTEIN.VADUZ,w.MONACO.MONACO,w.NORWAY.OSLO,w.SAN_MARINO.SAN_MARINO,w.SPAIN.CEUTA,w.SWITZERLAND.ZURICH,w.VATICAN.VATICAN];function ci(){var t;return typeof window!="undefined"&&((window==null?void 0:window.matchMedia("(display-mode: standalone)").matches)||((t=window.navigator)===null||t===void 0?void 0:t.standalone)||document.referrer.startsWith("android-app://")||(window==null?void 0:window.Windows)||/trident.+(msapphost|webview)\//i.test(navigator.userAgent)||document.referrer.startsWith("app-info://platform/microsoft-store"))}var{Crawler:yd}=Br.BrowserName,ui=(t,e,n)=>typeof t=="string"?ee(t,e,n):t;var Kr=t=>{let e=ui(t);if(e.os.is(kr.MACOS)){if(e.cpu.is(xr.ARM))return!0;if(typeof t!="string"&&typeof window!="undefined")try{let n=document.createElement("canvas"),i=n.getContext("webgl2")||n.getContext("webgl")||n.getContext("experimental-webgl"),r=i.getExtension("WEBGL_debug_renderer_info");if(i.getParameter(r.UNMASKED_RENDERER_WEBGL).match(/apple m\d/i))return!0}catch(n){return!1}}return!1};var Wr=t=>[Rt.CLI,Rt.CRAWLER,Rt.FETCHER,Rt.LIBRARY].includes(ui(t,Gr).browser.type),zr=t=>ui(t).engine.is(Dr.BLINK);function qs(){return{width:window.screen.width,height:window.screen.height}}function Js(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return console.error("Failed to get timezone:",t),"UTC"}}function Yr(){try{return navigator.language||"en-US"}catch(t){return console.error("Failed to get browser locale:",t),"en-US"}}function jr(){if(typeof window=="undefined")return{userAgent:{name:"",browser:{major:"",name:"",version:""},os:{name:"",version:""},device:void 0,engine:{name:"",version:""},cpu:{architecture:""}},screenResolution:{width:0,height:0},timeZone:"UTC",flags:{isBot:!1,isChromeFamily:!1,isStandalonePWA:!1,isAppleSilicon:!1}};let e=new ee().getResult(),n;try{n={isBot:Wr(e),isChromeFamily:zr(e),isStandalonePWA:ci(),isAppleSilicon:Kr(e)}}catch(i){console.error("Failed to compute device flags:",i),n={isBot:!1,isChromeFamily:!1,isStandalonePWA:!1,isAppleSilicon:!1}}return{userAgent:{name:e.ua,browser:{major:e.browser.major||"",name:e.browser.name||"",version:e.browser.version||"",type:e.browser.type},os:{name:e.os.name||"",version:e.os.version||""},device:e.device.model||e.device.type||e.device.vendor?{model:e.device.model,type:e.device.type,vendor:e.device.vendor}:void 0,engine:{name:e.engine.name||"",version:e.engine.version||""},cpu:{architecture:e.cpu.architecture||""}},screenResolution:qs(),timeZone:Js(),flags:n}}function $r(){if(typeof window=="undefined")return{};let t=new URLSearchParams(window.location.search);return{locale:t.get("locale")||void 0,currency:t.get("currency")||void 0,utmSource:t.get("utm_source")||void 0,utmMedium:t.get("utm_medium")||void 0,utmCampaign:t.get("utm_campaign")||void 0}}var dn=class{constructor(){this.listeners=new Map}on(e,n){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(n),()=>this.off(e,n)}off(e,n){this.listeners.has(e)&&this.listeners.get(e).delete(n)}async emit(e,n){if(this.listeners.has(e)){let i=Array.from(this.listeners.get(e));await Promise.all(i.map(r=>{try{return Promise.resolve(r(n))}catch(s){return console.error('[EventBus] Error in listener for event "'.concat(e,'":'),s),Promise.resolve()}}))}}clear(){this.listeners.clear()}};function fn(t){try{let e=t.split(".");if(e.length!==3)return console.error("Invalid JWT token format"),null;let n=e[1],i=n+"=".repeat((4-n.length%4)%4),r=atob(i),s=JSON.parse(r);return s.exp&&Date.now()>=s.exp*1e3?(console.warn("JWT token is expired"),null):{sessionId:s.sessionId,storeId:s.storeId,accountId:s.accountId,customerId:s.customerId,role:s.role,isValid:!0,isLoading:!1}}catch(e){return console.error("Failed to decode JWT token:",e),null}}function Xr(t){try{let e=t.split(".");if(e.length!==3)return!0;let n=e[1],i=n+"=".repeat((4-n.length%4)%4),r=atob(i),s=JSON.parse(r);return s.exp?Date.now()>=s.exp*1e3:!1}catch(e){return console.error("Failed to check token expiration:",e),!0}}var Xe={},Zs=["","VITE_","REACT_APP_","NEXT_PUBLIC_"];function me(t,e=Zs){var n,i,r;for(let s of e){let o=s?"".concat(s).concat(t):t;if(typeof process!="undefined"&&((n=process==null?void 0:process.env)!=null&&n[o]))return console.log("process.env[".concat(o,"]"),process.env[o]),process.env[o];if(typeof Xe!="undefined"&&((i=Xe==null?void 0:Xe.env)!=null&&i[o]))return console.log("import.meta.env[".concat(o,"]"),Xe.env[o]),Xe.env[o];if(typeof window!="undefined"&&((r=window==null?void 0:window.__TAGADA_ENV__)!=null&&r[o]))return console.log("window.__TAGADA_ENV__[".concat(o,"]"),window.__TAGADA_ENV__[o]),window.__TAGADA_ENV__[o]}}var Qs=async(t="default")=>{try{if((me("TAGADA_ENV")||me("TAGADA_ENVIRONMENT"))==="production"||!Qe(!0))return null;let n=await fetch("/.local.json");if(!n.ok)return null;let i=await n.json(),r={},s=!1;try{let a=await fetch("/config/".concat(t,".tgd.json"));a.ok||(a=await fetch("/config/".concat(t,".json"))),a.ok&&(r=await a.json(),s=!0)}catch(a){}if(!s&&t!=="default"){console.warn("\u26A0\uFE0F Config variant '".concat(t,"' not found, falling back to 'default'"));try{let a=await fetch("/config/default.tgd.json");a.ok||(a=await fetch("/config/default.json")),a.ok&&(r=await a.json(),s=!0,console.log("\u2705 Fallback to 'default' config successful"))}catch(a){}}s||console.warn(t==="default"?"\u26A0\uFE0F No 'default' config found. Create /config/default.tgd.json":"\u26A0\uFE0F Neither '".concat(t,"' nor 'default' config found. Create /config/default.tgd.json"));let o={storeId:i.storeId,accountId:i.accountId,basePath:i.basePath,config:r};return console.log("\u{1F6E0}\uFE0F Using local development plugin config:",o),o}catch(e){return null}},ea=async()=>{try{if((me("TAGADA_ENV")||me("TAGADA_ENVIRONMENT"))==="production"||!Qe(!0))return null;console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/resources.static.json...");let e=await fetch("/config/resources.static.json");if(!e.ok)return console.log("\u{1F6E0}\uFE0F [V2] resources.static.json not found or failed to load"),null;let n=await e.json();return console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded local static resources:",n),n}catch(t){return console.error("\u{1F6E0}\uFE0F [V2] \u274C Error loading static resources:",t),null}},pn=t=>{let e=document.querySelector('meta[name="'.concat(t,'"]'));return(e==null?void 0:e.getAttribute("content"))||void 0},ta=async()=>{try{if(typeof document=="undefined")return null;let t=pn("x-plugin-store-id"),e=pn("x-plugin-account-id");if(!t)return null;let n=pn("x-plugin-base-path")||"/",i={};try{let s=pn("x-plugin-config");if(s){let o=decodeURIComponent(s);i=JSON.parse(o)}}catch(s){console.warn("\u26A0\uFE0F Failed to parse plugin config from meta tag:",s)}e||console.warn("\u26A0\uFE0F Plugin config: Account ID not found in meta tags");let r={storeId:t,accountId:e,basePath:n,config:i};return console.log("\u{1F680} [HIGHEST PRIORITY] Plugin config loaded from meta tags (runtime injected config):",{storeId:t,accountId:e,basePath:n,configKeys:Object.keys(i),configSize:JSON.stringify(i).length}),r}catch(t){return console.warn("\u26A0\uFE0F Error loading production config from meta tags:",t),null}},qr=async(t="default",e)=>{var o,a;console.log("\u{1F527} [V2] loadPluginConfig called with variant:",t);let n=await ea(),i=await ta();if(i){let c=z(R({},i),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using INJECTED config from meta tags (HIGHEST PRIORITY)"),c}if(e){let c={storeId:e.storeId,accountId:e.accountId,basePath:(o=e.basePath)!=null?o:"/",config:(a=e.config)!=null?a:{},staticResources:n!=null?n:void 0};return console.log("\u2705 [V2] Using raw config parameter (PRIORITY 2)"),c}let r=await ia();if(r){let c=z(R({},r),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using environment variables config (PRIORITY 3 - build time)"),c}let s=await Qs(t);if(s){let c=z(R({},s),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using local dev config files (PRIORITY 4)"),c}return console.warn("\u26A0\uFE0F [V2] No plugin config found - using defaults"),{basePath:"/",config:{},staticResources:n!=null?n:void 0}};async function na(t="default",e){try{if(!Qe())return null;if(e)return e;let n=["/config/".concat(t,".config.json"),"/config/".concat(t,".tgd.json"),"/config/".concat(t,".json")];for(let i of n)try{let r=await fetch(i);if(r.ok)return await r.json()}catch(r){continue}return console.warn("\u26A0\uFE0F [loadLocalConfig] No config found for '".concat(t,"'")),null}catch(n){return console.error("[loadLocalConfig] Error loading config:",n),null}}async function ia(){try{if(!Qe())return;let t=me("TAGADA_STORE_ID"),e=me("TAGADA_ACCOUNT_ID"),n=me("TAGADA_BASE_PATH"),i=me("TAGADA_CONFIG_NAME");if(!t||!e)return;let r=await na(i);if(!r)return;let s={storeId:t,accountId:e,basePath:n||"/",config:r};return console.log("\u{1F6E0}\uFE0F [createRawPluginConfig] Using environment variables (build-time config):",{hasStoreId:!!s.storeId,hasAccountId:!!s.accountId,basePath:s.basePath,hasConfig:!!s.config}),s}catch(t){console.error("[createRawPluginConfig] Error creating config:",t);return}}var di=new Map,fi=new Set;function ra(){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get("authCode")}async function Jr(t,e,n,i=!1){if(fi.has(t))throw i&&console.log("[AuthHandoff] Code already resolved, skipping duplicate request"),new Error("Auth code already resolved");let r=di.get(t);if(r)return i&&console.log("[AuthHandoff] Resolution already in progress, waiting for existing request"),r;i&&console.log("[AuthHandoff] Resolving authCode:",t.substring(0,15)+"...");let s=(async()=>{try{let o=await fetch("".concat(n,"/api/v1/cms/auth/resolve-handoff"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:t,storeId:e})});if(!o.ok){let c=await o.json().catch(()=>({message:"Unknown error"}));throw new Error(c.message||"Failed to resolve auth handoff: ".concat(o.status))}let a=await o.json();return i&&console.log("[AuthHandoff] \u2705 Resolved successfully:",{customerId:a.customer.id,role:a.customer.role,hasContext:Object.keys(a.context).length>0}),i&&console.log("[AuthHandoff] Storing new token (overriding existing)"),fe(a.token),oa(i),fi.add(t),a}catch(o){throw console.error("[AuthHandoff] \u274C Failed to resolve:",o),o}finally{di.delete(t)}})();return di.set(t,s),s}function oa(t=!1){if(typeof window=="undefined")return;let e=new URL(window.location.href);e.searchParams.has("authCode")&&(e.searchParams.delete("authCode"),window.history.replaceState({},"",e.pathname+e.search+e.hash),t&&console.log("[AuthHandoff] Cleaned authCode from URL"))}function Zr(){let t=ra();return!(!t||!t.startsWith("ah_")||fi.has(t))}var gn=class{constructor(e={}){this.bus=new dn;this.eventDispatcher=new xe;this.tokenPromise=null;this.tokenResolver=null;this.isInitializingSession=!1;this.lastSessionInitError=null;this.sessionInitRetryCount=0;this.MAX_SESSION_INIT_RETRIES=3;var a,c,u,d;this.config=e,this.instanceId=Math.random().toString(36).substr(2,9),this.boundHandleStorageChange=this.handleStorageChange.bind(this),this.boundHandlePageshow=f=>{if(f.persisted)if(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Page restored from BFcache (back button), re-initializing funnel...")),this.funnel&&this.state.session&&this.state.store){this.funnel.resetInitialization();let S=this.getAccountId(),m=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||void 0;this.funnel.autoInitialize({customerId:this.state.session.customerId,sessionId:this.state.session.sessionId},{id:this.state.store.id,accountId:S},m).catch(T=>{console.error("[TagadaClient] Funnel re-initialization failed:",T)})}else this.sessionInitRetryCount=0,this.initialize()},console.log("[TagadaClient ".concat(this.instanceId,"] Initializing...")),console.log("[TagadaClient ".concat(this.instanceId,"] Config:"),{debugMode:e.debugMode,hasRawPluginConfig:!!e.rawPluginConfig,rawPluginConfig:e.rawPluginConfig,features:e.features}),vi(this.config.debugMode)&&this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Preview mode active - state cleared"));let i=this.resolveEnvironment(),r=Oi(i);e.customApiConfig&&(r=z(R(R({},r),e.customApiConfig),{apiConfig:R(R({},r.apiConfig),e.customApiConfig.apiConfig)}),this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Applied custom API config:"),r.apiConfig.baseUrl)),this.state={auth:{isAuthenticated:!1,isLoading:!1,customer:null,session:null},session:null,customer:null,locale:{locale:"en-US",language:"en",region:"US",messages:{}},currency:{code:"USD",symbol:"$",name:"US Dollar"},store:null,environment:r,isLoading:!0,isInitialized:!1,isSessionInitialized:!1,pluginConfig:{basePath:"/",config:{}},pluginConfigLoading:!0,debugMode:(a=e.debugMode)!=null?a:i!=="production",token:null},console.log("[TagadaClient ".concat(this.instanceId,"] Initial state:"),{pluginConfigLoading:this.state.pluginConfigLoading,hasRawPluginConfig:!!e.rawPluginConfig}),this.apiClient=new mt({baseURL:r.apiConfig.baseUrl});let s=(c=e.features)==null?void 0:c.funnel;if(s!==!1){let f=typeof s=="object"?s:{};this.funnel=new Ut({apiClient:this.apiClient,debugMode:this.state.debugMode,pluginConfig:this.state.pluginConfig,environment:this.state.environment,autoRedirect:f.autoRedirect,funnelId:(u=e.rawPluginConfig)==null?void 0:u.funnelId,stepId:(d=e.rawPluginConfig)==null?void 0:d.stepId})}this.apiClient.setTokenProvider(this.waitForToken.bind(this)),typeof window!="undefined"&&(window.addEventListener("storage",this.boundHandleStorageChange),window.addEventListener("pageshow",this.boundHandlePageshow)),this.setupConfigHotReload(),this.initialize()}destroy(){typeof window!="undefined"&&(window.removeEventListener("storage",this.boundHandleStorageChange),window.removeEventListener("pageshow",this.boundHandlePageshow)),this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Destroyed")),this.eventDispatcher.clear(),this.bus.clear()}handleStorageChange(){if(et()===this.state.token){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Token unchanged (ignoring event)"));return}if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping storage change"));return}if(this.sessionInitRetryCount>=this.MAX_SESSION_INIT_RETRIES&&this.lastSessionInitError){this.state.debugMode&&console.error("[TagadaClient ".concat(this.instanceId,"] Max session init retries reached, giving up"),this.lastSessionInitError);return}this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Storage changed, re-initializing token...")),this.initializeToken()}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}updateState(e){this.state=R(R({},this.state),e),this.eventDispatcher.notify(this.state)}resolveEnvironment(){return this.config.environment?this.config.environment:Ze()}async initialize(){try{await this.initializePluginConfig(),this.state.pluginConfig.storeId?await this.initializeToken():(console.warn("[TagadaClient] No store ID found in plugin config. Skipping token initialization."),this.updateState({isLoading:!1,isInitialized:!0}))}catch(e){console.error("[TagadaClient] Initialization failed:",e),this.updateState({isLoading:!1,isInitialized:!0})}}async initializePluginConfig(){if(console.log("[TagadaClient ".concat(this.instanceId,"] initializePluginConfig called"),{pluginConfigLoading:this.state.pluginConfigLoading,hasRawPluginConfig:!!this.config.rawPluginConfig}),!this.state.pluginConfigLoading){console.log("[TagadaClient ".concat(this.instanceId,"] Plugin config already loading or loaded, skipping..."));return}try{let e=this.config.localConfig||"default";console.log("[TagadaClient ".concat(this.instanceId,"] Loading plugin config with variant: ").concat(e));let n=await qr(e,this.config.rawPluginConfig);console.log("[TagadaClient ".concat(this.instanceId,"] Plugin config loaded:"),n),this.updateState({pluginConfig:n,pluginConfigLoading:!1}),this.funnel&&this.funnel.setConfig({pluginConfig:n,environment:this.state.environment})}catch(e){console.error("[TagadaClient] Failed to load plugin config:",e),this.updateState({pluginConfig:{basePath:"/",config:{}},pluginConfigLoading:!1})}}async initializeToken(){var e;if(Zr()){let n=this.state.pluginConfig.storeId;if(!n)return console.error("[TagadaClient] Cannot resolve authCode: storeId not found in config"),this.fallbackToNormalFlow();console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F510} Cross-domain auth detected, resolving..."));try{let i=new URLSearchParams(window.location.search).get("authCode");if(!i)return this.fallbackToNormalFlow();let r=await Jr(i,n,this.state.environment.apiConfig.baseUrl,this.state.debugMode);console.log("[TagadaClient ".concat(this.instanceId,"] \u2705 Auth handoff resolved:"),{customerId:r.customer.id,role:r.customer.role,hasContext:Object.keys(r.context).length>0}),this.setToken(r.token);let s=fn(r.token);s?(this.updateState({session:s}),await this.initializeSession(s),(e=r.context)!=null&&e.funnelSessionId&&this.funnel&&this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Restoring funnel session from handoff context:"),r.context.funnelSessionId)):(console.error("[TagadaClient] Failed to decode token from handoff"),this.updateState({isInitialized:!0,isLoading:!1}));return}catch(i){console.error("[TagadaClient ".concat(this.instanceId,"] \u274C Auth handoff failed, falling back to normal flow:"),i)}}await this.fallbackToNormalFlow()}async fallbackToNormalFlow(){let e=et(),i=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("token");console.log("[TagadaClient ".concat(this.instanceId,"] Initializing token (normal flow)..."),{hasExistingToken:!!e,hasQueryToken:!!i,storeId:this.state.pluginConfig.storeId});let r=null,s=!1;if(i?(r=i,s=!0):e&&!Xr(e)&&(r=e),r){this.setToken(r),s&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Persisting query token to storage...")),fe(r));let o=fn(r);o?(this.updateState({session:o}),await this.initializeSession(o)):(console.error("[TagadaClient] Failed to decode token"),this.updateState({isInitialized:!0,isLoading:!1}))}else{let o=this.state.pluginConfig.storeId;console.log("[TagadaClient ".concat(this.instanceId,"] No existing token, creating anonymous token..."),{hasStoreId:!!o,storeId:o}),o?await this.createAnonymousToken(o):(console.warn("[TagadaClient ".concat(this.instanceId,"] No storeId in plugin config, skipping anonymous token creation")),this.updateState({isInitialized:!0,isLoading:!1}))}}setToken(e){this.apiClient.updateToken(e),this.updateState({token:e}),this.tokenResolver&&(this.tokenResolver(e),this.tokenPromise=null,this.tokenResolver=null)}waitForToken(){return this.apiClient.getCurrentToken()?Promise.resolve(this.apiClient.getCurrentToken()):(this.tokenPromise||(this.tokenPromise=new Promise(e=>{this.tokenResolver=e})),this.tokenPromise)}async createAnonymousToken(e){if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping anonymous token creation"));return}try{let n=bn();this.state.debugMode&&console.log("[TagadaClient] Creating anonymous token for store:",e,{draft:n});let i=await this.apiClient.post("/api/v1/cms/session/anonymous",{storeId:e,role:"anonymous",draft:n},{skipAuth:!0});this.setToken(i.token),fe(i.token);let r=fn(i.token);r&&(this.updateState({session:r}),await this.initializeSession(r)),this.updateState({isSessionInitialized:!0})}catch(n){console.error("[TagadaClient] Failed to create anonymous token:",n),this.updateState({isInitialized:!0,isLoading:!1})}}async initializeSession(e){var n,i,r,s,o,a,c,u,d,f,S;if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization already in progress, skipping"));return}this.isInitializingSession=!0;try{this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Initializing session..."),{sessionId:e.sessionId});let I=jr(),m=$r(),T=Yr(),b=bn(),v=new URLSearchParams(window.location.search).get("draft");v!==null&&wn(v==="true");let k={storeId:e.storeId,accountId:e.accountId,customerId:e.customerId,role:e.role,browserLocale:T,queryLocale:m.locale,queryCurrency:m.currency,utmSource:m.utmSource,utmMedium:m.utmMedium,utmCampaign:m.utmCampaign,browser:I.userAgent.browser.name,browserVersion:I.userAgent.browser.version,os:I.userAgent.os.name,osVersion:I.userAgent.os.version,deviceType:(n=I.userAgent.device)==null?void 0:n.type,deviceModel:(i=I.userAgent.device)==null?void 0:i.model,deviceVendor:(r=I.userAgent.device)==null?void 0:r.vendor,userAgent:I.userAgent.name,engineName:I.userAgent.engine.name,engineVersion:I.userAgent.engine.version,cpuArchitecture:I.userAgent.cpu.architecture,isBot:(o=(s=I.flags)==null?void 0:s.isBot)!=null?o:!1,isChromeFamily:(c=(a=I.flags)==null?void 0:a.isChromeFamily)!=null?c:!1,isStandalonePWA:(d=(u=I.flags)==null?void 0:u.isStandalonePWA)!=null?d:!1,isAppleSilicon:(S=(f=I.flags)==null?void 0:f.isAppleSilicon)!=null?S:!1,screenWidth:I.screenResolution.width,screenHeight:I.screenResolution.height,timeZone:I.timeZone,draft:b,fetchMessages:!1},_=await this.apiClient.post("/api/v1/cms/session/v2/init",k);this.lastSessionInitError=null,this.sessionInitRetryCount=0,this.updateSessionState(_,e),this.updateState({isInitialized:!0,isSessionInitialized:!0,isLoading:!1}),this.state.debugMode&&console.log("[TagadaClient] Session initialized successfully")}catch(I){this.lastSessionInitError=I,this.sessionInitRetryCount++,console.error("[TagadaClient] Error initializing session (attempt ".concat(this.sessionInitRetryCount,"/").concat(this.MAX_SESSION_INIT_RETRIES,"):"),I),this.updateState({isInitialized:!0,isLoading:!1})}finally{this.isInitializingSession=!1}}updateSessionState(e,n){var r,s,o,a,c,u,d,f,S;if(e.store){let I=e.store,m=z(R({},e.store),{accountId:I.accountId||((r=this.state.pluginConfig)==null?void 0:r.accountId)||n.accountId||"",presentmentCurrencies:I.presentmentCurrencies||[e.store.currency||"USD"],chargeCurrencies:I.chargeCurrencies||[e.store.currency||"USD"]});this.updateState({store:m})}if(e.locale){let I={locale:e.locale,language:e.locale.split("-")[0],region:(s=e.locale.split("-")[1])!=null?s:"US",messages:(o=e.messages)!=null?o:{}};this.updateState({locale:I})}if(e.store){let I={code:e.store.currency,symbol:this.getCurrencySymbol(e.store.currency),name:this.getCurrencyName(e.store.currency)};this.updateState({currency:I})}let i={isAuthenticated:(c=(a=e.customer)==null?void 0:a.isAuthenticated)!=null?c:!1,isLoading:!1,customer:(u=e.customer)!=null?u:null,session:n};if(this.updateState({customer:(d=e.customer)!=null?d:null,auth:i}),this.funnel&&n.customerId&&((f=e.store)!=null&&f.id)){let I=e.store.accountId||((S=this.state.pluginConfig)==null?void 0:S.accountId)||n.accountId||"";if(I){let T=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||void 0;this.state.debugMode&&console.log("[TagadaClient] Auto-initializing funnel...",{customerId:n.customerId,storeId:e.store.id,accountId:I,funnelId:T||"auto-detect"}),this.funnel.autoInitialize({customerId:n.customerId,sessionId:n.sessionId},{id:e.store.id,accountId:I},T).catch(b=>{console.error("[TagadaClient] Funnel auto-initialization failed:",b)})}else console.warn("[TagadaClient] Cannot auto-initialize funnel: accountId is missing")}}getCurrencySymbol(e){return{USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5",CAD:"C$",AUD:"A$"}[e]||e}getCurrencyName(e){return{USD:"US Dollar",EUR:"Euro",GBP:"British Pound",JPY:"Japanese Yen",CAD:"Canadian Dollar",AUD:"Australian Dollar"}[e]||e}getAccountId(){var e,n,i;return((e=this.state.store)==null?void 0:e.accountId)||((n=this.state.pluginConfig)==null?void 0:n.accountId)||((i=this.state.session)==null?void 0:i.accountId)||""}updatePluginConfig(e){this.state.debugMode&&console.log("[TagadaClient] Hot-reloading config:",e);let n=R(R({},this.state.pluginConfig.config),e);this.updateState({pluginConfig:z(R({},this.state.pluginConfig),{config:n})}),this.bus.emit("CONFIG_UPDATED",n),this.state.debugMode&&console.log("[TagadaClient] Config updated successfully")}setupConfigHotReload(){if(typeof window=="undefined")return;let e=n=>{var i,r;if(((i=n.data)==null?void 0:i.type)==="TAGADAPAY_CONFIG_UPDATE"){let{config:s}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received config update from parent:",s),this.updatePluginConfig(s)}else if(((r=n.data)==null?void 0:r.type)==="APPLY_STYLES_TO_ELEMENT"){let{elementId:s,styles:o}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received style application request:",{elementId:s,styles:o}),this.applyStylesToElement(s,o)}};window.addEventListener("message",e),this.state.debugMode&&console.log("[TagadaClient] Config hot-reload and style manipulation listeners enabled")}applyStylesToElement(e,n){if(typeof document=="undefined")return;let i="tagada-editor-highlight",r=document.getElementById(i);r&&r.remove();let s=f=>{var _;let I=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]).has(f.tagName.toLowerCase()),m=f;if(I){let N=f.parentElement;if((N==null?void 0:N.getAttribute("data-tagada-highlight-wrapper"))==="true"&&N instanceof HTMLElement)m=N;else{let x=document.createElement("div");x.setAttribute("data-tagada-highlight-wrapper","true");let W=window.getComputedStyle(f),oe=W.display;if(oe==="inline"?x.style.display="inline-block":x.style.display=oe,x.style.position="relative",oe==="inline"||oe.includes("inline")){let te=W.verticalAlign;te&&te!=="baseline"&&(x.style.verticalAlign=te)}["width","height","minWidth","minHeight","maxWidth","maxHeight","flex","flexGrow","flexShrink","flexBasis","gridColumn","gridRow","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","gridArea","alignSelf","justifySelf","boxSizing","gap","rowGap","columnGap","order","aspectRatio"].forEach(te=>{let Ae=te.replace(/([A-Z])/g,"-$1").toLowerCase(),j=W.getPropertyValue(Ae);j&&j.trim()!==""&&(te==="flex"&&j!=="none"&&j!=="0 1 auto"?x.style.flex=j:te==="boxSizing"?x.style.boxSizing=j:x.style.setProperty(Ae,j))}),f.style&&["width","height","min-width","min-height","max-width","max-height","flex","flex-grow","flex-shrink","flex-basis","grid-column","grid-row","grid-column-start","grid-column-end","grid-row-start","grid-row-end","grid-area","align-self","justify-self","box-sizing","gap","row-gap","column-gap","order","aspect-ratio"].forEach(Ae=>{let j=f.style.getPropertyValue(Ae);j&&x.style.setProperty(Ae,j)}),(_=f.parentNode)==null||_.insertBefore(x,f),x.appendChild(f),m=x}}let T=getComputedStyle(I?f:m);(m.style.position==="static"||!m.style.position)&&(m.style.position="relative");let b=document.createElement("div");b.id=i,b.style.position="absolute",b.style.inset="0",b.style.pointerEvents="none",b.style.zIndex="9999",b.style.boxSizing="border-box",b.style.background="none",b.style.border="none",b.style.outline="none",b.style.margin="0",b.style.padding="0";let v=T.borderRadius;v&&(b.style.borderRadius=v),m.appendChild(b);let k=n||{boxShadow:"0 0 0 2px rgb(239 68 68)"};if(Object.entries(k).forEach(([N,K])=>{let x=N.includes("-")?N.replace(/-([a-z])/g,(W,oe)=>oe.toUpperCase()):N;N.includes("-")?b.style.setProperty(N,K):b.style[x]=K}),f.scrollIntoView({behavior:"smooth",block:"center"}),this.state.debugMode){let N=Object.entries(k).map(([K,x])=>"".concat(K,": ").concat(x)).join("; ");console.log("[TagadaClient] Applied styles to highlight div of element #".concat(e,":"),N)}},o=5,a=1e3,c=0,u=f=>{let S=window.getComputedStyle(f);return S.display==="none"||S.visibility==="hidden"||S.opacity==="0"||f.hidden||f.offsetWidth===0||f.offsetHeight===0},d=()=>{let f=document.querySelectorAll('[editor-id~="'.concat(e,'"]'));if(f.length===0){if(c+=1,c>=o){this.state.debugMode&&console.warn('[TagadaClient] Element with editor-id containing "'.concat(e,'" not found after ').concat(o," attempts"));return}this.state.debugMode&&console.warn('[TagadaClient] Element with editor-id containing "'.concat(e,'" not found (attempt ').concat(c,"/").concat(o,"), retrying in ").concat(a/1e3,"s")),setTimeout(d,a);return}let S=null;if(f.length===1)S=f[0];else{for(let I=0;I<f.length;I++)if(!u(f[I])){S=f[I];break}S||(S=f[0])}S&&s(S)};d()}};function Qr(t={}){return new gn(t)}function eo(t){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get(t)}function he(t,...e){t&&console.log("[TagadaTracker]",...e)}var Nt=class{constructor(){this.config=null;this.client=null;this.initialized=!1;this.initializing=!1}async init(e){var n,i,r,s;if(this.initialized||this.initializing)return he(e.debug||!1,"Already initialized or initializing"),this.getSession();this.initializing=!0,this.config=R({debug:!1},e),he(this.config.debug,"\u{1F680} Initializing external tracker with SDK...",e);try{let o=eo("token");o&&(fe(o),he(this.config.debug,"\u{1F511} Bootstrapped token from URL")),this.client=Qr({debugMode:this.config.debug,features:{funnel:!0}}),await this.waitForClientReady();let a=await this.initializeFunnel();he(this.config.debug,"\u2705 Session initialized (tracking handled by orchestrator):",a),this.initialized=!0;let c=this.getSession();return c&&((i=(n=this.config).onReady)==null||i.call(n,c)),c}catch(o){let a=o instanceof Error?o:new Error(String(o));throw he(this.config.debug,"\u274C Initialization failed:",a),(s=(r=this.config).onError)==null||s.call(r,a),a}finally{this.initializing=!1}}getSession(){var n,i;if(!((i=(n=this.client)==null?void 0:n.funnel)!=null&&i.state.context))return null;let e=this.client.funnel.state.context;return{sessionId:e.sessionId,customerId:e.customerId,storeId:e.storeId,funnelId:e.funnelId,currentStepId:e.currentStepId,cmsToken:this.client.state.token||void 0}}isReady(){var e,n;return this.initialized&&!!((n=(e=this.client)==null?void 0:e.funnel)!=null&&n.state.context)}async navigate(e){if(!this.isReady())throw new Error("Tracker not initialized. Call init() first.");he(this.config.debug,"\u{1F680} Navigating:",e);try{let n=await this.client.funnel.navigate({type:e.eventType,data:e.eventData||{}});return n!=null&&n.url?(he(this.config.debug,"\u2705 Navigation result:",n.url),typeof window!="undefined"&&(window.location.href=e.returnUrl||n.url),{url:n.url}):null}catch(n){throw he(this.config.debug,"\u274C Navigation failed:",n),n}}getCustomerId(){var e,n,i,r,s;return((n=(e=this.client)==null?void 0:e.state.auth.customer)==null?void 0:n.id)||((s=(r=(i=this.client)==null?void 0:i.funnel)==null?void 0:r.state.context)==null?void 0:s.customerId)||null}getFunnelSessionId(){var e,n,i;return((i=(n=(e=this.client)==null?void 0:e.funnel)==null?void 0:n.state.context)==null?void 0:i.sessionId)||null}buildUrl(e,n){let i=this.getSession();if(!i)return e;let r=new URL(e,typeof window!="undefined"?window.location.origin:void 0);return r.searchParams.set("funnelSessionId",i.sessionId),i.cmsToken&&r.searchParams.set("token",i.cmsToken),i.funnelId&&r.searchParams.set("funnelId",i.funnelId),r.searchParams.set("storeId",i.storeId),n&&Object.entries(n).forEach(([s,o])=>{r.searchParams.set(s,o)}),r.toString()}getClient(){return this.client}async waitForClientReady(){if(this.client)return new Promise(e=>{let n=0,i=()=>{var r,s;(r=this.client)!=null&&r.state.isInitialized||(s=this.client)!=null&&s.state.token||n>40?e():(n++,setTimeout(i,50))};i()})}async initializeFunnel(){var r,s,o;if(!((r=this.client)!=null&&r.funnel))return null;let e={customerId:((s=this.client.state.auth.customer)==null?void 0:s.id)||"anon_placeholder",sessionId:((o=this.client.state.auth.session)==null?void 0:o.sessionId)||"sess_placeholder"},n={id:this.config.storeId,accountId:this.config.accountId||""},i=this.config.stepId;if(!i)throw new Error("stepId is required for external page tracking (URL mapping does not work for external pages)");return he(this.config.debug,"\u{1F50D} Initializing external page at step:",i),this.client.funnel.initialize(e,n,this.config.funnelId||eo("funnelId")||void 0,i)}},pi=new Nt;typeof window!="undefined"&&(window.TagadaTracker=pi);return co(sa);})();
|
|
7
|
+
/*! Bundled license information:
|
|
8
|
+
|
|
9
|
+
detect-europe-js/dist/esm/index.js:
|
|
10
|
+
(*! detectEurope.js v0.1.2
|
|
11
|
+
Determine whether a user is from the European Union (EU) area
|
|
12
|
+
https://github.com/faisalman/detect-europe-js
|
|
13
|
+
Author: Faisal Salman <f@faisalman.com>
|
|
14
|
+
MIT License *)
|
|
15
|
+
|
|
16
|
+
ua-is-frozen/dist/esm/index.js:
|
|
17
|
+
(*! isFrozenUA
|
|
18
|
+
A freeze-test for your user-agent string
|
|
19
|
+
https://github.com/faisalman/ua-is-frozen
|
|
20
|
+
Author: Faisal Salman <f@faisalman.com>
|
|
21
|
+
MIT License *)
|
|
22
|
+
|
|
23
|
+
is-standalone-pwa/dist/esm/index.js:
|
|
24
|
+
(*! isStandalonePWA 0.1.1
|
|
25
|
+
Detect if PWA is running in standalone mode
|
|
26
|
+
https://github.com/faisalman/is-standalone-pwa
|
|
27
|
+
Author: Faisal Salman <f@faisalman.com>
|
|
28
|
+
MIT License *)
|
|
29
|
+
*/
|
|
7
30
|
// Expose TagadaTracker globally (if not already done in bundle)
|
|
8
31
|
if (typeof window !== 'undefined' && TagadaTrackerBundle && TagadaTrackerBundle.TagadaTracker) {
|
|
9
32
|
window.TagadaTracker = TagadaTrackerBundle.TagadaTracker;
|