@tagadapay/plugin-sdk 3.1.22 → 3.1.24

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.
Files changed (76) hide show
  1. package/build-cdn.js +274 -6
  2. package/dist/external-tracker.js +236 -3906
  3. package/dist/external-tracker.min.js +2 -25
  4. package/dist/external-tracker.min.js.map +4 -4
  5. package/dist/react/config/payment.d.ts +14 -4
  6. package/dist/react/config/payment.js +47 -9
  7. package/dist/react/hooks/useCheckout.d.ts +3 -0
  8. package/dist/react/hooks/useCheckout.js +4 -1
  9. package/dist/react/hooks/usePluginConfig.js +9 -10
  10. package/dist/react/providers/TagadaProvider.js +1 -1
  11. package/dist/tagada-react-sdk-minimal.min.js +36 -0
  12. package/dist/tagada-react-sdk-minimal.min.js.map +7 -0
  13. package/dist/tagada-react-sdk.js +37821 -0
  14. package/dist/tagada-react-sdk.min.js +78 -0
  15. package/dist/tagada-react-sdk.min.js.map +7 -0
  16. package/dist/tagada-sdk.js +10309 -6331
  17. package/dist/tagada-sdk.min.js +4 -22
  18. package/dist/tagada-sdk.min.js.map +4 -4
  19. package/dist/v2/cdn-react-minimal.d.ts +23 -0
  20. package/dist/v2/cdn-react-minimal.js +26 -0
  21. package/dist/v2/core/client.js +1 -1
  22. package/dist/v2/core/config/environment.js +2 -1
  23. package/dist/v2/core/funnelClient.d.ts +98 -10
  24. package/dist/v2/core/funnelClient.js +121 -27
  25. package/dist/v2/core/index.d.ts +0 -1
  26. package/dist/v2/core/index.js +0 -2
  27. package/dist/v2/core/isoData.d.ts +4 -4
  28. package/dist/v2/core/isoData.js +7 -7
  29. package/dist/v2/core/pixelMapping.js +64 -26
  30. package/dist/v2/core/resources/checkout.d.ts +10 -0
  31. package/dist/v2/core/resources/checkout.js +6 -0
  32. package/dist/v2/core/resources/expressPaymentMethods.d.ts +1 -0
  33. package/dist/v2/core/resources/payments.d.ts +7 -2
  34. package/dist/v2/core/resources/payments.js +1 -0
  35. package/dist/v2/core/resources/postPurchases.d.ts +17 -0
  36. package/dist/v2/core/resources/postPurchases.js +20 -0
  37. package/dist/v2/core/utils/deviceInfo.d.ts +0 -10
  38. package/dist/v2/core/utils/deviceInfo.js +152 -76
  39. package/dist/v2/core/utils/order.d.ts +2 -0
  40. package/dist/v2/core/utils/pluginConfig.js +18 -22
  41. package/dist/v2/index.d.ts +4 -3
  42. package/dist/v2/index.js +4 -2
  43. package/dist/v2/react/components/FunnelScriptInjector.js +145 -77
  44. package/dist/v2/react/components/StripeExpressButton.d.ts +13 -0
  45. package/dist/v2/react/components/StripeExpressButton.js +171 -0
  46. package/dist/v2/react/components/WhopCheckout.js +7 -1
  47. package/dist/v2/react/hooks/payment-actions/useProcessorAuthAction.js +21 -3
  48. package/dist/v2/react/hooks/useApplePayCheckout.js +8 -8
  49. package/dist/v2/react/hooks/useCheckoutQuery.d.ts +10 -0
  50. package/dist/v2/react/hooks/useCheckoutQuery.js +21 -13
  51. package/dist/v2/react/hooks/useFunnel.d.ts +15 -4
  52. package/dist/v2/react/hooks/useFunnel.js +8 -4
  53. package/dist/v2/react/hooks/useGoogleAutocomplete.d.ts +2 -0
  54. package/dist/v2/react/hooks/useGoogleAutocomplete.js +29 -15
  55. package/dist/v2/react/hooks/useISOData.d.ts +2 -5
  56. package/dist/v2/react/hooks/useISOData.js +25 -26
  57. package/dist/v2/react/hooks/usePaymentPolling.d.ts +2 -2
  58. package/dist/v2/react/hooks/usePixelTracking.js +151 -70
  59. package/dist/v2/react/hooks/usePostPurchasesQuery.js +34 -2
  60. package/dist/v2/react/hooks/useRemappableParams.d.ts +2 -6
  61. package/dist/v2/react/hooks/useRemappableParams.js +23 -23
  62. package/dist/v2/react/hooks/useSetPaymentMethod.d.ts +16 -0
  63. package/dist/v2/react/hooks/useSetPaymentMethod.js +33 -0
  64. package/dist/v2/react/hooks/useStepConfig.d.ts +23 -6
  65. package/dist/v2/react/hooks/useStepConfig.js +14 -7
  66. package/dist/v2/react/hooks/useTranslation.js +23 -8
  67. package/dist/v2/react/index.d.ts +8 -1
  68. package/dist/v2/react/index.js +3 -0
  69. package/dist/v2/react/providers/ExpressPaymentMethodsProvider.d.ts +1 -0
  70. package/dist/v2/react/providers/ExpressPaymentMethodsProvider.js +9 -1
  71. package/dist/v2/react/providers/TagadaProvider.js +4 -4
  72. package/dist/v2/standalone/index.d.ts +21 -3
  73. package/dist/v2/standalone/index.js +25 -3
  74. package/dist/v2/standalone/payment-service.d.ts +134 -0
  75. package/dist/v2/standalone/payment-service.js +928 -0
  76. package/package.json +4 -2
@@ -1,32 +1,9 @@
1
1
  /**
2
- * TagadaPay External Tracker v3.1.22
2
+ * TagadaPay External Tracker v3.1.24
3
3
  * CDN Bundle - Standalone tracking for external pages
4
4
  * @license MIT
5
5
  */
6
- "use strict";var TagadaTrackerBundle=(()=>{var os=Object.create;var pt=Object.defineProperty,ss=Object.defineProperties,as=Object.getOwnPropertyDescriptor,cs=Object.getOwnPropertyDescriptors,ls=Object.getOwnPropertyNames,ei=Object.getOwnPropertySymbols,us=Object.getPrototypeOf,ni=Object.prototype.hasOwnProperty,ds=Object.prototype.propertyIsEnumerable;var Ke=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),ps=t=>{throw TypeError(t)};var ti=(t,e,n)=>e in t?pt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,O=(t,e)=>{for(var n in e||(e={}))ni.call(e,n)&&ti(t,n,e[n]);if(ei)for(var n of ei(e))ds.call(e,n)&&ti(t,n,e[n]);return t},$=(t,e)=>ss(t,cs(e));var Te=(t,e)=>()=>(t&&(e=t(t=0)),e);var fs=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Gn=(t,e)=>{for(var n in e)pt(t,n,{get:e[n],enumerable:!0})},ri=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ls(e))!ni.call(t,i)&&i!==n&&pt(t,i,{get:()=>e[i],enumerable:!(r=as(e,i))||r.enumerable});return t};var gs=(t,e,n)=>(n=t!=null?os(us(t)):{},ri(e||!t||!t.__esModule?pt(n,"default",{value:t,enumerable:!0}):n,t)),ms=t=>ri(pt({},"__esModule",{value:!0}),t);var ke=function(t,e){this[0]=t,this[1]=e},Hn=(t,e,n)=>{var r=(s,a,l,c)=>{try{var u=n[s](a),p=(a=u.value)instanceof ke,b=u.done;Promise.resolve(p?a[0]:a).then(w=>p?r(s==="return"?s:"next",a[1]?{done:w.done,value:w.value}:w,l,c):l({value:w,done:b})).catch(w=>r("throw",w,l,c))}catch(w){c(w)}},i=s=>o[s]=a=>new Promise((l,c)=>r(s,a,l,c)),o={};return n=n.apply(t,e),o[Ke("asyncIterator")]=()=>o,i("next"),i("throw"),i("return"),o},Ve=t=>{var e=t[Ke("asyncIterator")],n=!1,r,i={};return e==null?(e=t[Ke("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 ke(new Promise(a=>{var l=e[o](s);l instanceof Object||ps("Object expected"),a(l)}),1)}}),i[Ke("iterator")]=()=>i,r("next"),"throw"in e?r("throw"):i.throw=o=>{throw o},"return"in e&&r("return"),i},ii=(t,e,n)=>(e=t[Ke("asyncIterator")])?e.call(t):(t=t[Ke("iterator")](),e={},n=(r,i)=>(i=t[r])&&(e[r]=o=>new Promise((s,a,l)=>(o=i.call(t,o),l=o.done,Promise.resolve(o.value).then(c=>s({value:c,done:l}),a)))),n("next"),n("return"),e);function si(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}function ai(t="local"){let e=oi[t];if(!e)return console.warn("Unknown environment: ".concat(t,". Falling back to local.")),{environment:"local",apiConfig:oi.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")||si("tgd_client_base_url")}catch(i){}return n?(console.log("[SDK] Using custom API base URL override: ".concat(n)),{environment:t,apiConfig:$(O({},e),{baseUrl:n})}):{environment:t,apiConfig:e}}function ft(){var i;if(console.log("[SDK] detectEnvironment() called"),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")||si("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(console.log('[SDK] detectEnvironment() - hostname: "'.concat(n,'"')),n==="localhost"||n.startsWith("127.")||n.startsWith("192.168.")||n.startsWith("10.")||n.includes(".local")||n===""||n==="0.0.0.0"||n.includes("ngrok-free.dev")||n.includes("ngrok-free.app")||n.includes("ngrok.io")||n.includes("ngrok.app")){if(console.log("[SDK] detectEnvironment() - returning LOCAL"),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 gt(t=!1){return ft()!=="local"?!1:t&&typeof window!="undefined"?!window.location.hostname.includes(".cdn."):!0}var oi,en=Te(()=>{"use strict";oi={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"}}}}});var tn,Kn=Te(()=>{"use strict";tn=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 We,Vn=Te(()=>{"use strict";We=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()}}});function re(t){if(typeof window!="undefined")try{let n=localStorage.getItem(nn)!==t;localStorage.setItem(nn,t),n&&window.dispatchEvent(new Event("storage"))}catch(e){console.error("Failed to save token to localStorage:",e)}}function mt(){if(typeof window!="undefined")try{return localStorage.getItem(nn)}catch(t){return console.error("Failed to get token from localStorage:",t),null}return null}function $e(){if(typeof window!="undefined")try{localStorage.removeItem(nn)}catch(t){console.error("Failed to clear token from localStorage:",t)}}var nn,ze=Te(()=>{"use strict";nn="cms_token"});function ci(t){typeof document!="undefined"&&(document.cookie="".concat(Wn,"=").concat(t,"; path=/; max-age=2592000; SameSite=Lax"))}function li(){if(typeof document=="undefined")return;let t=document.cookie.split("; ").find(e=>e.startsWith("".concat(Wn,"=")));return t?t.split("=")[1]:void 0}function rn(){typeof document!="undefined"&&(document.cookie="".concat(Wn,"=; path=/; max-age=0"))}var Wn,ht=Te(()=>{"use strict";Wn="tgd-funnel-session-id"});function Ye(t){if(typeof window=="undefined")return null;try{return localStorage.getItem(t)}catch(e){return null}}function on(t,e){if(typeof window!="undefined")try{localStorage.setItem(t,e)}catch(n){}}function Et(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 $n(t,e,n=86400){if(typeof document!="undefined"){if(t==="tgd_draft"||t==="tgd-draft"){console.warn("\u{1F6E1}\uFE0F [SDK] Blocked attempt to set ".concat(t," as cookie - this should only be in localStorage"));return}document.cookie="".concat(t,"=").concat(e,"; path=/; max-age=").concat(n)}}function di(t){typeof document!="undefined"&&(document.cookie="".concat(t,"=; path=/; max-age=0"))}function Le(){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 C=Ye(B.DRAFT);C!==null&&(e=C==="true")}let r,i=t.get("funnelTracking");if(i!==null)r=i!=="false";else{let C=Ye(B.FUNNEL_TRACKING)||Et(B.FUNNEL_TRACKING);C!==null&&(r=C!=="false")}let o=t.get("token")||mt()||null,s=t.get("funnelSessionId")||null,a=t.get("funnelId")||null,l,c=t.get("funnelEnv");c&&(c==="staging"||c==="production")&&(l=c);let u=t.get("forceReset")==="true",p,b=t.get("tagadaClientEnv");if(b&&(b==="production"||b==="development"||b==="local"))p=b;else{let C=Ye(B.CLIENT_ENV)||Et(B.CLIENT_ENV);C&&(C==="production"||C==="development"||C==="local")&&(p=C)}let w,f=t.get("tagadaClientBaseUrl");if(f)w=f;else{let C=Ye(B.CLIENT_BASE_URL)||Et(B.CLIENT_BASE_URL);C&&(w=C)}let I,h=t.get("currency");if(h)I=h;else{let C=Ye(B.CURRENCY)||Et(B.CURRENCY);C&&(I=C)}let R,x=t.get("locale");if(x)R=x;else{let C=Ye(B.LOCALE)||Et(B.LOCALE);C&&(R=C)}return{forceReset:u,token:o,funnelSessionId:s,funnelId:a,draft:e,funnelTracking:r,funnelEnv:l,tagadaClientEnv:p,tagadaClientBaseUrl:w,currency:I,locale:R}}function yt(){var e;return(e=Le().draft)!=null?e:!1}function zn(t){if(typeof window!="undefined")if(t)on(B.DRAFT,"true");else try{localStorage.removeItem(B.DRAFT)}catch(e){}}function pi(t=!1){let e=null;typeof window!="undefined"&&(e=new URLSearchParams(window.location.search).get("token"));let n=Le(),r=n.forceReset||!1;if(!r&&!n.token)return ui(),!1;t&&(console.log("[SDK] Detected params:",n),console.log("[SDK] URL token (direct read):",e?e.substring(0,20)+"...":"none")),r&&(t&&console.log("[SDK] Force reset: Clearing all stored state"),$e(),rn(),typeof window!="undefined"&&window.localStorage&&Object.keys(localStorage).forEach(s=>{(s.startsWith("tagadapay_")||s.startsWith("tgd_"))&&(t&&console.log("[SDK] Clearing localStorage: ".concat(s)),localStorage.removeItem(s))}));let i=e||n.token;return i!=null?(t&&console.log("[SDK] Setting token from URL:",i.substring(0,20)+"..."),i===""||i==="null"?$e():(re(i),t&&console.log("[SDK] \u2705 Token set in localStorage immediately after clear"))):r&&(t&&console.log("[SDK] Force reset mode (no token in URL)"),$e()),ui(),n.funnelSessionId&&t&&console.log("[SDK] Using funnelSessionId from URL:",n.funnelSessionId),r}function ui(){if(typeof window=="undefined")return;let t=new URLSearchParams(window.location.search),e=t.get("draft");e!==null&&zn(e==="true");let n=t.get("funnelTracking");n!==null&&hs(n!=="false");let r=t.get("tagadaClientEnv");r&&(r==="production"||r==="development"||r==="local")&&Es(r);let i=t.get("tagadaClientBaseUrl");i&&ys(i)}function hs(t){if(typeof window=="undefined")return;let e=t?"true":"false";on(B.FUNNEL_TRACKING,e),$n(B.FUNNEL_TRACKING,e,86400)}function Es(t){typeof window!="undefined"&&(on(B.CLIENT_ENV,t),$n(B.CLIENT_ENV,t,86400))}function fi(){if(typeof window!="undefined")try{localStorage.removeItem(B.CLIENT_ENV),di(B.CLIENT_ENV)}catch(t){}}function ys(t){typeof window!="undefined"&&(on(B.CLIENT_BASE_URL,t),$n(B.CLIENT_BASE_URL,t,86400))}function gi(){if(typeof window!="undefined")try{localStorage.removeItem(B.CLIENT_BASE_URL),di(B.CLIENT_BASE_URL)}catch(t){}}function mi(){var e;return(e=Le().funnelTracking)!=null?e:!0}var B,sn=Te(()=>{"use strict";ze();ht();B={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",CURRENCY:"tgd_currency",LOCALE:"tgd_locale"}});function Yn(t){if(typeof window=="undefined"||typeof document=="undefined")return;let e=window.location.hostname,n=e.split("."),r=["",e,"."+e];for(let a=1;a<n.length;a++){let l=n.slice(a).join(".");r.push(l),r.push("."+l)}let i=window.location.pathname.split("/").filter(a=>a),o=["/"],s="";i.forEach(a=>{s+="/"+a,o.push(s)}),r.forEach(a=>{o.forEach(l=>{let c="".concat(t,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(l),u=a?"; domain=".concat(a):"";document.cookie=c+u,document.cookie=c+u+"; secure",document.cookie=c+u+"; SameSite=None; secure",document.cookie=c+u+"; SameSite=Lax",document.cookie=c+u+"; SameSite=Strict"})})}function ws(){if(typeof window=="undefined"||!confirm("\u{1F6AA} Leave Preview Mode?\n\nThis will clear ALL cookies and localStorage (including Shopify session, cart, and preview settings) and reload the page.\n\nAre you sure?"))return;let e=new URL(window.location.href);["draft","funnelEnv","funnelTracking","tagadaClientEnv","tagadaClientBaseUrl","forceReset","funnelId","funnelSessionId","token"].forEach(o=>e.searchParams.delete(o)),window.history.replaceState({},"",e.href);try{let o=Object.getOwnPropertyDescriptor(Document.prototype,"cookie")||Object.getOwnPropertyDescriptor(HTMLDocument.prototype,"cookie");o&&o.set&&Object.defineProperty(document,"cookie",{configurable:!0,enumerable:!0,get:function(){return o.get?o.get.call(this):""},set:function(s){if(typeof s=="string"){let a=s.toLowerCase();if(a.includes("tgd_draft")||a.includes("tgd-draft")||a.includes("tgd.draft")||a.includes("tgddraft")){if(a.includes("max-age=0")||a.includes("expires=thu, 01 jan 1970")){o.set&&o.set.call(this,s);return}console.warn("\u{1F6E1}\uFE0F [TagadaPay] BLOCKED: tgd_draft should never be a cookie");return}}o.set&&o.set.call(this,s)}})}catch(o){console.warn("[TagadaPay] Could not install cookie blocker:",o)}if(window.localStorage)try{localStorage.removeItem("tgd_draft"),localStorage.removeItem("tgd_funnel_tracking"),localStorage.removeItem("tgd_client_env"),localStorage.removeItem("tgd_client_base_url"),localStorage.removeItem("cms_token")}catch(o){console.warn("[TagadaPay] Failed to clear some localStorage keys:",o)}$e(),rn(),fi(),gi(),window.localStorage&&localStorage.clear(),window.sessionStorage&&sessionStorage.clear(),["tgd-funnel-session-id","tgd_draft","tgd_funnel_tracking","tgd_client_env","tgd_client_base_url","cms_token","tagadapay_session"].forEach(o=>Yn(o)),["tgd-draft","tgd_draft","tgd.draft","tgddraft"].forEach(o=>Yn(o)),document.cookie&&document.cookie.split(";").forEach(s=>{let a=s.split("=")[0].trim();if(!a)return;let l=window.location.hostname,c=l.split("."),u=["",l,"."+l];for(let f=1;f<c.length;f++){let I=c.slice(f).join(".");u.push(I),u.push("."+I)}let p=window.location.pathname.split("/").filter(f=>f),b=["/"],w="";p.forEach(f=>{w+="/"+f,b.push(w)}),u.forEach(f=>{b.forEach(I=>{let h="".concat(a,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(I),R=f?"; domain=".concat(f):"";document.cookie=h+R,document.cookie=h+R+"; secure",document.cookie=h+R+"; SameSite=None; secure",document.cookie=h+R+"; SameSite=Lax",document.cookie=h+R+"; SameSite=Strict",document.cookie=h+R+"; secure; SameSite=None",document.cookie=h+R+"; secure; SameSite=Lax",document.cookie=h+R+"; secure; SameSite=Strict"})})}),setTimeout(()=>{window.localStorage&&localStorage.length>0&&localStorage.clear(),Yn("tgd_draft"),typeof window.stop=="function"&&window.stop(),window.location.replace(e.href)},10)}function jn(){if(hi||typeof window=="undefined"||typeof document=="undefined")return;let t=Le(),e=yt(),n=!mi(),r=!!(t.tagadaClientEnv||t.tagadaClientBaseUrl);if(!e&&!n&&!r)return;let i=document.createElement("div");i.id="tgd-preview-indicator",i.style.cssText='\n position: fixed;\n bottom: 16px;\n right: 16px;\n z-index: 999999;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n ';let o=document.createElement("div");o.style.cssText="\n background: ".concat(e?"#ff9500":"#007aff",";\n color: white;\n padding: 8px 12px;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 600;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n "),o.innerHTML='\n <span style="font-size: 16px;">\u{1F50D}</span>\n <span>'.concat(e?"Preview Mode":"Dev Mode","</span>\n ");let s=document.createElement("div");s.style.cssText="\n position: absolute;\n bottom: calc(100% + 8px);\n right: 0;\n background: white;\n border: 1px solid #e5e5e5;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 12px;\n min-width: 250px;\n font-size: 12px;\n line-height: 1.5;\n display: none;\n ",s.style.paddingTop="20px";let a=document.createElement("div");a.style.cssText="\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n height: 8px;\n display: none;\n ";let l='<div style="margin-bottom: 8px; font-weight: 600; color: #1d1d1f;">Current Environment</div>';l+='<div style="display: flex; flex-direction: column; gap: 6px;">',e&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Draft Mode:</span>\n <span style="color: #ff9500; font-weight: 600;">ON</span>\n </div>\n '),n&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Tracking:</span>\n <span style="color: #ff3b30; font-weight: 600;">DISABLED</span>\n </div>\n '),t.funnelEnv&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Funnel Env:</span>\n <span style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 11px;">\n '.concat(t.funnelEnv,"\n </span>\n </div>\n ")),t.tagadaClientEnv&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>API Env:</span>\n <span style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 11px;">\n '.concat(t.tagadaClientEnv,"\n </span>\n </div>\n ")),t.tagadaClientBaseUrl&&(l+='\n <div style="color: #86868b;">\n <div style="margin-bottom: 4px;">API URL:</div>\n <div style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 10px; word-break: break-all; background: #f5f5f7; padding: 4px 6px; border-radius: 4px;">\n '.concat(t.tagadaClientBaseUrl,"\n </div>\n </div>\n ")),t.funnelId&&(l+='\n <div style="color: #86868b; margin-top: 4px; padding-top: 8px; border-top: 1px solid #e5e5e5;">\n <div style="margin-bottom: 4px;">Funnel ID:</div>\n <div style="color: #1d1d1f; font-family: monospace; font-size: 10px; word-break: break-all; background: #f5f5f7; padding: 4px 6px; border-radius: 4px;">\n '.concat(t.funnelId,"\n </div>\n </div>\n ")),l+="</div>",l+='\n <div style="margin-top: 12px; padding-top: 8px; border-top: 1px solid #e5e5e5; font-size: 11px; color: #86868b; text-align: center;">\n Add <code style="background: #f5f5f7; padding: 2px 4px; border-radius: 3px;">?forceReset=true</code> to reset\n </div>\n ',l+='\n <div style="margin-top: 12px; padding-top: 8px; border-top: 1px solid #e5e5e5;">\n <button id="tgd-leave-preview" style="\n background: #ff3b30;\n color: white;\n border: none;\n border-radius: 6px;\n padding: 10px 12px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: opacity 0.2s;\n width: 100%;\n ">\n \u{1F6AA} Leave Preview Mode\n </button>\n </div>\n ',s.innerHTML=l;let c=!1,u=()=>{c=!0,s.style.display="block",a.style.display="block"},p=()=>{c=!1,setTimeout(()=>{c||(s.style.display="none",a.style.display="none")},100)};o.addEventListener("mouseenter",u),o.addEventListener("mouseleave",p),a.addEventListener("mouseenter",u),a.addEventListener("mouseleave",p),s.addEventListener("mouseenter",u),s.addEventListener("mouseleave",p);let b=s.querySelector("#tgd-leave-preview");b&&(b.addEventListener("mouseenter",()=>{b.style.opacity="0.8"}),b.addEventListener("mouseleave",()=>{b.style.opacity="1"}),b.addEventListener("click",w=>{w.stopPropagation(),ws()})),i.appendChild(o),i.appendChild(a),i.appendChild(s),document.body.appendChild(i),As=i,hi=!0}var As,hi,Ei=Te(()=>{"use strict";sn();ze();ht();As=null,hi=!1});var bi={};Gn(bi,{FunnelClient:()=>wt,TrackingProvider:()=>Ai,getAssignedPaymentFlowId:()=>Rs,getAssignedPixels:()=>vs,getAssignedScripts:()=>Ps,getAssignedStaticResources:()=>Os,getAssignedStepConfig:()=>De,getLocalFunnelConfig:()=>wi,loadLocalFunnelConfig:()=>Cs});function Ss(){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 an(){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 At(){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}}}function yi(t){if(!t||typeof t!="string")return;let e=t.trim();if(!e)return;let n=[()=>JSON.parse(e),()=>JSON.parse(decodeURIComponent(e)),()=>JSON.parse(decodeURIComponent(decodeURIComponent(e)))];for(let r of n)try{let i=r();if(i&&typeof i=="object")return i}catch(i){}typeof console!="undefined"&&console.warn("[SDK] Failed to parse stepConfig:",e.substring(0,100))}function Is(){if(typeof window=="undefined")return!1;let t=window.location.hostname;return t==="localhost"||t==="127.0.0.1"||t.endsWith(".localhost")&&!t.includes(".cdn.")}async function Cs(){if(!Is())return null;if(ie!==void 0)return ie;if(qn)return await new Promise(t=>setTimeout(t,100)),ie!=null?ie:null;qn=!0;try{console.log("\u{1F6E0}\uFE0F [SDK] Loading local funnel config from /config/funnel.local.json...");let t=await fetch("/config/funnel.local.json");if(!t.ok)return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not found (this is fine in production)"),ie=null,null;let e=await t.json();return console.log("\u{1F6E0}\uFE0F [SDK] \u2705 Loaded local funnel config:",e),ie=e,e}catch(t){return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not available:",t),ie=null,null}finally{qn=!1}}function wi(){return ie!=null?ie:null}function Ts(t){return{payment:t.paymentFlowId?{paymentFlowId:t.paymentFlowId}:void 0,staticResources:t.staticResources,scripts:t.scripts,pixels:t.pixels}}function De(){if(typeof window=="undefined")return;let t=wi();if(t)return console.log("\u{1F6E0}\uFE0F [SDK] Using local funnel.local.json (overrides injected)"),Ts(t);let e=window.__TGD_STEP_CONFIG__;if(e){let n=yi(e);if(n)return n}if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-step-config"]'),r=n==null?void 0:n.getAttribute("content");if(r){let i=yi(r);if(i)return i}}}function Rs(){var e;let t=De();if((e=t==null?void 0:t.payment)!=null&&e.paymentFlowId)return t.payment.paymentFlowId;if(typeof window!="undefined"){if(window.__TGD_PAYMENT_FLOW_ID__)return window.__TGD_PAYMENT_FLOW_ID__;if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-payment-flow-id"]');return(n==null?void 0:n.getAttribute("content"))||void 0}}}function Os(){let t=De();return t==null?void 0:t.staticResources}function Ps(t){let e=De();if(!(e!=null&&e.scripts))return;let n=e.scripts.filter(r=>r.enabled);return t&&(n=n.filter(r=>r.position===t||!r.position&&t==="head-end")),n.length>0?n:void 0}function vs(){let t=De(),e=t==null?void 0:t.pixels;if(!e||typeof e!="object")return;let n={};for(let[r,i]of Object.entries(e))i&&(Array.isArray(i)?n[r]=i:typeof i=="object"&&(n[r]=[i]));return Object.keys(n).length>0?n:void 0}var Ai,ie,qn,wt,cn=Te(()=>{"use strict";en();Kn();Vn();sn();Ei();ht();Ai=(o=>(o.FACEBOOK="facebook",o.TIKTOK="tiktok",o.SNAPCHAT="snapchat",o.PINTEREST="pinterest",o.GTM="gtm",o))(Ai||{});qn=!1;wt=class{constructor(e){this.eventDispatcher=new We;this.isInitializing=!1;this.initializationAttempted=!1;this.config=e,this.resource=new tn(e.apiClient),this.state={context:null,isLoading:!1,isInitialized:!1,isNavigating:!1,error:null,sessionError:null}}setConfig(e){this.config=O(O({},this.config),e)}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}getDetectedSessionId(){var r;if((r=this.state.context)!=null&&r.sessionId)return this.state.context.sessionId;if(typeof window=="undefined")return null;let n=new URLSearchParams(window.location.search).get("funnelSessionId");return n||li()||null}resetInitialization(){this.initializationAttempted=!1,this.isInitializing=!1,this.updateState({context:null,isInitialized:!1})}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=this.getDetectedSessionId(),a=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||r,l=Ss(),c=an(),u=At(),p=Le(),b=this.config.funnelId||l||a,w=this.config.stepId||u,f=typeof window!="undefined"?new URLSearchParams(window.location.search):null,I=f==null?void 0:f.get("funnelEnv");this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-initializing...",{existingSessionId:i,effectiveFunnelId:b,funnelVariantId:c,funnelStepId:w,draft:p.draft,funnelTracking:p.funnelTracking,funnelEnv:I,tagadaClientEnv:p.tagadaClientEnv,tagadaClientBaseUrl:p.tagadaClientBaseUrl,source:{funnelId:this.config.funnelId?"config":l?"injected":a?"url/prop":"none",stepId:this.config.stepId?"config":u?"injected":"none"}});let h=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:b,existingSessionId:i||void 0,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:c,funnelStepId:w,draft:p.draft,funnelTracking:p.funnelTracking,funnelEnv:I||void 0,tagadaClientEnv:p.tagadaClientEnv,tagadaClientBaseUrl:p.tagadaClientBaseUrl,currency:p.currency,locale:p.locale});if(h.success&&h.context){let R=this.enrichContext(h.context);return this.handleSessionSuccess(R),jn(),R}else throw new Error(h.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=an(),s=At();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 l=this.enrichContext(a.context);return this.handleSessionSuccess(l),jn(),l}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,n){var r,i,o,s,a,l;if(n!=null&&n.waitForSession&&!((r=this.state.context)!=null&&r.sessionId)){this.config.debugMode&&console.log("\u23F3 [FunnelClient] Waiting for session before navigation...");let c=5e3,u=Date.now();for(;!((i=this.state.context)!=null&&i.sessionId)&&Date.now()-u<c;)await new Promise(p=>setTimeout(p,100));(o=this.state.context)!=null&&o.sessionId&&this.config.debugMode&&console.log("\u2705 [FunnelClient] Session ready, proceeding with navigation")}if(!((s=this.state.context)!=null&&s.sessionId))throw new Error("No active session");this.updateState({isNavigating:!0,isLoading:!0});try{let c=an(),u=At(),p=typeof window!="undefined"?window.location.href:void 0;!u&&this.config.stepId&&(u=this.config.stepId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using stepId from config (no injection):",u)),!c&&this.config.variantId&&(c=this.config.variantId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using variantId from config (no injection):",c)),this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Sending to backend:",{sessionId:this.state.context.sessionId,currentUrl:p,funnelStepId:u||"(not found)",funnelVariantId:c||"(not found)",hasInjectedStepId:!!At(),hasInjectedVariantId:!!an(),usedConfigFallback:!At()&&!!this.config.stepId,customerTags:(n==null?void 0:n.customerTags)||"(none)",deviceId:(n==null?void 0:n.deviceId)||"(none)"});let b=(n==null?void 0:n.fireAndForget)||!1,w=await this.resource.navigate({sessionId:this.state.context.sessionId,event:e,currentUrl:p,funnelStepId:u,funnelVariantId:c,fireAndForget:b,customerTags:n==null?void 0:n.customerTags,deviceId:n==null?void 0:n.deviceId});if(!w.success||!w.result)throw new Error(w.error||"Navigation failed");let f=w.result;if(f.queued)return this.updateState({isNavigating:!1,isLoading:!1}),f.sessionId&&f.sessionId!==((a=this.state.context)==null?void 0:a.sessionId)&&(this.config.debugMode&&console.log("\u{1F525} [FunnelClient] Session ID updated: ".concat((l=this.state.context)==null?void 0:l.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 I=(n==null?void 0:n.autoRedirect)!==void 0?n.autoRedirect:this.config.autoRedirect!==!1;return I||(this.config.debugMode&&console.log("\u{1F504} [FunnelClient] Refreshing session (no auto-redirect)"),await this.refreshSession()),this.updateState({isNavigating:!1,isLoading:!1}),I&&(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(c){let u=c instanceof Error?c:new Error(String(c));throw this.updateState({error:u,isNavigating:!1,isLoading:!1}),u}}async goToStep(e,n){return this.navigate({type:"direct_navigation",data:{targetStepId:e}},n)}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=O(O({},this.state),e),this.eventDispatcher.notify(this.state)}handleSessionSuccess(e){ci(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)||ft())!=="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(l=>i[l]===r[l])&&Object.keys(i).length===Object.keys(r).length?e:$(O({},e),{static:O(O({},r),i)})}}});var Qo=fs(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.PathError=ce.TokenData=void 0;ce.parse=zr;ce.compile=Cc;ce.match=Rc;ce.pathToRegexp=Xo;ce.stringify=vc;var Vr="/",Wr=t=>t,jo=new RegExp("^[$_\\p{ID_Start}]$","u"),$r=new RegExp("^[$\\u200c\\u200d\\p{ID_Continue}]$","u"),Sc={"{":"{","}":"}","(":"(",")":")","[":"[","]":"]","+":"+","?":"?","!":"!"};function Ic(t){return t.replace(/[{}()\[\]+?!:*\\]/g,"\\$&")}function Ee(t){return t.replace(/[.+*?^${}()[\]|/\\]/g,"\\$&")}var Mn=class{constructor(e,n){this.tokens=e,this.originalPath=n}};ce.TokenData=Mn;var Ge=class extends TypeError{constructor(e,n){let r=e;n&&(r+=": ".concat(n)),r+="; visit https://git.new/pathToRegexpError for info",super(r),this.originalPath=n}};ce.PathError=Ge;function zr(t,e={}){let{encodePath:n=Wr}=e,r=[...t],i=[],o=0,s=0;function a(){let c="";if(jo.test(r[o]))do c+=r[o++];while($r.test(r[o]));else if(r[o]==='"'){let u=o;for(;o++<r.length;){if(r[o]==='"'){o++,u=0;break}r[o]==="\\"&&o++,c+=r[o]}if(u)throw new Ge("Unterminated quote at index ".concat(u),t)}if(!c)throw new Ge("Missing parameter name at index ".concat(o),t);return c}for(;o<r.length;){let c=r[o],u=Sc[c];u?i.push({type:u,index:o++,value:c}):c==="\\"?i.push({type:"escape",index:o++,value:r[o++]}):c===":"?i.push({type:"param",index:o++,value:a()}):c==="*"?i.push({type:"wildcard",index:o++,value:a()}):i.push({type:"char",index:o++,value:c})}i.push({type:"end",index:o,value:""});function l(c){let u=[];for(;;){let p=i[s++];if(p.type===c)break;if(p.type==="char"||p.type==="escape"){let b=p.value,w=i[s];for(;w.type==="char"||w.type==="escape";)b+=w.value,w=i[++s];u.push({type:"text",value:n(b)});continue}if(p.type==="param"||p.type==="wildcard"){u.push({type:p.type,name:p.value});continue}if(p.type==="{"){u.push({type:"group",tokens:l("}")});continue}throw new Ge("Unexpected ".concat(p.type," at index ").concat(p.index,", expected ").concat(c),t)}return u}return new Mn(l("end"),t)}function Cc(t,e={}){let{encode:n=encodeURIComponent,delimiter:r=Vr}=e,i=typeof t=="object"?t:zr(t,e),o=qo(i.tokens,r,n);return function(a={}){let[l,...c]=o(a);if(c.length)throw new TypeError("Missing parameters: ".concat(c.join(", ")));return l}}function qo(t,e,n){let r=t.map(i=>Tc(i,e,n));return i=>{let o=[""];for(let s of r){let[a,...l]=s(i);o[0]+=a,o.push(...l)}return o}}function Tc(t,e,n){if(t.type==="text")return()=>[t.value];if(t.type==="group"){let i=qo(t.tokens,e,n);return o=>{let[s,...a]=i(o);return a.length?[""]:[s]}}let r=n||Wr;return t.type==="wildcard"&&n!==!1?i=>{let o=i[t.name];if(o==null)return["",t.name];if(!Array.isArray(o)||o.length===0)throw new TypeError('Expected "'.concat(t.name,'" to be a non-empty array'));return[o.map((s,a)=>{if(typeof s!="string")throw new TypeError('Expected "'.concat(t.name,"/").concat(a,'" to be a string'));return r(s)}).join(e)]}:i=>{let o=i[t.name];if(o==null)return["",t.name];if(typeof o!="string")throw new TypeError('Expected "'.concat(t.name,'" to be a string'));return[r(o)]}}function Rc(t,e={}){let{decode:n=decodeURIComponent,delimiter:r=Vr}=e,{regexp:i,keys:o}=Xo(t,e),s=o.map(a=>n===!1?Wr:a.type==="param"?n:l=>l.split(r).map(n));return function(l){let c=i.exec(l);if(!c)return!1;let u=c[0],p=Object.create(null);for(let b=1;b<c.length;b++){if(c[b]===void 0)continue;let w=o[b-1],f=s[b-1];p[w.name]=f(c[b])}return{path:u,params:p}}}function Xo(t,e={}){let{delimiter:n=Vr,end:r=!0,sensitive:i=!1,trailing:o=!0}=e,s=[],a=i?"":"i",l=[];for(let p of Jo(t,[])){let b=typeof p=="object"?p:zr(p,e);for(let w of Bn(b.tokens,0,[]))l.push(Oc(w,n,s,b.originalPath))}let c="^(?:".concat(l.join("|"),")");return o&&(c+="(?:".concat(Ee(n),"$)?")),c+=r?"$":"(?=".concat(Ee(n),"|$)"),{regexp:new RegExp(c,a),keys:s}}function Jo(t,e){if(Array.isArray(t))for(let n of t)Jo(n,e);else e.push(t);return e}function*Bn(t,e,n){if(e===t.length)return yield n;let r=t[e];if(r.type==="group")for(let i of Bn(r.tokens,0,n.slice()))yield*Ve(Bn(t,e+1,i));else n.push(r);yield*Ve(Bn(t,e+1,n))}function Oc(t,e,n,r){let i="",o="",s=!0;for(let a of t){if(a.type==="text"){i+=Ee(a.value),o+=a.value,s||(s=a.value.includes(e));continue}if(a.type==="param"||a.type==="wildcard"){if(!s&&!o)throw new Ge('Missing text before "'.concat(a.name,'" ').concat(a.type),r);a.type==="param"?i+="(".concat(Pc(e,s?"":o),"+)"):i+="([\\s\\S]+)",n.push(a),o="",s=!1;continue}}return i}function Pc(t,e){return e.length<2?t.length<2?"[^".concat(Ee(t+e),"]"):"(?:(?!".concat(Ee(t),")[^").concat(Ee(e),"])"):t.length<2?"(?:(?!".concat(Ee(e),")[^").concat(Ee(t),"])"):"(?:(?!".concat(Ee(e),"|").concat(Ee(t),")[\\s\\S])")}function Zo(t){let e="",n=0;function r(i){return xc(i)&&Nc(t[n])?i:JSON.stringify(i)}for(;n<t.length;){let i=t[n++];if(i.type==="text"){e+=Ic(i.value);continue}if(i.type==="group"){e+="{".concat(Zo(i.tokens),"}");continue}if(i.type==="param"){e+=":".concat(r(i.name));continue}if(i.type==="wildcard"){e+="*".concat(r(i.name));continue}throw new TypeError("Unknown token type: ".concat(i.type))}return e}function vc(t){return Zo(t.tokens)}function xc(t){let[e,...n]=t;return jo.test(e)&&n.every(r=>$r.test(r))}function Nc(t){return t&&t.type==="text"?!$r.test(t.value[0]):!0}});var Gc={};Gn(Gc,{TRACKER_VERSION:()=>qr,TagadaExternalTracker:()=>Zt,TagadaTracker:()=>jr});en();cn();function bt(t,e){return function(){return t.apply(e,arguments)}}var{toString:xs}=Object.prototype,{getPrototypeOf:Jn}=Object,{iterator:un,toStringTag:Ii}=Symbol,dn=(t=>e=>{let n=xs.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),oe=t=>(t=t.toLowerCase(),e=>dn(e)===t),pn=t=>e=>typeof e===t,{isArray:qe}=Array,je=pn("undefined");function St(t){return t!==null&&!je(t)&&t.constructor!==null&&!je(t.constructor)&&J(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}var Ci=oe("ArrayBuffer");function Ns(t){let e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&Ci(t.buffer),e}var _s=pn("string"),J=pn("function"),Ti=pn("number"),It=t=>t!==null&&typeof t=="object",ks=t=>t===!0||t===!1,ln=t=>{if(dn(t)!=="object")return!1;let e=Jn(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Ii in t)&&!(un in t)},Ls=t=>{if(!It(t)||St(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(e){return!1}},Ds=oe("Date"),Bs=oe("File"),Ms=oe("Blob"),Us=oe("FileList"),Fs=t=>It(t)&&J(t.pipe),Gs=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||J(t.append)&&((e=dn(t))==="formdata"||e==="object"&&J(t.toString)&&t.toString()==="[object FormData]"))},Hs=oe("URLSearchParams"),[Ks,Vs,Ws,$s]=["ReadableStream","Request","Response","Headers"].map(oe),zs=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ct(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t=="undefined")return;let r,i;if(typeof t!="object"&&(t=[t]),qe(t))for(r=0,i=t.length;r<i;r++)e.call(null,t[r],r,t);else{if(St(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 Ri(t,e){if(St(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 Be=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,Oi=t=>!je(t)&&t!==Be;function Xn(){let{caseless:t,skipUndefined:e}=Oi(this)&&this||{},n={},r=(i,o)=>{let s=t&&Ri(n,o)||o;ln(n[s])&&ln(i)?n[s]=Xn(n[s],i):ln(i)?n[s]=Xn({},i):qe(i)?n[s]=i.slice():(!e||!je(i))&&(n[s]=i)};for(let i=0,o=arguments.length;i<o;i++)arguments[i]&&Ct(arguments[i],r);return n}var Ys=(t,e,n,{allOwnKeys:r}={})=>(Ct(e,(i,o)=>{n&&J(i)?t[o]=bt(i,n):t[o]=i},{allOwnKeys:r}),t),js=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),qs=(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)},Xs=(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&&Jn(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Js=(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},Zs=t=>{if(!t)return null;if(qe(t))return t;let e=t.length;if(!Ti(e))return null;let n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},Qs=(t=>e=>t&&e instanceof t)(typeof Uint8Array!="undefined"&&Jn(Uint8Array)),ea=(t,e)=>{let r=(t&&t[un]).call(t),i;for(;(i=r.next())&&!i.done;){let o=i.value;e.call(t,o[0],o[1])}},ta=(t,e)=>{let n,r=[];for(;(n=t.exec(e))!==null;)r.push(n);return r},na=oe("HTMLFormElement"),ra=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),Si=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),ia=oe("RegExp"),Pi=(t,e)=>{let n=Object.getOwnPropertyDescriptors(t),r={};Ct(n,(i,o)=>{let s;(s=e(i,o,t))!==!1&&(r[o]=s||i)}),Object.defineProperties(t,r)},oa=t=>{Pi(t,(e,n)=>{if(J(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;let r=t[n];if(J(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+"'")})}})},sa=(t,e)=>{let n={},r=i=>{i.forEach(o=>{n[o]=!0})};return qe(t)?r(t):r(String(t).split(e)),n},aa=()=>{},ca=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function la(t){return!!(t&&J(t.append)&&t[Ii]==="FormData"&&t[un])}var ua=t=>{let e=new Array(10),n=(r,i)=>{if(It(r)){if(e.indexOf(r)>=0)return;if(St(r))return r;if(!("toJSON"in r)){e[i]=r;let o=qe(r)?[]:{};return Ct(r,(s,a)=>{let l=n(s,i+1);!je(l)&&(o[a]=l)}),e[i]=void 0,o}}return r};return n(t,0)},da=oe("AsyncFunction"),pa=t=>t&&(It(t)||J(t))&&J(t.then)&&J(t.catch),vi=((t,e)=>t?setImmediate:e?((n,r)=>(Be.addEventListener("message",({source:i,data:o})=>{i===Be&&o===n&&r.length&&r.shift()()},!1),i=>{r.push(i),Be.postMessage(n,"*")}))("axios@".concat(Math.random()),[]):n=>setTimeout(n))(typeof setImmediate=="function",J(Be.postMessage)),fa=typeof queueMicrotask!="undefined"?queueMicrotask.bind(Be):typeof process!="undefined"&&process.nextTick||vi,ga=t=>t!=null&&J(t[un]),d={isArray:qe,isArrayBuffer:Ci,isBuffer:St,isFormData:Gs,isArrayBufferView:Ns,isString:_s,isNumber:Ti,isBoolean:ks,isObject:It,isPlainObject:ln,isEmptyObject:Ls,isReadableStream:Ks,isRequest:Vs,isResponse:Ws,isHeaders:$s,isUndefined:je,isDate:Ds,isFile:Bs,isBlob:Ms,isRegExp:ia,isFunction:J,isStream:Fs,isURLSearchParams:Hs,isTypedArray:Qs,isFileList:Us,forEach:Ct,merge:Xn,extend:Ys,trim:zs,stripBOM:js,inherits:qs,toFlatObject:Xs,kindOf:dn,kindOfTest:oe,endsWith:Js,toArray:Zs,forEachEntry:ea,matchAll:ta,isHTMLForm:na,hasOwnProperty:Si,hasOwnProp:Si,reduceDescriptors:Pi,freezeMethods:oa,toObjectSet:sa,toCamelCase:ra,noop:aa,toFiniteNumber:ca,findKey:Ri,global:Be,isContextDefined:Oi,isSpecCompliantForm:la,toJSONObject:ua,isAsyncFn:da,isThenable:pa,setImmediate:vi,asap:fa,isIterable:ga};function Xe(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)}d.inherits(Xe,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:d.toJSONObject(this.config),code:this.code,status:this.status}}});var xi=Xe.prototype,Ni={};["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=>{Ni[t]={value:t}});Object.defineProperties(Xe,Ni);Object.defineProperty(xi,"isAxiosError",{value:!0});Xe.from=(t,e,n,r,i,o)=>{let s=Object.create(xi);d.toFlatObject(t,s,function(u){return u!==Error.prototype},c=>c!=="isAxiosError");let a=t&&t.message?t.message:"Error",l=e==null&&t?t.code:e;return Xe.call(s,a,l,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 T=Xe;var fn=null;function Zn(t){return d.isPlainObject(t)||d.isArray(t)}function ki(t){return d.endsWith(t,"[]")?t.slice(0,-2):t}function _i(t,e,n){return t?t.concat(e).map(function(i,o){return i=ki(i),!n&&o?"["+i+"]":i}).join(n?".":""):e}function ma(t){return d.isArray(t)&&!t.some(Zn)}var ha=d.toFlatObject(d,{},null,function(e){return/^is[A-Z]/.test(e)});function Ea(t,e,n){if(!d.isObject(t))throw new TypeError("target must be an object");e=e||new(fn||FormData),n=d.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(I,h){return!d.isUndefined(h[I])});let r=n.metaTokens,i=n.visitor||u,o=n.dots,s=n.indexes,l=(n.Blob||typeof Blob!="undefined"&&Blob)&&d.isSpecCompliantForm(e);if(!d.isFunction(i))throw new TypeError("visitor must be a function");function c(f){if(f===null)return"";if(d.isDate(f))return f.toISOString();if(d.isBoolean(f))return f.toString();if(!l&&d.isBlob(f))throw new T("Blob is not supported. Use a Buffer instead.");return d.isArrayBuffer(f)||d.isTypedArray(f)?l&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function u(f,I,h){let R=f;if(f&&!h&&typeof f=="object"){if(d.endsWith(I,"{}"))I=r?I:I.slice(0,-2),f=JSON.stringify(f);else if(d.isArray(f)&&ma(f)||(d.isFileList(f)||d.endsWith(I,"[]"))&&(R=d.toArray(f)))return I=ki(I),R.forEach(function(C,N){!(d.isUndefined(C)||C===null)&&e.append(s===!0?_i([I],N,o):s===null?I:I+"[]",c(C))}),!1}return Zn(f)?!0:(e.append(_i(h,I,o),c(f)),!1)}let p=[],b=Object.assign(ha,{defaultVisitor:u,convertValue:c,isVisitable:Zn});function w(f,I){if(!d.isUndefined(f)){if(p.indexOf(f)!==-1)throw Error("Circular reference detected in "+I.join("."));p.push(f),d.forEach(f,function(R,x){(!(d.isUndefined(R)||R===null)&&i.call(e,R,d.isString(x)?x.trim():x,I,b))===!0&&w(R,I?I.concat(x):[x])}),p.pop()}}if(!d.isObject(t))throw new TypeError("data must be an object");return w(t),e}var Re=Ea;function Li(t){let e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(r){return e[r]})}function Di(t,e){this._pairs=[],t&&Re(t,this,e)}var Bi=Di.prototype;Bi.append=function(e,n){this._pairs.push([e,n])};Bi.toString=function(e){let n=e?function(r){return e.call(this,r,Li)}:Li;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};var gn=Di;function ya(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Tt(t,e,n){if(!e)return t;let r=n&&n.encode||ya;d.isFunction(n)&&(n={serialize:n});let i=n&&n.serialize,o;if(i?o=i(e,n):o=d.isURLSearchParams(e)?e.toString():new gn(e,n).toString(r),o){let s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+o}return t}var Qn=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){d.forEach(this.handlers,function(r){r!==null&&e(r)})}},er=Qn;var mn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var Mi=typeof URLSearchParams!="undefined"?URLSearchParams:gn;var Ui=typeof FormData!="undefined"?FormData:null;var Fi=typeof Blob!="undefined"?Blob:null;var Gi={isBrowser:!0,classes:{URLSearchParams:Mi,FormData:Ui,Blob:Fi},protocols:["http","https","file","blob","url","data"]};var rr={};Gn(rr,{hasBrowserEnv:()=>nr,hasStandardBrowserEnv:()=>Aa,hasStandardBrowserWebWorkerEnv:()=>wa,navigator:()=>tr,origin:()=>ba});var nr=typeof window!="undefined"&&typeof document!="undefined",tr=typeof navigator=="object"&&navigator||void 0,Aa=nr&&(!tr||["ReactNative","NativeScript","NS"].indexOf(tr.product)<0),wa=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ba=nr&&window.location.href||"http://localhost";var M=O(O({},rr),Gi);function ir(t,e){return Re(t,new M.classes.URLSearchParams,O({visitor:function(n,r,i,o){return M.isNode&&d.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},e))}function Sa(t){return d.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function Ia(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 Ca(t){function e(n,r,i,o){let s=n[o++];if(s==="__proto__")return!0;let a=Number.isFinite(+s),l=o>=n.length;return s=!s&&d.isArray(i)?i.length:s,l?(d.hasOwnProp(i,s)?i[s]=[i[s],r]:i[s]=r,!a):((!i[s]||!d.isObject(i[s]))&&(i[s]=[]),e(n,r,i[s],o)&&d.isArray(i[s])&&(i[s]=Ia(i[s])),!a)}if(d.isFormData(t)&&d.isFunction(t.entries)){let n={};return d.forEachEntry(t,(r,i)=>{e(Sa(r),i,n,0)}),n}return null}var hn=Ca;function Ta(t,e,n){if(d.isString(t))try{return(e||JSON.parse)(t),d.trim(t)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(t)}var or={transitional:mn,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){let r=n.getContentType()||"",i=r.indexOf("application/json")>-1,o=d.isObject(e);if(o&&d.isHTMLForm(e)&&(e=new FormData(e)),d.isFormData(e))return i?JSON.stringify(hn(e)):e;if(d.isArrayBuffer(e)||d.isBuffer(e)||d.isStream(e)||d.isFile(e)||d.isBlob(e)||d.isReadableStream(e))return e;if(d.isArrayBufferView(e))return e.buffer;if(d.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 ir(e,this.formSerializer).toString();if((a=d.isFileList(e))||r.indexOf("multipart/form-data")>-1){let l=this.env&&this.env.FormData;return Re(a?{"files[]":e}:e,l&&new l,this.formSerializer)}}return o||i?(n.setContentType("application/json",!1),Ta(e)):e}],transformResponse:[function(e){let n=this.transitional||or.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(d.isResponse(e)||d.isReadableStream(e))return e;if(e&&d.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"?T.from(a,T.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:M.classes.FormData,Blob:M.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};d.forEach(["delete","get","head","post","put","patch"],t=>{or.headers[t]={}});var Je=or;var Ra=d.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"]),Hi=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]&&Ra[n])&&(n==="set-cookie"?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)}),e};var Ki=Symbol("internals");function Rt(t){return t&&String(t).trim().toLowerCase()}function En(t){return t===!1||t==null?t:d.isArray(t)?t.map(En):String(t)}function Oa(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 Pa=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function sr(t,e,n,r,i){if(d.isFunction(r))return r.call(this,e,n);if(i&&(e=n),!!d.isString(e)){if(d.isString(r))return e.indexOf(r)!==-1;if(d.isRegExp(r))return r.test(e)}}function va(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,r)=>n.toUpperCase()+r)}function xa(t,e){let n=d.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 Ze=class{constructor(e){e&&this.set(e)}set(e,n,r){let i=this;function o(a,l,c){let u=Rt(l);if(!u)throw new Error("header name must be a non-empty string");let p=d.findKey(i,u);(!p||i[p]===void 0||c===!0||c===void 0&&i[p]!==!1)&&(i[p||l]=En(a))}let s=(a,l)=>d.forEach(a,(c,u)=>o(c,u,l));if(d.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(d.isString(e)&&(e=e.trim())&&!Pa(e))s(Hi(e),n);else if(d.isObject(e)&&d.isIterable(e)){let a={},l,c;for(let u of e){if(!d.isArray(u))throw TypeError("Object iterator must return a key-value pair");a[c=u[0]]=(l=a[c])?d.isArray(l)?[...l,u[1]]:[l,u[1]]:u[1]}s(a,n)}else e!=null&&o(n,e,r);return this}get(e,n){if(e=Rt(e),e){let r=d.findKey(this,e);if(r){let i=this[r];if(!n)return i;if(n===!0)return Oa(i);if(d.isFunction(n))return n.call(this,i,r);if(d.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=Rt(e),e){let r=d.findKey(this,e);return!!(r&&this[r]!==void 0&&(!n||sr(this,this[r],r,n)))}return!1}delete(e,n){let r=this,i=!1;function o(s){if(s=Rt(s),s){let a=d.findKey(r,s);a&&(!n||sr(r,r[a],a,n))&&(delete r[a],i=!0)}}return d.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||sr(this,this[o],o,e,!0))&&(delete this[o],i=!0)}return i}normalize(e){let n=this,r={};return d.forEach(this,(i,o)=>{let s=d.findKey(r,o);if(s){n[s]=En(i),delete n[o];return}let a=e?va(o):String(o).trim();a!==o&&delete n[o],n[a]=En(i),r[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let n=Object.create(null);return d.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=e&&d.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[Ki]=this[Ki]={accessors:{}}).accessors,i=this.prototype;function o(s){let a=Rt(s);r[a]||(xa(i,s),r[a]=!0)}return d.isArray(e)?e.forEach(o):o(e),this}};Ze.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);d.reduceDescriptors(Ze.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(r){this[n]=r}}});d.freezeMethods(Ze);var K=Ze;function Ot(t,e){let n=this||Je,r=e||n,i=K.from(r.headers),o=r.data;return d.forEach(t,function(a){o=a.call(n,o,i.normalize(),e?e.status:void 0)}),i.normalize(),o}function Pt(t){return!!(t&&t.__CANCEL__)}function Vi(t,e,n){T.call(this,t==null?"canceled":t,T.ERR_CANCELED,e,n),this.name="CanceledError"}d.inherits(Vi,T,{__CANCEL__:!0});var de=Vi;function vt(t,e,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?t(n):e(new T("Request failed with status code "+n.status,[T.ERR_BAD_REQUEST,T.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function ar(t){let e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function Na(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(l){let c=Date.now(),u=r[o];s||(s=c),n[i]=l,r[i]=c;let p=o,b=0;for(;p!==i;)b+=n[p++],p=p%t;if(i=(i+1)%t,i===o&&(o=(o+1)%t),c-s<e)return;let w=u&&c-u;return w?Math.round(b*1e3/w):void 0}}var Wi=Na;function _a(t,e){let n=0,r=1e3/e,i,o,s=(c,u=Date.now())=>{n=u,i=null,o&&(clearTimeout(o),o=null),t(...c)};return[(...c)=>{let u=Date.now(),p=u-n;p>=r?s(c,u):(i=c,o||(o=setTimeout(()=>{o=null,s(i)},r-p)))},()=>i&&s(i)]}var $i=_a;var Qe=(t,e,n=3)=>{let r=0,i=Wi(50,250);return $i(o=>{let s=o.loaded,a=o.lengthComputable?o.total:void 0,l=s-r,c=i(l),u=s<=a;r=s;let p={loaded:s,total:a,progress:a?s/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&u?(a-s)/c:void 0,event:o,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(p)},n)},cr=(t,e)=>{let n=t!=null;return[r=>e[0]({lengthComputable:n,total:t,loaded:r}),e[1]]},lr=t=>(...e)=>d.asap(()=>t(...e));var zi=M.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,M.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(M.origin),M.navigator&&/(msie|trident)/i.test(M.navigator.userAgent)):()=>!0;var Yi=M.hasStandardBrowserEnv?{write(t,e,n,r,i,o,s){if(typeof document=="undefined")return;let a=["".concat(t,"=").concat(encodeURIComponent(e))];d.isNumber(n)&&a.push("expires=".concat(new Date(n).toUTCString())),d.isString(r)&&a.push("path=".concat(r)),d.isString(i)&&a.push("domain=".concat(i)),o===!0&&a.push("secure"),d.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 ur(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function dr(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function xt(t,e,n){let r=!ur(e);return t&&(r||n==!1)?dr(t,e):e}var ji=t=>t instanceof K?O({},t):t;function se(t,e){e=e||{};let n={};function r(c,u,p,b){return d.isPlainObject(c)&&d.isPlainObject(u)?d.merge.call({caseless:b},c,u):d.isPlainObject(u)?d.merge({},u):d.isArray(u)?u.slice():u}function i(c,u,p,b){if(d.isUndefined(u)){if(!d.isUndefined(c))return r(void 0,c,p,b)}else return r(c,u,p,b)}function o(c,u){if(!d.isUndefined(u))return r(void 0,u)}function s(c,u){if(d.isUndefined(u)){if(!d.isUndefined(c))return r(void 0,c)}else return r(void 0,u)}function a(c,u,p){if(p in e)return r(c,u);if(p in t)return r(void 0,c)}let l={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:(c,u,p)=>i(ji(c),ji(u),p,!0)};return d.forEach(Object.keys(O(O({},t),e)),function(u){let p=l[u]||i,b=p(t[u],e[u],u);d.isUndefined(b)&&p!==a||(n[u]=b)}),n}var yn=t=>{let e=se({},t),{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:o,headers:s,auth:a}=e;if(e.headers=s=K.from(s),e.url=Tt(xt(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),d.isFormData(n)){if(M.hasStandardBrowserEnv||M.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(d.isFunction(n.getHeaders)){let l=n.getHeaders(),c=["content-type","content-length"];Object.entries(l).forEach(([u,p])=>{c.includes(u.toLowerCase())&&s.set(u,p)})}}if(M.hasStandardBrowserEnv&&(r&&d.isFunction(r)&&(r=r(e)),r||r!==!1&&zi(e.url))){let l=i&&o&&Yi.read(o);l&&s.set(i,l)}return e};var ka=typeof XMLHttpRequest!="undefined",qi=ka&&function(t){return new Promise(function(n,r){let i=yn(t),o=i.data,s=K.from(i.headers).normalize(),{responseType:a,onUploadProgress:l,onDownloadProgress:c}=i,u,p,b,w,f;function I(){w&&w(),f&&f(),i.cancelToken&&i.cancelToken.unsubscribe(u),i.signal&&i.signal.removeEventListener("abort",u)}let h=new XMLHttpRequest;h.open(i.method.toUpperCase(),i.url,!0),h.timeout=i.timeout;function R(){if(!h)return;let C=K.from("getAllResponseHeaders"in h&&h.getAllResponseHeaders()),V={data:!a||a==="text"||a==="json"?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:C,config:t,request:h};vt(function(W){n(W),I()},function(W){r(W),I()},V),h=null}"onloadend"in h?h.onloadend=R:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.indexOf("file:")===0)||setTimeout(R)},h.onabort=function(){h&&(r(new T("Request aborted",T.ECONNABORTED,t,h)),h=null)},h.onerror=function(N){let V=N&&N.message?N.message:"Network Error",L=new T(V,T.ERR_NETWORK,t,h);L.event=N||null,r(L),h=null},h.ontimeout=function(){let N=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded",V=i.transitional||mn;i.timeoutErrorMessage&&(N=i.timeoutErrorMessage),r(new T(N,V.clarifyTimeoutError?T.ETIMEDOUT:T.ECONNABORTED,t,h)),h=null},o===void 0&&s.setContentType(null),"setRequestHeader"in h&&d.forEach(s.toJSON(),function(N,V){h.setRequestHeader(V,N)}),d.isUndefined(i.withCredentials)||(h.withCredentials=!!i.withCredentials),a&&a!=="json"&&(h.responseType=i.responseType),c&&([b,f]=Qe(c,!0),h.addEventListener("progress",b)),l&&h.upload&&([p,w]=Qe(l),h.upload.addEventListener("progress",p),h.upload.addEventListener("loadend",w)),(i.cancelToken||i.signal)&&(u=C=>{h&&(r(!C||C.type?new de(null,t,h):C),h.abort(),h=null)},i.cancelToken&&i.cancelToken.subscribe(u),i.signal&&(i.signal.aborted?u():i.signal.addEventListener("abort",u)));let x=ar(i.url);if(x&&M.protocols.indexOf(x)===-1){r(new T("Unsupported protocol "+x+":",T.ERR_BAD_REQUEST,t));return}h.send(o||null)})};var La=(t,e)=>{let{length:n}=t=t?t.filter(Boolean):[];if(e||n){let r=new AbortController,i,o=function(c){if(!i){i=!0,a();let u=c instanceof Error?c:this.reason;r.abort(u instanceof T?u:new de(u instanceof Error?u.message:u))}},s=e&&setTimeout(()=>{s=null,o(new T("timeout ".concat(e," of ms exceeded"),T.ETIMEDOUT))},e),a=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(c=>{c.unsubscribe?c.unsubscribe(o):c.removeEventListener("abort",o)}),t=null)};t.forEach(c=>c.addEventListener("abort",o));let{signal:l}=r;return l.unsubscribe=()=>d.asap(a),l}},Xi=La;var Da=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},Ba=function(t,e){return Hn(this,null,function*(){try{for(var n=ii(Ma(t)),r,i,o;r=!(i=yield new ke(n.next())).done;r=!1){let s=i.value;yield*Ve(Da(s,e))}}catch(i){o=[i]}finally{try{r&&(i=n.return)&&(yield new ke(i.call(n)))}finally{if(o)throw o[0]}}})},Ma=function(t){return Hn(this,null,function*(){if(t[Symbol.asyncIterator]){yield*Ve(t);return}let e=t.getReader();try{for(;;){let{done:n,value:r}=yield new ke(e.read());if(n)break;yield r}}finally{yield new ke(e.cancel())}})},pr=(t,e,n,r)=>{let i=Ba(t,e),o=0,s,a=l=>{s||(s=!0,r&&r(l))};return new ReadableStream({async pull(l){try{let{done:c,value:u}=await i.next();if(c){a(),l.close();return}let p=u.byteLength;if(n){let b=o+=p;n(b)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),i.return()}},{highWaterMark:2})};var Ji=64*1024,{isFunction:An}=d,Ua=(({Request:t,Response:e})=>({Request:t,Response:e}))(d.global),{ReadableStream:Zi,TextEncoder:Qi}=d.global,eo=(t,...e)=>{try{return!!t(...e)}catch(n){return!1}},Fa=t=>{t=d.merge.call({skipUndefined:!0},Ua,t);let{fetch:e,Request:n,Response:r}=t,i=e?An(e):typeof fetch=="function",o=An(n),s=An(r);if(!i)return!1;let a=i&&An(Zi),l=i&&(typeof Qi=="function"?(f=>I=>f.encode(I))(new Qi):async f=>new Uint8Array(await new n(f).arrayBuffer())),c=o&&a&&eo(()=>{let f=!1,I=new n(M.origin,{body:new Zi,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!I}),u=s&&a&&eo(()=>d.isReadableStream(new r("").body)),p={stream:u&&(f=>f.body)};i&&["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!p[f]&&(p[f]=(I,h)=>{let R=I&&I[f];if(R)return R.call(I);throw new T("Response type '".concat(f,"' is not supported"),T.ERR_NOT_SUPPORT,h)})});let b=async f=>{if(f==null)return 0;if(d.isBlob(f))return f.size;if(d.isSpecCompliantForm(f))return(await new n(M.origin,{method:"POST",body:f}).arrayBuffer()).byteLength;if(d.isArrayBufferView(f)||d.isArrayBuffer(f))return f.byteLength;if(d.isURLSearchParams(f)&&(f=f+""),d.isString(f))return(await l(f)).byteLength},w=async(f,I)=>{let h=d.toFiniteNumber(f.getContentLength());return h==null?b(I):h};return async f=>{let{url:I,method:h,data:R,signal:x,cancelToken:C,timeout:N,onDownloadProgress:V,onUploadProgress:L,responseType:W,headers:le,withCredentials:ut="same-origin",fetchOptions:ne}=yn(f),Se=e||fetch;W=W?(W+"").toLowerCase():"text";let j=Xi([x,C&&C.toAbortSignal()],N),dt=null,_e=j&&j.unsubscribe&&(()=>{j.unsubscribe()}),Xr;try{if(L&&c&&h!=="get"&&h!=="head"&&(Xr=await w(le,R))!==0){let Ce=new n(I,{method:"POST",body:R,duplex:"half"}),He;if(d.isFormData(R)&&(He=Ce.headers.get("content-type"))&&le.setContentType(He),Ce.body){let[Fn,Qt]=cr(Xr,Qe(lr(L)));R=pr(Ce.body,Ji,Fn,Qt)}}d.isString(ut)||(ut=ut?"include":"omit");let ue=o&&"credentials"in n.prototype,Jr=$(O({},ne),{signal:j,method:h.toUpperCase(),headers:le.normalize().toJSON(),body:R,duplex:"half",credentials:ue?ut:void 0});dt=o&&new n(I,Jr);let Ie=await(o?Se(dt,ne):Se(I,Jr)),Zr=u&&(W==="stream"||W==="response");if(u&&(V||Zr&&_e)){let Ce={};["status","statusText","headers"].forEach(Qr=>{Ce[Qr]=Ie[Qr]});let He=d.toFiniteNumber(Ie.headers.get("content-length")),[Fn,Qt]=V&&cr(He,Qe(lr(V),!0))||[];Ie=new r(pr(Ie.body,Ji,Fn,()=>{Qt&&Qt(),_e&&_e()}),Ce)}W=W||"text";let is=await p[d.findKey(p,W)||"text"](Ie,f);return!Zr&&_e&&_e(),await new Promise((Ce,He)=>{vt(Ce,He,{data:is,headers:K.from(Ie.headers),status:Ie.status,statusText:Ie.statusText,config:f,request:dt})})}catch(ue){throw _e&&_e(),ue&&ue.name==="TypeError"&&/Load failed|fetch/i.test(ue.message)?Object.assign(new T("Network Error",T.ERR_NETWORK,f,dt),{cause:ue.cause||ue}):T.from(ue,ue&&ue.code,f,dt)}}},Ga=new Map,fr=t=>{let e=t&&t.env||{},{fetch:n,Request:r,Response:i}=e,o=[r,i,n],s=o.length,a=s,l,c,u=Ga;for(;a--;)l=o[a],c=u.get(l),c===void 0&&u.set(l,c=a?new Map:Fa(e)),u=c;return c},wd=fr();var gr={http:fn,xhr:qi,fetch:{get:fr}};d.forEach(gr,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}});var to=t=>"- ".concat(t),Ka=t=>d.isFunction(t)||t===null||t===!1;function Va(t,e){t=d.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,!Ka(r)&&(i=gr[(a=String(r)).toLowerCase()],i===void 0))throw new T("Unknown adapter '".concat(a,"'"));if(i&&(d.isFunction(i)||(i=i.get(e))))break;o[a||"#"+s]=i}if(!i){let s=Object.entries(o).map(([l,c])=>"adapter ".concat(l," ")+(c===!1?"is not supported by the environment":"is not available in the build")),a=n?s.length>1?"since :\n"+s.map(to).join("\n"):" "+to(s[0]):"as no adapter specified";throw new T("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return i}var wn={getAdapter:Va,adapters:gr};function mr(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new de(null,t)}function bn(t){return mr(t),t.headers=K.from(t.headers),t.data=Ot.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),wn.getAdapter(t.adapter||Je.adapter,t)(t).then(function(r){return mr(t),r.data=Ot.call(t,t.transformResponse,r),r.headers=K.from(r.headers),r},function(r){return Pt(r)||(mr(t),r&&r.response&&(r.response.data=Ot.call(t,t.transformResponse,r.response),r.response.headers=K.from(r.response.headers))),Promise.reject(r)})}var Sn="1.13.2";var In={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{In[t]=function(r){return typeof r===t||"a"+(e<1?"n ":" ")+t}});var no={};In.transitional=function(e,n,r){function i(o,s){return"[Axios v"+Sn+"] Transitional option '"+o+"'"+s+(r?". "+r:"")}return(o,s,a)=>{if(e===!1)throw new T(i(s," has been removed"+(n?" in "+n:"")),T.ERR_DEPRECATED);return n&&!no[s]&&(no[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}};In.spelling=function(e){return(n,r)=>(console.warn("".concat(r," is likely a misspelling of ").concat(e)),!0)};function Wa(t,e,n){if(typeof t!="object")throw new T("options must be an object",T.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],l=a===void 0||s(a,o,t);if(l!==!0)throw new T("option "+o+" must be "+l,T.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new T("Unknown option "+o,T.ERR_BAD_OPTION)}}var Nt={assertOptions:Wa,validators:In};var pe=Nt.validators,et=class{constructor(e){this.defaults=e||{},this.interceptors={request:new er,response:new er}}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=se(this.defaults,n);let{transitional:r,paramsSerializer:i,headers:o}=n;r!==void 0&&Nt.assertOptions(r,{silentJSONParsing:pe.transitional(pe.boolean),forcedJSONParsing:pe.transitional(pe.boolean),clarifyTimeoutError:pe.transitional(pe.boolean)},!1),i!=null&&(d.isFunction(i)?n.paramsSerializer={serialize:i}:Nt.assertOptions(i,{encode:pe.function,serialize:pe.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Nt.assertOptions(n,{baseUrl:pe.spelling("baseURL"),withXsrfToken:pe.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=o&&d.merge(o.common,o[n.method]);o&&d.forEach(["delete","get","head","post","put","patch","common"],f=>{delete o[f]}),n.headers=K.concat(s,o);let a=[],l=!0;this.interceptors.request.forEach(function(I){typeof I.runWhen=="function"&&I.runWhen(n)===!1||(l=l&&I.synchronous,a.unshift(I.fulfilled,I.rejected))});let c=[];this.interceptors.response.forEach(function(I){c.push(I.fulfilled,I.rejected)});let u,p=0,b;if(!l){let f=[bn.bind(this),void 0];for(f.unshift(...a),f.push(...c),b=f.length,u=Promise.resolve(n);p<b;)u=u.then(f[p++],f[p++]);return u}b=a.length;let w=n;for(;p<b;){let f=a[p++],I=a[p++];try{w=f(w)}catch(h){I.call(this,h);break}}try{u=bn.call(this,w)}catch(f){return Promise.reject(f)}for(p=0,b=c.length;p<b;)u=u.then(c[p++],c[p++]);return u}getUri(e){e=se(this.defaults,e);let n=xt(e.baseURL,e.url,e.allowAbsoluteUrls);return Tt(n,e.params,e.paramsSerializer)}};d.forEach(["delete","get","head","options"],function(e){et.prototype[e]=function(n,r){return this.request(se(r||{},{method:e,url:n,data:(r||{}).data}))}});d.forEach(["post","put","patch"],function(e){function n(r){return function(o,s,a){return this.request(se(a||{},{method:e,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:s}))}}et.prototype[e]=n(),et.prototype[e+"Form"]=n(!0)});var _t=et;var hr=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 de(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}}},ro=hr;function Er(t){return function(n){return t.apply(null,n)}}function yr(t){return d.isObject(t)&&t.isAxiosError===!0}var Ar={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(Ar).forEach(([t,e])=>{Ar[e]=t});var io=Ar;function oo(t){let e=new _t(t),n=bt(_t.prototype.request,e);return d.extend(n,_t.prototype,e,{allOwnKeys:!0}),d.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return oo(se(t,i))},n}var G=oo(Je);G.Axios=_t;G.CanceledError=de;G.CancelToken=ro;G.isCancel=Pt;G.VERSION=Sn;G.toFormData=Re;G.AxiosError=T;G.Cancel=G.CanceledError;G.all=function(e){return Promise.all(e)};G.spread=Er;G.isAxiosError=yr;G.mergeConfig=se;G.AxiosHeaders=K;G.formToJSON=t=>hn(d.isHTMLForm(t)?new FormData(t):t);G.getAdapter=wn.getAdapter;G.HttpStatusCode=io;G.default=G;var kt=G;var{Axios:yp,AxiosError:Ap,CanceledError:wp,isCancel:bp,CancelToken:Sp,VERSION:Ip,all:Cp,Cancel:Tp,isAxiosError:Rp,spread:Op,toFormData:Pp,AxiosHeaders:vp,HttpStatusCode:xp,formToJSON:Np,getAdapter:_p,mergeConfig:kp}=kt;var fe={NETWORK_ERROR:"network_error",API_ERROR:"api_error",AUTH_REQUIRED:"auth_required",TOKEN_EXPIRED:"token_expired",NOT_FOUND:"not_found",VALIDATION_ERROR:"validation_error",CIRCUIT_BREAKER:"circuit_breaker",PAYMENT_FAILED:"payment_failed",CARD_DECLINED:"card_declined",SESSION_EXPIRED:"session_expired",RATE_LIMITED:"rate_limited",TIMEOUT:"timeout",UNKNOWN:"unknown"},ye=class extends Error{constructor(e,n){var r;super(e),this.name="TagadaError",this.code=n.code,this.statusCode=n.statusCode,this.retryable=(r=n.retryable)!=null?r:!1,this.details=n.details,Object.setPrototypeOf(this,new.target.prototype)}},Oe=class extends ye{constructor(e,n,r){var i,o;super(e,{code:(i=r==null?void 0:r.code)!=null?i:fe.API_ERROR,statusCode:n,retryable:(o=r==null?void 0:r.retryable)!=null?o:n>=500,details:r==null?void 0:r.details}),this.name="TagadaApiError"}},Lt=class extends ye{constructor(e="Network request failed"){super(e,{code:fe.NETWORK_ERROR,retryable:!0}),this.name="TagadaNetworkError"}},Dt=class extends ye{constructor(e="Authentication required",n=401){super(e,{code:fe.AUTH_REQUIRED,statusCode:n,retryable:!1}),this.name="TagadaAuthError"}};var Bt=class extends ye{constructor(e){super(e,{code:fe.CIRCUIT_BREAKER,retryable:!1}),this.name="TagadaCircuitBreakerError"}};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=kt.create({baseURL:e.baseURL,timeout:e.timeout||6e4,headers:O({"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),n instanceof ye?Promise.reject(n):kt.isAxiosError(n)?Promise.reject(this.toTagadaError(n)):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)throw new Bt("Circuit Breaker: Too many requests to ".concat(e," (").concat(r.count," in ").concat(this.WINDOW_MS,"ms)"))}cleanupHistory(){let e=Date.now();for(let[n,r]of this.requestHistory.entries())e-r.firstRequestTime>this.WINDOW_MS&&this.requestHistory.delete(n)}toTagadaError(e){var o,s,a,l,c;let n=(o=e.response)==null?void 0:o.status,r=(s=e.response)==null?void 0:s.data,i=(l=(a=r==null?void 0:r.message)!=null?a:r==null?void 0:r.error)!=null?l:e.message;return e.response?n===401||n===403?new Dt(i,n):n===429?new Oe(i,429,{code:fe.RATE_LIMITED,retryable:!0}):n===404?new Oe(i,404,{code:fe.NOT_FOUND,retryable:!1}):new Oe(i,n!=null?n:0,{code:(c=r==null?void 0:r.code)!=null?c:fe.API_ERROR,details:r,retryable:(n!=null?n:0)>=500}):e.code==="ECONNABORTED"?new Oe("Request timed out",0,{code:fe.TIMEOUT,retryable:!0}):new Lt(i)}};var $a="2.0.6",za=500,so="user-agent",st="",ao="?",U={FUNCTION:"function",OBJECT:"object",STRING:"string",UNDEFINED:"undefined"},Z="browser",Ae="cpu",he="device",ae="engine",ee="os",it="result",E="name",g="type",y="vendor",A="version",q="architecture",zt="major",m="model",Wt="console",P="mobile",_="tablet",H="smarttv",ge="wearable",Cn="xr",$t="embedded",tt="inapp",kr="brands",Ue="formFactors",Lr="fullVersionList",ot="platform",Dr="platformVersion",Nn="bitness",Ne="sec-ch-ua",Ya=Ne+"-full-version-list",ja=Ne+"-arch",qa=Ne+"-"+Nn,Xa=Ne+"-form-factors",Ja=Ne+"-"+P,Za=Ne+"-"+m,So=Ne+"-"+ot,Qa=So+"-version",Io=[kr,Lr,P,m,ot,Dr,q,Ue,Nn],Tn="Amazon",nt="Apple",co="ASUS",lo="BlackBerry",Me="Google",uo="Huawei",wr="Lenovo",po="Honor",Rn="LG",br="Microsoft",Sr="Motorola",Ir="Nvidia",fo="OnePlus",Cr="OPPO",Ut="Samsung",go="Sharp",Ft="Sony",Tr="Xiaomi",Rr="Zebra",mo="Chrome",ho="Chromium",Pe="Chromecast",Pn="Edge",Gt="Firefox",Ht="Opera",Or="Facebook",Eo="Sogou",rt="Mobile ",Kt=" Browser",Nr="Windows",ec=typeof window!==U.UNDEFINED,Q=ec&&window.navigator?window.navigator:void 0,ve=Q&&Q.userAgentData?Q.userAgentData:void 0,tc=function(t,e){var n={},r=e;if(!vn(e)){r={};for(var i in e)for(var o in e[i])r[o]=e[i][o].concat(r[o]?r[o]:[])}for(var s in t)n[s]=r[s]&&r[s].length%2===0?r[s].concat(t[s]):t[s];return n},_n=function(t){for(var e={},n=0;n<t.length;n++)e[t[n].toUpperCase()]=t[n];return e},_r=function(t,e){if(typeof t===U.OBJECT&&t.length>0){for(var n in t)if(xe(e)==xe(t[n]))return!0;return!1}return Yt(t)?xe(e)==xe(t):!1},vn=function(t,e){for(var n in t)return/^(browser|cpu|device|engine|os)$/.test(n)||(e?vn(t[n]):!1)},Yt=function(t){return typeof t===U.STRING},Pr=function(t){if(t){for(var e=[],n=at(/\\?\"/g,t).split(","),r=0;r<n.length;r++)if(n[r].indexOf(";")>-1){var i=xn(n[r]).split(";v=");e[r]={brand:i[0],version:i[1]}}else e[r]=xn(n[r]);return e}},xe=function(t){return Yt(t)?t.toLowerCase():t},vr=function(t){return Yt(t)?at(/[^\d\.]/g,t).split(".")[0]:void 0},we=function(t){for(var e in t)if(t.hasOwnProperty(e)){var n=t[e];typeof n==U.OBJECT&&n.length==2?this[n[0]]=n[1]:this[n]=void 0}return this},at=function(t,e){return Yt(e)?e.replace(t,st):e},Vt=function(t){return at(/\\?\"/g,t)},xn=function(t,e){return t=at(/^\s\s*/,String(t)),typeof e===U.UNDEFINED?t:t.substring(0,e)},xr=function(t,e){if(!(!t||!e))for(var n=0,r,i,o,s,a,l;n<e.length&&!a;){var c=e[n],u=e[n+1];for(r=i=0;r<c.length&&!a&&c[r];)if(a=c[r++].exec(t),a)for(o=0;o<u.length;o++)l=a[++i],s=u[o],typeof s===U.OBJECT&&s.length>0?s.length===2?typeof s[1]==U.FUNCTION?this[s[0]]=s[1].call(this,l):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]===U.FUNCTION&&!(s[1].exec&&s[1].test)?s.length>3?this[s[0]]=l?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=l?s[1].call(this,l,s[2]):void 0:s.length==3?this[s[0]]=l?l.replace(s[1],s[2]):void 0:s.length==4?this[s[0]]=l?s[3].call(this,l.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=l?s[3].apply(this,[l.replace(s[1],s[2])].concat(s.slice(4))):void 0)):this[s]=l||void 0;n+=2}},me=function(t,e){for(var n in e)if(typeof e[n]===U.OBJECT&&e[n].length>0){for(var r=0;r<e[n].length;r++)if(_r(e[n][r],t))return n===ao?void 0:n}else if(_r(e[n],t))return n===ao?void 0:n;return e.hasOwnProperty("*")?e["*"]:t},yo={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:""},Ao={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},nc={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"},wo={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[A,[E,rt+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[A,[E,Pn+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[A,[E,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[E,A],[/opios[\/ ]+([\w\.]+)/i],[A,[E,Ht+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[A,[E,Ht+" GX"]],[/\bopr\/([\w\.]+)/i],[A,[E,Ht]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[A,[E,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[A,[E,"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],[E,A],[/quark(?:pc)?\/([-\w\.]+)/i],[A,[E,"Quark"]],[/\bddg\/([\w\.]+)/i],[A,[E,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[A,[E,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[A,[E,"WeChat"]],[/konqueror\/([\w\.]+)/i],[A,[E,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[A,[E,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[A,[E,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[A,[E,"Smart "+wr+Kt]],[/(avast|avg)\/([\w\.]+)/i],[[E,/(.+)/,"$1 Secure"+Kt],A],[/\bfocus\/([\w\.]+)/i],[A,[E,Gt+" Focus"]],[/\bopt\/([\w\.]+)/i],[A,[E,Ht+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[A,[E,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[A,[E,"Dolphin"]],[/coast\/([\w\.]+)/i],[A,[E,Ht+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[A,[E,"MIUI"+Kt]],[/fxios\/([\w\.-]+)/i],[A,[E,rt+Gt]],[/\bqihoobrowser\/?([\w\.]*)/i],[A,[E,"360"]],[/\b(qq)\/([\w\.]+)/i],[[E,/(.+)/,"$1Browser"],A],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[E,/(.+)/,"$1"+Kt],A],[/samsungbrowser\/([\w\.]+)/i],[A,[E,Ut+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[A,[E,Eo+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[E,Eo+" Mobile"],A],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[E,A],[/(lbbrowser|rekonq)/i],[E],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[A,E],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[E,Or],A,[g,tt]],[/(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],[E,A,[g,tt]],[/\bgsa\/([\w\.]+) .*safari\//i],[A,[E,"GSA"],[g,tt]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[A,[E,"TikTok"],[g,tt]],[/\[(linkedin)app\]/i],[E,[g,tt]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[E,/(.+)/,"Zalo"],A,[g,tt]],[/(chromium)[\/ ]([-\w\.]+)/i],[E,A],[/headlesschrome(?:\/([\w\.]+)| )/i],[A,[E,mo+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[A,[E,Pn+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[E,mo+" WebView"],A],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[A,[E,"Android"+Kt]],[/chrome\/([\w\.]+) mobile/i],[A,[E,rt+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[E,A],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[A,[E,rt+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[E,rt+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[A,E],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[E,[A,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[E,A],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[E,rt+Gt],A],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[E,"Netscape"],A],[/(wolvic|librewolf)\/([\w\.]+)/i],[E,A],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[A,[E,Gt+" 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],[E,[A,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[E,[A,/[^\d\.]+./,st]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[q,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[q,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[q,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[q,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[q,"arm"]],[/ sun4\w[;\)]/i],[[q,"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],[[q,/ower/,st,xe]],[/mc680.0/i],[[q,"68k"]],[/winnt.+\[axp/i],[[q,"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],[m,[y,Ut],[g,_]],[/\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],[m,[y,Ut],[g,P]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[m,[y,nt],[g,P]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[m,[y,nt],[g,_]],[/(macintosh);/i],[m,[y,nt]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[y,go],[g,P]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[m,[y,po],[g,_]],[/honor([-\w ]+)[;\)]/i],[m,[y,po],[g,P]],[/\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],[m,[y,uo],[g,_]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[m,[y,uo],[g,P]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[m,/_/g," "],[y,Tr],[g,_]],[/\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],[[m,/_/g," "],[y,Tr],[g,P]],[/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],[m,[y,fo],[g,P]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[m,[y,Cr],[g,P]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[m,[y,me,{OnePlus:["203","304","403","404","413","415"],"*":Cr}],[g,_]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[m,[y,"BLU"],[g,P]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[m,[y,"Vivo"],[g,P]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[m,[y,"Realme"],[g,P]],[/(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],[m,[y,wr],[g,_]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[m,[y,wr],[g,P]],[/\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],[m,[y,Sr],[g,P]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[y,Sr],[g,_]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[y,Rn],[g,_]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[m,[y,Rn],[g,P]],[/(nokia) (t[12][01])/i],[y,m,[g,_]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[m,/_/g," "],[g,P],[y,"Nokia"]],[/(pixel (c|tablet))\b/i],[m,[y,Me],[g,_]],[/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],[m,[y,Me],[g,P]],[/(google) (pixelbook( go)?)/i],[y,m],[/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],[m,[y,Ft],[g,P]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[y,Ft],[g,_]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[y,Tn],[g,_]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[y,Tn],[g,P]],[/(playbook);[-\w\),; ]+(rim)/i],[m,y,[g,_]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[m,[y,lo],[g,P]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[y,co],[g,_]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[y,co],[g,P]],[/(nexus 9)/i],[m,[y,"HTC"],[g,_]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[y,[m,/_/g," "],[g,P]],[/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],[m,[y,"TCL"],[g,_]],[/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],[m,[y,"TCL"],[g,P]],[/(itel) ((\w+))/i],[[y,xe],m,[g,me,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[m,[y,"Acer"],[g,_]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[m,[y,"Meizu"],[g,P]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[m,[y,"Ulefone"],[g,P]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[m,[y,"Energizer"],[g,P]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[m,[y,"Cat"],[g,P]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[m,[y,"Smartfren"],[g,P]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[m,[y,"Nothing"],[g,P]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[m,[y,"Archos"],[g,_]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[m,[y,"Archos"],[g,P]],[/; (n159v)/i],[m,[y,"HMD"],[g,P]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[y,m,[g,_]],[/(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],[y,m,[g,P]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[y,m,[g,_]],[/(surface duo)/i],[m,[y,br],[g,_]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[y,"Fairphone"],[g,P]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[m,[y,Ir],[g,_]],[/(sprint) (\w+)/i],[y,m,[g,P]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[y,br],[g,P]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[y,Rr],[g,_]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[y,Rr],[g,P]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[y,[g,H]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[y,Ut],[g,H]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[y,m,[g,H]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[y,Rn],[g,H]],[/(apple) ?tv/i],[y,[m,nt+" TV"],[g,H]],[/crkey.*devicetype\/chromecast/i],[[m,Pe+" Third Generation"],[y,Me],[g,H]],[/crkey.*devicetype\/([^/]*)/i],[[m,/^/,"Chromecast "],[y,Me],[g,H]],[/fuchsia.*crkey/i],[[m,Pe+" Nest Hub"],[y,Me],[g,H]],[/crkey/i],[[m,Pe],[y,Me],[g,H]],[/(portaltv)/i],[m,[y,Or],[g,H]],[/droid.+aft(\w+)( bui|\))/i],[m,[y,Tn],[g,H]],[/(shield \w+ tv)/i],[m,[y,Ir],[g,H]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[y,go],[g,H]],[/(bravia[\w ]+)( bui|\))/i],[m,[y,Ft],[g,H]],[/(mi(tv|box)-?\w+) bui/i],[m,[y,Tr],[g,H]],[/Hbbtv.*(technisat) (.*);/i],[y,m,[g,H]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[y,/.+\/(\w+)/,"$1",me,{LG:"lge"}],[m,xn],[g,H]],[/(playstation \w+)/i],[m,[y,Ft],[g,Wt]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[y,br],[g,Wt]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[y,m,[g,Wt]],[/droid.+; (shield)( bui|\))/i],[m,[y,Ir],[g,Wt]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[m,[y,Ut],[g,ge]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[y,m,[g,ge]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[m,[y,Cr],[g,ge]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[y,nt],[g,ge]],[/(opwwe\d{3})/i],[m,[y,fo],[g,ge]],[/(moto 360)/i],[m,[y,Sr],[g,ge]],[/(smartwatch 3)/i],[m,[y,Ft],[g,ge]],[/(g watch r)/i],[m,[y,Rn],[g,ge]],[/droid.+; (wt63?0{2,3})\)/i],[m,[y,Rr],[g,ge]],[/droid.+; (glass) \d/i],[m,[y,Me],[g,Cn]],[/(pico) ([\w ]+) os\d/i],[y,m,[g,Cn]],[/(quest( \d| pro)?s?).+vr/i],[m,[y,Or],[g,Cn]],[/mobile vr; rv.+firefox/i],[[g,Cn]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[y,[g,$t]],[/(aeobc)\b/i],[m,[y,Tn],[g,$t]],[/(homepod).+mac os/i],[m,[y,nt],[g,$t]],[/windows iot/i],[[g,$t]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[m,[g,H]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[g,H]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[m,[g,me,{mobile:"Mobile",xr:"VR","*":_}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[g,_]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[g,P]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[m,[y,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[A,[E,Pn+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[E,A],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[A,[E,"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],[E,A],[/ladybird\//i],[[E,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[A,E]],os:[[/(windows nt) (6\.[23]); arm/i],[[E,/N/,"R"],[A,me,yo]],[/(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],[E,A],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[A,/(;|\))/g,"",me,yo],[E,Nr]],[/(windows ce)\/?([\d\.]*)/i],[E,A],[/[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],[[A,/_/g,"."],[E,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[E,"macOS"],[A,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[A,[E,Pe+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[A,[E,Pe+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[A,[E,Pe+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[A,[E,Pe+" Linux"]],[/crkey\/([\d\.]+)/i],[A,[E,Pe]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[A,E],[/(ubuntu) ([\w\.]+) like android/i],[[E,/(.+)/,"$1 Touch"],A],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[E,A],[/\(bb(10);/i],[A,[E,lo]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[A,[E,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[A,[E,Gt+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[A,[E,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[A,me,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[E,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[A,[E,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[E,"Chrome OS"],A],[/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],[E,A],[/(sunos) ?([\d\.]*)/i],[[E,"Solaris"],A],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[E,A]]},On=function(){var t={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return we.call(t.init,[[Z,[E,A,zt,g]],[Ae,[q]],[he,[g,m,y]],[ae,[E,A]],[ee,[E,A]]]),we.call(t.isIgnore,[[Z,[A,zt]],[ae,[A]],[ee,[A]]]),we.call(t.isIgnoreRgx,[[Z,/ ?browser$/i],[ee,/ ?os$/i]]),we.call(t.toString,[[Z,[E,A]],[Ae,[q]],[he,[y,m]],[ae,[E,A]],[ee,[E,A]]]),t}(),rc=function(t,e){var n=On.init[e],r=On.isIgnore[e]||0,i=On.isIgnoreRgx[e]||0,o=On.toString[e]||0;function s(){we.call(this,n)}return s.prototype.getItem=function(){return t},s.prototype.withClientHints=function(){return ve?ve.getHighEntropyValues(Io).then(function(a){return t.setCH(new Co(a,!1)).parseCH().get()}):t.parseCH().get()},s.prototype.withFeatureCheck=function(){return t.detectFeature().get()},e!=it&&(s.prototype.is=function(a){var l=!1;for(var c in this)if(this.hasOwnProperty(c)&&!_r(r,c)&&xe(i?at(i,this[c]):this[c])==xe(i?at(i,a):a)){if(l=!0,a!=U.UNDEFINED)break}else if(a==U.UNDEFINED&&l){l=!l;break}return l},s.prototype.toString=function(){var a=st;for(var l in o)typeof this[o[l]]!==U.UNDEFINED&&(a+=(a?" ":st)+this[o[l]]);return a||U.UNDEFINED}),ve||(s.prototype.then=function(a){var l=this,c=function(){for(var p in l)l.hasOwnProperty(p)&&(this[p]=l[p])};c.prototype={is:s.prototype.is,toString:s.prototype.toString};var u=new c;return a(u),u}),new s};function Co(t,e){if(t=t||{},we.call(this,Io),e)we.call(this,[[kr,Pr(t[Ne])],[Lr,Pr(t[Ya])],[P,/\?1/.test(t[Ja])],[m,Vt(t[Za])],[ot,Vt(t[So])],[Dr,Vt(t[Qa])],[q,Vt(t[ja])],[Ue,Pr(t[Xa])],[Nn,Vt(t[qa])]]);else for(var n in t)this.hasOwnProperty(n)&&typeof t[n]!==U.UNDEFINED&&(this[n]=t[n])}function bo(t,e,n,r){return this.get=function(i){return i?this.data.hasOwnProperty(i)?this.data[i]:void 0:this.data},this.set=function(i,o){return this.data[i]=o,this},this.setCH=function(i){return this.uaCH=i,this},this.detectFeature=function(){if(Q&&Q.userAgent==this.ua)switch(this.itemType){case Z:Q.brave&&typeof Q.brave.isBrave==U.FUNCTION&&this.set(E,"Brave");break;case he:!this.get(g)&&ve&&ve[P]&&this.set(g,P),this.get(m)=="Macintosh"&&Q&&typeof Q.standalone!==U.UNDEFINED&&Q.maxTouchPoints&&Q.maxTouchPoints>2&&this.set(m,"iPad").set(g,_);break;case ee:!this.get(E)&&ve&&ve[ot]&&this.set(E,ve[ot]);break;case it:var i=this.data,o=function(s){return i[s].getItem().detectFeature().get()};this.set(Z,o(Z)).set(Ae,o(Ae)).set(he,o(he)).set(ae,o(ae)).set(ee,o(ee))}return this},this.parseUA=function(){switch(this.itemType!=it&&xr.call(this.data,this.ua,this.rgxMap),this.itemType){case Z:this.set(zt,vr(this.get(A)));break;case ee:if(this.get(E)=="iOS"&&this.get(A)=="18.6"){var i=/\) Version\/([\d\.]+)/.exec(this.ua);i&&parseInt(i[1].substring(0,2),10)>=26&&this.set(A,i[1])}break}return this},this.parseCH=function(){var i=this.uaCH,o=this.rgxMap;switch(this.itemType){case Z:case ae:var s=i[Lr]||i[kr],a;if(s)for(var l=0;l<s.length;l++){var c=s[l].brand||s[l],u=s[l].version;this.itemType==Z&&!/not.a.brand/i.test(c)&&(!a||/Chrom/.test(a)&&c!=ho||a==Pn&&/WebView2/.test(c))&&(c=me(c,nc),a=this.get(E),a&&!/Chrom/.test(a)&&/Chrom/.test(c)||this.set(E,c).set(A,u).set(zt,vr(u)),a=c),this.itemType==ae&&c==ho&&this.set(A,u)}break;case Ae:var p=i[q];p&&(p&&i[Nn]=="64"&&(p+="64"),xr.call(this.data,p+";",o));break;case he:if(i[P]&&this.set(g,P),i[m]&&(this.set(m,i[m]),!this.get(g)||!this.get(y))){var b={};xr.call(b,"droid 9; "+i[m]+")",o),!this.get(g)&&b.type&&this.set(g,b.type),!this.get(y)&&b.vendor&&this.set(y,b.vendor)}if(i[Ue]){var w;if(typeof i[Ue]!="string")for(var f=0;!w&&f<i[Ue].length;)w=me(i[Ue][f++],Ao);else w=me(i[Ue],Ao);this.set(g,w)}break;case ee:var I=i[ot];if(I){var h=i[Dr];I==Nr&&(h=parseInt(vr(h),10)>=13?"11":"10"),this.set(E,I).set(A,h)}this.get(E)==Nr&&i[m]=="Xbox"&&this.set(E,"Xbox").set(A,void 0);break;case it:var R=this.data,x=function(C){return R[C].getItem().setCH(i).parseCH().get()};this.set(Z,x(Z)).set(Ae,x(Ae)).set(he,x(he)).set(ae,x(ae)).set(ee,x(ee))}return this},we.call(this,[["itemType",t],["ua",e],["uaCH",r],["rgxMap",n],["data",rc(this,t)]]),this}function te(t,e,n){if(typeof t===U.OBJECT?(vn(t,!0)?(typeof e===U.OBJECT&&(n=e),e=t):(n=t,e=void 0),t=void 0):typeof t===U.STRING&&!vn(e,!0)&&(n=e,e=void 0),n)if(typeof n.append===U.FUNCTION){var r={};n.forEach(function(u,p){r[String(p).toLowerCase()]=u}),n=r}else{var i={};for(var o in n)n.hasOwnProperty(o)&&(i[String(o).toLowerCase()]=n[o]);n=i}if(!(this instanceof te))return new te(t,e,n).getResult();var s=typeof t===U.STRING?t:n&&n[so]?n[so]:Q&&Q.userAgent?Q.userAgent:st,a=new Co(n,!0),l=e?tc(wo,e):wo,c=function(u){return u==it?function(){return new bo(u,s,l,a).set("ua",s).set(Z,this.getBrowser()).set(Ae,this.getCPU()).set(he,this.getDevice()).set(ae,this.getEngine()).set(ee,this.getOS()).get()}:function(){return new bo(u,s,l[u],a).parseUA().get()}};return we.call(this,[["getBrowser",c(Z)],["getCPU",c(Ae)],["getDevice",c(he)],["getEngine",c(ae)],["getOS",c(ee)],["getResult",c(it)],["getUA",function(){return s}],["setUA",function(u){return Yt(u)&&(s=xn(u,za)),this}]]).setUA(s),this}te.VERSION=$a;te.BROWSER=_n([E,A,zt,g]);te.CPU=_n([q]);te.DEVICE=_n([m,y,g,Wt,P,H,_,ge,$t]);te.ENGINE=te.OS=_n([E,A]);var $p=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 jt=Object.freeze({CRAWLER:"crawler",CLI:"cli",EMAIL:"email",FETCHER:"fetcher",INAPP:"inapp",MEDIAPLAYER:"mediaplayer",LIBRARY:"library"}),To=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 zp=Object.freeze({CONSOLE:"console",DESKTOP:"desktop",EMBEDDED:"embedded",MOBILE:"mobile",SMARTTV:"smarttv",TABLET:"tablet",WEARABLE:"wearable",XR:"xr"});var Yp=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 Ro=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 Oo=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 Po=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",F="name",v="type",k="vendor",z="version",Fe="mobile",X="tablet",Br="crawler",ic="cli",vo="email",xo="fetcher",ct="inapp",qt="mediaplayer",oc="library",sc=Object.freeze({browser:[[/(wget|curl|lynx|elinks|httpie)[\/ ]\(?([\w\.-]+)/i],[F,z,[v,ic]]]}),_o=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],[F,z,[v,Br]],[/(yandexbot\/([\w\.]+); mirrordetector)/i],[[F,/\/.+;/ig,""],z,[v,Br]],[/((?: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],[F,[v,Br]]]}),qp=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],[k,D,[v,X]],[/(u304aa)/i],[D,[k,"AT&T"],[v,Fe]],[/\bsie-(\w*)/i],[D,[k,"Siemens"],[v,Fe]],[/\b(rct\w+) b/i],[D,[k,"RCA"],[v,X]],[/\b(venue[\d ]{2,7}) b/i],[D,[k,"Dell"],[v,X]],[/\b(q(?:mv|ta)\w+) b/i],[D,[k,"Verizon"],[v,X]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[D,[k,"Barnes & Noble"],[v,X]],[/\b(tm\d{3}\w+) b/i],[D,[k,"NuVision"],[v,X]],[/\b(k88) b/i],[D,[k,"ZTE"],[v,X]],[/\b(nx\d{3}j) b/i],[D,[k,"ZTE"],[v,Fe]],[/\b(gen\d{3}) b.+49h/i],[D,[k,"Swiss"],[v,Fe]],[/\b(zur\d{3}) b/i],[D,[k,"Swiss"],[v,X]],[/^((zeki)?tb.*\b) b/i],[D,[k,"Zeki"],[v,X]],[/\b([yr]\d{2}) b/i,/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i],[D,[k,"Dragon Touch"],[v,X]],[/\b(ns-?\w{0,9}) b/i],[D,[k,"Insignia"],[v,X]],[/\b((nxa|next)-?\w{0,9}) b/i],[D,[k,"NextBook"],[v,X]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[k,"Voice"],D,[v,Fe]],[/\b(lvtel\-)?(v1[12]) b/i],[[k,"LvTel"],D,[v,Fe]],[/\b(ph-1) /i],[D,[k,"Essential"],[v,Fe]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[D,[k,"Envizen"],[v,X]],[/\b(trio[-\w\. ]+) b/i],[D,[k,"MachSpeed"],[v,X]],[/\btu_(1491) b/i],[D,[k,"Rotor"],[v,X]]]}),Xp=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],[F,z,[v,vo]],[/zdesktop\/([\w\.]+)/i],[z,[F,"Zimbra"],[v,vo]]]}),No=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],[F,z,[v,xo]],[/((?: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],[F,[v,xo]]],os:[[/whatsapp\/[\d\.]+ (a|i)/i],[[F,t=>t=="A"?"Android":"iOS"]]]}),Jp=Object.freeze({browser:[[/\b(discord|figma|mattermost|notion|postman|rambox|rocket.chat|slack|teams)\/([\w\.]+).+(electron\/|; ios)/i,/(flipboard)\/([\w\.]+)/i],[F,z,[v,ct]],[/(evernote) win/i,/(teams)mobile-(ios|and)/i],[F,[v,ct]],[/chatlyio\/([\d\.]+)/i],[z,[F,"Slack"],[v,ct]],[/ultralite app_version\/([\w\.]+)/i],[z,[F,"TikTok Lite"],[v,ct]],[/\) code\/([\d\.]+).+electron\//i],[z,[F,"VS Code"],[v,ct]],[/jp\.co\.yahoo\.(?:android\.yjtop|ipn\.appli)\/([\d\.]+)/i],[z,[F,"Yahoo! Japan"],[v,ct]]]}),Zp=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],[F,z,[v,qt]],[/(flrp)\/([\w\.-]+)/i],[[F,"Flip Player"],z,[v,qt]],[/(fstream|media player classic|inlight radio|mplayer|nativehost|nero showtime|ocms-bot|queryseekspider|tapinradio|tunein radio|winamp|yourmuze)/i],[F,[v,qt]],[/(htc_one_s|windows-media-player|wmplayer)\/([\w\.-]+)/i],[[F,/[_-]/g," "],z,[v,qt]],[/(rad.io|radio.(?:de|at|fr)) ([\d\.]+)/i],[[F,"rad.io"],z,[v,qt]]]}),ac=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],[F,z,[v,oc]]]}),Qp=Object.freeze({device:[[/aftlbt962e2/i],[[k,"BMW"]],[/dilink.+(byd) auto/i],[k],[/aftlft962x3/i],[[k,"Jeep"],[D,"Wagooner"]],[/(rivian) (r1t)/i],[k,D],[/vcc.+netfront/i],[[k,"Volvo"]]]}),ko=Object.freeze({browser:[...sc.browser,...No.browser,..._o.browser,...ac.browser],os:[...No.os]});var S={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"}},cc=[S.AUSTRIA.VIENNA,S.BELGIUM.BRUSSELS,S.BULGARIA.SOFIA,S.CROATIA.ZAGREB,S.CYPRUS.NICOSIA_EUROPE,S.CYPRUS.NICOSIA_ASIA,S.CYPRUS.FAMAGUSTA,S.CZECHIA.PRAGUE,S.DENMARK.COPENHAGEN,S.ESTONIA.TALLINN,S.FINLAND.HELSINKI,S.FINLAND.MARIEHAMN,S.FRANCE.PARIS,S.GERMANY.BERLIN,S.GREECE.ATHENS,S.HUNGARY.BUDAPEST,S.IRELAND.DUBLIN,S.ITALY.ROME,S.LATVIA.RIGA,S.LITHUANIA.VILNIUS,S.LUXEMBOURG.LUXEMBOURG,S.MALTA.MALTA,S.NETHERLANDS.AMSTERDAM,S.POLAND.WARSAW,S.PORTUGAL.LISBON,S.ROMANIA.BUCHAREST,S.SLOVAKIA.BRATISLAVA,S.SLOVENIA.LJUBLJANA,S.SPAIN.MADRID,S.SWEDEN.STOCKHOLM,S.FRANCE.CAYENNE,S.FRANCE.GUADELOUPE,S.FRANCE.MARIGOT,S.FRANCE.MARTINIQUE,S.FRANCE.MAYOTTE,S.FRANCE.REUNION,S.PORTUGAL.AZORES,S.PORTUGAL.MADEIRA,S.SPAIN.CANARY],Lo=[S.ICELAND.REYKJAVIK,S.LIECHTENSTEIN.VADUZ,S.NORWAY.OSLO,S.NORWAY.JAN_MAYEN],tf=[...cc,...Lo],nf=[S.SWITZERLAND.ZURICH,...Lo],rf=[S.AUSTRIA.VIENNA,S.BELGIUM.BRUSSELS,S.BULGARIA.SOFIA,S.CROATIA.ZAGREB,S.CZECHIA.PRAGUE,S.DENMARK.COPENHAGEN,S.ESTONIA.TALLINN,S.FINLAND.HELSINKI,S.FINLAND.MARIEHAMN,S.FRANCE.PARIS,S.GERMANY.BERLIN,S.GREECE.ATHENS,S.HUNGARY.BUDAPEST,S.ITALY.ROME,S.LATVIA.RIGA,S.LITHUANIA.VILNIUS,S.LUXEMBOURG.LUXEMBOURG,S.MALTA.MALTA,S.NETHERLANDS.AMSTERDAM,S.POLAND.WARSAW,S.PORTUGAL.LISBON,S.PORTUGAL.AZORES,S.PORTUGAL.MADEIRA,S.ROMANIA.BUCHAREST,S.SLOVAKIA.BRATISLAVA,S.SLOVENIA.LJUBLJANA,S.SPAIN.MADRID,S.SPAIN.CANARY,S.SWEDEN.STOCKHOLM,S.ANDORRA.ANDORRA,S.GERMANY.BUSINGEN,S.ICELAND.REYKJAVIK,S.LIECHTENSTEIN.VADUZ,S.MONACO.MONACO,S.NORWAY.OSLO,S.SAN_MARINO.SAN_MARINO,S.SPAIN.CEUTA,S.SWITZERLAND.ZURICH,S.VATICAN.VATICAN];function Mr(){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:hf}=Po.BrowserName,Ur=(t,e,n)=>typeof t=="string"?te(t,e,n):t;var Do=t=>{let e=Ur(t);if(e.os.is(Oo.MACOS)){if(e.cpu.is(To.ARM))return!0;if(typeof t!="string"&&typeof window!="undefined")try{let n=document.createElement("canvas"),r=n.getContext("webgl2")||n.getContext("webgl")||n.getContext("experimental-webgl"),i=r.getExtension("WEBGL_debug_renderer_info");if(r.getParameter(i.UNMASKED_RENDERER_WEBGL).match(/apple m\d/i))return!0}catch(n){return!1}}return!1};var Bo=t=>[jt.CLI,jt.CRAWLER,jt.FETCHER,jt.LIBRARY].includes(Ur(t,ko).browser.type),Mo=t=>Ur(t).engine.is(Ro.BLINK);function lc(){return{width:window.screen.width,height:window.screen.height}}function uc(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return console.error("Failed to get timezone:",t),"UTC"}}function Uo(){try{return navigator.language||"en-US"}catch(t){return console.error("Failed to get browser locale:",t),"en-US"}}function Fo(){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 te().getResult(),n;try{n={isBot:Bo(e),isChromeFamily:Mo(e),isStandalonePWA:Mr(),isAppleSilicon:Do(e)}}catch(r){console.error("Failed to compute device flags:",r),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:lc(),timeZone:uc(),flags:n}}function Go(){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 kn=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()}};Vn();function Xt(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 Ho(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}}en();var lt={},dc=["","VITE_","REACT_APP_","NEXT_PUBLIC_"];function be(t,e=dc){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 lt!="undefined"&&((r=lt==null?void 0:lt.env)!=null&&r[s]))return console.log("import.meta.env[".concat(s,"]"),lt.env[s]),lt.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 pc=async(t="default")=>{try{if((be("TAGADA_ENV")||be("TAGADA_ENVIRONMENT"))==="production"||!gt(!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}},fc=async()=>{try{if((be("TAGADA_ENV")||be("TAGADA_ENVIRONMENT"))==="production"||!gt(!0))return null;try{console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/funnel.local.json...");let r=await fetch("/config/funnel.local.json");if(r.ok){let i=await r.json();console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded local funnel config (NEW format):",i);let{loadLocalFunnelConfig:o}=await Promise.resolve().then(()=>(cn(),bi));if(await o(),i.staticResources){let s={};for(let[a,l]of Object.entries(i.staticResources))s[a]={id:l};return s}return null}}catch(r){console.log("\u{1F6E0}\uFE0F [V2] funnel.local.json not found, trying legacy format...")}console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/resources.static.json (legacy)...");let e=await fetch("/config/resources.static.json");if(!e.ok)return console.log("\u{1F6E0}\uFE0F [V2] No local static resources found"),null;let n=await e.json();return console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded legacy static resources:",n),n}catch(t){return console.error("\u{1F6E0}\uFE0F [V2] \u274C Error loading static resources:",t),null}},Ln=t=>{if(typeof document=="undefined")return;let e=document.querySelector('meta[name="'.concat(t,'"]'));return(e==null?void 0:e.getAttribute("content"))||void 0};var gc=async()=>{try{if(typeof document=="undefined")return null;let t=Ln("x-plugin-store-id"),e=Ln("x-plugin-account-id");if(!t)return null;let n=Ln("x-plugin-base-path")||"/",r={};try{let o=Ln("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}},Ko=async(t="default",e)=>{var s,a;console.log("\u{1F527} [V2] loadPluginConfig called with variant:",t);let n=await fc(),r=await gc();if(r){let l=$(O({},r),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using INJECTED config from meta tags (HIGHEST PRIORITY)"),l}if(e){let l={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)"),l}let i=await hc();if(i){let l=$(O({},i),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using environment variables config (PRIORITY 3 - build time)"),l}let o=await pc(t);if(o){let l=$(O({},o),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using local dev config files (PRIORITY 4)"),l}return console.warn("\u26A0\uFE0F [V2] No plugin config found - using defaults"),{basePath:"/",config:{},staticResources:n!=null?n:void 0}};async function mc(t="default",e){try{if(!gt())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 hc(){try{if(!gt())return;let t=be("TAGADA_STORE_ID"),e=be("TAGADA_ACCOUNT_ID"),n=be("TAGADA_BASE_PATH"),r=be("TAGADA_CONFIG_NAME");if(!t||!e)return;let i=await mc(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}}sn();ze();ze();var Fr=new Map,Gr=new Set;function Ec(){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get("authCode")}async function Vo(t,e,n,r=!1){if(Gr.has(t))throw r&&console.log("[AuthHandoff] Code already resolved, skipping duplicate request"),new Error("Auth code already resolved");let i=Fr.get(t);if(i)return r&&console.log("[AuthHandoff] Resolution already in progress, waiting for existing request"),i;r&&console.log("[AuthHandoff] Resolving authCode:",t.substring(0,15)+"...");let o=(async()=>{try{let s=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(!s.ok){let l=await s.json().catch(()=>({message:"Unknown error"}));throw new Error(l.message||"Failed to resolve auth handoff: ".concat(s.status))}let a=await s.json();return r&&console.log("[AuthHandoff] \u2705 Resolved successfully:",{customerId:a.customer.id,role:a.customer.role,hasContext:Object.keys(a.context).length>0}),r&&console.log("[AuthHandoff] Storing new token (overriding existing)"),re(a.token),yc(r),Gr.add(t),a}catch(s){throw console.error("[AuthHandoff] \u274C Failed to resolve:",s),s}finally{Fr.delete(t)}})();return Fr.set(t,o),o}function yc(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 Wo(){let t=Ec();return!(!t||!t.startsWith("ah_")||Gr.has(t))}var Dn=class{constructor(e={}){this.bus=new kn;this.eventDispatcher=new We;this.tokenPromise=null;this.tokenResolver=null;this.isInitializingSession=!1;this.lastSessionInitError=null;this.sessionInitRetryCount=0;this.MAX_SESSION_INIT_RETRIES=3;var a,l,c,u;this.config=e,this.instanceId=Math.random().toString(36).substr(2,9),this.boundHandleStorageChange=this.handleStorageChange.bind(this),this.boundHandlePageshow=p=>{if(p.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 b=this.getAccountId(),f=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:b},f).catch(I=>{console.error("[TagadaClient] Funnel re-initialization failed:",I)})}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}),pi(this.config.debugMode)&&this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Preview mode active - state cleared"));let r=this.resolveEnvironment(),i=ai(r);e.customApiConfig&&(i=$(O(O({},i),e.customApiConfig),{apiConfig:O(O({},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:!0,debugMode:(a=e.debugMode)!=null?a:r!=="production",token:null},console.log("[TagadaClient ".concat(this.instanceId,"] Initial state:"),{pluginConfigLoading:this.state.pluginConfigLoading,hasRawPluginConfig:!!e.rawPluginConfig}),this.apiClient=new Mt({baseURL:i.apiConfig.baseUrl});let o=(l=e.features)==null?void 0:l.funnel;if(o!==!1){let p=typeof o=="object"?o:{};this.funnel=new wt({apiClient:this.apiClient,debugMode:this.state.debugMode,pluginConfig:this.state.pluginConfig,environment:this.state.environment,autoRedirect:p.autoRedirect,funnelId:(c=e.rawPluginConfig)==null?void 0:c.funnelId,stepId:(u=e.rawPluginConfig)==null?void 0:u.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(mt()===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=O(O({},this.state),e),this.eventDispatcher.notify(this.state)}resolveEnvironment(){return this.config.environment?this.config.environment:ft()}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 Ko(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(Wo()){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 r=new URLSearchParams(window.location.search).get("authCode");if(!r)return this.fallbackToNormalFlow();let i=await Vo(r,n,this.state.environment.apiConfig.baseUrl,this.state.debugMode);console.log("[TagadaClient ".concat(this.instanceId,"] \u2705 Auth handoff resolved:"),{customerId:i.customer.id,role:i.customer.role,hasContext:Object.keys(i.context).length>0}),this.setToken(i.token);let o=Xt(i.token);o?(this.updateState({session:o}),await this.initializeSession(o),(e=i.context)!=null&&e.funnelSessionId&&this.funnel&&this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Restoring funnel session from handoff context:"),i.context.funnelSessionId)):(console.error("[TagadaClient] Failed to decode token from handoff"),this.updateState({isInitialized:!0,isLoading:!1}));return}catch(r){console.error("[TagadaClient ".concat(this.instanceId,"] \u274C Auth handoff failed, falling back to normal flow:"),r)}}await this.fallbackToNormalFlow()}async fallbackToNormalFlow(){let n=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("token");n&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL token detected, setting immediately to prevent race condition")),this.apiClient.updateToken(n),re(n));let r=mt();console.log("[TagadaClient ".concat(this.instanceId,"] Initializing token (normal flow)..."),{hasExistingToken:!!r,hasQueryToken:!!n,storeId:this.state.pluginConfig.storeId});let i=null,o=!1;if(n?(i=n,o=!0):r&&!Ho(r)&&(i=r),i){this.setToken(i),o&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Persisting query token to storage...")),re(i));let s=Xt(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;console.log("[TagadaClient ".concat(this.instanceId,"] No existing token, creating anonymous token..."),{hasStoreId:!!s,storeId:s}),s?await this.createAnonymousToken(s):(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(typeof window!="undefined"){let r=new URLSearchParams(window.location.search).get("token");if(r){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL has token, skipping anonymous token creation")),this.setToken(r),re(r);let i=Xt(r);i&&(this.updateState({session:i}),await this.initializeSession(i));return}}if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping anonymous token creation"));return}try{let n=yt();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),re(r.token);let i=Xt(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,i,o,s,a,l,c,u,p,b;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 w=Fo(),f=Go(),I=Uo(),h=yt(),R=new URLSearchParams(window.location.search).get("draft");R!==null&&zn(R==="true");let x={storeId:e.storeId,accountId:e.accountId,customerId:e.customerId,role:e.role,browserLocale:I,queryLocale:f.locale,queryCurrency:f.currency,utmSource:f.utmSource,utmMedium:f.utmMedium,utmCampaign:f.utmCampaign,browser:w.userAgent.browser.name,browserVersion:w.userAgent.browser.version,os:w.userAgent.os.name,osVersion:w.userAgent.os.version,deviceType:(n=w.userAgent.device)==null?void 0:n.type,deviceModel:(r=w.userAgent.device)==null?void 0:r.model,deviceVendor:(i=w.userAgent.device)==null?void 0:i.vendor,userAgent:w.userAgent.name,engineName:w.userAgent.engine.name,engineVersion:w.userAgent.engine.version,cpuArchitecture:w.userAgent.cpu.architecture,isBot:(s=(o=w.flags)==null?void 0:o.isBot)!=null?s:!1,isChromeFamily:(l=(a=w.flags)==null?void 0:a.isChromeFamily)!=null?l:!1,isStandalonePWA:(u=(c=w.flags)==null?void 0:c.isStandalonePWA)!=null?u:!1,isAppleSilicon:(b=(p=w.flags)==null?void 0:p.isAppleSilicon)!=null?b:!1,screenWidth:w.screenResolution.width,screenHeight:w.screenResolution.height,timeZone:w.timeZone,draft:h,fetchMessages:!1},C=await this.apiClient.post("/api/v1/cms/session/v2/init",x);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(w){this.lastSessionInitError=w,this.sessionInitRetryCount++,console.error("[TagadaClient] Error initializing session (attempt ".concat(this.sessionInitRetryCount,"/").concat(this.MAX_SESSION_INIT_RETRIES,"):"),w),this.updateState({isInitialized:!0,isLoading:!1})}finally{this.isInitializingSession=!1}}updateSessionState(e,n){var s,a,l,c,u,p,b,w,f,I;if(e.store){let h=e.store,R=$(O({},e.store),{accountId:h.accountId||((s=this.state.pluginConfig)==null?void 0:s.accountId)||n.accountId||"",presentmentCurrencies:h.presentmentCurrencies||[e.store.currency||"USD"],chargeCurrencies:h.chargeCurrencies||[e.store.currency||"USD"]});this.updateState({store:R})}if(e.locale){let h={locale:e.locale,language:e.locale.split("-")[0],region:(a=e.locale.split("-")[1])!=null?a:"US",messages:(l=e.messages)!=null?l:{}};this.updateState({locale:h})}if(e.store){let h={code:e.store.currency,symbol:this.getCurrencySymbol(e.store.currency),name:this.getCurrencyName(e.store.currency)};this.updateState({currency:h})}let r={isAuthenticated:(u=(c=e.customer)==null?void 0:c.isAuthenticated)!=null?u:!1,isLoading:!1,customer:(p=e.customer)!=null?p:null,session:n};this.updateState({customer:(b=e.customer)!=null?b:null,auth:r});let i=(w=this.config.features)==null?void 0:w.funnel,o=typeof i=="object"&&i.skipAutoInit;if(this.funnel&&!o&&n.customerId&&((f=e.store)!=null&&f.id)){let h=e.store.accountId||((I=this.state.pluginConfig)==null?void 0:I.accountId)||n.accountId||"";if(h){let x=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:h,funnelId:x||"auto-detect"}),this.funnel.autoInitialize({customerId:n.customerId,sessionId:n.sessionId},{id:e.store.id,accountId:h},x).catch(C=>{console.error("[TagadaClient] Funnel auto-initialization failed:",C)})}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=O(O({},this.state.pluginConfig.config),e);this.updateState({pluginConfig:$(O({},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 C;let w=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]).has(p.tagName.toLowerCase()),f=p;if(w){let N=p.parentElement;if((N==null?void 0:N.getAttribute("data-tagada-highlight-wrapper"))==="true"&&N instanceof HTMLElement)f=N;else{let L=document.createElement("div");L.setAttribute("data-tagada-highlight-wrapper","true");let W=window.getComputedStyle(p),le=W.display;if(le==="inline"?L.style.display="inline-block":L.style.display=le,L.style.position="relative",le==="inline"||le.includes("inline")){let ne=W.verticalAlign;ne&&ne!=="baseline"&&(L.style.verticalAlign=ne)}["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(ne=>{let Se=ne.replace(/([A-Z])/g,"-$1").toLowerCase(),j=W.getPropertyValue(Se);j&&j.trim()!==""&&(ne==="flex"&&j!=="none"&&j!=="0 1 auto"?L.style.flex=j:ne==="boxSizing"?L.style.boxSizing=j:L.style.setProperty(Se,j))}),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(Se=>{let j=p.style.getPropertyValue(Se);j&&L.style.setProperty(Se,j)}),(C=p.parentNode)==null||C.insertBefore(L,p),L.appendChild(p),f=L}}let I=getComputedStyle(w?p:f);(f.style.position==="static"||!f.style.position)&&(f.style.position="relative");let h=document.createElement("div");h.id=r,h.style.position="absolute",h.style.inset="0",h.style.pointerEvents="none",h.style.zIndex="9999",h.style.boxSizing="border-box",h.style.background="none",h.style.border="none",h.style.outline="none",h.style.margin="0",h.style.padding="0";let R=I.borderRadius;R&&(h.style.borderRadius=R),f.appendChild(h);let x=n||{boxShadow:"0 0 0 2px rgb(239 68 68)"};if(Object.entries(x).forEach(([N,V])=>{let L=N.includes("-")?N.replace(/-([a-z])/g,(W,le)=>le.toUpperCase()):N;N.includes("-")?h.style.setProperty(N,V):h.style[L]=V}),p.scrollIntoView({behavior:"smooth",block:"center"}),this.state.debugMode){let N=Object.entries(x).map(([V,L])=>"".concat(V,": ").concat(L)).join("; ");console.log("[TagadaClient] Applied styles to highlight div of element #".concat(e,":"),N)}},s=5,a=1e3,l=0,c=p=>{let b=window.getComputedStyle(p);return b.display==="none"||b.visibility==="hidden"||b.opacity==="0"||p.hidden||p.offsetWidth===0||p.offsetHeight===0},u=()=>{let p=document.querySelectorAll('[editor-id~="'.concat(e,'"]'));if(p.length===0){if(l+=1,l>=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(l,"/").concat(s,"), retrying in ").concat(a/1e3,"s")),setTimeout(u,a);return}let b=null;if(p.length===1)b=p[0];else{for(let w=0;w<p.length;w++)if(!c(p[w])){b=p[w];break}b||(b=p[0])}b&&o(b)};u()}};cn();var Yo="https://cvwnizdbugpz6jwk.public.blob.vercel-storage.com/geodata/v1";var $o=new Map,zo=new Map,Hr=new Map,Kr=new Map;async function Ac(t){let e=$o.get(t);if(e)return e;let n=Hr.get(t);return n||(n=(async()=>{let r="".concat(Yo,"/").concat(t,"/countries.json"),i=await fetch(r);if(!i.ok)throw new Error("Geodata fetch failed: ".concat(r," (").concat(i.status,")"));let o=await i.json();return $o.set(t,o),Hr.delete(t),o})(),Hr.set(t,n),n)}async function wc(t){let e=zo.get(t);if(e)return e;let n=Kr.get(t);return n||(n=(async()=>{let r="".concat(Yo,"/").concat(t,"/regions.json"),i=await fetch(r);if(!i.ok)throw new Error("Geodata fetch failed: ".concat(r," (").concat(i.status,")"));let o=await i.json();return zo.set(t,o),Kr.delete(t),o})(),Kr.set(t,n),n)}async function bc(t="en"){await Promise.all([Ac(t),wc(t)])}typeof globalThis!="undefined"&&typeof fetch!="undefined"&&bc("en").catch(()=>{});var Jt=class{static initialize(e){var n,r;this.apiKey=e,typeof window!="undefined"&&((r=(n=window.google)==null?void 0:n.maps)!=null&&r.places)&&(this.service=new window.google.maps.places.AutocompleteService)}static async searchPlaces(e,n={}){return!this.service||!e.trim()?[]:new Promise((r,i)=>{this.service.getPlacePredictions({input:e,types:n.types||["address"],componentRestrictions:n.componentRestrictions},(o,s)=>{var a,l,c;s===((c=(l=(a=window.google)==null?void 0:a.maps)==null?void 0:l.places)==null?void 0:c.PlacesServiceStatus.OK)&&o?r(o):r([])})})}static async getPlaceDetails(e){var n,r;return typeof window=="undefined"||!((r=(n=window.google)==null?void 0:n.maps)!=null&&r.places)?null:new Promise((i,o)=>{new window.google.maps.places.PlacesService(document.createElement("div")).getDetails({placeId:e,fields:["place_id","formatted_address","address_components","geometry"]},(a,l)=>{var c,u,p;l===((p=(u=(c=window.google)==null?void 0:c.maps)==null?void 0:u.places)==null?void 0:p.PlacesServiceStatus.OK)&&a?i(a):i(null)})})}static extractAddressComponents(e){let n={};for(let r of e.address_components){let i=r.types;i.includes("street_number")?n.streetNumber=r.long_name:i.includes("route")?n.route=r.long_name:i.includes("locality")?(n.city=r.long_name,n.locality=r.long_name):i.includes("administrative_area_level_2")?(n.administrativeAreaLevel2=r.short_name,n.administrativeAreaLevel2Long=r.long_name,n.city||(n.city=r.long_name,n.locality=r.long_name)):i.includes("administrative_area_level_1")?(n.state=r.long_name,n.administrativeAreaLevel1=r.short_name,n.administrativeAreaLevel1Long=r.long_name):i.includes("postal_code")?n.postalCode=r.long_name:i.includes("country")&&(n.country=r.long_name,n.countryCode=r.short_name,n.iso=r.short_name)}return!n.administrativeAreaLevel1&&n.administrativeAreaLevel2&&(n.state=n.administrativeAreaLevel2Long||n.administrativeAreaLevel2,n.administrativeAreaLevel1=n.administrativeAreaLevel2,n.administrativeAreaLevel1Long=n.administrativeAreaLevel2Long),n}};Jt.apiKey=null,Jt.service=null;Kn();ht();var _c=gs(Qo()),kc,Yr=typeof window!="undefined"&&typeof document!="undefined",Lc=Yr?history.pushState.bind(history):null,Dc=Yr?history.replaceState.bind(history):null;function Un(){kc=void 0}Yr&&(window.addEventListener("popstate",Un),window.addEventListener("hashchange",Un),history.pushState=function(...t){return Un(),Lc.apply(this,t)},history.replaceState=function(...t){return Un(),Dc.apply(this,t)});function Bc(){if(typeof window=="undefined"||typeof document=="undefined")return[];let t=De();return t!=null&&t.scripts?t.scripts.filter(e=>e.enabled):[]}function Mc(t,e){let n=t.position||"body-end",r="tagada-stepconfig-script-".concat(e);if(document.getElementById(r))return;let i=t.content.trim(),o=i.match(/^<script[^>]*>([\s\S]*)<\/script>$/i);if(o&&(i=o[1].trim()),!i)return;let s="(function() {\n try {\n // Script: "+t.name+"\n"+i+'\n } catch (error) {\n console.error("[TagadaPay] StepConfig script error:", error);\n }\n})();',a=document.createElement("script");switch(a.id=r,a.setAttribute("data-tagada-stepconfig-script","true"),a.setAttribute("data-script-name",t.name),a.textContent=s,n){case"head-start":document.head.firstChild?document.head.insertBefore(a,document.head.firstChild):document.head.appendChild(a);break;case"head-end":document.head.appendChild(a);break;case"body-start":document.body.firstChild?document.body.insertBefore(a,document.body.firstChild):document.body.appendChild(a);break;case"body-end":default:document.body.appendChild(a);break}}function es(){let t=Bc();t.length!==0&&t.forEach((e,n)=>{Mc(e,n)})}if(typeof window!="undefined"&&typeof document!="undefined"){let t=()=>{document.body?es():document.addEventListener("DOMContentLoaded",es,{once:!0})};"requestIdleCallback"in window?window.requestIdleCallback(t,{timeout:100}):setTimeout(t,0)}function ts(t={}){return new Dn(t)}ze();var qr="1.0.0";function ns(t){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get(t)}function Y(t,...e){t&&console.log("[TagadaTracker]",...e)}function rs(...t){console.warn("[TagadaTracker]",...t)}function Uc(t){if(!t.storeId||typeof t.storeId!="string")throw new Error("TagadaTracker: storeId is required and must be a non-empty string.");if(!t.accountId||typeof t.accountId!="string")throw new Error("TagadaTracker: accountId is required and must be a non-empty string.");if(!t.stepId||typeof t.stepId!="string")throw new Error("TagadaTracker: stepId is required and must be a non-empty string.");if(t.apiBaseUrl)try{new URL(t.apiBaseUrl)}catch(e){throw new Error('TagadaTracker: apiBaseUrl is not a valid URL: "'.concat(t.apiBaseUrl,'"'))}}async function Fc(t,e,n){let r;for(let i=0;i<=e;i++)try{return await t()}catch(o){if(r=o instanceof Error?o:new Error(String(o)),i<e){let s=Math.min(1e3*2**i,8e3);Y(n,"Retry ".concat(i+1,"/").concat(e," in ").concat(s,"ms...")),await new Promise(a=>setTimeout(a,s))}}throw r}var Zt=class{constructor(){this.config=null;this.client=null;this.initialized=!1;this.initializing=!1;this.unsubscribe=null;this.version=qr}async init(e){var r,i;if(this.initialized)return Y(e.debug||!1,"Already initialized \u2014 returning existing session."),this.getSession();if(this.initializing)return Y(e.debug||!1,"Initialization in progress \u2014 skipping duplicate call."),null;this.initializing=!0,this.config=O({debug:!1},e);let n=this.config.debug;try{Uc(this.config)}catch(o){this.initializing=!1;let s=o instanceof Error?o:new Error(String(o));if(this.config.onError)return this.config.onError(s),null;throw s}Y(n,"\u{1F680} Initializing external tracker v".concat(qr),{storeId:e.storeId,accountId:e.accountId,stepId:e.stepId,funnelId:e.funnelId});try{let o=ns("token");o&&(re(o),Y(n,"\u{1F511} Bootstrapped token from URL")),this.client=ts({debugMode:n,features:{funnel:{skipAutoInit:!0}},rawPluginConfig:{storeId:this.config.storeId,accountId:this.config.accountId},customApiConfig:this.config.apiBaseUrl?{apiConfig:{baseUrl:this.config.apiBaseUrl.trim()}}:void 0}),await this.waitForClientReady();let s=await Fc(()=>this.initializeFunnel(),2,n);Y(n,"\u2705 Session initialized:",s),this.initialized=!0;let a=this.getSession();return a&&((i=(r=this.config).onReady)==null||i.call(r,a)),a}catch(o){let s=o instanceof Error?o:new Error(String(o));if(Y(n,"\u274C Initialization failed:",s),this.config.onError)return this.config.onError(s),null;throw s}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("TagadaTracker: not initialized. Call init() first.");Y(this.config.debug,"\u{1F680} Navigating:",e);let n=e.autoRedirect!==!1;try{let r=await this.client.funnel.navigate({type:e.eventType,data:e.eventData||{}},{autoRedirect:!1});return r!=null&&r.url?(Y(this.config.debug,"\u2705 Navigation result:",r.url),n&&typeof window!="undefined"&&(window.location.href=e.returnUrl||r.url),{url:r.url}):null}catch(r){throw Y(this.config.debug,"\u274C Navigation failed:",r),r}}async trackEvent(e){if(!this.isReady()){rs("trackEvent called before init \u2014 event dropped:",e.name);return}Y(this.config.debug,"\u{1F4CA} Tracking event:",e.name,e.data);try{await this.client.funnel.navigate({type:e.name,data:e.data||{}},{autoRedirect:!1})}catch(n){Y(this.config.debug,"\u26A0\uFE0F Event tracking failed (non-critical):",e.name)}}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 reset(e){var i,o;if(!this.client||!this.config)throw new Error("TagadaTracker: not initialized. Call init() first.");Y(this.config.debug,"\u{1F504} Resetting to step:",e),this.config.stepId=e;let n=await this.initializeFunnel(),r=this.getSession();return r&&((o=(i=this.config).onReady)==null||o.call(i,r)),r}destroy(){var e,n;this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this.client&&((n=(e=this.client).destroy)==null||n.call(e)),this.client=null,this.config=null,this.initialized=!1,this.initializing=!1,Y(!1,"\u{1F5D1}\uFE0F Tracker destroyed")}async waitForClientReady(){if(this.client)return new Promise(e=>{var i;if((i=this.client)!=null&&i.state.isInitialized){e();return}let n=!1,r=setTimeout(()=>{var o;n||(n=!0,Y(((o=this.config)==null?void 0:o.debug)||!1,"\u23F1\uFE0F Client ready timeout \u2014 proceeding"),e())},1e4);this.unsubscribe=this.client.subscribe(()=>{var o;!n&&((o=this.client)!=null&&o.state.isInitialized)&&(n=!0,clearTimeout(r),e())})})}async initializeFunnel(){var s,a,l;if(!((s=this.client)!=null&&s.funnel))return null;let e=(a=this.client.state.auth.customer)==null?void 0:a.id,n=(l=this.client.state.auth.session)==null?void 0:l.sessionId;!e&&!n&&rs("No auth session available \u2014 funnel init may fail.");let r={customerId:e||"anon_placeholder",sessionId:n||"sess_placeholder"},i={id:this.config.storeId,accountId:this.config.accountId},o=this.config.stepId;return Y(this.config.debug,"\u{1F50D} Initializing funnel at step:",o),this.client.funnel.initialize(r,i,this.config.funnelId||ns("funnelId")||void 0,o)}},jr=new Zt;typeof window!="undefined"&&(window.TagadaTracker=jr);return ms(Gc);})();
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
- */
6
+ "use strict";var TagadaTrackerBundle=(()=>{var Ve=Object.defineProperty,jo=Object.defineProperties,zo=Object.getOwnPropertyDescriptor,$o=Object.getOwnPropertyDescriptors,Ho=Object.getOwnPropertyNames,gn=Object.getOwnPropertySymbols;var mn=Object.prototype.hasOwnProperty,qo=Object.prototype.propertyIsEnumerable;var ae=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Vo=t=>{throw TypeError(t)};var pn=(t,e,n)=>e in t?Ve(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,S=(t,e)=>{for(var n in e||(e={}))mn.call(e,n)&&pn(t,n,e[n]);if(gn)for(var n of gn(e))qo.call(e,n)&&pn(t,n,e[n]);return t},N=(t,e)=>jo(t,$o(e));var Y=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ke=(t,e)=>{for(var n in e)Ve(t,n,{get:e[n],enumerable:!0})},Ko=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ho(e))!mn.call(t,i)&&i!==n&&Ve(t,i,{get:()=>e[i],enumerable:!(o=zo(e,i))||o.enumerable});return t};var Wo=t=>Ko(Ve({},"__esModule",{value:!0}),t);var te=function(t,e){this[0]=t,this[1]=e},Rt=(t,e,n)=>{var o=(s,a,c,u)=>{try{var d=n[s](a),g=(a=d.value)instanceof te,y=d.done;Promise.resolve(g?a[0]:a).then(m=>g?o(s==="return"?s:"next",a[1]?{done:m.done,value:m.value}:m,c,u):c({value:m,done:y})).catch(m=>o("throw",m,c,u))}catch(m){u(m)}},i=s=>r[s]=a=>new Promise((c,u)=>o(s,a,c,u)),r={};return n=n.apply(t,e),r[ae("asyncIterator")]=()=>r,i("next"),i("throw"),i("return"),r},At=t=>{var e=t[ae("asyncIterator")],n=!1,o,i={};return e==null?(e=t[ae("iterator")](),o=r=>i[r]=s=>e[r](s)):(e=e.call(t),o=r=>i[r]=s=>{if(n){if(n=!1,r==="throw")throw s;return s}return n=!0,{done:!1,value:new te(new Promise(a=>{var c=e[r](s);c instanceof Object||Vo("Object expected"),a(c)}),1)}}),i[ae("iterator")]=()=>i,o("next"),"throw"in e?o("throw"):i.throw=r=>{throw r},"return"in e&&o("return"),i},hn=(t,e,n)=>(e=t[ae("asyncIterator")])?e.call(t):(t=t[ae("iterator")](),e={},n=(o,i)=>(i=t[o])&&(e[o]=r=>new Promise((s,a,c)=>(r=i.call(t,r),c=r.done,Promise.resolve(r.value).then(u=>s({value:u,done:c}),a)))),n("next"),n("return"),e);function wn(t){var o;if(typeof document=="undefined")return null;let n="; ".concat(document.cookie).split("; ".concat(t,"="));return n.length===2&&((o=n.pop())==null?void 0:o.split(";").shift())||null}function Cn(t="local"){let e=yn[t];if(!e)return console.warn("Unknown environment: ".concat(t,". Falling back to local.")),{environment:"local",apiConfig:yn.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")||wn("tgd_client_base_url")}catch(i){}return n?(console.log("[SDK] Using custom API base URL override: ".concat(n)),{environment:t,apiConfig:N(S({},e),{baseUrl:n})}):{environment:t,apiConfig:e}}function Te(){var i;if(console.log("[SDK] detectEnvironment() called"),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 r=localStorage.getItem("tgd_client_env")||wn("tgd_client_env");if(r&&(r==="production"||r==="development"||r==="local"))return console.log("[SDK] Using persisted environment override: ".concat(r)),r}catch(r){}let n=window.location.hostname,o=window.location.href;if(console.log('[SDK] detectEnvironment() - hostname: "'.concat(n,'"')),n==="localhost"||n.startsWith("127.")||n.startsWith("192.168.")||n.startsWith("10.")||n.includes(".local")||n===""||n==="0.0.0.0"||n.includes("ngrok-free.dev")||n.includes("ngrok-free.app")||n.includes("ngrok.io")||n.includes("ngrok.app")||n.includes(".loclx.io")){if(console.log("[SDK] detectEnvironment() - returning LOCAL"),typeof window!="undefined"&&((i=window==null?void 0:window.__TAGADA_ENV__)!=null&&i.TAGADA_ENVIRONMENT)){let r=window.__TAGADA_ENV__.TAGADA_ENVIRONMENT.toLowerCase();if(r==="production"||r==="development"||r==="local")return console.log("[SDK] Local override detected: ".concat(r)),r}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")||o.includes("?env=dev")||o.includes("?dev=true")||o.includes("#dev")?"development":(console.warn("[SDK] Unknown domain: ".concat(n,", defaulting to production")),"production")}function Ee(t=!1){return Te()!=="local"?!1:t&&typeof window!="undefined"?!window.location.hostname.includes(".cdn."):!0}var yn,We=Y(()=>{"use strict";yn={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"}}}}});var Ge,Sn=Y(()=>{"use strict";Ge=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,o){let i=new URLSearchParams;n&&i.append("currentUrl",n),o&&i.append("includeDebugData","true");let r="/api/v1/funnel/session/".concat(e).concat(i.toString()?"?".concat(i):"");return this.apiClient.get(r)}}});var le,kt=Y(()=>{"use strict";le=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(o){console.error("Error in event listener:",o)}})}clear(){this.listeners.clear()}}});function L(t){if(typeof window!="undefined")try{let n=localStorage.getItem(Je)!==t;localStorage.setItem(Je,t),n&&window.dispatchEvent(new Event("storage"))}catch(e){console.error("Failed to save token to localStorage:",e)}}function xe(){if(typeof window!="undefined")try{return localStorage.getItem(Je)}catch(t){return console.error("Failed to get token from localStorage:",t),null}return null}function ce(){if(typeof window!="undefined")try{localStorage.removeItem(Je)}catch(t){console.error("Failed to clear token from localStorage:",t)}}var Je,ue=Y(()=>{"use strict";Je="cms_token"});function bn(t){typeof document!="undefined"&&(document.cookie="".concat(Pt,"=").concat(t,"; path=/; max-age=2592000; SameSite=Lax"))}function In(){if(typeof document=="undefined")return;let t=document.cookie.split("; ").find(e=>e.startsWith("".concat(Pt,"=")));return t?t.split("=")[1]:void 0}function Xe(){typeof document!="undefined"&&(document.cookie="".concat(Pt,"=; path=/; max-age=0"))}var Pt,Ye=Y(()=>{"use strict";Pt="tgd-funnel-session-id"});function de(t){if(typeof window=="undefined")return null;try{return localStorage.getItem(t)}catch(e){return null}}function Ze(t,e){if(typeof window!="undefined")try{localStorage.setItem(t,e)}catch(n){}}function ve(t){var o;if(typeof document=="undefined")return null;let n=document.cookie.split(";").find(i=>i.trim().startsWith("".concat(t,"=")));return n?(o=n.split("=")[1])==null?void 0:o.trim():null}function _t(t,e,n=86400){if(typeof document!="undefined"){if(t==="tgd_draft"||t==="tgd-draft"){console.warn("\u{1F6E1}\uFE0F [SDK] Blocked attempt to set ".concat(t," as cookie - this should only be in localStorage"));return}document.cookie="".concat(t,"=").concat(e,"; path=/; max-age=").concat(n)}}function En(t){typeof document!="undefined"&&(document.cookie="".concat(t,"=; path=/; max-age=0"))}function ne(){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 C=de(x.DRAFT);C!==null&&(e=C==="true")}let o,i=t.get("funnelTracking");if(i!==null)o=i!=="false";else{let C=de(x.FUNNEL_TRACKING)||ve(x.FUNNEL_TRACKING);C!==null&&(o=C!=="false")}let r=t.get("token")||xe()||null,s=t.get("funnelSessionId")||null,a=t.get("funnelId")||null,c,u=t.get("funnelEnv");u&&(u==="staging"||u==="production")&&(c=u);let d=t.get("forceReset")==="true",g,y=t.get("tagadaClientEnv");if(y&&(y==="production"||y==="development"||y==="local"))g=y;else{let C=de(x.CLIENT_ENV)||ve(x.CLIENT_ENV);C&&(C==="production"||C==="development"||C==="local")&&(g=C)}let m,f=t.get("tagadaClientBaseUrl");if(f)m=f;else{let C=de(x.CLIENT_BASE_URL)||ve(x.CLIENT_BASE_URL);C&&(m=C)}let h,p=t.get("currency");if(p)h=p;else{let C=de(x.CURRENCY)||ve(x.CURRENCY);C&&(h=C)}let b,E=t.get("locale");if(E)b=E;else{let C=de(x.LOCALE)||ve(x.LOCALE);C&&(b=C)}return{forceReset:d,token:r,funnelSessionId:s,funnelId:a,draft:e,funnelTracking:o,funnelEnv:c,tagadaClientEnv:g,tagadaClientBaseUrl:m,currency:h,locale:b}}function Re(){var e;return(e=ne().draft)!=null?e:!1}function Ft(t){if(typeof window!="undefined")if(t)Ze(x.DRAFT,"true");else try{localStorage.removeItem(x.DRAFT)}catch(e){}}function xn(t=!1){let e=null;typeof window!="undefined"&&(e=new URLSearchParams(window.location.search).get("token"));let n=ne(),o=n.forceReset||!1;if(!o&&!n.token)return Tn(),!1;t&&(console.log("[SDK] Detected params:",n),console.log("[SDK] URL token (direct read):",e?e.substring(0,20)+"...":"none")),o&&(t&&console.log("[SDK] Force reset: Clearing all stored state"),ce(),Xe(),typeof window!="undefined"&&window.localStorage&&Object.keys(localStorage).forEach(s=>{(s.startsWith("tagadapay_")||s.startsWith("tgd_"))&&(t&&console.log("[SDK] Clearing localStorage: ".concat(s)),localStorage.removeItem(s))}));let i=e||n.token;return i!=null?(t&&console.log("[SDK] Setting token from URL:",i.substring(0,20)+"..."),i===""||i==="null"?ce():(L(i),t&&console.log("[SDK] \u2705 Token set in localStorage immediately after clear"))):o&&(t&&console.log("[SDK] Force reset mode (no token in URL)"),ce()),Tn(),n.funnelSessionId&&t&&console.log("[SDK] Using funnelSessionId from URL:",n.funnelSessionId),o}function Tn(){if(typeof window=="undefined")return;let t=new URLSearchParams(window.location.search),e=t.get("draft");e!==null&&Ft(e==="true");let n=t.get("funnelTracking");n!==null&&Go(n!=="false");let o=t.get("tagadaClientEnv");o&&(o==="production"||o==="development"||o==="local")&&Jo(o);let i=t.get("tagadaClientBaseUrl");i&&Xo(i)}function Go(t){if(typeof window=="undefined")return;let e=t?"true":"false";Ze(x.FUNNEL_TRACKING,e),_t(x.FUNNEL_TRACKING,e,86400)}function Jo(t){typeof window!="undefined"&&(Ze(x.CLIENT_ENV,t),_t(x.CLIENT_ENV,t,86400))}function vn(){if(typeof window!="undefined")try{localStorage.removeItem(x.CLIENT_ENV),En(x.CLIENT_ENV)}catch(t){}}function Xo(t){typeof window!="undefined"&&(Ze(x.CLIENT_BASE_URL,t),_t(x.CLIENT_BASE_URL,t,86400))}function Rn(){if(typeof window!="undefined")try{localStorage.removeItem(x.CLIENT_BASE_URL),En(x.CLIENT_BASE_URL)}catch(t){}}function An(){var e;return(e=ne().funnelTracking)!=null?e:!0}var x,Qe=Y(()=>{"use strict";ue();Ye();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",CURRENCY:"tgd_currency",LOCALE:"tgd_locale"}});var kn={};Ke(kn,{injectPreviewModeIndicator:()=>Zo,isIndicatorInjected:()=>ei,removePreviewModeIndicator:()=>Qo});function Nt(t){if(typeof window=="undefined"||typeof document=="undefined")return;let e=window.location.hostname,n=e.split("."),o=["",e,"."+e];for(let a=1;a<n.length;a++){let c=n.slice(a).join(".");o.push(c),o.push("."+c)}let i=window.location.pathname.split("/").filter(a=>a),r=["/"],s="";i.forEach(a=>{s+="/"+a,r.push(s)}),o.forEach(a=>{r.forEach(c=>{let u="".concat(t,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(c),d=a?"; domain=".concat(a):"";document.cookie=u+d,document.cookie=u+d+"; secure",document.cookie=u+d+"; SameSite=None; secure",document.cookie=u+d+"; SameSite=Lax",document.cookie=u+d+"; SameSite=Strict"})})}function Yo(){if(typeof window=="undefined"||!confirm("\u{1F6AA} Leave Preview Mode?\n\nThis will clear ALL cookies and localStorage (including Shopify session, cart, and preview settings) and reload the page.\n\nAre you sure?"))return;let e=new URL(window.location.href);["draft","funnelEnv","funnelTracking","tagadaClientEnv","tagadaClientBaseUrl","forceReset","funnelId","funnelSessionId","token"].forEach(r=>e.searchParams.delete(r)),window.history.replaceState({},"",e.href);try{let r=Object.getOwnPropertyDescriptor(Document.prototype,"cookie")||Object.getOwnPropertyDescriptor(HTMLDocument.prototype,"cookie");r&&r.set&&Object.defineProperty(document,"cookie",{configurable:!0,enumerable:!0,get:function(){return r.get?r.get.call(this):""},set:function(s){if(typeof s=="string"){let a=s.toLowerCase();if(a.includes("tgd_draft")||a.includes("tgd-draft")||a.includes("tgd.draft")||a.includes("tgddraft")){if(a.includes("max-age=0")||a.includes("expires=thu, 01 jan 1970")){r.set&&r.set.call(this,s);return}console.warn("\u{1F6E1}\uFE0F [TagadaPay] BLOCKED: tgd_draft should never be a cookie");return}}r.set&&r.set.call(this,s)}})}catch(r){console.warn("[TagadaPay] Could not install cookie blocker:",r)}if(window.localStorage)try{localStorage.removeItem("tgd_draft"),localStorage.removeItem("tgd_funnel_tracking"),localStorage.removeItem("tgd_client_env"),localStorage.removeItem("tgd_client_base_url"),localStorage.removeItem("cms_token")}catch(r){console.warn("[TagadaPay] Failed to clear some localStorage keys:",r)}ce(),Xe(),vn(),Rn(),window.localStorage&&localStorage.clear(),window.sessionStorage&&sessionStorage.clear(),["tgd-funnel-session-id","tgd_draft","tgd_funnel_tracking","tgd_client_env","tgd_client_base_url","cms_token","tagadapay_session"].forEach(r=>Nt(r)),["tgd-draft","tgd_draft","tgd.draft","tgddraft"].forEach(r=>Nt(r)),document.cookie&&document.cookie.split(";").forEach(s=>{let a=s.split("=")[0].trim();if(!a)return;let c=window.location.hostname,u=c.split("."),d=["",c,"."+c];for(let f=1;f<u.length;f++){let h=u.slice(f).join(".");d.push(h),d.push("."+h)}let g=window.location.pathname.split("/").filter(f=>f),y=["/"],m="";g.forEach(f=>{m+="/"+f,y.push(m)}),d.forEach(f=>{y.forEach(h=>{let p="".concat(a,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(h),b=f?"; domain=".concat(f):"";document.cookie=p+b,document.cookie=p+b+"; secure",document.cookie=p+b+"; SameSite=None; secure",document.cookie=p+b+"; SameSite=Lax",document.cookie=p+b+"; SameSite=Strict",document.cookie=p+b+"; secure; SameSite=None",document.cookie=p+b+"; secure; SameSite=Lax",document.cookie=p+b+"; secure; SameSite=Strict"})})}),setTimeout(()=>{window.localStorage&&localStorage.length>0&&localStorage.clear(),Nt("tgd_draft"),typeof window.stop=="function"&&window.stop(),window.location.replace(e.href)},10)}function Zo(){if(et||typeof window=="undefined"||typeof document=="undefined")return;let t=ne(),e=Re(),n=!An(),o=!!(t.tagadaClientEnv||t.tagadaClientBaseUrl);if(!e&&!n&&!o)return;let i=document.createElement("div");i.id="tgd-preview-indicator",i.style.cssText='\n position: fixed;\n bottom: 16px;\n right: 16px;\n z-index: 999999;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n ';let r=document.createElement("div");r.style.cssText="\n background: ".concat(e?"#ff9500":"#007aff",";\n color: white;\n padding: 8px 12px;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 600;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n "),r.innerHTML='\n <span style="font-size: 16px;">\u{1F50D}</span>\n <span>'.concat(e?"Preview Mode":"Dev Mode","</span>\n ");let s=document.createElement("div");s.style.cssText="\n position: absolute;\n bottom: calc(100% + 8px);\n right: 0;\n background: white;\n border: 1px solid #e5e5e5;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 12px;\n min-width: 250px;\n font-size: 12px;\n line-height: 1.5;\n display: none;\n ",s.style.paddingTop="20px";let a=document.createElement("div");a.style.cssText="\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n height: 8px;\n display: none;\n ";let c='<div style="margin-bottom: 8px; font-weight: 600; color: #1d1d1f;">Current Environment</div>';c+='<div style="display: flex; flex-direction: column; gap: 6px;">',e&&(c+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Draft Mode:</span>\n <span style="color: #ff9500; font-weight: 600;">ON</span>\n </div>\n '),n&&(c+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Tracking:</span>\n <span style="color: #ff3b30; font-weight: 600;">DISABLED</span>\n </div>\n '),t.funnelEnv&&(c+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Funnel Env:</span>\n <span style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 11px;">\n '.concat(t.funnelEnv,"\n </span>\n </div>\n ")),t.tagadaClientEnv&&(c+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>API Env:</span>\n <span style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 11px;">\n '.concat(t.tagadaClientEnv,"\n </span>\n </div>\n ")),t.tagadaClientBaseUrl&&(c+='\n <div style="color: #86868b;">\n <div style="margin-bottom: 4px;">API URL:</div>\n <div style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 10px; word-break: break-all; background: #f5f5f7; padding: 4px 6px; border-radius: 4px;">\n '.concat(t.tagadaClientBaseUrl,"\n </div>\n </div>\n ")),t.funnelId&&(c+='\n <div style="color: #86868b; margin-top: 4px; padding-top: 8px; border-top: 1px solid #e5e5e5;">\n <div style="margin-bottom: 4px;">Funnel ID:</div>\n <div style="color: #1d1d1f; font-family: monospace; font-size: 10px; word-break: break-all; background: #f5f5f7; padding: 4px 6px; border-radius: 4px;">\n '.concat(t.funnelId,"\n </div>\n </div>\n ")),c+="</div>",c+='\n <div style="margin-top: 12px; padding-top: 8px; border-top: 1px solid #e5e5e5; font-size: 11px; color: #86868b; text-align: center;">\n Add <code style="background: #f5f5f7; padding: 2px 4px; border-radius: 3px;">?forceReset=true</code> to reset\n </div>\n ',c+='\n <div style="margin-top: 12px; padding-top: 8px; border-top: 1px solid #e5e5e5;">\n <button id="tgd-leave-preview" style="\n background: #ff3b30;\n color: white;\n border: none;\n border-radius: 6px;\n padding: 10px 12px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: opacity 0.2s;\n width: 100%;\n ">\n \u{1F6AA} Leave Preview Mode\n </button>\n </div>\n ',s.innerHTML=c;let u=!1,d=()=>{u=!0,s.style.display="block",a.style.display="block"},g=()=>{u=!1,setTimeout(()=>{u||(s.style.display="none",a.style.display="none")},100)};r.addEventListener("mouseenter",d),r.addEventListener("mouseleave",g),a.addEventListener("mouseenter",d),a.addEventListener("mouseleave",g),s.addEventListener("mouseenter",d),s.addEventListener("mouseleave",g);let y=s.querySelector("#tgd-leave-preview");y&&(y.addEventListener("mouseenter",()=>{y.style.opacity="0.8"}),y.addEventListener("mouseleave",()=>{y.style.opacity="1"}),y.addEventListener("click",m=>{m.stopPropagation(),Yo()})),i.appendChild(r),i.appendChild(a),i.appendChild(s),document.body.appendChild(i),fe=i,et=!0}function Qo(){fe&&fe.parentNode&&(fe.parentNode.removeChild(fe),fe=null,et=!1)}function ei(){return et}var fe,et,Pn=Y(()=>{"use strict";Qe();ue();Ye();fe=null,et=!1});var zn={};Ke(zn,{FunnelClient:()=>ke,TrackingProvider:()=>On,findMethod:()=>Un,getAssignedOrderBumpOfferIds:()=>ui,getAssignedPaymentFlowId:()=>Bn,getAssignedPixels:()=>ci,getAssignedResources:()=>jn,getAssignedScripts:()=>li,getAssignedStaticResources:()=>ai,getAssignedStepConfig:()=>V,getAssignedUpsellOfferIds:()=>di,getEnabledMethods:()=>Dn,getExpressMethods:()=>Ln,getExpressMethodsByProcessor:()=>ti,getLocalFunnelConfig:()=>Mn,isMethodEnabled:()=>ni,loadLocalFunnelConfig:()=>ri});function Dn(t){return t?Object.values(t).filter(e=>e.enabled):[]}function Ln(t){return Dn(t).filter(e=>e.express)}function ti(t){let e={};for(let n of Ln(t)){let o=n.processorId||n.integrationId||n.provider;e[o]||(e[o]=[]),e[o].push(n)}return e}function Un(t,e){if(t){for(let n of Object.values(t))if(n.method===e&&n.enabled)return n}}function ni(t,e){return!!Un(t,e)}function oi(){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 tt(){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 Ae(){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}}}function Fn(t){if(!t||typeof t!="string")return;let e=t.trim();if(!e)return;let n=[()=>JSON.parse(e),()=>JSON.parse(decodeURIComponent(e)),()=>JSON.parse(decodeURIComponent(decodeURIComponent(e)))];for(let o of n)try{let i=o();if(i&&typeof i=="object")return i}catch(i){}typeof console!="undefined"&&console.warn("[SDK] Failed to parse stepConfig:",e.substring(0,100))}function ii(){if(typeof window=="undefined")return!1;let t=window.location.hostname;return t==="localhost"||t==="127.0.0.1"||t.endsWith(".localhost")&&!t.includes(".cdn.")}async function ri(){if(!ii())return null;if(U!==void 0)return U;if(Ot)return await new Promise(t=>setTimeout(t,100)),U!=null?U:null;Ot=!0;try{console.log("\u{1F6E0}\uFE0F [SDK] Loading local funnel config from /config/funnel.local.json...");let t=await fetch("/config/funnel.local.json");if(!t.ok)return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not found (this is fine in production)"),U=null,null;let e=await t.json();return console.log("\u{1F6E0}\uFE0F [SDK] \u2705 Loaded local funnel config:",e),U=e,e}catch(t){return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not available:",t),U=null,null}finally{Ot=!1}}function Mn(){return U!=null?U:null}function si(t){let e=S(S({},t.staticResources),t.resources);return{payment:t.paymentFlowId?{paymentFlowId:t.paymentFlowId}:void 0,resources:Object.keys(e).length>0?e:void 0,scripts:t.scripts,pixels:t.pixels,orderBumps:t.orderBumps,upsellOffers:t.upsellOffers}}function V(){if(typeof window=="undefined")return;let t=Mn();if(t)return console.log("\u{1F6E0}\uFE0F [SDK] Using local funnel.local.json (overrides injected)"),si(t);let e=window.__TGD_STEP_CONFIG__;if(e){let n=Fn(e);if(n)return n}if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-step-config"]'),o=n==null?void 0:n.getAttribute("content");if(o){let i=Fn(o);if(i)return i}}}function Bn(){var n,o;let t=V(),e=(n=t==null?void 0:t.paymentSetupConfig)==null?void 0:n.card;if(e!=null&&e.paymentFlowId)return e.paymentFlowId;if((o=t==null?void 0:t.payment)!=null&&o.paymentFlowId)return t.payment.paymentFlowId;if(typeof window!="undefined"){if(window.__TGD_PAYMENT_FLOW_ID__)return window.__TGD_PAYMENT_FLOW_ID__;if(typeof document!="undefined"){let i=document.querySelector('meta[name="x-payment-flow-id"]');return(i==null?void 0:i.getAttribute("content"))||void 0}}}function jn(){let t=V(),e=t==null?void 0:t.staticResources,n=t==null?void 0:t.resources;if(!(!e&&!n))return S(S({},e),n)}function ai(){return jn()}function li(t){let e=V();if(!(e!=null&&e.scripts))return;let n=e.scripts.filter(o=>o.enabled);return t&&(n=n.filter(o=>o.position===t||!o.position&&t==="head-end")),n.length>0?n:void 0}function Nn(t){let e="containerId"in t?"containerId":"pixelId",n=t[e];if(!n||!n.includes(";")&&!n.includes(","))return[t];let o=n.split(/[;,]/).map(i=>i.trim()).filter(i=>i.length>0);return o.length<=1?[t]:o.map(i=>N(S({},t),{[e]:i}))}function ci(){let t=V(),e=t==null?void 0:t.pixels;if(!e||typeof e!="object")return;let n={};for(let[o,i]of Object.entries(e))i&&(Array.isArray(i)?n[o]=i.flatMap(r=>Nn(r)):typeof i=="object"&&(n[o]=Nn(i)));return Object.keys(n).length>0?n:void 0}function ui(){let t=V();if(t!=null&&t.orderBumps&&t.orderBumps.mode==="custom")return t.orderBumps.enabledOfferIds}function di(){let t=V();if(t!=null&&t.upsellOffers&&t.upsellOffers.mode==="custom")return t.upsellOffers.enabledUpsellIds}var _n,On,U,Ot,ke,nt=Y(()=>{"use strict";We();Sn();kt();Qe();Ye();_n=()=>Promise.resolve().then(()=>(Pn(),kn)).then(t=>t.injectPreviewModeIndicator()),On=(r=>(r.FACEBOOK="facebook",r.TIKTOK="tiktok",r.SNAPCHAT="snapchat",r.PINTEREST="pinterest",r.GTM="gtm",r))(On||{});Ot=!1;ke=class{constructor(e){this.eventDispatcher=new le;this.isInitializing=!1;this.initializationAttempted=!1;this.config=e,this.resource=new Ge(e.apiClient),this.state={context:null,isLoading:!1,isInitialized:!1,isNavigating:!1,error:null,sessionError:null}}setConfig(e){this.config=S(S({},this.config),e)}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}getDetectedSessionId(){var o;if((o=this.state.context)!=null&&o.sessionId)return this.state.context.sessionId;if(typeof window=="undefined")return null;let n=new URLSearchParams(window.location.search).get("funnelSessionId");return n||In()||null}resetInitialization(){this.initializationAttempted=!1,this.isInitializing=!1,this.updateState({context:null,isInitialized:!1})}async autoInitialize(e,n,o){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=this.getDetectedSessionId(),a=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||o,c=oi(),u=tt(),d=Ae(),g=ne(),y=this.config.funnelId||c||a,m=this.config.stepId||d,f=typeof window!="undefined"?new URLSearchParams(window.location.search):null,h=f==null?void 0:f.get("funnelEnv");this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-initializing...",{existingSessionId:i,effectiveFunnelId:y,funnelVariantId:u,funnelStepId:m,draft:g.draft,funnelTracking:g.funnelTracking,funnelEnv:h,tagadaClientEnv:g.tagadaClientEnv,tagadaClientBaseUrl:g.tagadaClientBaseUrl,source:{funnelId:this.config.funnelId?"config":c?"injected":a?"url/prop":"none",stepId:this.config.stepId?"config":d?"injected":"none"}});let p=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:y,existingSessionId:i||void 0,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:u,funnelStepId:m,draft:g.draft,funnelTracking:g.funnelTracking,funnelEnv:h||void 0,tagadaClientEnv:g.tagadaClientEnv,tagadaClientBaseUrl:g.tagadaClientBaseUrl,currency:g.currency,locale:g.locale});if(p.success&&p.context){let b=this.enrichContext(p.context);return this.handleSessionSuccess(b),_n(),b}else throw new Error(p.error||"Failed to initialize funnel session")}catch(i){let r=i instanceof Error?i:new Error(String(i));throw this.updateState({error:r,isLoading:!1}),this.config.debugMode&&console.error("\u274C [FunnelClient] Init failed:",r),r}finally{this.isInitializing=!1}}async initialize(e,n,o,i){this.updateState({isLoading:!0,error:null});try{let r=tt(),s=Ae();this.config.debugMode&&(r&&console.log("\u{1F3AF} [FunnelClient] Detected A/B test variant:",r),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:o,entryStepId:i,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:r,funnelStepId:s});if(a.success&&a.context){let c=this.enrichContext(a.context);return this.handleSessionSuccess(c),_n(),c}else throw new Error(a.error||"Failed to initialize")}catch(r){let s=r instanceof Error?r:new Error(String(r));throw this.updateState({error:s,isLoading:!1}),s}}async navigate(e,n){var o,i,r,s,a,c;if(n!=null&&n.waitForSession&&!((o=this.state.context)!=null&&o.sessionId)){this.config.debugMode&&console.log("\u23F3 [FunnelClient] Waiting for session before navigation...");let u=5e3,d=Date.now();for(;!((i=this.state.context)!=null&&i.sessionId)&&Date.now()-d<u;)await new Promise(g=>setTimeout(g,100));(r=this.state.context)!=null&&r.sessionId&&this.config.debugMode&&console.log("\u2705 [FunnelClient] Session ready, proceeding with navigation")}if(!((s=this.state.context)!=null&&s.sessionId))throw new Error("No active session");this.updateState({isNavigating:!0,isLoading:!0});try{let u=tt(),d=Ae(),g=typeof window!="undefined"?window.location.href:void 0;!d&&this.config.stepId&&(d=this.config.stepId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using stepId from config (no injection):",d)),!u&&this.config.variantId&&(u=this.config.variantId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using variantId from config (no injection):",u)),this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Sending to backend:",{sessionId:this.state.context.sessionId,currentUrl:g,funnelStepId:d||"(not found)",funnelVariantId:u||"(not found)",hasInjectedStepId:!!Ae(),hasInjectedVariantId:!!tt(),usedConfigFallback:!Ae()&&!!this.config.stepId,customerTags:(n==null?void 0:n.customerTags)||"(none)",deviceId:(n==null?void 0:n.deviceId)||"(none)"});let y=(n==null?void 0:n.fireAndForget)||!1,m=await this.resource.navigate({sessionId:this.state.context.sessionId,event:e,currentUrl:g,funnelStepId:d,funnelVariantId:u,fireAndForget:y,customerTags:n==null?void 0:n.customerTags,deviceId:n==null?void 0:n.deviceId});if(!m.success||!m.result)throw new Error(m.error||"Navigation failed");let f=m.result;if(f.queued)return this.updateState({isNavigating:!1,isLoading:!1}),f.sessionId&&f.sessionId!==((a=this.state.context)==null?void 0:a.sessionId)&&(this.config.debugMode&&console.log("\u{1F525} [FunnelClient] Session ID updated: ".concat((c=this.state.context)==null?void 0:c.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 h=(n==null?void 0:n.autoRedirect)!==void 0?n.autoRedirect:this.config.autoRedirect!==!1;return this.updateState({isNavigating:!1,isLoading:!1}),h&&(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(u){let d=u instanceof Error?u:new Error(String(u));throw this.updateState({error:d,isNavigating:!1,isLoading:!1}),d}}async goToStep(e,n){return this.navigate({type:"direct_navigation",data:{targetStepId:e}},n)}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 o=this.enrichContext(n.context);return this.updateState({context:o,sessionError:null}),o}}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 o=await this.resource.updateContext(this.state.context.sessionId,{contextUpdates:e});if(o.success)await this.refreshSession();else throw new Error(o.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=S(S({},this.state),e),this.eventDispatcher.notify(this.state)}handleSessionSuccess(e){bn(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)||Te())!=="local")return e;let o=((a=this.config.pluginConfig)==null?void 0:a.staticResources)||{};if(Object.keys(o).length===0)return e;let i=e.static||{};return Object.keys(o).every(c=>i[c]===o[c])&&Object.keys(i).length===Object.keys(o).length?e:N(S({},e),{static:S(S({},o),i)})}}});var Yr={};Ke(Yr,{TRACKER_VERSION:()=>ln,TagadaExternalTracker:()=>xt,TagadaTracker:()=>Mo});We();nt();function Pe(t,e){return function(){return t.apply(e,arguments)}}var{toString:fi}=Object.prototype,{getPrototypeOf:Lt}=Object,{iterator:it,toStringTag:Hn}=Symbol,rt=(t=>e=>{let n=fi.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),M=t=>(t=t.toLowerCase(),e=>rt(e)===t),st=t=>e=>typeof e===t,{isArray:pe}=Array,ge=st("undefined");function _e(t){return t!==null&&!ge(t)&&t.constructor!==null&&!ge(t.constructor)&&O(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}var qn=M("ArrayBuffer");function gi(t){let e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&qn(t.buffer),e}var pi=st("string"),O=st("function"),Vn=st("number"),Fe=t=>t!==null&&typeof t=="object",mi=t=>t===!0||t===!1,ot=t=>{if(rt(t)!=="object")return!1;let e=Lt(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Hn in t)&&!(it in t)},hi=t=>{if(!Fe(t)||_e(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(e){return!1}},yi=M("Date"),wi=M("File"),Ci=M("Blob"),Si=M("FileList"),bi=t=>Fe(t)&&O(t.pipe),Ii=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||O(t.append)&&((e=rt(t))==="formdata"||e==="object"&&O(t.toString)&&t.toString()==="[object FormData]"))},Ti=M("URLSearchParams"),[Ei,xi,vi,Ri]=["ReadableStream","Request","Response","Headers"].map(M),Ai=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ne(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t=="undefined")return;let o,i;if(typeof t!="object"&&(t=[t]),pe(t))for(o=0,i=t.length;o<i;o++)e.call(null,t[o],o,t);else{if(_e(t))return;let r=n?Object.getOwnPropertyNames(t):Object.keys(t),s=r.length,a;for(o=0;o<s;o++)a=r[o],e.call(null,t[a],a,t)}}function Kn(t,e){if(_e(t))return null;e=e.toLowerCase();let n=Object.keys(t),o=n.length,i;for(;o-- >0;)if(i=n[o],e===i.toLowerCase())return i;return null}var oe=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,Wn=t=>!ge(t)&&t!==oe;function Dt(){let{caseless:t,skipUndefined:e}=Wn(this)&&this||{},n={},o=(i,r)=>{let s=t&&Kn(n,r)||r;ot(n[s])&&ot(i)?n[s]=Dt(n[s],i):ot(i)?n[s]=Dt({},i):pe(i)?n[s]=i.slice():(!e||!ge(i))&&(n[s]=i)};for(let i=0,r=arguments.length;i<r;i++)arguments[i]&&Ne(arguments[i],o);return n}var ki=(t,e,n,{allOwnKeys:o}={})=>(Ne(e,(i,r)=>{n&&O(i)?t[r]=Pe(i,n):t[r]=i},{allOwnKeys:o}),t),Pi=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),_i=(t,e,n,o)=>{t.prototype=Object.create(e.prototype,o),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},Fi=(t,e,n,o)=>{let i,r,s,a={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),r=i.length;r-- >0;)s=i[r],(!o||o(s,t,e))&&!a[s]&&(e[s]=t[s],a[s]=!0);t=n!==!1&&Lt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Ni=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;let o=t.indexOf(e,n);return o!==-1&&o===n},Oi=t=>{if(!t)return null;if(pe(t))return t;let e=t.length;if(!Vn(e))return null;let n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},Di=(t=>e=>t&&e instanceof t)(typeof Uint8Array!="undefined"&&Lt(Uint8Array)),Li=(t,e)=>{let o=(t&&t[it]).call(t),i;for(;(i=o.next())&&!i.done;){let r=i.value;e.call(t,r[0],r[1])}},Ui=(t,e)=>{let n,o=[];for(;(n=t.exec(e))!==null;)o.push(n);return o},Mi=M("HTMLFormElement"),Bi=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,o,i){return o.toUpperCase()+i}),$n=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),ji=M("RegExp"),Gn=(t,e)=>{let n=Object.getOwnPropertyDescriptors(t),o={};Ne(n,(i,r)=>{let s;(s=e(i,r,t))!==!1&&(o[r]=s||i)}),Object.defineProperties(t,o)},zi=t=>{Gn(t,(e,n)=>{if(O(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;let o=t[n];if(O(o)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},$i=(t,e)=>{let n={},o=i=>{i.forEach(r=>{n[r]=!0})};return pe(t)?o(t):o(String(t).split(e)),n},Hi=()=>{},qi=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Vi(t){return!!(t&&O(t.append)&&t[Hn]==="FormData"&&t[it])}var Ki=t=>{let e=new Array(10),n=(o,i)=>{if(Fe(o)){if(e.indexOf(o)>=0)return;if(_e(o))return o;if(!("toJSON"in o)){e[i]=o;let r=pe(o)?[]:{};return Ne(o,(s,a)=>{let c=n(s,i+1);!ge(c)&&(r[a]=c)}),e[i]=void 0,r}}return o};return n(t,0)},Wi=M("AsyncFunction"),Gi=t=>t&&(Fe(t)||O(t))&&O(t.then)&&O(t.catch),Jn=((t,e)=>t?setImmediate:e?((n,o)=>(oe.addEventListener("message",({source:i,data:r})=>{i===oe&&r===n&&o.length&&o.shift()()},!1),i=>{o.push(i),oe.postMessage(n,"*")}))("axios@".concat(Math.random()),[]):n=>setTimeout(n))(typeof setImmediate=="function",O(oe.postMessage)),Ji=typeof queueMicrotask!="undefined"?queueMicrotask.bind(oe):typeof process!="undefined"&&process.nextTick||Jn,Xi=t=>t!=null&&O(t[it]),l={isArray:pe,isArrayBuffer:qn,isBuffer:_e,isFormData:Ii,isArrayBufferView:gi,isString:pi,isNumber:Vn,isBoolean:mi,isObject:Fe,isPlainObject:ot,isEmptyObject:hi,isReadableStream:Ei,isRequest:xi,isResponse:vi,isHeaders:Ri,isUndefined:ge,isDate:yi,isFile:wi,isBlob:Ci,isRegExp:ji,isFunction:O,isStream:bi,isURLSearchParams:Ti,isTypedArray:Di,isFileList:Si,forEach:Ne,merge:Dt,extend:ki,trim:Ai,stripBOM:Pi,inherits:_i,toFlatObject:Fi,kindOf:rt,kindOfTest:M,endsWith:Ni,toArray:Oi,forEachEntry:Li,matchAll:Ui,isHTMLForm:Mi,hasOwnProperty:$n,hasOwnProp:$n,reduceDescriptors:Gn,freezeMethods:zi,toObjectSet:$i,toCamelCase:Bi,noop:Hi,toFiniteNumber:qi,findKey:Kn,global:oe,isContextDefined:Wn,isSpecCompliantForm:Vi,toJSONObject:Ki,isAsyncFn:Wi,isThenable:Gi,setImmediate:Jn,asap:Ji,isIterable:Xi};function me(t,e,n,o,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),o&&(this.request=o),i&&(this.response=i,this.status=i.status?i.status:null)}l.inherits(me,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 Xn=me.prototype,Yn={};["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=>{Yn[t]={value:t}});Object.defineProperties(me,Yn);Object.defineProperty(Xn,"isAxiosError",{value:!0});me.from=(t,e,n,o,i,r)=>{let s=Object.create(Xn);l.toFlatObject(t,s,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 me.call(s,a,c,n,o,i),t&&s.cause==null&&Object.defineProperty(s,"cause",{value:t,configurable:!0}),s.name=t&&t.name||"Error",r&&Object.assign(s,r),s};var w=me;var at=null;function Ut(t){return l.isPlainObject(t)||l.isArray(t)}function Qn(t){return l.endsWith(t,"[]")?t.slice(0,-2):t}function Zn(t,e,n){return t?t.concat(e).map(function(i,r){return i=Qn(i),!n&&r?"["+i+"]":i}).join(n?".":""):e}function Yi(t){return l.isArray(t)&&!t.some(Ut)}var Zi=l.toFlatObject(l,{},null,function(e){return/^is[A-Z]/.test(e)});function Qi(t,e,n){if(!l.isObject(t))throw new TypeError("target must be an object");e=e||new(at||FormData),n=l.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(h,p){return!l.isUndefined(p[h])});let o=n.metaTokens,i=n.visitor||d,r=n.dots,s=n.indexes,c=(n.Blob||typeof Blob!="undefined"&&Blob)&&l.isSpecCompliantForm(e);if(!l.isFunction(i))throw new TypeError("visitor must be a function");function u(f){if(f===null)return"";if(l.isDate(f))return f.toISOString();if(l.isBoolean(f))return f.toString();if(!c&&l.isBlob(f))throw new w("Blob is not supported. Use a Buffer instead.");return l.isArrayBuffer(f)||l.isTypedArray(f)?c&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function d(f,h,p){let b=f;if(f&&!p&&typeof f=="object"){if(l.endsWith(h,"{}"))h=o?h:h.slice(0,-2),f=JSON.stringify(f);else if(l.isArray(f)&&Yi(f)||(l.isFileList(f)||l.endsWith(h,"[]"))&&(b=l.toArray(f)))return h=Qn(h),b.forEach(function(C,I){!(l.isUndefined(C)||C===null)&&e.append(s===!0?Zn([h],I,r):s===null?h:h+"[]",u(C))}),!1}return Ut(f)?!0:(e.append(Zn(p,h,r),u(f)),!1)}let g=[],y=Object.assign(Zi,{defaultVisitor:d,convertValue:u,isVisitable:Ut});function m(f,h){if(!l.isUndefined(f)){if(g.indexOf(f)!==-1)throw Error("Circular reference detected in "+h.join("."));g.push(f),l.forEach(f,function(b,E){(!(l.isUndefined(b)||b===null)&&i.call(e,b,l.isString(E)?E.trim():E,h,y))===!0&&m(b,h?h.concat(E):[E])}),g.pop()}}if(!l.isObject(t))throw new TypeError("data must be an object");return m(t),e}var Z=Qi;function eo(t){let e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(o){return e[o]})}function to(t,e){this._pairs=[],t&&Z(t,this,e)}var no=to.prototype;no.append=function(e,n){this._pairs.push([e,n])};no.toString=function(e){let n=e?function(o){return e.call(this,o,eo)}:eo;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};var lt=to;function er(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Oe(t,e,n){if(!e)return t;let o=n&&n.encode||er;l.isFunction(n)&&(n={serialize:n});let i=n&&n.serialize,r;if(i?r=i(e,n):r=l.isURLSearchParams(e)?e.toString():new lt(e,n).toString(o),r){let s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}var Mt=class{constructor(){this.handlers=[]}use(e,n,o){return this.handlers.push({fulfilled:e,rejected:n,synchronous:o?o.synchronous:!1,runWhen:o?o.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(o){o!==null&&e(o)})}},Bt=Mt;var ct={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var oo=typeof URLSearchParams!="undefined"?URLSearchParams:lt;var io=typeof FormData!="undefined"?FormData:null;var ro=typeof Blob!="undefined"?Blob:null;var so={isBrowser:!0,classes:{URLSearchParams:oo,FormData:io,Blob:ro},protocols:["http","https","file","blob","url","data"]};var $t={};Ke($t,{hasBrowserEnv:()=>zt,hasStandardBrowserEnv:()=>tr,hasStandardBrowserWebWorkerEnv:()=>nr,navigator:()=>jt,origin:()=>or});var zt=typeof window!="undefined"&&typeof document!="undefined",jt=typeof navigator=="object"&&navigator||void 0,tr=zt&&(!jt||["ReactNative","NativeScript","NS"].indexOf(jt.product)<0),nr=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",or=zt&&window.location.href||"http://localhost";var v=S(S({},$t),so);function Ht(t,e){return Z(t,new v.classes.URLSearchParams,S({visitor:function(n,o,i,r){return v.isNode&&l.isBuffer(n)?(this.append(o,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}function ir(t){return l.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function rr(t){let e={},n=Object.keys(t),o,i=n.length,r;for(o=0;o<i;o++)r=n[o],e[r]=t[r];return e}function sr(t){function e(n,o,i,r){let s=n[r++];if(s==="__proto__")return!0;let a=Number.isFinite(+s),c=r>=n.length;return s=!s&&l.isArray(i)?i.length:s,c?(l.hasOwnProp(i,s)?i[s]=[i[s],o]:i[s]=o,!a):((!i[s]||!l.isObject(i[s]))&&(i[s]=[]),e(n,o,i[s],r)&&l.isArray(i[s])&&(i[s]=rr(i[s])),!a)}if(l.isFormData(t)&&l.isFunction(t.entries)){let n={};return l.forEachEntry(t,(o,i)=>{e(ir(o),i,n,0)}),n}return null}var ut=sr;function ar(t,e,n){if(l.isString(t))try{return(e||JSON.parse)(t),l.trim(t)}catch(o){if(o.name!=="SyntaxError")throw o}return(n||JSON.stringify)(t)}var qt={transitional:ct,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){let o=n.getContentType()||"",i=o.indexOf("application/json")>-1,r=l.isObject(e);if(r&&l.isHTMLForm(e)&&(e=new FormData(e)),l.isFormData(e))return i?JSON.stringify(ut(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(r){if(o.indexOf("application/x-www-form-urlencoded")>-1)return Ht(e,this.formSerializer).toString();if((a=l.isFileList(e))||o.indexOf("multipart/form-data")>-1){let c=this.env&&this.env.FormData;return Z(a?{"files[]":e}:e,c&&new c,this.formSerializer)}}return r||i?(n.setContentType("application/json",!1),ar(e)):e}],transformResponse:[function(e){let n=this.transitional||qt.transitional,o=n&&n.forcedJSONParsing,i=this.responseType==="json";if(l.isResponse(e)||l.isReadableStream(e))return e;if(e&&l.isString(e)&&(o&&!this.responseType||i)){let s=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(e,this.parseReviver)}catch(a){if(s)throw a.name==="SyntaxError"?w.from(a,w.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:v.classes.FormData,Blob:v.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=>{qt.headers[t]={}});var he=qt;var lr=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"]),ao=t=>{let e={},n,o,i;return t&&t.split("\n").forEach(function(s){i=s.indexOf(":"),n=s.substring(0,i).trim().toLowerCase(),o=s.substring(i+1).trim(),!(!n||e[n]&&lr[n])&&(n==="set-cookie"?e[n]?e[n].push(o):e[n]=[o]:e[n]=e[n]?e[n]+", "+o:o)}),e};var lo=Symbol("internals");function De(t){return t&&String(t).trim().toLowerCase()}function dt(t){return t===!1||t==null?t:l.isArray(t)?t.map(dt):String(t)}function cr(t){let e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,o;for(;o=n.exec(t);)e[o[1]]=o[2];return e}var ur=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Vt(t,e,n,o,i){if(l.isFunction(o))return o.call(this,e,n);if(i&&(e=n),!!l.isString(e)){if(l.isString(o))return e.indexOf(o)!==-1;if(l.isRegExp(o))return o.test(e)}}function dr(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,o)=>n.toUpperCase()+o)}function fr(t,e){let n=l.toCamelCase(" "+e);["get","set","has"].forEach(o=>{Object.defineProperty(t,o+n,{value:function(i,r,s){return this[o].call(this,e,i,r,s)},configurable:!0})})}var ye=class{constructor(e){e&&this.set(e)}set(e,n,o){let i=this;function r(a,c,u){let d=De(c);if(!d)throw new Error("header name must be a non-empty string");let g=l.findKey(i,d);(!g||i[g]===void 0||u===!0||u===void 0&&i[g]!==!1)&&(i[g||c]=dt(a))}let s=(a,c)=>l.forEach(a,(u,d)=>r(u,d,c));if(l.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(l.isString(e)&&(e=e.trim())&&!ur(e))s(ao(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]}s(a,n)}else e!=null&&r(n,e,o);return this}get(e,n){if(e=De(e),e){let o=l.findKey(this,e);if(o){let i=this[o];if(!n)return i;if(n===!0)return cr(i);if(l.isFunction(n))return n.call(this,i,o);if(l.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=De(e),e){let o=l.findKey(this,e);return!!(o&&this[o]!==void 0&&(!n||Vt(this,this[o],o,n)))}return!1}delete(e,n){let o=this,i=!1;function r(s){if(s=De(s),s){let a=l.findKey(o,s);a&&(!n||Vt(o,o[a],a,n))&&(delete o[a],i=!0)}}return l.isArray(e)?e.forEach(r):r(e),i}clear(e){let n=Object.keys(this),o=n.length,i=!1;for(;o--;){let r=n[o];(!e||Vt(this,this[r],r,e,!0))&&(delete this[r],i=!0)}return i}normalize(e){let n=this,o={};return l.forEach(this,(i,r)=>{let s=l.findKey(o,r);if(s){n[s]=dt(i),delete n[r];return}let a=e?dr(r):String(r).trim();a!==r&&delete n[r],n[a]=dt(i),o[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let n=Object.create(null);return l.forEach(this,(o,i)=>{o!=null&&o!==!1&&(n[i]=e&&l.isArray(o)?o.join(", "):o)}),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 o=new this(e);return n.forEach(i=>o.set(i)),o}static accessor(e){let o=(this[lo]=this[lo]={accessors:{}}).accessors,i=this.prototype;function r(s){let a=De(s);o[a]||(fr(i,s),o[a]=!0)}return l.isArray(e)?e.forEach(r):r(e),this}};ye.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);l.reduceDescriptors(ye.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(o){this[n]=o}}});l.freezeMethods(ye);var A=ye;function Le(t,e){let n=this||he,o=e||n,i=A.from(o.headers),r=o.data;return l.forEach(t,function(a){r=a.call(n,r,i.normalize(),e?e.status:void 0)}),i.normalize(),r}function Ue(t){return!!(t&&t.__CANCEL__)}function co(t,e,n){w.call(this,t==null?"canceled":t,w.ERR_CANCELED,e,n),this.name="CanceledError"}l.inherits(co,w,{__CANCEL__:!0});var H=co;function Me(t,e,n){let o=n.config.validateStatus;!n.status||!o||o(n.status)?t(n):e(new w("Request failed with status code "+n.status,[w.ERR_BAD_REQUEST,w.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Kt(t){let e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function gr(t,e){t=t||10;let n=new Array(t),o=new Array(t),i=0,r=0,s;return e=e!==void 0?e:1e3,function(c){let u=Date.now(),d=o[r];s||(s=u),n[i]=c,o[i]=u;let g=r,y=0;for(;g!==i;)y+=n[g++],g=g%t;if(i=(i+1)%t,i===r&&(r=(r+1)%t),u-s<e)return;let m=d&&u-d;return m?Math.round(y*1e3/m):void 0}}var uo=gr;function pr(t,e){let n=0,o=1e3/e,i,r,s=(u,d=Date.now())=>{n=d,i=null,r&&(clearTimeout(r),r=null),t(...u)};return[(...u)=>{let d=Date.now(),g=d-n;g>=o?s(u,d):(i=u,r||(r=setTimeout(()=>{r=null,s(i)},o-g)))},()=>i&&s(i)]}var fo=pr;var we=(t,e,n=3)=>{let o=0,i=uo(50,250);return fo(r=>{let s=r.loaded,a=r.lengthComputable?r.total:void 0,c=s-o,u=i(c),d=s<=a;o=s;let g={loaded:s,total:a,progress:a?s/a:void 0,bytes:c,rate:u||void 0,estimated:u&&a&&d?(a-s)/u:void 0,event:r,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(g)},n)},Wt=(t,e)=>{let n=t!=null;return[o=>e[0]({lengthComputable:n,total:t,loaded:o}),e[1]]},Gt=t=>(...e)=>l.asap(()=>t(...e));var go=v.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,v.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(v.origin),v.navigator&&/(msie|trident)/i.test(v.navigator.userAgent)):()=>!0;var po=v.hasStandardBrowserEnv?{write(t,e,n,o,i,r,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(o)&&a.push("path=".concat(o)),l.isString(i)&&a.push("domain=".concat(i)),r===!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 Jt(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Xt(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function Be(t,e,n){let o=!Jt(e);return t&&(o||n==!1)?Xt(t,e):e}var mo=t=>t instanceof A?S({},t):t;function B(t,e){e=e||{};let n={};function o(u,d,g,y){return l.isPlainObject(u)&&l.isPlainObject(d)?l.merge.call({caseless:y},u,d):l.isPlainObject(d)?l.merge({},d):l.isArray(d)?d.slice():d}function i(u,d,g,y){if(l.isUndefined(d)){if(!l.isUndefined(u))return o(void 0,u,g,y)}else return o(u,d,g,y)}function r(u,d){if(!l.isUndefined(d))return o(void 0,d)}function s(u,d){if(l.isUndefined(d)){if(!l.isUndefined(u))return o(void 0,u)}else return o(void 0,d)}function a(u,d,g){if(g in e)return o(u,d);if(g in t)return o(void 0,u)}let c={url:r,method:r,data:r,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:(u,d,g)=>i(mo(u),mo(d),g,!0)};return l.forEach(Object.keys(S(S({},t),e)),function(d){let g=c[d]||i,y=g(t[d],e[d],d);l.isUndefined(y)&&g!==a||(n[d]=y)}),n}var ft=t=>{let e=B({},t),{data:n,withXSRFToken:o,xsrfHeaderName:i,xsrfCookieName:r,headers:s,auth:a}=e;if(e.headers=s=A.from(s),e.url=Oe(Be(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(v.hasStandardBrowserEnv||v.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(l.isFunction(n.getHeaders)){let c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,g])=>{u.includes(d.toLowerCase())&&s.set(d,g)})}}if(v.hasStandardBrowserEnv&&(o&&l.isFunction(o)&&(o=o(e)),o||o!==!1&&go(e.url))){let c=i&&r&&po.read(r);c&&s.set(i,c)}return e};var mr=typeof XMLHttpRequest!="undefined",ho=mr&&function(t){return new Promise(function(n,o){let i=ft(t),r=i.data,s=A.from(i.headers).normalize(),{responseType:a,onUploadProgress:c,onDownloadProgress:u}=i,d,g,y,m,f;function h(){m&&m(),f&&f(),i.cancelToken&&i.cancelToken.unsubscribe(d),i.signal&&i.signal.removeEventListener("abort",d)}let p=new XMLHttpRequest;p.open(i.method.toUpperCase(),i.url,!0),p.timeout=i.timeout;function b(){if(!p)return;let C=A.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),k={data:!a||a==="text"||a==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:C,config:t,request:p};Me(function(P){n(P),h()},function(P){o(P),h()},k),p=null}"onloadend"in p?p.onloadend=b:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf("file:")===0)||setTimeout(b)},p.onabort=function(){p&&(o(new w("Request aborted",w.ECONNABORTED,t,p)),p=null)},p.onerror=function(I){let k=I&&I.message?I.message:"Network Error",T=new w(k,w.ERR_NETWORK,t,p);T.event=I||null,o(T),p=null},p.ontimeout=function(){let I=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded",k=i.transitional||ct;i.timeoutErrorMessage&&(I=i.timeoutErrorMessage),o(new w(I,k.clarifyTimeoutError?w.ETIMEDOUT:w.ECONNABORTED,t,p)),p=null},r===void 0&&s.setContentType(null),"setRequestHeader"in p&&l.forEach(s.toJSON(),function(I,k){p.setRequestHeader(k,I)}),l.isUndefined(i.withCredentials)||(p.withCredentials=!!i.withCredentials),a&&a!=="json"&&(p.responseType=i.responseType),u&&([y,f]=we(u,!0),p.addEventListener("progress",y)),c&&p.upload&&([g,m]=we(c),p.upload.addEventListener("progress",g),p.upload.addEventListener("loadend",m)),(i.cancelToken||i.signal)&&(d=C=>{p&&(o(!C||C.type?new H(null,t,p):C),p.abort(),p=null)},i.cancelToken&&i.cancelToken.subscribe(d),i.signal&&(i.signal.aborted?d():i.signal.addEventListener("abort",d)));let E=Kt(i.url);if(E&&v.protocols.indexOf(E)===-1){o(new w("Unsupported protocol "+E+":",w.ERR_BAD_REQUEST,t));return}p.send(r||null)})};var hr=(t,e)=>{let{length:n}=t=t?t.filter(Boolean):[];if(e||n){let o=new AbortController,i,r=function(u){if(!i){i=!0,a();let d=u instanceof Error?u:this.reason;o.abort(d instanceof w?d:new H(d instanceof Error?d.message:d))}},s=e&&setTimeout(()=>{s=null,r(new w("timeout ".concat(e," of ms exceeded"),w.ETIMEDOUT))},e),a=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(u=>{u.unsubscribe?u.unsubscribe(r):u.removeEventListener("abort",r)}),t=null)};t.forEach(u=>u.addEventListener("abort",r));let{signal:c}=o;return c.unsubscribe=()=>l.asap(a),c}},yo=hr;var yr=function*(t,e){let n=t.byteLength;if(!e||n<e){yield t;return}let o=0,i;for(;o<n;)i=o+e,yield t.slice(o,i),o=i},wr=function(t,e){return Rt(this,null,function*(){try{for(var n=hn(Cr(t)),o,i,r;o=!(i=yield new te(n.next())).done;o=!1){let s=i.value;yield*At(yr(s,e))}}catch(i){r=[i]}finally{try{o&&(i=n.return)&&(yield new te(i.call(n)))}finally{if(r)throw r[0]}}})},Cr=function(t){return Rt(this,null,function*(){if(t[Symbol.asyncIterator]){yield*At(t);return}let e=t.getReader();try{for(;;){let{done:n,value:o}=yield new te(e.read());if(n)break;yield o}}finally{yield new te(e.cancel())}})},Yt=(t,e,n,o)=>{let i=wr(t,e),r=0,s,a=c=>{s||(s=!0,o&&o(c))};return new ReadableStream({async pull(c){try{let{done:u,value:d}=await i.next();if(u){a(),c.close();return}let g=d.byteLength;if(n){let y=r+=g;n(y)}c.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(c){return a(c),i.return()}},{highWaterMark:2})};var wo=64*1024,{isFunction:gt}=l,Sr=(({Request:t,Response:e})=>({Request:t,Response:e}))(l.global),{ReadableStream:Co,TextEncoder:So}=l.global,bo=(t,...e)=>{try{return!!t(...e)}catch(n){return!1}},br=t=>{t=l.merge.call({skipUndefined:!0},Sr,t);let{fetch:e,Request:n,Response:o}=t,i=e?gt(e):typeof fetch=="function",r=gt(n),s=gt(o);if(!i)return!1;let a=i&&gt(Co),c=i&&(typeof So=="function"?(f=>h=>f.encode(h))(new So):async f=>new Uint8Array(await new n(f).arrayBuffer())),u=r&&a&&bo(()=>{let f=!1,h=new n(v.origin,{body:new Co,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!h}),d=s&&a&&bo(()=>l.isReadableStream(new o("").body)),g={stream:d&&(f=>f.body)};i&&["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!g[f]&&(g[f]=(h,p)=>{let b=h&&h[f];if(b)return b.call(h);throw new w("Response type '".concat(f,"' is not supported"),w.ERR_NOT_SUPPORT,p)})});let y=async f=>{if(f==null)return 0;if(l.isBlob(f))return f.size;if(l.isSpecCompliantForm(f))return(await new n(v.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 c(f)).byteLength},m=async(f,h)=>{let p=l.toFiniteNumber(f.getContentLength());return p==null?y(h):p};return async f=>{let{url:h,method:p,data:b,signal:E,cancelToken:C,timeout:I,onDownloadProgress:k,onUploadProgress:T,responseType:P,headers:z,withCredentials:be="same-origin",fetchOptions:D}=ft(f),G=e||fetch;P=P?(P+"").toLowerCase():"text";let F=yo([E,C&&C.toAbortSignal()],I),Ie=null,ee=F&&F.unsubscribe&&(()=>{F.unsubscribe()}),cn;try{if(T&&u&&p!=="get"&&p!=="head"&&(cn=await m(z,b))!==0){let X=new n(h,{method:"POST",body:b,duplex:"half"}),se;if(l.isFormData(b)&&(se=X.headers.get("content-type"))&&z.setContentType(se),X.body){let[vt,qe]=Wt(cn,we(Gt(T)));b=Yt(X.body,wo,vt,qe)}}l.isString(be)||(be=be?"include":"omit");let $=r&&"credentials"in n.prototype,un=N(S({},D),{signal:F,method:p.toUpperCase(),headers:z.normalize().toJSON(),body:b,duplex:"half",credentials:$?be:void 0});Ie=r&&new n(h,un);let J=await(r?G(Ie,D):G(h,un)),dn=d&&(P==="stream"||P==="response");if(d&&(k||dn&&ee)){let X={};["status","statusText","headers"].forEach(fn=>{X[fn]=J[fn]});let se=l.toFiniteNumber(J.headers.get("content-length")),[vt,qe]=k&&Wt(se,we(Gt(k),!0))||[];J=new o(Yt(J.body,wo,vt,()=>{qe&&qe(),ee&&ee()}),X)}P=P||"text";let Bo=await g[l.findKey(g,P)||"text"](J,f);return!dn&&ee&&ee(),await new Promise((X,se)=>{Me(X,se,{data:Bo,headers:A.from(J.headers),status:J.status,statusText:J.statusText,config:f,request:Ie})})}catch($){throw ee&&ee(),$&&$.name==="TypeError"&&/Load failed|fetch/i.test($.message)?Object.assign(new w("Network Error",w.ERR_NETWORK,f,Ie),{cause:$.cause||$}):w.from($,$&&$.code,f,Ie)}}},Ir=new Map,Zt=t=>{let e=t&&t.env||{},{fetch:n,Request:o,Response:i}=e,r=[o,i,n],s=r.length,a=s,c,u,d=Ir;for(;a--;)c=r[a],u=d.get(c),u===void 0&&d.set(c,u=a?new Map:br(e)),d=u;return u},Pl=Zt();var Qt={http:at,xhr:ho,fetch:{get:Zt}};l.forEach(Qt,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}});var Io=t=>"- ".concat(t),Er=t=>l.isFunction(t)||t===null||t===!1;function xr(t,e){t=l.isArray(t)?t:[t];let{length:n}=t,o,i,r={};for(let s=0;s<n;s++){o=t[s];let a;if(i=o,!Er(o)&&(i=Qt[(a=String(o)).toLowerCase()],i===void 0))throw new w("Unknown adapter '".concat(a,"'"));if(i&&(l.isFunction(i)||(i=i.get(e))))break;r[a||"#"+s]=i}if(!i){let s=Object.entries(r).map(([c,u])=>"adapter ".concat(c," ")+(u===!1?"is not supported by the environment":"is not available in the build")),a=n?s.length>1?"since :\n"+s.map(Io).join("\n"):" "+Io(s[0]):"as no adapter specified";throw new w("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return i}var pt={getAdapter:xr,adapters:Qt};function en(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new H(null,t)}function mt(t){return en(t),t.headers=A.from(t.headers),t.data=Le.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),pt.getAdapter(t.adapter||he.adapter,t)(t).then(function(o){return en(t),o.data=Le.call(t,t.transformResponse,o),o.headers=A.from(o.headers),o},function(o){return Ue(o)||(en(t),o&&o.response&&(o.response.data=Le.call(t,t.transformResponse,o.response),o.response.headers=A.from(o.response.headers))),Promise.reject(o)})}var ht="1.13.2";var yt={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{yt[t]=function(o){return typeof o===t||"a"+(e<1?"n ":" ")+t}});var To={};yt.transitional=function(e,n,o){function i(r,s){return"[Axios v"+ht+"] Transitional option '"+r+"'"+s+(o?". "+o:"")}return(r,s,a)=>{if(e===!1)throw new w(i(s," has been removed"+(n?" in "+n:"")),w.ERR_DEPRECATED);return n&&!To[s]&&(To[s]=!0,console.warn(i(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(r,s,a):!0}};yt.spelling=function(e){return(n,o)=>(console.warn("".concat(o," is likely a misspelling of ").concat(e)),!0)};function vr(t,e,n){if(typeof t!="object")throw new w("options must be an object",w.ERR_BAD_OPTION_VALUE);let o=Object.keys(t),i=o.length;for(;i-- >0;){let r=o[i],s=e[r];if(s){let a=t[r],c=a===void 0||s(a,r,t);if(c!==!0)throw new w("option "+r+" must be "+c,w.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new w("Unknown option "+r,w.ERR_BAD_OPTION)}}var je={assertOptions:vr,validators:yt};var q=je.validators,Ce=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Bt,response:new Bt}}async request(e,n){try{return await this._request(e,n)}catch(o){if(o instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;let r=i.stack?i.stack.replace(/^.+\n/,""):"";try{o.stack?r&&!String(o.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(o.stack+="\n"+r):o.stack=r}catch(s){}}throw o}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=B(this.defaults,n);let{transitional:o,paramsSerializer:i,headers:r}=n;o!==void 0&&je.assertOptions(o,{silentJSONParsing:q.transitional(q.boolean),forcedJSONParsing:q.transitional(q.boolean),clarifyTimeoutError:q.transitional(q.boolean)},!1),i!=null&&(l.isFunction(i)?n.paramsSerializer={serialize:i}:je.assertOptions(i,{encode:q.function,serialize:q.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),je.assertOptions(n,{baseUrl:q.spelling("baseURL"),withXsrfToken:q.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=r&&l.merge(r.common,r[n.method]);r&&l.forEach(["delete","get","head","post","put","patch","common"],f=>{delete r[f]}),n.headers=A.concat(s,r);let a=[],c=!0;this.interceptors.request.forEach(function(h){typeof h.runWhen=="function"&&h.runWhen(n)===!1||(c=c&&h.synchronous,a.unshift(h.fulfilled,h.rejected))});let u=[];this.interceptors.response.forEach(function(h){u.push(h.fulfilled,h.rejected)});let d,g=0,y;if(!c){let f=[mt.bind(this),void 0];for(f.unshift(...a),f.push(...u),y=f.length,d=Promise.resolve(n);g<y;)d=d.then(f[g++],f[g++]);return d}y=a.length;let m=n;for(;g<y;){let f=a[g++],h=a[g++];try{m=f(m)}catch(p){h.call(this,p);break}}try{d=mt.call(this,m)}catch(f){return Promise.reject(f)}for(g=0,y=u.length;g<y;)d=d.then(u[g++],u[g++]);return d}getUri(e){e=B(this.defaults,e);let n=Be(e.baseURL,e.url,e.allowAbsoluteUrls);return Oe(n,e.params,e.paramsSerializer)}};l.forEach(["delete","get","head","options"],function(e){Ce.prototype[e]=function(n,o){return this.request(B(o||{},{method:e,url:n,data:(o||{}).data}))}});l.forEach(["post","put","patch"],function(e){function n(o){return function(r,s,a){return this.request(B(a||{},{method:e,headers:o?{"Content-Type":"multipart/form-data"}:{},url:r,data:s}))}}Ce.prototype[e]=n(),Ce.prototype[e+"Form"]=n(!0)});var ze=Ce;var tn=class t{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(r){n=r});let o=this;this.promise.then(i=>{if(!o._listeners)return;let r=o._listeners.length;for(;r-- >0;)o._listeners[r](i);o._listeners=null}),this.promise.then=i=>{let r,s=new Promise(a=>{o.subscribe(a),r=a}).then(i);return s.cancel=function(){o.unsubscribe(r)},s},e(function(r,s,a){o.reason||(o.reason=new H(r,s,a),n(o.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=o=>{e.abort(o)};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}}},Eo=tn;function nn(t){return function(n){return t.apply(null,n)}}function on(t){return l.isObject(t)&&t.isAxiosError===!0}var rn={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(rn).forEach(([t,e])=>{rn[e]=t});var xo=rn;function vo(t){let e=new ze(t),n=Pe(ze.prototype.request,e);return l.extend(n,ze.prototype,e,{allOwnKeys:!0}),l.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return vo(B(t,i))},n}var R=vo(he);R.Axios=ze;R.CanceledError=H;R.CancelToken=Eo;R.isCancel=Ue;R.VERSION=ht;R.toFormData=Z;R.AxiosError=w;R.Cancel=R.CanceledError;R.all=function(e){return Promise.all(e)};R.spread=nn;R.isAxiosError=on;R.mergeConfig=B;R.AxiosHeaders=A;R.formToJSON=t=>ut(l.isHTMLForm(t)?new FormData(t):t);R.getAdapter=pt.getAdapter;R.HttpStatusCode=xo;R.default=R;var $e=R;var{Axios:Ac,AxiosError:kc,CanceledError:Pc,isCancel:_c,CancelToken:Fc,VERSION:Nc,all:Oc,Cancel:Dc,isAxiosError:Lc,spread:Uc,toFormData:Mc,AxiosHeaders:Bc,HttpStatusCode:jc,formToJSON:zc,getAdapter:$c,mergeConfig:Hc}=$e;var K={NETWORK_ERROR:"network_error",API_ERROR:"api_error",AUTH_REQUIRED:"auth_required",TOKEN_EXPIRED:"token_expired",NOT_FOUND:"not_found",VALIDATION_ERROR:"validation_error",CIRCUIT_BREAKER:"circuit_breaker",PAYMENT_FAILED:"payment_failed",CARD_DECLINED:"card_declined",SESSION_EXPIRED:"session_expired",RATE_LIMITED:"rate_limited",TIMEOUT:"timeout",UNKNOWN:"unknown"},Q=class extends Error{constructor(e,n){var o;super(e),this.name="TagadaError",this.code=n.code,this.statusCode=n.statusCode,this.retryable=(o=n.retryable)!=null?o:!1,this.details=n.details,Object.setPrototypeOf(this,new.target.prototype)}},ie=class extends Q{constructor(e,n,o){var i,r;super(e,{code:(i=o==null?void 0:o.code)!=null?i:K.API_ERROR,statusCode:n,retryable:(r=o==null?void 0:o.retryable)!=null?r:n>=500,details:o==null?void 0:o.details}),this.name="TagadaApiError"}},wt=class extends Q{constructor(e="Network request failed"){super(e,{code:K.NETWORK_ERROR,retryable:!0}),this.name="TagadaNetworkError"}},Ct=class extends Q{constructor(e="Authentication required",n=401){super(e,{code:K.AUTH_REQUIRED,statusCode:n,retryable:!1}),this.name="TagadaAuthError"}};var St=class extends Q{constructor(e){super(e,{code:K.CIRCUIT_BREAKER,retryable:!1}),this.name="TagadaCircuitBreakerError"}};var bt=class{constructor(e){this.currentToken=null;this.tokenProvider=null;this.requestHistory=new Map;this.WINDOW_MS=5e3;this.MAX_REQUESTS=30;this.axios=$e.create({baseURL:e.baseURL,timeout:e.timeout||6e4,headers:S({"Content-Type":"application/json"},e.headers)}),typeof setInterval!="undefined"&&setInterval(()=>this.cleanupHistory(),1e4),this.axios.interceptors.request.use(async n=>{var o,i;if(n.url)try{this.checkRequestLimit("".concat((o=n.method)==null?void 0:o.toUpperCase(),":").concat(n.url))}catch(r){return console.error("[SDK] \u{1F6D1} Request blocked by Circuit Breaker:",r),Promise.reject(r)}if(!n.skipAuth&&!this.currentToken&&this.tokenProvider)try{console.log("[SDK] Waiting for token...");let r=await this.tokenProvider();r&&(this.updateToken(r),n.headers["x-cms-token"]=r)}catch(r){console.error("[SDK] Failed to get token from provider:",r)}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),n instanceof Q?Promise.reject(n):$e.isAxiosError(n)?Promise.reject(this.toTagadaError(n)):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,o){return(await this.axios.post(e,n,o)).data}async put(e,n,o){return(await this.axios.put(e,n,o)).data}async patch(e,n,o){return(await this.axios.patch(e,n,o)).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(),o=this.requestHistory.get(e);if(!o){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(n-o.firstRequestTime>this.WINDOW_MS){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(o.count++,o.count>this.MAX_REQUESTS)throw new St("Circuit Breaker: Too many requests to ".concat(e," (").concat(o.count," in ").concat(this.WINDOW_MS,"ms)"))}cleanupHistory(){let e=Date.now();for(let[n,o]of this.requestHistory.entries())e-o.firstRequestTime>this.WINDOW_MS&&this.requestHistory.delete(n)}toTagadaError(e){var r,s,a,c,u;let n=(r=e.response)==null?void 0:r.status,o=(s=e.response)==null?void 0:s.data,i=(c=(a=o==null?void 0:o.message)!=null?a:o==null?void 0:o.error)!=null?c:e.message;return e.response?n===401||n===403?new Ct(i,n):n===429?new ie(i,429,{code:K.RATE_LIMITED,retryable:!0}):n===404?new ie(i,404,{code:K.NOT_FOUND,retryable:!1}):new ie(i,n!=null?n:0,{code:(u=o==null?void 0:o.code)!=null?u:K.API_ERROR,details:o,retryable:(n!=null?n:0)>=500}):e.code==="ECONNABORTED"?new ie("Request timed out",0,{code:K.TIMEOUT,retryable:!0}):new wt(i)}};function Rr(){return{width:window.screen.width,height:window.screen.height}}function Ar(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return"UTC"}}function Ro(){try{return navigator.language||"en-US"}catch(t){return"en-US"}}var re=typeof navigator!="undefined"?navigator.userAgent:"";function j(t,...e){for(let n of e){let o=t.match(n);if(o)return o}return null}function kr(t){let e=[[/EdgA?\/([\d.]+)/i,"Edge"],[/OPR\/([\d.]+)/i,"Opera"],[/Brave\/([\d.]+)/i,"Brave"],[/Vivaldi\/([\d.]+)/i,"Vivaldi"],[/SamsungBrowser\/([\d.]+)/i,"Samsung Internet"],[/UCBrowser\/([\d.]+)/i,"UC Browser"],[/Firefox\/([\d.]+)/i,"Firefox"],[/CriOS\/([\d.]+)/i,"Chrome"],[/FxiOS\/([\d.]+)/i,"Firefox"],[/Chrome\/([\d.]+)/i,"Chrome"],[/Version\/([\d.]+).*Safari/i,"Safari"],[/Safari\/([\d.]+)/i,"Safari"]];for(let[n,o]of e){let i=t.match(n);if(i){let r=i[1]||"";return{name:o,version:r,major:r.split(".")[0]||""}}}return{name:"",version:"",major:""}}function Pr(t){let e=j(t,/Windows NT ([\d.]+)/i)||j(t,/Mac OS X ([\d_.]+)/i)||j(t,/Android ([\d.]+)/i)||j(t,/iPhone OS ([\d_]+)/i)||j(t,/iPad.*OS ([\d_]+)/i)||j(t,/CrOS[\w ]*\/([\d.]+)/i)||j(t,/Linux/i);if(!e)return{name:"",version:""};let n=e[0],o=(e[1]||"").replace(/_/g,".");return/Windows/i.test(n)?{name:"Windows",version:{"10.0":"10","6.3":"8.1","6.2":"8","6.1":"7","6.0":"Vista","5.1":"XP"}[o]||o}:/Mac OS X/i.test(n)?{name:"macOS",version:o}:/Android/i.test(n)?{name:"Android",version:o}:/iPhone|iPad/i.test(n)?{name:"iOS",version:o}:/CrOS/i.test(n)?{name:"Chrome OS",version:o}:/Linux/i.test(n)?{name:"Linux",version:""}:{name:"",version:""}}function _r(t){var e;if(/iPad/i.test(t))return{type:"tablet",vendor:"Apple",model:"iPad"};if(/iPhone/i.test(t))return{type:"mobile",vendor:"Apple",model:"iPhone"};if(/iPod/i.test(t))return{type:"mobile",vendor:"Apple",model:"iPod"};if(/Android/i.test(t)){let n=t.match(/Android[\s\d.]+;\s*([^)]+?)(?:\s+Build)/i);return{type:/Mobile/i.test(t)?"mobile":"tablet",model:(e=n==null?void 0:n[1])==null?void 0:e.trim()}}}function Fr(t){let e=j(t,/AppleWebKit\/([\d.]+)/i)||j(t,/Gecko\/([\d.]+)/i)||j(t,/Trident\/([\d.]+)/i)||j(t,/Presto\/([\d.]+)/i);if(!e)return{name:"",version:""};let n=e[0],o=e[1]||"";return/AppleWebKit/i.test(n)?{name:"WebKit",version:o}:/Gecko/i.test(n)?{name:"Gecko",version:o}:/Trident/i.test(n)?{name:"Trident",version:o}:/Presto/i.test(n)?{name:"Presto",version:o}:{name:"",version:""}}function Nr(t){return/x86_64|x64|amd64|Win64/i.test(t)?{architecture:"amd64"}:/ia32|x86/i.test(t)?{architecture:"ia32"}:/aarch64|arm64/i.test(t)?{architecture:"arm64"}:/arm/i.test(t)?{architecture:"arm"}:{architecture:""}}function Or(){return navigator.webdriver?!0:/bot|crawl|spider|slurp|Googlebot|bingbot|yandex|baidu|duckduck|facebookexternalhit|Twitterbot|linkedinbot|embedly|quora|pinterest|redditbot|Slackbot|Discordbot|WhatsApp|TelegramBot|Applebot/i.test(re)}function Dr(t){return/Chrome|Chromium|Edge|Brave|Opera|Vivaldi|Arc/i.test(t)}function Lr(){return window.matchMedia("(display-mode: standalone)").matches||navigator.standalone===!0}function Ur(t){return/mac/i.test(t)?navigator.maxTouchPoints>0:!1}function Ao(){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 t=kr(re),e=Pr(re),n=_r(re),o=Fr(re),i=Nr(re),r;try{r={isBot:Or(),isChromeFamily:Dr(t.name),isStandalonePWA:Lr(),isAppleSilicon:Ur(e.name)}}catch(s){r={isBot:!1,isChromeFamily:!1,isStandalonePWA:!1,isAppleSilicon:!1}}return{userAgent:{name:re,browser:t,os:e,device:n,engine:o,cpu:i},screenResolution:Rr(),timeZone:Ar(),flags:r}}function ko(){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 It=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 o=Array.from(this.listeners.get(e));await Promise.all(o.map(i=>{try{return Promise.resolve(i(n))}catch(r){return console.error('[EventBus] Error in listener for event "'.concat(e,'":'),r),Promise.resolve()}}))}}clear(){this.listeners.clear()}};kt();function He(t){try{let e=t.split(".");if(e.length!==3)return console.error("Invalid JWT token format"),null;let n=e[1],o=n+"=".repeat((4-n.length%4)%4),i=atob(o),r=JSON.parse(i);return r.exp&&Date.now()>=r.exp*1e3?(console.warn("JWT token is expired"),null):{sessionId:r.sessionId,storeId:r.storeId,accountId:r.accountId,customerId:r.customerId,role:r.role,isValid:!0,isLoading:!1}}catch(e){return console.error("Failed to decode JWT token:",e),null}}function Po(t){try{let e=t.split(".");if(e.length!==3)return!0;let n=e[1],o=n+"=".repeat((4-n.length%4)%4),i=atob(o),r=JSON.parse(i);return r.exp?Date.now()>=r.exp*1e3:!1}catch(e){return console.error("Failed to check token expiration:",e),!0}}We();var Se={},Mr=["","VITE_","REACT_APP_","NEXT_PUBLIC_"];function W(t,e=Mr){var n,o,i;for(let r of e){let s=r?"".concat(r).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 Se!="undefined"&&((o=Se==null?void 0:Se.env)!=null&&o[s]))return console.log("import.meta.env[".concat(s,"]"),Se.env[s]),Se.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 Br=async(t="default")=>{try{if((W("TAGADA_ENV")||W("TAGADA_ENVIRONMENT"))==="production"||!Ee(!0))return null;let n=await fetch("/.local.json");if(!n.ok)return null;let o=await n.json(),i={},r=!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(),r=!0)}catch(a){}if(!r&&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(),r=!0,console.log("\u2705 Fallback to 'default' config successful"))}catch(a){}}r||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:o.storeId,accountId:o.accountId,basePath:o.basePath,config:i};return console.log("\u{1F6E0}\uFE0F Using local development plugin config:",s),s}catch(e){return null}},jr=async()=>{try{if((W("TAGADA_ENV")||W("TAGADA_ENVIRONMENT"))==="production"||!Ee(!0))return null;try{console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/funnel.local.json...");let o=await fetch("/config/funnel.local.json");if(o.ok){let i=await o.json();console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded local funnel config (NEW format):",i);let{loadLocalFunnelConfig:r}=await Promise.resolve().then(()=>(nt(),zn));if(await r(),i.staticResources){let s={};for(let[a,c]of Object.entries(i.staticResources))s[a]={id:c};return s}return null}}catch(o){console.log("\u{1F6E0}\uFE0F [V2] funnel.local.json not found, trying legacy format...")}console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/resources.static.json (legacy)...");let e=await fetch("/config/resources.static.json");if(!e.ok)return console.log("\u{1F6E0}\uFE0F [V2] No local static resources found"),null;let n=await e.json();return console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded legacy static resources:",n),n}catch(t){return console.error("\u{1F6E0}\uFE0F [V2] \u274C Error loading static resources:",t),null}},Tt=t=>{if(typeof document=="undefined")return;let e=document.querySelector('meta[name="'.concat(t,'"]'));return(e==null?void 0:e.getAttribute("content"))||void 0},zr=()=>{if(typeof window!="undefined"&&window.__TAGADA_PLUGIN_CONFIG__)return window.__TAGADA_PLUGIN_CONFIG__;try{let t=Tt("x-plugin-config");if(t)return JSON.parse(decodeURIComponent(t))}catch(t){}return{}};var $r=async()=>{try{if(typeof document=="undefined")return null;let t=Tt("x-plugin-store-id"),e=Tt("x-plugin-account-id");if(!t)return null;let n=Tt("x-plugin-base-path")||"/",o=zr();e||console.warn("\u26A0\uFE0F Plugin config: Account ID not found in meta tags");let i={storeId:t,accountId:e,basePath:n,config:o};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(o),configSize:JSON.stringify(o).length}),i}catch(t){return console.warn("\u26A0\uFE0F Error loading production config from meta tags:",t),null}},_o=async(t="default",e)=>{var s,a;console.log("\u{1F527} [V2] loadPluginConfig called with variant:",t);let n=await jr(),o=await $r();if(o){let c=N(S({},o),{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:(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)"),c}let i=await qr();if(i){let c=N(S({},i),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using environment variables config (PRIORITY 3 - build time)"),c}let r=await Br(t);if(r){let c=N(S({},r),{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 Hr(t="default",e){try{if(!Ee())return null;if(e)return e;let n=["/config/".concat(t,".config.json"),"/config/".concat(t,".tgd.json"),"/config/".concat(t,".json")];for(let o of n)try{let i=await fetch(o);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 qr(){try{if(!Ee())return;let t=W("TAGADA_STORE_ID"),e=W("TAGADA_ACCOUNT_ID"),n=W("TAGADA_BASE_PATH"),o=W("TAGADA_CONFIG_NAME");if(!t||!e)return;let i=await Hr(o);if(!i)return;let r={storeId:t,accountId:e,basePath:n||"/",config:i};return console.log("\u{1F6E0}\uFE0F [createRawPluginConfig] Using environment variables (build-time config):",{hasStoreId:!!r.storeId,hasAccountId:!!r.accountId,basePath:r.basePath,hasConfig:!!r.config}),r}catch(t){console.error("[createRawPluginConfig] Error creating config:",t);return}}Qe();ue();ue();var sn=new Map,an=new Set;function Vr(){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get("authCode")}async function Fo(t,e,n,o=!1){if(an.has(t))throw o&&console.log("[AuthHandoff] Code already resolved, skipping duplicate request"),new Error("Auth code already resolved");let i=sn.get(t);if(i)return o&&console.log("[AuthHandoff] Resolution already in progress, waiting for existing request"),i;o&&console.log("[AuthHandoff] Resolving authCode:",t.substring(0,15)+"...");let r=(async()=>{try{let s=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(!s.ok){let c=await s.json().catch(()=>({message:"Unknown error"}));throw new Error(c.message||"Failed to resolve auth handoff: ".concat(s.status))}let a=await s.json();return o&&console.log("[AuthHandoff] \u2705 Resolved successfully:",{customerId:a.customer.id,role:a.customer.role,hasContext:Object.keys(a.context).length>0}),o&&console.log("[AuthHandoff] Storing new token (overriding existing)"),L(a.token),Kr(o),an.add(t),a}catch(s){throw console.error("[AuthHandoff] \u274C Failed to resolve:",s),s}finally{sn.delete(t)}})();return sn.set(t,r),r}function Kr(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 No(){let t=Vr();return!(!t||!t.startsWith("ah_")||an.has(t))}var Et=class{constructor(e={}){this.bus=new It;this.eventDispatcher=new le;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=g=>{if(g.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 y=this.getAccountId(),f=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:y},f).catch(h=>{console.error("[TagadaClient] Funnel re-initialization failed:",h)})}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}),xn(this.config.debugMode)&&this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Preview mode active - state cleared"));let o=this.resolveEnvironment(),i=Cn(o);e.customApiConfig&&(i=N(S(S({},i),e.customApiConfig),{apiConfig:S(S({},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:!0,debugMode:(a=e.debugMode)!=null?a:o!=="production",token:null},console.log("[TagadaClient ".concat(this.instanceId,"] Initial state:"),{pluginConfigLoading:this.state.pluginConfigLoading,hasRawPluginConfig:!!e.rawPluginConfig}),this.apiClient=new bt({baseURL:i.apiConfig.baseUrl});let r=(c=e.features)==null?void 0:c.funnel;if(r!==!1){let g=typeof r=="object"?r:{};this.funnel=new ke({apiClient:this.apiClient,debugMode:this.state.debugMode,pluginConfig:this.state.pluginConfig,environment:this.state.environment,autoRedirect:g.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(xe()===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=S(S({},this.state),e),this.eventDispatcher.notify(this.state)}resolveEnvironment(){return this.config.environment?this.config.environment:Te()}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 _o(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(No()){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 o=new URLSearchParams(window.location.search).get("authCode");if(!o)return this.fallbackToNormalFlow();let i=await Fo(o,n,this.state.environment.apiConfig.baseUrl,this.state.debugMode);console.log("[TagadaClient ".concat(this.instanceId,"] \u2705 Auth handoff resolved:"),{customerId:i.customer.id,role:i.customer.role,hasContext:Object.keys(i.context).length>0}),this.setToken(i.token);let r=He(i.token);r?(this.updateState({session:r}),await this.initializeSession(r),(e=i.context)!=null&&e.funnelSessionId&&this.funnel&&this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Restoring funnel session from handoff context:"),i.context.funnelSessionId)):(console.error("[TagadaClient] Failed to decode token from handoff"),this.updateState({isInitialized:!0,isLoading:!1}));return}catch(o){console.error("[TagadaClient ".concat(this.instanceId,"] \u274C Auth handoff failed, falling back to normal flow:"),o)}}await this.fallbackToNormalFlow()}async fallbackToNormalFlow(){let n=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("token");n&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL token detected, setting immediately to prevent race condition")),this.apiClient.updateToken(n),L(n));let o=xe();console.log("[TagadaClient ".concat(this.instanceId,"] Initializing token (normal flow)..."),{hasExistingToken:!!o,hasQueryToken:!!n,storeId:this.state.pluginConfig.storeId});let i=null,r=!1;if(n?(i=n,r=!0):o&&!Po(o)&&(i=o),i){this.setToken(i),r&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Persisting query token to storage...")),L(i));let s=He(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;console.log("[TagadaClient ".concat(this.instanceId,"] No existing token, creating anonymous token..."),{hasStoreId:!!s,storeId:s}),s?await this.createAnonymousToken(s):(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(typeof window!="undefined"){let o=new URLSearchParams(window.location.search).get("token");if(o){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL has token, skipping anonymous token creation")),this.setToken(o),L(o);let i=He(o);i&&(this.updateState({session:i}),await this.initializeSession(i));return}}if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping anonymous token creation"));return}try{let n=Re();this.state.debugMode&&console.log("[TagadaClient] Creating anonymous token for store:",e,{draft:n});let o=await this.apiClient.post("/api/v1/cms/session/anonymous",{storeId:e,role:"anonymous",draft:n},{skipAuth:!0});this.setToken(o.token),L(o.token);let i=He(o.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,o,i,r,s,a,c,u,d,g,y;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 m=await Ao(),f=ko(),h=Ro(),p=Re(),b=new URLSearchParams(window.location.search).get("draft");b!==null&&Ft(b==="true");let E={storeId:e.storeId,accountId:e.accountId,customerId:e.customerId,role:e.role,browserLocale:h,queryLocale:f.locale,queryCurrency:f.currency,utmSource:f.utmSource,utmMedium:f.utmMedium,utmCampaign:f.utmCampaign,browser:m.userAgent.browser.name,browserVersion:m.userAgent.browser.version,os:m.userAgent.os.name,osVersion:m.userAgent.os.version,deviceType:(n=m.userAgent.device)==null?void 0:n.type,deviceModel:(o=m.userAgent.device)==null?void 0:o.model,deviceVendor:(i=m.userAgent.device)==null?void 0:i.vendor,userAgent:m.userAgent.name,engineName:m.userAgent.engine.name,engineVersion:m.userAgent.engine.version,cpuArchitecture:m.userAgent.cpu.architecture,isBot:(s=(r=m.flags)==null?void 0:r.isBot)!=null?s:!1,isChromeFamily:(c=(a=m.flags)==null?void 0:a.isChromeFamily)!=null?c:!1,isStandalonePWA:(d=(u=m.flags)==null?void 0:u.isStandalonePWA)!=null?d:!1,isAppleSilicon:(y=(g=m.flags)==null?void 0:g.isAppleSilicon)!=null?y:!1,screenWidth:m.screenResolution.width,screenHeight:m.screenResolution.height,timeZone:m.timeZone,draft:p,fetchMessages:!1},C=await this.apiClient.post("/api/v1/cms/session/v2/init",E);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(m){this.lastSessionInitError=m,this.sessionInitRetryCount++,console.error("[TagadaClient] Error initializing session (attempt ".concat(this.sessionInitRetryCount,"/").concat(this.MAX_SESSION_INIT_RETRIES,"):"),m),this.updateState({isInitialized:!0,isLoading:!1})}finally{this.isInitializingSession=!1}}updateSessionState(e,n){var s,a,c,u,d,g,y,m,f,h;if(e.store){let p=e.store,b=N(S({},e.store),{accountId:p.accountId||((s=this.state.pluginConfig)==null?void 0:s.accountId)||n.accountId||"",presentmentCurrencies:p.presentmentCurrencies||[e.store.currency||"USD"],chargeCurrencies:p.chargeCurrencies||[e.store.currency||"USD"]});this.updateState({store:b})}if(e.locale){let p={locale:e.locale,language:e.locale.split("-")[0],region:(a=e.locale.split("-")[1])!=null?a:"US",messages:(c=e.messages)!=null?c:{}};this.updateState({locale:p})}if(e.store){let p={code:e.store.currency,symbol:this.getCurrencySymbol(e.store.currency),name:this.getCurrencyName(e.store.currency)};this.updateState({currency:p})}let o={isAuthenticated:(d=(u=e.customer)==null?void 0:u.isAuthenticated)!=null?d:!1,isLoading:!1,customer:(g=e.customer)!=null?g:null,session:n};this.updateState({customer:(y=e.customer)!=null?y:null,auth:o});let i=(m=this.config.features)==null?void 0:m.funnel,r=typeof i=="object"&&i.skipAutoInit;if(this.funnel&&!r&&n.customerId&&((f=e.store)!=null&&f.id)){let p=e.store.accountId||((h=this.state.pluginConfig)==null?void 0:h.accountId)||n.accountId||"";if(p){let E=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:p,funnelId:E||"auto-detect"}),this.funnel.autoInitialize({customerId:n.customerId,sessionId:n.sessionId},{id:e.store.id,accountId:p},E).catch(C=>{console.error("[TagadaClient] Funnel auto-initialization failed:",C)})}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,o;return((e=this.state.store)==null?void 0:e.accountId)||((n=this.state.pluginConfig)==null?void 0:n.accountId)||((o=this.state.session)==null?void 0:o.accountId)||""}updatePluginConfig(e){this.state.debugMode&&console.log("[TagadaClient] Hot-reloading config:",e);let n=S(S({},this.state.pluginConfig.config),e);this.updateState({pluginConfig:N(S({},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 o,i;if(((o=n.data)==null?void 0:o.type)==="TAGADAPAY_CONFIG_UPDATE"){let{config:r}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received config update from parent:",r),this.updatePluginConfig(r)}else if(((i=n.data)==null?void 0:i.type)==="APPLY_STYLES_TO_ELEMENT"){let{elementId:r,styles:s}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received style application request:",{elementId:r,styles:s}),this.applyStylesToElement(r,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 o="tagada-editor-highlight",i=document.getElementById(o);i&&i.remove();let r=g=>{var C;let m=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]).has(g.tagName.toLowerCase()),f=g;if(m){let I=g.parentElement;if((I==null?void 0:I.getAttribute("data-tagada-highlight-wrapper"))==="true"&&I instanceof HTMLElement)f=I;else{let T=document.createElement("div");T.setAttribute("data-tagada-highlight-wrapper","true");let P=window.getComputedStyle(g),z=P.display;if(z==="inline"?T.style.display="inline-block":T.style.display=z,T.style.position="relative",z==="inline"||z.includes("inline")){let D=P.verticalAlign;D&&D!=="baseline"&&(T.style.verticalAlign=D)}["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(D=>{let G=D.replace(/([A-Z])/g,"-$1").toLowerCase(),F=P.getPropertyValue(G);F&&F.trim()!==""&&(D==="flex"&&F!=="none"&&F!=="0 1 auto"?T.style.flex=F:D==="boxSizing"?T.style.boxSizing=F:T.style.setProperty(G,F))}),g.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(G=>{let F=g.style.getPropertyValue(G);F&&T.style.setProperty(G,F)}),(C=g.parentNode)==null||C.insertBefore(T,g),T.appendChild(g),f=T}}let h=getComputedStyle(m?g:f);(f.style.position==="static"||!f.style.position)&&(f.style.position="relative");let p=document.createElement("div");p.id=o,p.style.position="absolute",p.style.inset="0",p.style.pointerEvents="none",p.style.zIndex="9999",p.style.boxSizing="border-box",p.style.background="none",p.style.border="none",p.style.outline="none",p.style.margin="0",p.style.padding="0";let b=h.borderRadius;b&&(p.style.borderRadius=b),f.appendChild(p);let E=n||{boxShadow:"0 0 0 2px rgb(239 68 68)"};if(Object.entries(E).forEach(([I,k])=>{let T=I.includes("-")?I.replace(/-([a-z])/g,(P,z)=>z.toUpperCase()):I;I.includes("-")?p.style.setProperty(I,k):p.style[T]=k}),g.scrollIntoView({behavior:"smooth",block:"center"}),this.state.debugMode){let I=Object.entries(E).map(([k,T])=>"".concat(k,": ").concat(T)).join("; ");console.log("[TagadaClient] Applied styles to highlight div of element #".concat(e,":"),I)}},s=5,a=1e3,c=0,u=g=>{let y=window.getComputedStyle(g);return y.display==="none"||y.visibility==="hidden"||y.opacity==="0"||g.hidden||g.offsetWidth===0||g.offsetHeight===0},d=()=>{let g=document.querySelectorAll('[editor-id~="'.concat(e,'"]'));if(g.length===0){if(c+=1,c>=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(c,"/").concat(s,"), retrying in ").concat(a/1e3,"s")),setTimeout(d,a);return}let y=null;if(g.length===1)y=g[0];else{for(let m=0;m<g.length;m++)if(!u(g[m])){y=g[m];break}y||(y=g[0])}y&&r(y)};d()}};nt();function Wr(){if(typeof window=="undefined"||typeof document=="undefined")return[];let t=V();return t!=null&&t.scripts?t.scripts.filter(e=>e.enabled):[]}function Gr(t,e){let n=t.position||"body-end",o="tagada-stepconfig-script-".concat(e);if(document.getElementById(o))return;let i=t.content.trim(),r=i.match(/^<script[^>]*>([\s\S]*)<\/script>$/i);if(r&&(i=r[1].trim()),!i)return;let s="(function() {\n try {\n // Script: "+t.name+"\n"+i+'\n } catch (error) {\n console.error("[TagadaPay] StepConfig script error:", error);\n }\n})();',a=document.createElement("script");switch(a.id=o,a.setAttribute("data-tagada-stepconfig-script","true"),a.setAttribute("data-script-name",t.name),a.textContent=s,n){case"head-start":document.head.firstChild?document.head.insertBefore(a,document.head.firstChild):document.head.appendChild(a);break;case"head-end":document.head.appendChild(a);break;case"body-start":document.body.firstChild?document.body.insertBefore(a,document.body.firstChild):document.body.appendChild(a);break;case"body-end":default:document.body.appendChild(a);break}}function Oo(){let t=Wr();t.length!==0&&t.forEach((e,n)=>{Gr(e,n)})}if(typeof window!="undefined"&&typeof document!="undefined"){let t=()=>{document.body?Oo():document.addEventListener("DOMContentLoaded",Oo,{once:!0})};"requestIdleCallback"in window?window.requestIdleCallback(t,{timeout:100}):setTimeout(t,0)}function Do(t={}){return new Et(t)}ue();var ln="1.0.0";function Lo(t){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get(t)}function _(t,...e){t&&console.log("[TagadaTracker]",...e)}function Uo(...t){console.warn("[TagadaTracker]",...t)}function Jr(t){if(!t.storeId||typeof t.storeId!="string")throw new Error("TagadaTracker: storeId is required and must be a non-empty string.");if(!t.accountId||typeof t.accountId!="string")throw new Error("TagadaTracker: accountId is required and must be a non-empty string.");if(!t.stepId||typeof t.stepId!="string")throw new Error("TagadaTracker: stepId is required and must be a non-empty string.");if(t.apiBaseUrl)try{new URL(t.apiBaseUrl)}catch(e){throw new Error('TagadaTracker: apiBaseUrl is not a valid URL: "'.concat(t.apiBaseUrl,'"'))}}async function Xr(t,e,n){let o;for(let i=0;i<=e;i++)try{return await t()}catch(r){if(o=r instanceof Error?r:new Error(String(r)),i<e){let s=Math.min(1e3*2**i,8e3);_(n,"Retry ".concat(i+1,"/").concat(e," in ").concat(s,"ms...")),await new Promise(a=>setTimeout(a,s))}}throw o}var xt=class{constructor(){this.config=null;this.client=null;this.initialized=!1;this.initializing=!1;this.unsubscribe=null;this.version=ln}async init(e){var o,i;if(this.initialized)return _(e.debug||!1,"Already initialized \u2014 returning existing session."),this.getSession();if(this.initializing)return _(e.debug||!1,"Initialization in progress \u2014 skipping duplicate call."),null;this.initializing=!0,this.config=S({debug:!1},e);let n=this.config.debug;try{Jr(this.config)}catch(r){this.initializing=!1;let s=r instanceof Error?r:new Error(String(r));if(this.config.onError)return this.config.onError(s),null;throw s}_(n,"\u{1F680} Initializing external tracker v".concat(ln),{storeId:e.storeId,accountId:e.accountId,stepId:e.stepId,funnelId:e.funnelId});try{let r=Lo("token");r&&(L(r),_(n,"\u{1F511} Bootstrapped token from URL")),this.client=Do({debugMode:n,features:{funnel:{skipAutoInit:!0}},rawPluginConfig:{storeId:this.config.storeId,accountId:this.config.accountId},customApiConfig:this.config.apiBaseUrl?{apiConfig:{baseUrl:this.config.apiBaseUrl.trim()}}:void 0}),await this.waitForClientReady();let s=await Xr(()=>this.initializeFunnel(),2,n);_(n,"\u2705 Session initialized:",s),this.initialized=!0;let a=this.getSession();return a&&((i=(o=this.config).onReady)==null||i.call(o,a)),a}catch(r){let s=r instanceof Error?r:new Error(String(r));if(_(n,"\u274C Initialization failed:",s),this.config.onError)return this.config.onError(s),null;throw s}finally{this.initializing=!1}}getSession(){var n,o;if(!((o=(n=this.client)==null?void 0:n.funnel)!=null&&o.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("TagadaTracker: not initialized. Call init() first.");_(this.config.debug,"\u{1F680} Navigating:",e);let n=e.autoRedirect!==!1;try{let o=await this.client.funnel.navigate({type:e.eventType,data:e.eventData||{}},{autoRedirect:!1});return o!=null&&o.url?(_(this.config.debug,"\u2705 Navigation result:",o.url),n&&typeof window!="undefined"&&(window.location.href=e.returnUrl||o.url),{url:o.url}):null}catch(o){throw _(this.config.debug,"\u274C Navigation failed:",o),o}}async trackEvent(e){if(!this.isReady()){Uo("trackEvent called before init \u2014 event dropped:",e.name);return}_(this.config.debug,"\u{1F4CA} Tracking event:",e.name,e.data);try{await this.client.funnel.navigate({type:e.name,data:e.data||{}},{autoRedirect:!1})}catch(n){_(this.config.debug,"\u26A0\uFE0F Event tracking failed (non-critical):",e.name)}}getCustomerId(){var e,n,o,i,r;return((n=(e=this.client)==null?void 0:e.state.auth.customer)==null?void 0:n.id)||((r=(i=(o=this.client)==null?void 0:o.funnel)==null?void 0:i.state.context)==null?void 0:r.customerId)||null}getFunnelSessionId(){var e,n,o;return((o=(n=(e=this.client)==null?void 0:e.funnel)==null?void 0:n.state.context)==null?void 0:o.sessionId)||null}buildUrl(e,n){let o=this.getSession();if(!o)return e;let i=new URL(e,typeof window!="undefined"?window.location.origin:void 0);return i.searchParams.set("funnelSessionId",o.sessionId),o.cmsToken&&i.searchParams.set("token",o.cmsToken),o.funnelId&&i.searchParams.set("funnelId",o.funnelId),i.searchParams.set("storeId",o.storeId),n&&Object.entries(n).forEach(([r,s])=>{i.searchParams.set(r,s)}),i.toString()}getClient(){return this.client}async reset(e){var i,r;if(!this.client||!this.config)throw new Error("TagadaTracker: not initialized. Call init() first.");_(this.config.debug,"\u{1F504} Resetting to step:",e),this.config.stepId=e;let n=await this.initializeFunnel(),o=this.getSession();return o&&((r=(i=this.config).onReady)==null||r.call(i,o)),o}destroy(){var e,n;this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this.client&&((n=(e=this.client).destroy)==null||n.call(e)),this.client=null,this.config=null,this.initialized=!1,this.initializing=!1,_(!1,"\u{1F5D1}\uFE0F Tracker destroyed")}async waitForClientReady(){if(this.client)return new Promise(e=>{var i;if((i=this.client)!=null&&i.state.isInitialized){e();return}let n=!1,o=setTimeout(()=>{var r;n||(n=!0,_(((r=this.config)==null?void 0:r.debug)||!1,"\u23F1\uFE0F Client ready timeout \u2014 proceeding"),e())},1e4);this.unsubscribe=this.client.subscribe(()=>{var r;!n&&((r=this.client)!=null&&r.state.isInitialized)&&(n=!0,clearTimeout(o),e())})})}async initializeFunnel(){var s,a,c;if(!((s=this.client)!=null&&s.funnel))return null;let e=(a=this.client.state.auth.customer)==null?void 0:a.id,n=(c=this.client.state.auth.session)==null?void 0:c.sessionId;!e&&!n&&Uo("No auth session available \u2014 funnel init may fail.");let o={customerId:e||"anon_placeholder",sessionId:n||"sess_placeholder"},i={id:this.config.storeId,accountId:this.config.accountId},r=this.config.stepId;return _(this.config.debug,"\u{1F50D} Initializing funnel at step:",r),this.client.funnel.initialize(o,i,this.config.funnelId||Lo("funnelId")||void 0,r)}},Mo=new xt;typeof window!="undefined"&&(window.TagadaTracker=Mo);return Wo(Yr);})();
30
7
  // Expose TagadaTracker globally (if not already done in bundle)
31
8
  if (typeof window !== 'undefined' && TagadaTrackerBundle && TagadaTrackerBundle.TagadaTracker) {
32
9
  window.TagadaTracker = TagadaTrackerBundle.TagadaTracker;