@tagadapay/plugin-sdk 3.1.11 → 3.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1129 -1129
- package/build-cdn.js +231 -228
- package/dist/data/iso3166.d.ts +23 -33
- package/dist/data/iso3166.js +134 -198
- package/dist/data/languages.d.ts +5 -64
- package/dist/data/languages.js +23 -143
- package/dist/external-tracker.js +968 -102
- package/dist/external-tracker.min.js +2 -2
- package/dist/external-tracker.min.js.map +4 -4
- package/dist/react/hooks/useISOData.js +1 -1
- package/dist/react/hooks/usePaymentPolling.d.ts +3 -3
- package/dist/react/hooks/useShippingRates.d.ts +6 -0
- package/dist/react/hooks/useShippingRates.js +38 -0
- package/dist/react/providers/TagadaProvider.js +5 -5
- package/dist/react/services/apiService.d.ts +21 -0
- package/dist/react/services/apiService.js +10 -0
- package/dist/tagada-sdk.js +2079 -179
- package/dist/tagada-sdk.min.js +4 -2
- package/dist/tagada-sdk.min.js.map +4 -4
- package/dist/v2/core/client.d.ts +4 -2
- package/dist/v2/core/client.js +4 -3
- package/dist/v2/core/errors.d.ts +75 -0
- package/dist/v2/core/errors.js +104 -0
- package/dist/v2/core/funnelClient.d.ts +16 -15
- package/dist/v2/core/funnelClient.js +1 -1
- package/dist/v2/core/index.d.ts +1 -0
- package/dist/v2/core/index.js +2 -0
- package/dist/v2/core/pixelMapping.d.ts +49 -0
- package/dist/v2/core/pixelMapping.js +325 -0
- package/dist/v2/core/resources/apiClient.d.ts +2 -0
- package/dist/v2/core/resources/apiClient.js +52 -9
- package/dist/v2/core/resources/checkout.d.ts +89 -30
- package/dist/v2/core/resources/checkout.js +8 -0
- package/dist/v2/core/resources/customer.d.ts +20 -19
- package/dist/v2/core/resources/funnel.d.ts +17 -17
- package/dist/v2/core/resources/payments.d.ts +84 -13
- package/dist/v2/core/resources/payments.js +26 -9
- package/dist/v2/core/resources/shippingRates.d.ts +15 -0
- package/dist/v2/core/resources/shippingRates.js +11 -0
- package/dist/v2/core/types.d.ts +50 -12
- package/dist/v2/core/types.js +0 -3
- package/dist/v2/core/utils/checkout.d.ts +2 -2
- package/dist/v2/core/utils/checkout.js +7 -2
- package/dist/v2/core/utils/order.d.ts +11 -9
- package/dist/v2/core/utils/previewModeIndicator.js +101 -101
- package/dist/v2/index.d.ts +4 -2
- package/dist/v2/index.js +1 -1
- package/dist/v2/react/components/ApplePayButton.js +13 -4
- package/dist/v2/react/components/FunnelScriptInjector.js +51 -30
- package/dist/v2/react/components/WhopCheckout.d.ts +24 -0
- package/dist/v2/react/components/WhopCheckout.js +231 -0
- package/dist/v2/react/hooks/__examples__/FunnelContextExample.js +1 -1
- package/dist/v2/react/hooks/payment-actions/useAirwallexRadarAction.d.ts +14 -0
- package/dist/v2/react/hooks/payment-actions/useAirwallexRadarAction.js +181 -0
- package/dist/v2/react/hooks/payment-actions/useErrorAction.d.ts +9 -0
- package/dist/v2/react/hooks/payment-actions/useErrorAction.js +21 -0
- package/dist/v2/react/hooks/payment-actions/useFinixRadarAction.d.ts +14 -0
- package/dist/v2/react/hooks/payment-actions/useFinixRadarAction.js +187 -0
- package/dist/v2/react/hooks/payment-actions/useKessPayAction.d.ts +11 -0
- package/dist/v2/react/hooks/payment-actions/useKessPayAction.js +91 -0
- package/dist/v2/react/hooks/payment-actions/useMasterCardAction.d.ts +24 -0
- package/dist/v2/react/hooks/payment-actions/useMasterCardAction.js +221 -0
- package/dist/v2/react/hooks/payment-actions/usePaymentActionHandler.d.ts +15 -0
- package/dist/v2/react/hooks/payment-actions/usePaymentActionHandler.js +142 -0
- package/dist/v2/react/hooks/payment-actions/useProcessorAuthAction.d.ts +3 -0
- package/dist/v2/react/hooks/payment-actions/useProcessorAuthAction.js +13 -0
- package/dist/v2/react/hooks/payment-actions/useRedirectAction.d.ts +10 -0
- package/dist/v2/react/hooks/payment-actions/useRedirectAction.js +35 -0
- package/dist/v2/react/hooks/payment-actions/useStripeRadarAction.d.ts +14 -0
- package/dist/v2/react/hooks/payment-actions/useStripeRadarAction.js +192 -0
- package/dist/v2/react/hooks/payment-actions/useThreedsAuthAction.d.ts +14 -0
- package/dist/v2/react/hooks/payment-actions/useThreedsAuthAction.js +81 -0
- package/dist/v2/react/hooks/payment-actions/useTrustFlowAction.d.ts +11 -0
- package/dist/v2/react/hooks/payment-actions/useTrustFlowAction.js +84 -0
- package/dist/v2/react/hooks/payment-processing/usePaymentInstruments.d.ts +14 -0
- package/dist/v2/react/hooks/payment-processing/usePaymentInstruments.js +36 -0
- package/dist/v2/react/hooks/payment-processing/usePaymentProcessors.d.ts +31 -0
- package/dist/v2/react/hooks/payment-processing/usePaymentProcessors.js +212 -0
- package/dist/v2/react/hooks/payment-redirect/useAirwallex3dsReturn.d.ts +14 -0
- package/dist/v2/react/hooks/payment-redirect/useAirwallex3dsReturn.js +207 -0
- package/dist/v2/react/hooks/payment-redirect/useGenericPaymentReturn.d.ts +12 -0
- package/dist/v2/react/hooks/payment-redirect/useGenericPaymentReturn.js +101 -0
- package/dist/v2/react/hooks/useCheckoutQuery.d.ts +6 -0
- package/dist/v2/react/hooks/useCheckoutQuery.js +45 -0
- package/dist/v2/react/hooks/useFunnel.d.ts +1 -2
- package/dist/v2/react/hooks/useGeoLocation.d.ts +2 -1
- package/dist/v2/react/hooks/useGeoLocation.js +4 -2
- package/dist/v2/react/hooks/useGoogleAutocomplete.js +82 -33
- package/dist/v2/react/hooks/useISOData.js +1 -1
- package/dist/v2/react/hooks/usePaymentPolling.d.ts +3 -3
- package/dist/v2/react/hooks/usePaymentQuery.d.ts +18 -5
- package/dist/v2/react/hooks/usePaymentQuery.js +63 -1015
- package/dist/v2/react/hooks/usePaymentRetrieve.d.ts +3 -2
- package/dist/v2/react/hooks/usePaymentRetrieve.js +3 -1
- package/dist/v2/react/hooks/usePixelTracking.d.ts +5 -43
- package/dist/v2/react/hooks/usePixelTracking.js +213 -407
- package/dist/v2/react/hooks/useShippingRatesQuery.d.ts +6 -0
- package/dist/v2/react/hooks/useShippingRatesQuery.js +47 -4
- package/dist/v2/react/hooks/useStepConfig.d.ts +2 -8
- package/dist/v2/react/hooks/useStepConfig.js +1 -1
- package/dist/v2/react/hooks/useWhopPaymentPolling.d.ts +30 -0
- package/dist/v2/react/hooks/useWhopPaymentPolling.js +61 -0
- package/dist/v2/react/index.d.ts +7 -0
- package/dist/v2/react/index.js +4 -0
- package/dist/v2/react/providers/ExpressPaymentMethodsProvider.d.ts +2 -1
- package/dist/v2/react/providers/ExpressPaymentMethodsProvider.js +3 -1
- package/dist/v2/react/providers/TagadaProvider.js +76 -7
- package/dist/v2/standalone/external-tracker.d.ts +52 -46
- package/dist/v2/standalone/external-tracker.js +205 -98
- package/dist/v2/standalone/index.d.ts +22 -0
- package/dist/v2/standalone/index.js +125 -0
- package/package.json +112 -112
- package/dist/react/utils/__tests__/urlUtils.test.d.ts +0 -1
- package/dist/react/utils/__tests__/urlUtils.test.js +0 -189
- package/dist/v2/core/__tests__/pathRemapping.test.d.ts +0 -11
- package/dist/v2/core/__tests__/pathRemapping.test.js +0 -776
package/dist/tagada-sdk.min.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* TagadaPay SDK v3.1.
|
|
2
|
+
* TagadaPay SDK v3.1.22
|
|
3
3
|
* CDN Bundle - Full standalone SDK for external/vanilla pages
|
|
4
4
|
* Usage: window.tgd.createTagadaClient(), window.tgd.formatMoney(), etc.
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
7
|
-
"use strict";var TagadaSDKBundle=(()=>{var zt=Object.defineProperty,Fr=Object.defineProperties,Hr=Object.getOwnPropertyDescriptor,Gr=Object.getOwnPropertyDescriptors,Vr=Object.getOwnPropertyNames,ji=Object.getOwnPropertySymbols;var qi=Object.prototype.hasOwnProperty,Kr=Object.prototype.propertyIsEnumerable;var Be=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Wr=t=>{throw TypeError(t)};var $i=(t,e,n)=>e in t?zt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,O=(t,e)=>{for(var n in e||(e={}))qi.call(e,n)&&$i(t,n,e[n]);if(ji)for(var n of ji(e))Kr.call(e,n)&&$i(t,n,e[n]);return t},K=(t,e)=>Fr(t,Gr(e));var Ie=(t,e)=>()=>(t&&(e=t(t=0)),e);var Pn=(t,e)=>{for(var n in e)zt(t,n,{get:e[n],enumerable:!0})},zr=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Vr(e))!qi.call(t,o)&&o!==n&&zt(t,o,{get:()=>e[o],enumerable:!(i=Hr(e,o))||i.enumerable});return t};var Yr=t=>zr(zt({},"__esModule",{value:!0}),t);var Pe=function(t,e){this[0]=t,this[1]=e},Nn=(t,e,n)=>{var i=(s,a,l,u)=>{try{var d=n[s](a),p=(a=d.value)instanceof Pe,I=d.done;Promise.resolve(p?a[0]:a).then(w=>p?i(s==="return"?s:"next",a[1]?{done:w.done,value:w.value}:w,l,u):l({value:w,done:I})).catch(w=>i("throw",w,l,u))}catch(w){u(w)}},o=s=>r[s]=a=>new Promise((l,u)=>i(s,a,l,u)),r={};return n=n.apply(t,e),r[Be("asyncIterator")]=()=>r,o("next"),o("throw"),o("return"),r},xn=t=>{var e=t[Be("asyncIterator")],n=!1,i,o={};return e==null?(e=t[Be("iterator")](),i=r=>o[r]=s=>e[r](s)):(e=e.call(t),i=r=>o[r]=s=>{if(n){if(n=!1,r==="throw")throw s;return s}return n=!0,{done:!1,value:new Pe(new Promise(a=>{var l=e[r](s);l instanceof Object||Wr("Object expected"),a(l)}),1)}}),o[Be("iterator")]=()=>o,i("next"),"throw"in e?i("throw"):o.throw=r=>{throw r},"return"in e&&i("return"),o},Xi=(t,e,n)=>(e=t[Be("asyncIterator")])?e.call(t):(t=t[Be("iterator")](),e={},n=(i,o)=>(o=t[i])&&(e[i]=r=>new Promise((s,a,l)=>(r=o.call(t,r),l=r.done,Promise.resolve(r.value).then(u=>s({value:u,done:l}),a)))),n("next"),n("return"),e);function Zi(t){var i;if(typeof document=="undefined")return null;let n="; ".concat(document.cookie).split("; ".concat(t,"="));return n.length===2&&((i=n.pop())==null?void 0:i.split(";").shift())||null}function Qi(t="local"){let e=Ji[t];if(!e)return console.warn("Unknown environment: ".concat(t,". Falling back to local.")),{environment:"local",apiConfig:Ji.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")||Zi("tgd_client_base_url")}catch(o){}return n?(console.log("[SDK] Using custom API base URL override: ".concat(n)),{environment:t,apiConfig:K(O({},e),{baseUrl:n})}):{environment:t,apiConfig:e}}function st(){var o;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")||Zi("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,i=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"&&((o=window==null?void 0:window.__TAGADA_ENV__)!=null&&o.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")||i.includes("?env=dev")||i.includes("?dev=true")||i.includes("#dev")?"development":(console.warn("[SDK] Unknown domain: ".concat(n,", defaulting to production")),"production")}function at(t=!1){return st()!=="local"?!1:t&&typeof window!="undefined"?!window.location.hostname.includes(".cdn."):!0}var Ji,Yt=Ie(()=>{"use strict";Ji={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 $t,jt,kn=Ie(()=>{"use strict";$t=(I=>(I.DIRECT_NAVIGATION="direct_navigation",I.BACK_NAVIGATION="back_navigation",I.CONTINUE_CLICKED="continue_clicked",I.BUTTON_CLICK="button_click",I.FORM_SUBMIT="form_submit",I.PAYMENT_SUCCESS="payment_success",I.PAYMENT_FAILED="payment_failed",I.OFFER_ACCEPTED="offer_accepted",I.OFFER_DECLINED="offer_declined",I.CART_UPDATED="cart_updated",I.CART_ITEM_ADDED="cart_item_added",I.CUSTOM="custom",I))($t||{}),jt=class{constructor(e){this.apiClient=e}async initialize(e){return this.apiClient.post("/api/v1/funnel/initialize",e)}async navigate(e){return this.apiClient.post("/api/v1/funnel/navigate",e)}async updateContext(e,n){return this.apiClient.patch("/api/v1/funnel/context/".concat(e),n)}async endSession(e){return this.apiClient.delete("/api/v1/funnel/session/".concat(e))}async getSession(e,n,i){let o=new URLSearchParams;n&&o.append("currentUrl",n),i&&o.append("includeDebugData","true");let r="/api/v1/funnel/session/".concat(e).concat(o.toString()?"?".concat(o):"");return this.apiClient.get(r)}}});var Me,Ln=Ie(()=>{"use strict";Me=class{constructor(){this.listeners=new Set}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(e){this.listeners.forEach(n=>{try{n(e)}catch(i){console.error("Error in event listener:",i)}})}clear(){this.listeners.clear()}}});function ne(t){if(typeof window!="undefined")try{let n=localStorage.getItem(qt)!==t;localStorage.setItem(qt,t),n&&window.dispatchEvent(new Event("storage"))}catch(e){console.error("Failed to save token to localStorage:",e)}}function lt(){if(typeof window!="undefined")try{return localStorage.getItem(qt)}catch(t){return console.error("Failed to get token from localStorage:",t),null}return null}function Ue(){if(typeof window!="undefined")try{localStorage.removeItem(qt)}catch(t){console.error("Failed to clear token from localStorage:",t)}}var qt,Fe=Ie(()=>{"use strict";qt="cms_token"});function Dn(t){typeof document!="undefined"&&(document.cookie="".concat(_n,"=").concat(t,"; path=/; max-age=2592000; SameSite=Lax"))}function Xt(){if(typeof document=="undefined")return;let t=document.cookie.split("; ").find(e=>e.startsWith("".concat(_n,"=")));return t?t.split("=")[1]:void 0}function ct(){typeof document!="undefined"&&(document.cookie="".concat(_n,"=; path=/; max-age=0"))}function $r(){return!!Xt()}function qr(){var t;if(typeof document!="undefined")try{let e=document.cookie.split("; ").find(i=>i.startsWith("".concat(jr,"=")));if(!e)return;let n=JSON.parse(decodeURIComponent(e.split("=")[1]));return(t=n==null?void 0:n.metadata)==null?void 0:t.funnelVariantId}catch(e){console.warn("Failed to parse sticky session for variant ID:",e);return}}var _n,jr,ut=Ie(()=>{"use strict";_n="tgd-funnel-session-id",jr="tgd-session-id"});function He(t){if(typeof window=="undefined")return null;try{return localStorage.getItem(t)}catch(e){return null}}function Jt(t,e){if(typeof window!="undefined")try{localStorage.setItem(t,e)}catch(n){}}function dt(t){var i;if(typeof document=="undefined")return null;let n=document.cookie.split(";").find(o=>o.trim().startsWith("".concat(t,"=")));return n?(i=n.split("=")[1])==null?void 0:i.trim():null}function Bn(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 to(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 y=He(B.DRAFT);y!==null&&(e=y==="true")}let i,o=t.get("funnelTracking");if(o!==null)i=o!=="false";else{let y=He(B.FUNNEL_TRACKING)||dt(B.FUNNEL_TRACKING);y!==null&&(i=y!=="false")}let r=t.get("token")||lt()||null,s=t.get("funnelSessionId")||null,a=t.get("funnelId")||null,l,u=t.get("funnelEnv");u&&(u==="staging"||u==="production")&&(l=u);let d=t.get("forceReset")==="true",p,I=t.get("tagadaClientEnv");if(I&&(I==="production"||I==="development"||I==="local"))p=I;else{let y=He(B.CLIENT_ENV)||dt(B.CLIENT_ENV);y&&(y==="production"||y==="development"||y==="local")&&(p=y)}let w,f=t.get("tagadaClientBaseUrl");if(f)w=f;else{let y=He(B.CLIENT_BASE_URL)||dt(B.CLIENT_BASE_URL);y&&(w=y)}let C,b=t.get("currency");if(b)C=b;else{let y=He(B.CURRENCY)||dt(B.CURRENCY);y&&(C=y)}let v,L=t.get("locale");if(L)v=L;else{let y=He(B.LOCALE)||dt(B.LOCALE);y&&(v=y)}return{forceReset:d,token:r,funnelSessionId:s,funnelId:a,draft:e,funnelTracking:i,funnelEnv:l,tagadaClientEnv:p,tagadaClientBaseUrl:w,currency:C,locale:v}}function ft(){var e;return(e=Ne().draft)!=null?e:!1}function Mn(t){if(typeof window!="undefined")if(t)Jt(B.DRAFT,"true");else try{localStorage.removeItem(B.DRAFT)}catch(e){}}function no(t=!1){let e=null;typeof window!="undefined"&&(e=new URLSearchParams(window.location.search).get("token"));let n=Ne(),i=n.forceReset||!1;if(!i&&!n.token)return eo(),!1;t&&(console.log("[SDK] Detected params:",n),console.log("[SDK] URL token (direct read):",e?e.substring(0,20)+"...":"none")),i&&(t&&console.log("[SDK] Force reset: Clearing all stored state"),Ue(),ct(),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 o=e||n.token;return o!=null?(t&&console.log("[SDK] Setting token from URL:",o.substring(0,20)+"..."),o===""||o==="null"?Ue():(ne(o),t&&console.log("[SDK] \u2705 Token set in localStorage immediately after clear"))):i&&(t&&console.log("[SDK] Force reset mode (no token in URL)"),Ue()),eo(),n.funnelSessionId&&t&&console.log("[SDK] Using funnelSessionId from URL:",n.funnelSessionId),i}function eo(){if(typeof window=="undefined")return;let t=new URLSearchParams(window.location.search),e=t.get("draft");e!==null&&Mn(e==="true");let n=t.get("funnelTracking");n!==null&&Xr(n!=="false");let i=t.get("tagadaClientEnv");i&&(i==="production"||i==="development"||i==="local")&&Jr(i);let o=t.get("tagadaClientBaseUrl");o&&Zr(o)}function Xr(t){if(typeof window=="undefined")return;let e=t?"true":"false";Jt(B.FUNNEL_TRACKING,e),Bn(B.FUNNEL_TRACKING,e,86400)}function Jr(t){typeof window!="undefined"&&(Jt(B.CLIENT_ENV,t),Bn(B.CLIENT_ENV,t,86400))}function io(){if(typeof window!="undefined")try{localStorage.removeItem(B.CLIENT_ENV),to(B.CLIENT_ENV)}catch(t){}}function Zr(t){typeof window!="undefined"&&(Jt(B.CLIENT_BASE_URL,t),Bn(B.CLIENT_BASE_URL,t,86400))}function oo(){if(typeof window!="undefined")try{localStorage.removeItem(B.CLIENT_BASE_URL),to(B.CLIENT_BASE_URL)}catch(t){}}function ro(){var e;return(e=Ne().funnelTracking)!=null?e:!0}var B,Zt=Ie(()=>{"use strict";Fe();ut();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 Un(t){if(typeof window=="undefined"||typeof document=="undefined")return;let e=window.location.hostname,n=e.split("."),i=["",e,"."+e];for(let a=1;a<n.length;a++){let l=n.slice(a).join(".");i.push(l),i.push("."+l)}let o=window.location.pathname.split("/").filter(a=>a),r=["/"],s="";o.forEach(a=>{s+="/"+a,r.push(s)}),i.forEach(a=>{r.forEach(l=>{let u="".concat(t,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(l),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 es(){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)}Ue(),ct(),io(),oo(),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=>Un(r)),["tgd-draft","tgd_draft","tgd.draft","tgddraft"].forEach(r=>Un(r)),document.cookie&&document.cookie.split(";").forEach(s=>{let a=s.split("=")[0].trim();if(!a)return;let l=window.location.hostname,u=l.split("."),d=["",l,"."+l];for(let f=1;f<u.length;f++){let C=u.slice(f).join(".");d.push(C),d.push("."+C)}let p=window.location.pathname.split("/").filter(f=>f),I=["/"],w="";p.forEach(f=>{w+="/"+f,I.push(w)}),d.forEach(f=>{I.forEach(C=>{let b="".concat(a,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(C),v=f?"; domain=".concat(f):"";document.cookie=b+v,document.cookie=b+v+"; secure",document.cookie=b+v+"; SameSite=None; secure",document.cookie=b+v+"; SameSite=Lax",document.cookie=b+v+"; SameSite=Strict",document.cookie=b+v+"; secure; SameSite=None",document.cookie=b+v+"; secure; SameSite=Lax",document.cookie=b+v+"; secure; SameSite=Strict"})})}),setTimeout(()=>{window.localStorage&&localStorage.length>0&&localStorage.clear(),Un("tgd_draft"),typeof window.stop=="function"&&window.stop(),window.location.replace(e.href)},10)}function Fn(){if(so||typeof window=="undefined"||typeof document=="undefined")return;let t=Ne(),e=ft(),n=!ro(),i=!!(t.tagadaClientEnv||t.tagadaClientBaseUrl);if(!e&&!n&&!i)return;let o=document.createElement("div");o.id="tgd-preview-indicator",o.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 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 u=!1,d=()=>{u=!0,s.style.display="block",a.style.display="block"},p=()=>{u=!1,setTimeout(()=>{u||(s.style.display="none",a.style.display="none")},100)};r.addEventListener("mouseenter",d),r.addEventListener("mouseleave",p),a.addEventListener("mouseenter",d),a.addEventListener("mouseleave",p),s.addEventListener("mouseenter",d),s.addEventListener("mouseleave",p);let I=s.querySelector("#tgd-leave-preview");I&&(I.addEventListener("mouseenter",()=>{I.style.opacity="0.8"}),I.addEventListener("mouseleave",()=>{I.style.opacity="1"}),I.addEventListener("click",w=>{w.stopPropagation(),es()})),o.appendChild(r),o.appendChild(a),o.appendChild(s),document.body.appendChild(o),Qr=o,so=!0}var Qr,so,ao=Ie(()=>{"use strict";Zt();Fe();ut();Qr=null,so=!1});var fo={};Pn(fo,{FunnelClient:()=>gt,TrackingProvider:()=>co,getAssignedPaymentFlowId:()=>rs,getAssignedPixels:()=>ls,getAssignedScripts:()=>as,getAssignedStaticResources:()=>ss,getAssignedStepConfig:()=>mt,getLocalFunnelConfig:()=>uo,loadLocalFunnelConfig:()=>is});function ts(){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 Qt(){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 pt(){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 lo(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 i of n)try{let o=i();if(o&&typeof o=="object")return o}catch(o){}typeof console!="undefined"&&console.warn("[SDK] Failed to parse stepConfig:",e.substring(0,100))}function ns(){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 is(){if(!ns())return null;if(ie!==void 0)return ie;if(Hn)return await new Promise(t=>setTimeout(t,100)),ie!=null?ie:null;Hn=!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{Hn=!1}}function uo(){return ie!=null?ie:null}function os(t){return{payment:t.paymentFlowId?{paymentFlowId:t.paymentFlowId}:void 0,staticResources:t.staticResources,scripts:t.scripts,pixels:t.pixels}}function mt(){if(typeof window=="undefined")return;let t=uo();if(t)return console.log("\u{1F6E0}\uFE0F [SDK] Using local funnel.local.json (overrides injected)"),os(t);let e=window.__TGD_STEP_CONFIG__;if(e){let n=lo(e);if(n)return n}if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-step-config"]'),i=n==null?void 0:n.getAttribute("content");if(i){let o=lo(i);if(o)return o}}}function rs(){var e;let t=mt();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 ss(){let t=mt();return t==null?void 0:t.staticResources}function as(t){let e=mt();if(!(e!=null&&e.scripts))return;let n=e.scripts.filter(i=>i.enabled);return t&&(n=n.filter(i=>i.position===t||!i.position&&t==="head-end")),n.length>0?n:void 0}function ls(){let t=mt(),e=t==null?void 0:t.pixels;if(!e||typeof e!="object")return;let n={};for(let[i,o]of Object.entries(e))o&&(Array.isArray(o)?n[i]=o:typeof o=="object"&&(n[i]=[o]));return Object.keys(n).length>0?n:void 0}var co,ie,Hn,gt,Gn=Ie(()=>{"use strict";Yt();kn();Ln();Zt();ao();ut();co=(r=>(r.FACEBOOK="facebook",r.TIKTOK="tiktok",r.SNAPCHAT="snapchat",r.META_CONVERSION="meta_conversion",r.GTM="gtm",r))(co||{});Hn=!1;gt=class{constructor(e){this.eventDispatcher=new Me;this.isInitializing=!1;this.initializationAttempted=!1;this.config=e,this.resource=new jt(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 i;if((i=this.state.context)!=null&&i.sessionId)return this.state.context.sessionId;if(typeof window=="undefined")return null;let n=new URLSearchParams(window.location.search).get("funnelSessionId");return n||Xt()||null}resetInitialization(){this.initializationAttempted=!1,this.isInitializing=!1,this.updateState({context:null,isInitialized:!1})}async autoInitialize(e,n,i){if(this.state.context)return this.state.context;if(this.isInitializing||this.initializationAttempted)return null;this.initializationAttempted=!0,this.isInitializing=!0,this.updateState({isLoading:!0,error:null});try{let o=this.getDetectedSessionId(),a=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||i,l=ts(),u=Qt(),d=pt(),p=Ne(),I=this.config.funnelId||l||a,w=this.config.stepId||d,f=typeof window!="undefined"?new URLSearchParams(window.location.search):null,C=f==null?void 0:f.get("funnelEnv");this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-initializing...",{existingSessionId:o,effectiveFunnelId:I,funnelVariantId:u,funnelStepId:w,draft:p.draft,funnelTracking:p.funnelTracking,funnelEnv:C,tagadaClientEnv:p.tagadaClientEnv,tagadaClientBaseUrl:p.tagadaClientBaseUrl,source:{funnelId:this.config.funnelId?"config":l?"injected":a?"url/prop":"none",stepId:this.config.stepId?"config":d?"injected":"none"}});let b=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:I,existingSessionId:o||void 0,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:u,funnelStepId:w,draft:p.draft,funnelTracking:p.funnelTracking,funnelEnv:C||void 0,tagadaClientEnv:p.tagadaClientEnv,tagadaClientBaseUrl:p.tagadaClientBaseUrl,currency:p.currency,locale:p.locale});if(b.success&&b.context){let v=this.enrichContext(b.context);return this.handleSessionSuccess(v),Fn(),v}else throw new Error(b.error||"Failed to initialize funnel session")}catch(o){let r=o instanceof Error?o:new Error(String(o));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,i,o){this.updateState({isLoading:!0,error:null});try{let r=Qt(),s=pt();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:i,entryStepId:o,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:r,funnelStepId:s});if(a.success&&a.context){let l=this.enrichContext(a.context);return this.handleSessionSuccess(l),Fn(),l}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 i,o,r,s,a,l;if(n!=null&&n.waitForSession&&!((i=this.state.context)!=null&&i.sessionId)){this.config.debugMode&&console.log("\u23F3 [FunnelClient] Waiting for session before navigation...");let u=5e3,d=Date.now();for(;!((o=this.state.context)!=null&&o.sessionId)&&Date.now()-d<u;)await new Promise(p=>setTimeout(p,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=Qt(),d=pt(),p=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:p,funnelStepId:d||"(not found)",funnelVariantId:u||"(not found)",hasInjectedStepId:!!pt(),hasInjectedVariantId:!!Qt(),usedConfigFallback:!pt()&&!!this.config.stepId,customerTags:(n==null?void 0:n.customerTags)||"(none)",deviceId:(n==null?void 0:n.deviceId)||"(none)"});let I=(n==null?void 0:n.fireAndForget)||!1,w=await this.resource.navigate({sessionId:this.state.context.sessionId,event:e,currentUrl:p,funnelStepId:d,funnelVariantId:u,fireAndForget:I,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 C=(n==null?void 0:n.autoRedirect)!==void 0?n.autoRedirect:this.config.autoRedirect!==!1;return C||(this.config.debugMode&&console.log("\u{1F504} [FunnelClient] Refreshing session (no auto-redirect)"),await this.refreshSession()),this.updateState({isNavigating:!1,isLoading:!1}),C&&(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 i=this.enrichContext(n.context);return this.updateState({context:i,sessionError:null}),i}}catch(n){this.updateState({sessionError:n instanceof Error?n:new Error(String(n))})}}async updateContext(e){var n;if(!((n=this.state.context)!=null&&n.sessionId))throw new Error("No active session");this.updateState({isLoading:!0});try{let i=await this.resource.updateContext(this.state.context.sessionId,{contextUpdates:e});if(i.success)await this.refreshSession();else throw new Error(i.error||"Failed to update context")}finally{this.updateState({isLoading:!1})}}async endSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{await this.resource.endSession(this.state.context.sessionId)}finally{this.state.context=null,this.updateState({context:null,isInitialized:!1})}}updateState(e){this.state=O(O({},this.state),e),this.eventDispatcher.notify(this.state)}handleSessionSuccess(e){Dn(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)||st())!=="local")return e;let i=((a=this.config.pluginConfig)==null?void 0:a.staticResources)||{};if(Object.keys(i).length===0)return e;let o=e.static||{};return Object.keys(i).every(l=>o[l]===i[l])&&Object.keys(o).length===Object.keys(i).length?e:K(O({},e),{static:O(O({},i),o)})}}});var nl={};Pn(nl,{ApiClient:()=>$e,CheckoutResource:()=>Rn,CheckoutUtils:()=>Mi,CurrencyUtils:()=>Vt,FunnelActionType:()=>$t,OrderBumpUtils:()=>Hi,OrderUtils:()=>Bi,PluginConfigUtils:()=>xi,PostPurchasesUtils:()=>Fi,ProductsUtils:()=>Di,PromotionsUtils:()=>Ui,TagadaClient:()=>Gt,TagadaExternalTracker:()=>Kt,TagadaTracker:()=>Gi,broadcastConfigUpdate:()=>Qa,clearFunnelSessionCookie:()=>ct,createRawPluginConfig:()=>Lr,createTagadaClient:()=>Vi,debounceConfigUpdate:()=>tl,formatMoney:()=>Ja,funnelQueryKeys:()=>Za,getFunnelSessionCookie:()=>Xt,getFunnelVariantId:()=>qr,getPluginConfig:()=>ja,hasFunnelSessionCookie:()=>$r,loadLocalConfig:()=>kr,loadPluginConfig:()=>ki,onConfigUpdate:()=>el,sendConfigUpdate:()=>Br,setFunnelSessionCookie:()=>Dn});Yt();Gn();function ht(t,e){return function(){return t.apply(e,arguments)}}var{toString:cs}=Object.prototype,{getPrototypeOf:Kn}=Object,{iterator:tn,toStringTag:go}=Symbol,nn=(t=>e=>{let n=cs.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),oe=t=>(t=t.toLowerCase(),e=>nn(e)===t),on=t=>e=>typeof e===t,{isArray:Ve}=Array,Ge=on("undefined");function Et(t){return t!==null&&!Ge(t)&&t.constructor!==null&&!Ge(t.constructor)&&X(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}var mo=oe("ArrayBuffer");function us(t){let e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&mo(t.buffer),e}var ds=on("string"),X=on("function"),ho=on("number"),At=t=>t!==null&&typeof t=="object",fs=t=>t===!0||t===!1,en=t=>{if(nn(t)!=="object")return!1;let e=Kn(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(go in t)&&!(tn in t)},ps=t=>{if(!At(t)||Et(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(e){return!1}},gs=oe("Date"),ms=oe("File"),hs=oe("Blob"),Es=oe("FileList"),As=t=>At(t)&&X(t.pipe),bs=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||X(t.append)&&((e=nn(t))==="formdata"||e==="object"&&X(t.toString)&&t.toString()==="[object FormData]"))},ws=oe("URLSearchParams"),[Is,Ss,Cs,Ts]=["ReadableStream","Request","Response","Headers"].map(oe),ys=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function bt(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t=="undefined")return;let i,o;if(typeof t!="object"&&(t=[t]),Ve(t))for(i=0,o=t.length;i<o;i++)e.call(null,t[i],i,t);else{if(Et(t))return;let r=n?Object.getOwnPropertyNames(t):Object.keys(t),s=r.length,a;for(i=0;i<s;i++)a=r[i],e.call(null,t[a],a,t)}}function Eo(t,e){if(Et(t))return null;e=e.toLowerCase();let n=Object.keys(t),i=n.length,o;for(;i-- >0;)if(o=n[i],e===o.toLowerCase())return o;return null}var xe=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,Ao=t=>!Ge(t)&&t!==xe;function Vn(){let{caseless:t,skipUndefined:e}=Ao(this)&&this||{},n={},i=(o,r)=>{let s=t&&Eo(n,r)||r;en(n[s])&&en(o)?n[s]=Vn(n[s],o):en(o)?n[s]=Vn({},o):Ve(o)?n[s]=o.slice():(!e||!Ge(o))&&(n[s]=o)};for(let o=0,r=arguments.length;o<r;o++)arguments[o]&&bt(arguments[o],i);return n}var Os=(t,e,n,{allOwnKeys:i}={})=>(bt(e,(o,r)=>{n&&X(o)?t[r]=ht(o,n):t[r]=o},{allOwnKeys:i}),t),Rs=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),vs=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},Ps=(t,e,n,i)=>{let o,r,s,a={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),r=o.length;r-- >0;)s=o[r],(!i||i(s,t,e))&&!a[s]&&(e[s]=t[s],a[s]=!0);t=n!==!1&&Kn(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Ns=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;let i=t.indexOf(e,n);return i!==-1&&i===n},xs=t=>{if(!t)return null;if(Ve(t))return t;let e=t.length;if(!ho(e))return null;let n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},ks=(t=>e=>t&&e instanceof t)(typeof Uint8Array!="undefined"&&Kn(Uint8Array)),Ls=(t,e)=>{let i=(t&&t[tn]).call(t),o;for(;(o=i.next())&&!o.done;){let r=o.value;e.call(t,r[0],r[1])}},_s=(t,e)=>{let n,i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},Ds=oe("HTMLFormElement"),Bs=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,i,o){return i.toUpperCase()+o}),po=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),Ms=oe("RegExp"),bo=(t,e)=>{let n=Object.getOwnPropertyDescriptors(t),i={};bt(n,(o,r)=>{let s;(s=e(o,r,t))!==!1&&(i[r]=s||o)}),Object.defineProperties(t,i)},Us=t=>{bo(t,(e,n)=>{if(X(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;let i=t[n];if(X(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Fs=(t,e)=>{let n={},i=o=>{o.forEach(r=>{n[r]=!0})};return Ve(t)?i(t):i(String(t).split(e)),n},Hs=()=>{},Gs=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Vs(t){return!!(t&&X(t.append)&&t[go]==="FormData"&&t[tn])}var Ks=t=>{let e=new Array(10),n=(i,o)=>{if(At(i)){if(e.indexOf(i)>=0)return;if(Et(i))return i;if(!("toJSON"in i)){e[o]=i;let r=Ve(i)?[]:{};return bt(i,(s,a)=>{let l=n(s,o+1);!Ge(l)&&(r[a]=l)}),e[o]=void 0,r}}return i};return n(t,0)},Ws=oe("AsyncFunction"),zs=t=>t&&(At(t)||X(t))&&X(t.then)&&X(t.catch),wo=((t,e)=>t?setImmediate:e?((n,i)=>(xe.addEventListener("message",({source:o,data:r})=>{o===xe&&r===n&&i.length&&i.shift()()},!1),o=>{i.push(o),xe.postMessage(n,"*")}))("axios@".concat(Math.random()),[]):n=>setTimeout(n))(typeof setImmediate=="function",X(xe.postMessage)),Ys=typeof queueMicrotask!="undefined"?queueMicrotask.bind(xe):typeof process!="undefined"&&process.nextTick||wo,js=t=>t!=null&&X(t[tn]),c={isArray:Ve,isArrayBuffer:mo,isBuffer:Et,isFormData:bs,isArrayBufferView:us,isString:ds,isNumber:ho,isBoolean:fs,isObject:At,isPlainObject:en,isEmptyObject:ps,isReadableStream:Is,isRequest:Ss,isResponse:Cs,isHeaders:Ts,isUndefined:Ge,isDate:gs,isFile:ms,isBlob:hs,isRegExp:Ms,isFunction:X,isStream:As,isURLSearchParams:ws,isTypedArray:ks,isFileList:Es,forEach:bt,merge:Vn,extend:Os,trim:ys,stripBOM:Rs,inherits:vs,toFlatObject:Ps,kindOf:nn,kindOfTest:oe,endsWith:Ns,toArray:xs,forEachEntry:Ls,matchAll:_s,isHTMLForm:Ds,hasOwnProperty:po,hasOwnProp:po,reduceDescriptors:bo,freezeMethods:Us,toObjectSet:Fs,toCamelCase:Bs,noop:Hs,toFiniteNumber:Gs,findKey:Eo,global:xe,isContextDefined:Ao,isSpecCompliantForm:Vs,toJSONObject:Ks,isAsyncFn:Ws,isThenable:zs,setImmediate:wo,asap:Ys,isIterable:js};function Ke(t,e,n,i,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),i&&(this.request=i),o&&(this.response=o,this.status=o.status?o.status:null)}c.inherits(Ke,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:c.toJSONObject(this.config),code:this.code,status:this.status}}});var Io=Ke.prototype,So={};["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=>{So[t]={value:t}});Object.defineProperties(Ke,So);Object.defineProperty(Io,"isAxiosError",{value:!0});Ke.from=(t,e,n,i,o,r)=>{let s=Object.create(Io);c.toFlatObject(t,s,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");let a=t&&t.message?t.message:"Error",l=e==null&&t?t.code:e;return Ke.call(s,a,l,n,i,o),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 T=Ke;var rn=null;function Wn(t){return c.isPlainObject(t)||c.isArray(t)}function To(t){return c.endsWith(t,"[]")?t.slice(0,-2):t}function Co(t,e,n){return t?t.concat(e).map(function(o,r){return o=To(o),!n&&r?"["+o+"]":o}).join(n?".":""):e}function $s(t){return c.isArray(t)&&!t.some(Wn)}var qs=c.toFlatObject(c,{},null,function(e){return/^is[A-Z]/.test(e)});function Xs(t,e,n){if(!c.isObject(t))throw new TypeError("target must be an object");e=e||new(rn||FormData),n=c.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(C,b){return!c.isUndefined(b[C])});let i=n.metaTokens,o=n.visitor||d,r=n.dots,s=n.indexes,l=(n.Blob||typeof Blob!="undefined"&&Blob)&&c.isSpecCompliantForm(e);if(!c.isFunction(o))throw new TypeError("visitor must be a function");function u(f){if(f===null)return"";if(c.isDate(f))return f.toISOString();if(c.isBoolean(f))return f.toString();if(!l&&c.isBlob(f))throw new T("Blob is not supported. Use a Buffer instead.");return c.isArrayBuffer(f)||c.isTypedArray(f)?l&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function d(f,C,b){let v=f;if(f&&!b&&typeof f=="object"){if(c.endsWith(C,"{}"))C=i?C:C.slice(0,-2),f=JSON.stringify(f);else if(c.isArray(f)&&$s(f)||(c.isFileList(f)||c.endsWith(C,"[]"))&&(v=c.toArray(f)))return C=To(C),v.forEach(function(y,N){!(c.isUndefined(y)||y===null)&&e.append(s===!0?Co([C],N,r):s===null?C:C+"[]",u(y))}),!1}return Wn(f)?!0:(e.append(Co(b,C,r),u(f)),!1)}let p=[],I=Object.assign(qs,{defaultVisitor:d,convertValue:u,isVisitable:Wn});function w(f,C){if(!c.isUndefined(f)){if(p.indexOf(f)!==-1)throw Error("Circular reference detected in "+C.join("."));p.push(f),c.forEach(f,function(v,L){(!(c.isUndefined(v)||v===null)&&o.call(e,v,c.isString(L)?L.trim():L,C,I))===!0&&w(v,C?C.concat(L):[L])}),p.pop()}}if(!c.isObject(t))throw new TypeError("data must be an object");return w(t),e}var Se=Xs;function yo(t){let e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(i){return e[i]})}function Oo(t,e){this._pairs=[],t&&Se(t,this,e)}var Ro=Oo.prototype;Ro.append=function(e,n){this._pairs.push([e,n])};Ro.toString=function(e){let n=e?function(i){return e.call(this,i,yo)}:yo;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};var sn=Oo;function Js(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function wt(t,e,n){if(!e)return t;let i=n&&n.encode||Js;c.isFunction(n)&&(n={serialize:n});let o=n&&n.serialize,r;if(o?r=o(e,n):r=c.isURLSearchParams(e)?e.toString():new sn(e,n).toString(i),r){let s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}var zn=class{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){c.forEach(this.handlers,function(i){i!==null&&e(i)})}},Yn=zn;var an={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var vo=typeof URLSearchParams!="undefined"?URLSearchParams:sn;var Po=typeof FormData!="undefined"?FormData:null;var No=typeof Blob!="undefined"?Blob:null;var xo={isBrowser:!0,classes:{URLSearchParams:vo,FormData:Po,Blob:No},protocols:["http","https","file","blob","url","data"]};var qn={};Pn(qn,{hasBrowserEnv:()=>$n,hasStandardBrowserEnv:()=>Zs,hasStandardBrowserWebWorkerEnv:()=>Qs,navigator:()=>jn,origin:()=>ea});var $n=typeof window!="undefined"&&typeof document!="undefined",jn=typeof navigator=="object"&&navigator||void 0,Zs=$n&&(!jn||["ReactNative","NativeScript","NS"].indexOf(jn.product)<0),Qs=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ea=$n&&window.location.href||"http://localhost";var M=O(O({},qn),xo);function Xn(t,e){return Se(t,new M.classes.URLSearchParams,O({visitor:function(n,i,o,r){return M.isNode&&c.isBuffer(n)?(this.append(i,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}function ta(t){return c.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function na(t){let e={},n=Object.keys(t),i,o=n.length,r;for(i=0;i<o;i++)r=n[i],e[r]=t[r];return e}function ia(t){function e(n,i,o,r){let s=n[r++];if(s==="__proto__")return!0;let a=Number.isFinite(+s),l=r>=n.length;return s=!s&&c.isArray(o)?o.length:s,l?(c.hasOwnProp(o,s)?o[s]=[o[s],i]:o[s]=i,!a):((!o[s]||!c.isObject(o[s]))&&(o[s]=[]),e(n,i,o[s],r)&&c.isArray(o[s])&&(o[s]=na(o[s])),!a)}if(c.isFormData(t)&&c.isFunction(t.entries)){let n={};return c.forEachEntry(t,(i,o)=>{e(ta(i),o,n,0)}),n}return null}var ln=ia;function oa(t,e,n){if(c.isString(t))try{return(e||JSON.parse)(t),c.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}var Jn={transitional:an,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){let i=n.getContentType()||"",o=i.indexOf("application/json")>-1,r=c.isObject(e);if(r&&c.isHTMLForm(e)&&(e=new FormData(e)),c.isFormData(e))return o?JSON.stringify(ln(e)):e;if(c.isArrayBuffer(e)||c.isBuffer(e)||c.isStream(e)||c.isFile(e)||c.isBlob(e)||c.isReadableStream(e))return e;if(c.isArrayBufferView(e))return e.buffer;if(c.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(r){if(i.indexOf("application/x-www-form-urlencoded")>-1)return Xn(e,this.formSerializer).toString();if((a=c.isFileList(e))||i.indexOf("multipart/form-data")>-1){let l=this.env&&this.env.FormData;return Se(a?{"files[]":e}:e,l&&new l,this.formSerializer)}}return r||o?(n.setContentType("application/json",!1),oa(e)):e}],transformResponse:[function(e){let n=this.transitional||Jn.transitional,i=n&&n.forcedJSONParsing,o=this.responseType==="json";if(c.isResponse(e)||c.isReadableStream(e))return e;if(e&&c.isString(e)&&(i&&!this.responseType||o)){let s=!(n&&n.silentJSONParsing)&&o;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}}};c.forEach(["delete","get","head","post","put","patch"],t=>{Jn.headers[t]={}});var We=Jn;var ra=c.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"]),ko=t=>{let e={},n,i,o;return t&&t.split("\n").forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),i=s.substring(o+1).trim(),!(!n||e[n]&&ra[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e};var Lo=Symbol("internals");function It(t){return t&&String(t).trim().toLowerCase()}function cn(t){return t===!1||t==null?t:c.isArray(t)?t.map(cn):String(t)}function sa(t){let e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}var aa=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Zn(t,e,n,i,o){if(c.isFunction(i))return i.call(this,e,n);if(o&&(e=n),!!c.isString(e)){if(c.isString(i))return e.indexOf(i)!==-1;if(c.isRegExp(i))return i.test(e)}}function la(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function ca(t,e){let n=c.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{value:function(o,r,s){return this[i].call(this,e,o,r,s)},configurable:!0})})}var ze=class{constructor(e){e&&this.set(e)}set(e,n,i){let o=this;function r(a,l,u){let d=It(l);if(!d)throw new Error("header name must be a non-empty string");let p=c.findKey(o,d);(!p||o[p]===void 0||u===!0||u===void 0&&o[p]!==!1)&&(o[p||l]=cn(a))}let s=(a,l)=>c.forEach(a,(u,d)=>r(u,d,l));if(c.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(c.isString(e)&&(e=e.trim())&&!aa(e))s(ko(e),n);else if(c.isObject(e)&&c.isIterable(e)){let a={},l,u;for(let d of e){if(!c.isArray(d))throw TypeError("Object iterator must return a key-value pair");a[u=d[0]]=(l=a[u])?c.isArray(l)?[...l,d[1]]:[l,d[1]]:d[1]}s(a,n)}else e!=null&&r(n,e,i);return this}get(e,n){if(e=It(e),e){let i=c.findKey(this,e);if(i){let o=this[i];if(!n)return o;if(n===!0)return sa(o);if(c.isFunction(n))return n.call(this,o,i);if(c.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=It(e),e){let i=c.findKey(this,e);return!!(i&&this[i]!==void 0&&(!n||Zn(this,this[i],i,n)))}return!1}delete(e,n){let i=this,o=!1;function r(s){if(s=It(s),s){let a=c.findKey(i,s);a&&(!n||Zn(i,i[a],a,n))&&(delete i[a],o=!0)}}return c.isArray(e)?e.forEach(r):r(e),o}clear(e){let n=Object.keys(this),i=n.length,o=!1;for(;i--;){let r=n[i];(!e||Zn(this,this[r],r,e,!0))&&(delete this[r],o=!0)}return o}normalize(e){let n=this,i={};return c.forEach(this,(o,r)=>{let s=c.findKey(i,r);if(s){n[s]=cn(o),delete n[r];return}let a=e?la(r):String(r).trim();a!==r&&delete n[r],n[a]=cn(o),i[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let n=Object.create(null);return c.forEach(this,(i,o)=>{i!=null&&i!==!1&&(n[o]=e&&c.isArray(i)?i.join(", "):i)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){let i=new this(e);return n.forEach(o=>i.set(o)),i}static accessor(e){let i=(this[Lo]=this[Lo]={accessors:{}}).accessors,o=this.prototype;function r(s){let a=It(s);i[a]||(ca(o,s),i[a]=!0)}return c.isArray(e)?e.forEach(r):r(e),this}};ze.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);c.reduceDescriptors(ze.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}});c.freezeMethods(ze);var V=ze;function St(t,e){let n=this||We,i=e||n,o=V.from(i.headers),r=i.data;return c.forEach(t,function(a){r=a.call(n,r,o.normalize(),e?e.status:void 0)}),o.normalize(),r}function Ct(t){return!!(t&&t.__CANCEL__)}function _o(t,e,n){T.call(this,t==null?"canceled":t,T.ERR_CANCELED,e,n),this.name="CanceledError"}c.inherits(_o,T,{__CANCEL__:!0});var ce=_o;function Tt(t,e,n){let i=n.config.validateStatus;!n.status||!i||i(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 Qn(t){let e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ua(t,e){t=t||10;let n=new Array(t),i=new Array(t),o=0,r=0,s;return e=e!==void 0?e:1e3,function(l){let u=Date.now(),d=i[r];s||(s=u),n[o]=l,i[o]=u;let p=r,I=0;for(;p!==o;)I+=n[p++],p=p%t;if(o=(o+1)%t,o===r&&(r=(r+1)%t),u-s<e)return;let w=d&&u-d;return w?Math.round(I*1e3/w):void 0}}var Do=ua;function da(t,e){let n=0,i=1e3/e,o,r,s=(u,d=Date.now())=>{n=d,o=null,r&&(clearTimeout(r),r=null),t(...u)};return[(...u)=>{let d=Date.now(),p=d-n;p>=i?s(u,d):(o=u,r||(r=setTimeout(()=>{r=null,s(o)},i-p)))},()=>o&&s(o)]}var Bo=da;var Ye=(t,e,n=3)=>{let i=0,o=Do(50,250);return Bo(r=>{let s=r.loaded,a=r.lengthComputable?r.total:void 0,l=s-i,u=o(l),d=s<=a;i=s;let p={loaded:s,total:a,progress:a?s/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a&&d?(a-s)/u:void 0,event:r,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(p)},n)},ei=(t,e)=>{let n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},ti=t=>(...e)=>c.asap(()=>t(...e));var Mo=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 Uo=M.hasStandardBrowserEnv?{write(t,e,n,i,o,r,s){if(typeof document=="undefined")return;let a=["".concat(t,"=").concat(encodeURIComponent(e))];c.isNumber(n)&&a.push("expires=".concat(new Date(n).toUTCString())),c.isString(i)&&a.push("path=".concat(i)),c.isString(o)&&a.push("domain=".concat(o)),r===!0&&a.push("secure"),c.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 ni(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function ii(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function yt(t,e,n){let i=!ni(e);return t&&(i||n==!1)?ii(t,e):e}var Fo=t=>t instanceof V?O({},t):t;function re(t,e){e=e||{};let n={};function i(u,d,p,I){return c.isPlainObject(u)&&c.isPlainObject(d)?c.merge.call({caseless:I},u,d):c.isPlainObject(d)?c.merge({},d):c.isArray(d)?d.slice():d}function o(u,d,p,I){if(c.isUndefined(d)){if(!c.isUndefined(u))return i(void 0,u,p,I)}else return i(u,d,p,I)}function r(u,d){if(!c.isUndefined(d))return i(void 0,d)}function s(u,d){if(c.isUndefined(d)){if(!c.isUndefined(u))return i(void 0,u)}else return i(void 0,d)}function a(u,d,p){if(p in e)return i(u,d);if(p in t)return i(void 0,u)}let l={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,p)=>o(Fo(u),Fo(d),p,!0)};return c.forEach(Object.keys(O(O({},t),e)),function(d){let p=l[d]||o,I=p(t[d],e[d],d);c.isUndefined(I)&&p!==a||(n[d]=I)}),n}var un=t=>{let e=re({},t),{data:n,withXSRFToken:i,xsrfHeaderName:o,xsrfCookieName:r,headers:s,auth:a}=e;if(e.headers=s=V.from(s),e.url=wt(yt(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),c.isFormData(n)){if(M.hasStandardBrowserEnv||M.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(c.isFunction(n.getHeaders)){let l=n.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([d,p])=>{u.includes(d.toLowerCase())&&s.set(d,p)})}}if(M.hasStandardBrowserEnv&&(i&&c.isFunction(i)&&(i=i(e)),i||i!==!1&&Mo(e.url))){let l=o&&r&&Uo.read(r);l&&s.set(o,l)}return e};var fa=typeof XMLHttpRequest!="undefined",Ho=fa&&function(t){return new Promise(function(n,i){let o=un(t),r=o.data,s=V.from(o.headers).normalize(),{responseType:a,onUploadProgress:l,onDownloadProgress:u}=o,d,p,I,w,f;function C(){w&&w(),f&&f(),o.cancelToken&&o.cancelToken.unsubscribe(d),o.signal&&o.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(o.method.toUpperCase(),o.url,!0),b.timeout=o.timeout;function v(){if(!b)return;let y=V.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),W={data:!a||a==="text"||a==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:y,config:t,request:b};Tt(function(z){n(z),C()},function(z){i(z),C()},W),b=null}"onloadend"in b?b.onloadend=v:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(v)},b.onabort=function(){b&&(i(new T("Request aborted",T.ECONNABORTED,t,b)),b=null)},b.onerror=function(N){let W=N&&N.message?N.message:"Network Error",_=new T(W,T.ERR_NETWORK,t,b);_.event=N||null,i(_),b=null},b.ontimeout=function(){let N=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded",W=o.transitional||an;o.timeoutErrorMessage&&(N=o.timeoutErrorMessage),i(new T(N,W.clarifyTimeoutError?T.ETIMEDOUT:T.ECONNABORTED,t,b)),b=null},r===void 0&&s.setContentType(null),"setRequestHeader"in b&&c.forEach(s.toJSON(),function(N,W){b.setRequestHeader(W,N)}),c.isUndefined(o.withCredentials)||(b.withCredentials=!!o.withCredentials),a&&a!=="json"&&(b.responseType=o.responseType),u&&([I,f]=Ye(u,!0),b.addEventListener("progress",I)),l&&b.upload&&([p,w]=Ye(l),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",w)),(o.cancelToken||o.signal)&&(d=y=>{b&&(i(!y||y.type?new ce(null,t,b):y),b.abort(),b=null)},o.cancelToken&&o.cancelToken.subscribe(d),o.signal&&(o.signal.aborted?d():o.signal.addEventListener("abort",d)));let L=Qn(o.url);if(L&&M.protocols.indexOf(L)===-1){i(new T("Unsupported protocol "+L+":",T.ERR_BAD_REQUEST,t));return}b.send(r||null)})};var pa=(t,e)=>{let{length:n}=t=t?t.filter(Boolean):[];if(e||n){let i=new AbortController,o,r=function(u){if(!o){o=!0,a();let d=u instanceof Error?u:this.reason;i.abort(d instanceof T?d:new ce(d instanceof Error?d.message:d))}},s=e&&setTimeout(()=>{s=null,r(new T("timeout ".concat(e," of ms exceeded"),T.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:l}=i;return l.unsubscribe=()=>c.asap(a),l}},Go=pa;var ga=function*(t,e){let n=t.byteLength;if(!e||n<e){yield t;return}let i=0,o;for(;i<n;)o=i+e,yield t.slice(i,o),i=o},ma=function(t,e){return Nn(this,null,function*(){try{for(var n=Xi(ha(t)),i,o,r;i=!(o=yield new Pe(n.next())).done;i=!1){let s=o.value;yield*xn(ga(s,e))}}catch(o){r=[o]}finally{try{i&&(o=n.return)&&(yield new Pe(o.call(n)))}finally{if(r)throw r[0]}}})},ha=function(t){return Nn(this,null,function*(){if(t[Symbol.asyncIterator]){yield*xn(t);return}let e=t.getReader();try{for(;;){let{done:n,value:i}=yield new Pe(e.read());if(n)break;yield i}}finally{yield new Pe(e.cancel())}})},oi=(t,e,n,i)=>{let o=ma(t,e),r=0,s,a=l=>{s||(s=!0,i&&i(l))};return new ReadableStream({async pull(l){try{let{done:u,value:d}=await o.next();if(u){a(),l.close();return}let p=d.byteLength;if(n){let I=r+=p;n(I)}l.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(l){return a(l),o.return()}},{highWaterMark:2})};var Vo=64*1024,{isFunction:dn}=c,Ea=(({Request:t,Response:e})=>({Request:t,Response:e}))(c.global),{ReadableStream:Ko,TextEncoder:Wo}=c.global,zo=(t,...e)=>{try{return!!t(...e)}catch(n){return!1}},Aa=t=>{t=c.merge.call({skipUndefined:!0},Ea,t);let{fetch:e,Request:n,Response:i}=t,o=e?dn(e):typeof fetch=="function",r=dn(n),s=dn(i);if(!o)return!1;let a=o&&dn(Ko),l=o&&(typeof Wo=="function"?(f=>C=>f.encode(C))(new Wo):async f=>new Uint8Array(await new n(f).arrayBuffer())),u=r&&a&&zo(()=>{let f=!1,C=new n(M.origin,{body:new Ko,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!C}),d=s&&a&&zo(()=>c.isReadableStream(new i("").body)),p={stream:d&&(f=>f.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!p[f]&&(p[f]=(C,b)=>{let v=C&&C[f];if(v)return v.call(C);throw new T("Response type '".concat(f,"' is not supported"),T.ERR_NOT_SUPPORT,b)})});let I=async f=>{if(f==null)return 0;if(c.isBlob(f))return f.size;if(c.isSpecCompliantForm(f))return(await new n(M.origin,{method:"POST",body:f}).arrayBuffer()).byteLength;if(c.isArrayBufferView(f)||c.isArrayBuffer(f))return f.byteLength;if(c.isURLSearchParams(f)&&(f=f+""),c.isString(f))return(await l(f)).byteLength},w=async(f,C)=>{let b=c.toFiniteNumber(f.getContentLength());return b==null?I(C):b};return async f=>{let{url:C,method:b,data:v,signal:L,cancelToken:y,timeout:N,onDownloadProgress:W,onUploadProgress:_,responseType:z,headers:ae,withCredentials:ot="same-origin",fetchOptions:te}=un(f),Ae=e||fetch;z=z?(z+"").toLowerCase():"text";let j=Go([L,y&&y.toAbortSignal()],N),rt=null,ve=j&&j.unsubscribe&&(()=>{j.unsubscribe()}),Ki;try{if(_&&u&&b!=="get"&&b!=="head"&&(Ki=await w(ae,v))!==0){let we=new n(C,{method:"POST",body:v,duplex:"half"}),De;if(c.isFormData(v)&&(De=we.headers.get("content-type"))&&ae.setContentType(De),we.body){let[vn,Wt]=ei(Ki,Ye(ti(_)));v=oi(we.body,Vo,vn,Wt)}}c.isString(ot)||(ot=ot?"include":"omit");let le=r&&"credentials"in n.prototype,Wi=K(O({},te),{signal:j,method:b.toUpperCase(),headers:ae.normalize().toJSON(),body:v,duplex:"half",credentials:le?ot:void 0});rt=r&&new n(C,Wi);let be=await(r?Ae(rt,te):Ae(C,Wi)),zi=d&&(z==="stream"||z==="response");if(d&&(W||zi&&ve)){let we={};["status","statusText","headers"].forEach(Yi=>{we[Yi]=be[Yi]});let De=c.toFiniteNumber(be.headers.get("content-length")),[vn,Wt]=W&&ei(De,Ye(ti(W),!0))||[];be=new i(oi(be.body,Vo,vn,()=>{Wt&&Wt(),ve&&ve()}),we)}z=z||"text";let Ur=await p[c.findKey(p,z)||"text"](be,f);return!zi&&ve&&ve(),await new Promise((we,De)=>{Tt(we,De,{data:Ur,headers:V.from(be.headers),status:be.status,statusText:be.statusText,config:f,request:rt})})}catch(le){throw ve&&ve(),le&&le.name==="TypeError"&&/Load failed|fetch/i.test(le.message)?Object.assign(new T("Network Error",T.ERR_NETWORK,f,rt),{cause:le.cause||le}):T.from(le,le&&le.code,f,rt)}}},ba=new Map,ri=t=>{let e=t&&t.env||{},{fetch:n,Request:i,Response:o}=e,r=[i,o,n],s=r.length,a=s,l,u,d=ba;for(;a--;)l=r[a],u=d.get(l),u===void 0&&d.set(l,u=a?new Map:Aa(e)),d=u;return u},Bu=ri();var si={http:rn,xhr:Ho,fetch:{get:ri}};c.forEach(si,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}});var Yo=t=>"- ".concat(t),Ia=t=>c.isFunction(t)||t===null||t===!1;function Sa(t,e){t=c.isArray(t)?t:[t];let{length:n}=t,i,o,r={};for(let s=0;s<n;s++){i=t[s];let a;if(o=i,!Ia(i)&&(o=si[(a=String(i)).toLowerCase()],o===void 0))throw new T("Unknown adapter '".concat(a,"'"));if(o&&(c.isFunction(o)||(o=o.get(e))))break;r[a||"#"+s]=o}if(!o){let s=Object.entries(r).map(([l,u])=>"adapter ".concat(l," ")+(u===!1?"is not supported by the environment":"is not available in the build")),a=n?s.length>1?"since :\n"+s.map(Yo).join("\n"):" "+Yo(s[0]):"as no adapter specified";throw new T("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return o}var fn={getAdapter:Sa,adapters:si};function ai(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ce(null,t)}function pn(t){return ai(t),t.headers=V.from(t.headers),t.data=St.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),fn.getAdapter(t.adapter||We.adapter,t)(t).then(function(i){return ai(t),i.data=St.call(t,t.transformResponse,i),i.headers=V.from(i.headers),i},function(i){return Ct(i)||(ai(t),i&&i.response&&(i.response.data=St.call(t,t.transformResponse,i.response),i.response.headers=V.from(i.response.headers))),Promise.reject(i)})}var gn="1.13.2";var mn={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{mn[t]=function(i){return typeof i===t||"a"+(e<1?"n ":" ")+t}});var jo={};mn.transitional=function(e,n,i){function o(r,s){return"[Axios v"+gn+"] Transitional option '"+r+"'"+s+(i?". "+i:"")}return(r,s,a)=>{if(e===!1)throw new T(o(s," has been removed"+(n?" in "+n:"")),T.ERR_DEPRECATED);return n&&!jo[s]&&(jo[s]=!0,console.warn(o(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(r,s,a):!0}};mn.spelling=function(e){return(n,i)=>(console.warn("".concat(i," is likely a misspelling of ").concat(e)),!0)};function Ca(t,e,n){if(typeof t!="object")throw new T("options must be an object",T.ERR_BAD_OPTION_VALUE);let i=Object.keys(t),o=i.length;for(;o-- >0;){let r=i[o],s=e[r];if(s){let a=t[r],l=a===void 0||s(a,r,t);if(l!==!0)throw new T("option "+r+" must be "+l,T.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new T("Unknown option "+r,T.ERR_BAD_OPTION)}}var Ot={assertOptions:Ca,validators:mn};var ue=Ot.validators,je=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Yn,response:new Yn}}async request(e,n){try{return await this._request(e,n)}catch(i){if(i instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;let r=o.stack?o.stack.replace(/^.+\n/,""):"";try{i.stack?r&&!String(i.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(i.stack+="\n"+r):i.stack=r}catch(s){}}throw i}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=re(this.defaults,n);let{transitional:i,paramsSerializer:o,headers:r}=n;i!==void 0&&Ot.assertOptions(i,{silentJSONParsing:ue.transitional(ue.boolean),forcedJSONParsing:ue.transitional(ue.boolean),clarifyTimeoutError:ue.transitional(ue.boolean)},!1),o!=null&&(c.isFunction(o)?n.paramsSerializer={serialize:o}:Ot.assertOptions(o,{encode:ue.function,serialize:ue.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Ot.assertOptions(n,{baseUrl:ue.spelling("baseURL"),withXsrfToken:ue.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=r&&c.merge(r.common,r[n.method]);r&&c.forEach(["delete","get","head","post","put","patch","common"],f=>{delete r[f]}),n.headers=V.concat(s,r);let a=[],l=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(n)===!1||(l=l&&C.synchronous,a.unshift(C.fulfilled,C.rejected))});let u=[];this.interceptors.response.forEach(function(C){u.push(C.fulfilled,C.rejected)});let d,p=0,I;if(!l){let f=[pn.bind(this),void 0];for(f.unshift(...a),f.push(...u),I=f.length,d=Promise.resolve(n);p<I;)d=d.then(f[p++],f[p++]);return d}I=a.length;let w=n;for(;p<I;){let f=a[p++],C=a[p++];try{w=f(w)}catch(b){C.call(this,b);break}}try{d=pn.call(this,w)}catch(f){return Promise.reject(f)}for(p=0,I=u.length;p<I;)d=d.then(u[p++],u[p++]);return d}getUri(e){e=re(this.defaults,e);let n=yt(e.baseURL,e.url,e.allowAbsoluteUrls);return wt(n,e.params,e.paramsSerializer)}};c.forEach(["delete","get","head","options"],function(e){je.prototype[e]=function(n,i){return this.request(re(i||{},{method:e,url:n,data:(i||{}).data}))}});c.forEach(["post","put","patch"],function(e){function n(i){return function(r,s,a){return this.request(re(a||{},{method:e,headers:i?{"Content-Type":"multipart/form-data"}:{},url:r,data:s}))}}je.prototype[e]=n(),je.prototype[e+"Form"]=n(!0)});var Rt=je;var li=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 i=this;this.promise.then(o=>{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](o);i._listeners=null}),this.promise.then=o=>{let r,s=new Promise(a=>{i.subscribe(a),r=a}).then(o);return s.cancel=function(){i.unsubscribe(r)},s},e(function(r,s,a){i.reason||(i.reason=new ce(r,s,a),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){let e=new AbortController,n=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new t(function(o){e=o}),cancel:e}}},$o=li;function ci(t){return function(n){return t.apply(null,n)}}function ui(t){return c.isObject(t)&&t.isAxiosError===!0}var di={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(di).forEach(([t,e])=>{di[e]=t});var qo=di;function Xo(t){let e=new Rt(t),n=ht(Rt.prototype.request,e);return c.extend(n,Rt.prototype,e,{allOwnKeys:!0}),c.extend(n,e,null,{allOwnKeys:!0}),n.create=function(o){return Xo(re(t,o))},n}var H=Xo(We);H.Axios=Rt;H.CanceledError=ce;H.CancelToken=$o;H.isCancel=Ct;H.VERSION=gn;H.toFormData=Se;H.AxiosError=T;H.Cancel=H.CanceledError;H.all=function(e){return Promise.all(e)};H.spread=ci;H.isAxiosError=ui;H.mergeConfig=re;H.AxiosHeaders=V;H.formToJSON=t=>ln(c.isHTMLForm(t)?new FormData(t):t);H.getAdapter=fn.getAdapter;H.HttpStatusCode=qo;H.default=H;var hn=H;var{Axios:_d,AxiosError:Dd,CanceledError:Bd,isCancel:Md,CancelToken:Ud,VERSION:Fd,all:Hd,Cancel:Gd,isAxiosError:Vd,spread:Kd,toFormData:Wd,AxiosHeaders:zd,HttpStatusCode:Yd,formToJSON:jd,getAdapter:$d,mergeConfig:qd}=hn;var $e=class{constructor(e){this.currentToken=null;this.tokenProvider=null;this.requestHistory=new Map;this.WINDOW_MS=5e3;this.MAX_REQUESTS=30;this.axios=hn.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 i,o;if(n.url)try{this.checkRequestLimit("".concat((i=n.method)==null?void 0:i.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((o=n.method)==null?void 0:o.toUpperCase()," request to: ").concat(n.baseURL||"").concat(n.url)),n},n=>(console.error("[SDK] Request error:",n),Promise.reject(n instanceof Error?n:new Error(String(n))))),this.axios.interceptors.response.use(n=>n,n=>(console.error("[SDK] Response error:",n.message),Promise.reject(n instanceof Error?n:new Error(String(n)))))}setTokenProvider(e){this.tokenProvider=e}async get(e,n){return(await this.axios.get(e,n)).data}async post(e,n,i){return(await this.axios.post(e,n,i)).data}async put(e,n,i){return(await this.axios.put(e,n,i)).data}async patch(e,n,i){return(await this.axios.patch(e,n,i)).data}async delete(e,n){return(await this.axios.delete(e,n)).data}setHeader(e,n){this.axios.defaults.headers.common[e]=n}removeHeader(e){delete this.axios.defaults.headers.common[e]}updateToken(e){this.currentToken=e,e?this.setHeader("x-cms-token",e):(this.removeHeader("x-cms-token"),console.log("[SDK] Token removed from ApiClient"))}getCurrentToken(){return this.currentToken}updateConfig(e){e.baseURL&&(this.axios.defaults.baseURL=e.baseURL),e.timeout&&(this.axios.defaults.timeout=e.timeout),e.headers&&Object.assign(this.axios.defaults.headers.common,e.headers),console.log("[SDK] ApiClient configuration updated")}checkRequestLimit(e){let n=Date.now(),i=this.requestHistory.get(e);if(!i){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(n-i.firstRequestTime>this.WINDOW_MS){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(i.count++,i.count>this.MAX_REQUESTS){let o=new Error("Circuit Breaker: Too many requests to ".concat(e," (").concat(i.count," in ").concat(this.WINDOW_MS,"ms)"));throw o.isCircuitBreaker=!0,o}}cleanupHistory(){let e=Date.now();for(let[n,i]of this.requestHistory.entries())e-i.firstRequestTime>this.WINDOW_MS&&this.requestHistory.delete(n)}};var Ta="2.0.6",ya=500,Jo="user-agent",et="",Zo="?",U={FUNCTION:"function",OBJECT:"object",STRING:"string",UNDEFINED:"undefined"},J="browser",ge="cpu",pe="device",se="engine",Q="os",Ze="result",h="name",g="type",E="vendor",A="version",$="architecture",Bt="major",m="model",_t="console",R="mobile",x="tablet",G="smarttv",de="wearable",En="xr",Dt="embedded",qe="inapp",yi="brands",Le="formFactors",Oi="fullVersionList",Qe="platform",Ri="platformVersion",Tn="bitness",Oe="sec-ch-ua",Oa=Oe+"-full-version-list",Ra=Oe+"-arch",va=Oe+"-"+Tn,Pa=Oe+"-form-factors",Na=Oe+"-"+R,xa=Oe+"-"+m,fr=Oe+"-"+Qe,ka=fr+"-version",pr=[yi,Oi,R,m,Qe,Ri,$,Le,Tn],An="Amazon",Xe="Apple",Qo="ASUS",er="BlackBerry",ke="Google",tr="Huawei",fi="Lenovo",nr="Honor",bn="LG",pi="Microsoft",gi="Motorola",mi="Nvidia",ir="OnePlus",hi="OPPO",vt="Samsung",or="Sharp",Pt="Sony",Ei="Xiaomi",Ai="Zebra",rr="Chrome",sr="Chromium",Ce="Chromecast",In="Edge",Nt="Firefox",xt="Opera",bi="Facebook",ar="Sogou",Je="Mobile ",kt=" Browser",Ci="Windows",La=typeof window!==U.UNDEFINED,Z=La&&window.navigator?window.navigator:void 0,Te=Z&&Z.userAgentData?Z.userAgentData:void 0,_a=function(t,e){var n={},i=e;if(!Sn(e)){i={};for(var o in e)for(var r in e[o])i[r]=e[o][r].concat(i[r]?i[r]:[])}for(var s in t)n[s]=i[s]&&i[s].length%2===0?i[s].concat(t[s]):t[s];return n},yn=function(t){for(var e={},n=0;n<t.length;n++)e[t[n].toUpperCase()]=t[n];return e},Ti=function(t,e){if(typeof t===U.OBJECT&&t.length>0){for(var n in t)if(ye(e)==ye(t[n]))return!0;return!1}return Mt(t)?ye(e)==ye(t):!1},Sn=function(t,e){for(var n in t)return/^(browser|cpu|device|engine|os)$/.test(n)||(e?Sn(t[n]):!1)},Mt=function(t){return typeof t===U.STRING},wi=function(t){if(t){for(var e=[],n=tt(/\\?\"/g,t).split(","),i=0;i<n.length;i++)if(n[i].indexOf(";")>-1){var o=Cn(n[i]).split(";v=");e[i]={brand:o[0],version:o[1]}}else e[i]=Cn(n[i]);return e}},ye=function(t){return Mt(t)?t.toLowerCase():t},Ii=function(t){return Mt(t)?tt(/[^\d\.]/g,t).split(".")[0]:void 0},me=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},tt=function(t,e){return Mt(e)?e.replace(t,et):e},Lt=function(t){return tt(/\\?\"/g,t)},Cn=function(t,e){return t=tt(/^\s\s*/,String(t)),typeof e===U.UNDEFINED?t:t.substring(0,e)},Si=function(t,e){if(!(!t||!e))for(var n=0,i,o,r,s,a,l;n<e.length&&!a;){var u=e[n],d=e[n+1];for(i=o=0;i<u.length&&!a&&u[i];)if(a=u[i++].exec(t),a)for(r=0;r<d.length;r++)l=a[++o],s=d[r],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}},fe=function(t,e){for(var n in e)if(typeof e[n]===U.OBJECT&&e[n].length>0){for(var i=0;i<e[n].length;i++)if(Ti(e[n][i],t))return n===Zo?void 0:n}else if(Ti(e[n],t))return n===Zo?void 0:n;return e.hasOwnProperty("*")?e["*"]:t},lr={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:""},cr={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Da={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"},ur={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[A,[h,Je+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[A,[h,In+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[A,[h,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[h,A],[/opios[\/ ]+([\w\.]+)/i],[A,[h,xt+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[A,[h,xt+" GX"]],[/\bopr\/([\w\.]+)/i],[A,[h,xt]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[A,[h,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[A,[h,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,/(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,/(qwant)(?:ios|mobile)\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[h,A],[/quark(?:pc)?\/([-\w\.]+)/i],[A,[h,"Quark"]],[/\bddg\/([\w\.]+)/i],[A,[h,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[A,[h,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[A,[h,"WeChat"]],[/konqueror\/([\w\.]+)/i],[A,[h,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[A,[h,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[A,[h,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[A,[h,"Smart "+fi+kt]],[/(avast|avg)\/([\w\.]+)/i],[[h,/(.+)/,"$1 Secure"+kt],A],[/\bfocus\/([\w\.]+)/i],[A,[h,Nt+" Focus"]],[/\bopt\/([\w\.]+)/i],[A,[h,xt+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[A,[h,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[A,[h,"Dolphin"]],[/coast\/([\w\.]+)/i],[A,[h,xt+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[A,[h,"MIUI"+kt]],[/fxios\/([\w\.-]+)/i],[A,[h,Je+Nt]],[/\bqihoobrowser\/?([\w\.]*)/i],[A,[h,"360"]],[/\b(qq)\/([\w\.]+)/i],[[h,/(.+)/,"$1Browser"],A],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[h,/(.+)/,"$1"+kt],A],[/samsungbrowser\/([\w\.]+)/i],[A,[h,vt+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[A,[h,ar+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[h,ar+" Mobile"],A],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[h,A],[/(lbbrowser|rekonq)/i],[h],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[A,h],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[h,bi],A,[g,qe]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(bing)(?:web|sapphire)\/([\w\.]+)/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[h,A,[g,qe]],[/\bgsa\/([\w\.]+) .*safari\//i],[A,[h,"GSA"],[g,qe]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[A,[h,"TikTok"],[g,qe]],[/\[(linkedin)app\]/i],[h,[g,qe]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[h,/(.+)/,"Zalo"],A,[g,qe]],[/(chromium)[\/ ]([-\w\.]+)/i],[h,A],[/headlesschrome(?:\/([\w\.]+)| )/i],[A,[h,rr+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[A,[h,In+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[h,rr+" WebView"],A],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[A,[h,"Android"+kt]],[/chrome\/([\w\.]+) mobile/i],[A,[h,Je+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[h,A],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[A,[h,Je+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[h,Je+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[A,h],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[h,[A,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[h,A],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[h,Je+Nt],A],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[h,"Netscape"],A],[/(wolvic|librewolf)\/([\w\.]+)/i],[h,A],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[A,[h,Nt+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[h,[A,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[h,[A,/[^\d\.]+./,et]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[$,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[$,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[$,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[$,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[$,"arm"]],[/ sun4\w[;\)]/i],[[$,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,/((ppc|powerpc)(64)?)( mac|;|\))/i,/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i],[[$,/ower/,et,ye]],[/mc680.0/i],[[$,"68k"]],[/winnt.+\[axp/i],[[$,"alpha"]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[m,[E,vt],[g,x]],[/\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,[E,vt],[g,R]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[m,[E,Xe],[g,R]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[m,[E,Xe],[g,x]],[/(macintosh);/i],[m,[E,Xe]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[E,or],[g,R]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[m,[E,nr],[g,x]],[/honor([-\w ]+)[;\)]/i],[m,[E,nr],[g,R]],[/\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,[E,tr],[g,x]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[m,[E,tr],[g,R]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[m,/_/g," "],[E,Ei],[g,x]],[/\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," "],[E,Ei],[g,R]],[/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,[E,ir],[g,R]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[m,[E,hi],[g,R]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[m,[E,fe,{OnePlus:["203","304","403","404","413","415"],"*":hi}],[g,x]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[m,[E,"BLU"],[g,R]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[m,[E,"Vivo"],[g,R]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[m,[E,"Realme"],[g,R]],[/(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,[E,fi],[g,x]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[m,[E,fi],[g,R]],[/\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,[E,gi],[g,R]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[E,gi],[g,x]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[E,bn],[g,x]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[m,[E,bn],[g,R]],[/(nokia) (t[12][01])/i],[E,m,[g,x]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[m,/_/g," "],[g,R],[E,"Nokia"]],[/(pixel (c|tablet))\b/i],[m,[E,ke],[g,x]],[/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,[E,ke],[g,R]],[/(google) (pixelbook( go)?)/i],[E,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,[E,Pt],[g,R]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[E,Pt],[g,x]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[E,An],[g,x]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[E,An],[g,R]],[/(playbook);[-\w\),; ]+(rim)/i],[m,E,[g,x]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[m,[E,er],[g,R]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[E,Qo],[g,x]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[E,Qo],[g,R]],[/(nexus 9)/i],[m,[E,"HTC"],[g,x]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[E,[m,/_/g," "],[g,R]],[/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,[E,"TCL"],[g,x]],[/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,[E,"TCL"],[g,R]],[/(itel) ((\w+))/i],[[E,ye],m,[g,fe,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[m,[E,"Acer"],[g,x]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[m,[E,"Meizu"],[g,R]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[m,[E,"Ulefone"],[g,R]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[m,[E,"Energizer"],[g,R]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[m,[E,"Cat"],[g,R]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[m,[E,"Smartfren"],[g,R]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[m,[E,"Nothing"],[g,R]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[m,[E,"Archos"],[g,x]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[m,[E,"Archos"],[g,R]],[/; (n159v)/i],[m,[E,"HMD"],[g,R]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[E,m,[g,x]],[/(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],[E,m,[g,R]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[E,m,[g,x]],[/(surface duo)/i],[m,[E,pi],[g,x]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[E,"Fairphone"],[g,R]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[m,[E,mi],[g,x]],[/(sprint) (\w+)/i],[E,m,[g,R]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[E,pi],[g,R]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[E,Ai],[g,x]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[E,Ai],[g,R]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[E,[g,G]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[E,vt],[g,G]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[E,m,[g,G]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[E,bn],[g,G]],[/(apple) ?tv/i],[E,[m,Xe+" TV"],[g,G]],[/crkey.*devicetype\/chromecast/i],[[m,Ce+" Third Generation"],[E,ke],[g,G]],[/crkey.*devicetype\/([^/]*)/i],[[m,/^/,"Chromecast "],[E,ke],[g,G]],[/fuchsia.*crkey/i],[[m,Ce+" Nest Hub"],[E,ke],[g,G]],[/crkey/i],[[m,Ce],[E,ke],[g,G]],[/(portaltv)/i],[m,[E,bi],[g,G]],[/droid.+aft(\w+)( bui|\))/i],[m,[E,An],[g,G]],[/(shield \w+ tv)/i],[m,[E,mi],[g,G]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[E,or],[g,G]],[/(bravia[\w ]+)( bui|\))/i],[m,[E,Pt],[g,G]],[/(mi(tv|box)-?\w+) bui/i],[m,[E,Ei],[g,G]],[/Hbbtv.*(technisat) (.*);/i],[E,m,[g,G]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[E,/.+\/(\w+)/,"$1",fe,{LG:"lge"}],[m,Cn],[g,G]],[/(playstation \w+)/i],[m,[E,Pt],[g,_t]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[E,pi],[g,_t]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[E,m,[g,_t]],[/droid.+; (shield)( bui|\))/i],[m,[E,mi],[g,_t]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[m,[E,vt],[g,de]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[E,m,[g,de]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[m,[E,hi],[g,de]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[E,Xe],[g,de]],[/(opwwe\d{3})/i],[m,[E,ir],[g,de]],[/(moto 360)/i],[m,[E,gi],[g,de]],[/(smartwatch 3)/i],[m,[E,Pt],[g,de]],[/(g watch r)/i],[m,[E,bn],[g,de]],[/droid.+; (wt63?0{2,3})\)/i],[m,[E,Ai],[g,de]],[/droid.+; (glass) \d/i],[m,[E,ke],[g,En]],[/(pico) ([\w ]+) os\d/i],[E,m,[g,En]],[/(quest( \d| pro)?s?).+vr/i],[m,[E,bi],[g,En]],[/mobile vr; rv.+firefox/i],[[g,En]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[E,[g,Dt]],[/(aeobc)\b/i],[m,[E,An],[g,Dt]],[/(homepod).+mac os/i],[m,[E,Xe],[g,Dt]],[/windows iot/i],[[g,Dt]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[m,[g,G]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[g,G]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[m,[g,fe,{mobile:"Mobile",xr:"VR","*":x}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[g,x]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[g,R]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[m,[E,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[A,[h,In+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[h,A],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[A,[h,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[h,A],[/ladybird\//i],[[h,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[A,h]],os:[[/(windows nt) (6\.[23]); arm/i],[[h,/N/,"R"],[A,fe,lr]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[h,A],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[A,/(;|\))/g,"",fe,lr],[h,Ci]],[/(windows ce)\/?([\d\.]*)/i],[h,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,"."],[h,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[h,"macOS"],[A,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[A,[h,Ce+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[A,[h,Ce+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[A,[h,Ce+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[A,[h,Ce+" Linux"]],[/crkey\/([\d\.]+)/i],[A,[h,Ce]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[A,h],[/(ubuntu) ([\w\.]+) like android/i],[[h,/(.+)/,"$1 Touch"],A],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[h,A],[/\(bb(10);/i],[A,[h,er]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[A,[h,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[A,[h,Nt+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[A,[h,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[A,fe,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[h,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[A,[h,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[h,"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],[h,A],[/(sunos) ?([\d\.]*)/i],[[h,"Solaris"],A],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[h,A]]},wn=function(){var t={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return me.call(t.init,[[J,[h,A,Bt,g]],[ge,[$]],[pe,[g,m,E]],[se,[h,A]],[Q,[h,A]]]),me.call(t.isIgnore,[[J,[A,Bt]],[se,[A]],[Q,[A]]]),me.call(t.isIgnoreRgx,[[J,/ ?browser$/i],[Q,/ ?os$/i]]),me.call(t.toString,[[J,[h,A]],[ge,[$]],[pe,[E,m]],[se,[h,A]],[Q,[h,A]]]),t}(),Ba=function(t,e){var n=wn.init[e],i=wn.isIgnore[e]||0,o=wn.isIgnoreRgx[e]||0,r=wn.toString[e]||0;function s(){me.call(this,n)}return s.prototype.getItem=function(){return t},s.prototype.withClientHints=function(){return Te?Te.getHighEntropyValues(pr).then(function(a){return t.setCH(new gr(a,!1)).parseCH().get()}):t.parseCH().get()},s.prototype.withFeatureCheck=function(){return t.detectFeature().get()},e!=Ze&&(s.prototype.is=function(a){var l=!1;for(var u in this)if(this.hasOwnProperty(u)&&!Ti(i,u)&&ye(o?tt(o,this[u]):this[u])==ye(o?tt(o,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=et;for(var l in r)typeof this[r[l]]!==U.UNDEFINED&&(a+=(a?" ":et)+this[r[l]]);return a||U.UNDEFINED}),Te||(s.prototype.then=function(a){var l=this,u=function(){for(var p in l)l.hasOwnProperty(p)&&(this[p]=l[p])};u.prototype={is:s.prototype.is,toString:s.prototype.toString};var d=new u;return a(d),d}),new s};function gr(t,e){if(t=t||{},me.call(this,pr),e)me.call(this,[[yi,wi(t[Oe])],[Oi,wi(t[Oa])],[R,/\?1/.test(t[Na])],[m,Lt(t[xa])],[Qe,Lt(t[fr])],[Ri,Lt(t[ka])],[$,Lt(t[Ra])],[Le,wi(t[Pa])],[Tn,Lt(t[va])]]);else for(var n in t)this.hasOwnProperty(n)&&typeof t[n]!==U.UNDEFINED&&(this[n]=t[n])}function dr(t,e,n,i){return this.get=function(o){return o?this.data.hasOwnProperty(o)?this.data[o]:void 0:this.data},this.set=function(o,r){return this.data[o]=r,this},this.setCH=function(o){return this.uaCH=o,this},this.detectFeature=function(){if(Z&&Z.userAgent==this.ua)switch(this.itemType){case J:Z.brave&&typeof Z.brave.isBrave==U.FUNCTION&&this.set(h,"Brave");break;case pe:!this.get(g)&&Te&&Te[R]&&this.set(g,R),this.get(m)=="Macintosh"&&Z&&typeof Z.standalone!==U.UNDEFINED&&Z.maxTouchPoints&&Z.maxTouchPoints>2&&this.set(m,"iPad").set(g,x);break;case Q:!this.get(h)&&Te&&Te[Qe]&&this.set(h,Te[Qe]);break;case Ze:var o=this.data,r=function(s){return o[s].getItem().detectFeature().get()};this.set(J,r(J)).set(ge,r(ge)).set(pe,r(pe)).set(se,r(se)).set(Q,r(Q))}return this},this.parseUA=function(){switch(this.itemType!=Ze&&Si.call(this.data,this.ua,this.rgxMap),this.itemType){case J:this.set(Bt,Ii(this.get(A)));break;case Q:if(this.get(h)=="iOS"&&this.get(A)=="18.6"){var o=/\) Version\/([\d\.]+)/.exec(this.ua);o&&parseInt(o[1].substring(0,2),10)>=26&&this.set(A,o[1])}break}return this},this.parseCH=function(){var o=this.uaCH,r=this.rgxMap;switch(this.itemType){case J:case se:var s=o[Oi]||o[yi],a;if(s)for(var l=0;l<s.length;l++){var u=s[l].brand||s[l],d=s[l].version;this.itemType==J&&!/not.a.brand/i.test(u)&&(!a||/Chrom/.test(a)&&u!=sr||a==In&&/WebView2/.test(u))&&(u=fe(u,Da),a=this.get(h),a&&!/Chrom/.test(a)&&/Chrom/.test(u)||this.set(h,u).set(A,d).set(Bt,Ii(d)),a=u),this.itemType==se&&u==sr&&this.set(A,d)}break;case ge:var p=o[$];p&&(p&&o[Tn]=="64"&&(p+="64"),Si.call(this.data,p+";",r));break;case pe:if(o[R]&&this.set(g,R),o[m]&&(this.set(m,o[m]),!this.get(g)||!this.get(E))){var I={};Si.call(I,"droid 9; "+o[m]+")",r),!this.get(g)&&I.type&&this.set(g,I.type),!this.get(E)&&I.vendor&&this.set(E,I.vendor)}if(o[Le]){var w;if(typeof o[Le]!="string")for(var f=0;!w&&f<o[Le].length;)w=fe(o[Le][f++],cr);else w=fe(o[Le],cr);this.set(g,w)}break;case Q:var C=o[Qe];if(C){var b=o[Ri];C==Ci&&(b=parseInt(Ii(b),10)>=13?"11":"10"),this.set(h,C).set(A,b)}this.get(h)==Ci&&o[m]=="Xbox"&&this.set(h,"Xbox").set(A,void 0);break;case Ze:var v=this.data,L=function(y){return v[y].getItem().setCH(o).parseCH().get()};this.set(J,L(J)).set(ge,L(ge)).set(pe,L(pe)).set(se,L(se)).set(Q,L(Q))}return this},me.call(this,[["itemType",t],["ua",e],["uaCH",i],["rgxMap",n],["data",Ba(this,t)]]),this}function ee(t,e,n){if(typeof t===U.OBJECT?(Sn(t,!0)?(typeof e===U.OBJECT&&(n=e),e=t):(n=t,e=void 0),t=void 0):typeof t===U.STRING&&!Sn(e,!0)&&(n=e,e=void 0),n)if(typeof n.append===U.FUNCTION){var i={};n.forEach(function(d,p){i[String(p).toLowerCase()]=d}),n=i}else{var o={};for(var r in n)n.hasOwnProperty(r)&&(o[String(r).toLowerCase()]=n[r]);n=o}if(!(this instanceof ee))return new ee(t,e,n).getResult();var s=typeof t===U.STRING?t:n&&n[Jo]?n[Jo]:Z&&Z.userAgent?Z.userAgent:et,a=new gr(n,!0),l=e?_a(ur,e):ur,u=function(d){return d==Ze?function(){return new dr(d,s,l,a).set("ua",s).set(J,this.getBrowser()).set(ge,this.getCPU()).set(pe,this.getDevice()).set(se,this.getEngine()).set(Q,this.getOS()).get()}:function(){return new dr(d,s,l[d],a).parseUA().get()}};return me.call(this,[["getBrowser",u(J)],["getCPU",u(ge)],["getDevice",u(pe)],["getEngine",u(se)],["getOS",u(Q)],["getResult",u(Ze)],["getUA",function(){return s}],["setUA",function(d){return Mt(d)&&(s=Cn(d,ya)),this}]]).setUA(s),this}ee.VERSION=Ta;ee.BROWSER=yn([h,A,Bt,g]);ee.CPU=yn([$]);ee.DEVICE=yn([m,E,g,_t,R,G,x,de,Dt]);ee.ENGINE=ee.OS=yn([h,A]);var rf=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 Ut=Object.freeze({CRAWLER:"crawler",CLI:"cli",EMAIL:"email",FETCHER:"fetcher",INAPP:"inapp",MEDIAPLAYER:"mediaplayer",LIBRARY:"library"}),mr=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 sf=Object.freeze({CONSOLE:"console",DESKTOP:"desktop",EMBEDDED:"embedded",MOBILE:"mobile",SMARTTV:"smarttv",TABLET:"tablet",WEARABLE:"wearable",XR:"xr"});var af=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 hr=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 Er=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 Ar=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",P="type",k="vendor",Y="version",_e="mobile",q="tablet",vi="crawler",Ma="cli",br="email",wr="fetcher",nt="inapp",Ft="mediaplayer",Ua="library",Fa=Object.freeze({browser:[[/(wget|curl|lynx|elinks|httpie)[\/ ]\(?([\w\.-]+)/i],[F,Y,[P,Ma]]]}),Sr=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,Y,[P,vi]],[/(yandexbot\/([\w\.]+); mirrordetector)/i],[[F,/\/.+;/ig,""],Y,[P,vi]],[/((?: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,[P,vi]]]}),cf=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,[P,q]],[/(u304aa)/i],[D,[k,"AT&T"],[P,_e]],[/\bsie-(\w*)/i],[D,[k,"Siemens"],[P,_e]],[/\b(rct\w+) b/i],[D,[k,"RCA"],[P,q]],[/\b(venue[\d ]{2,7}) b/i],[D,[k,"Dell"],[P,q]],[/\b(q(?:mv|ta)\w+) b/i],[D,[k,"Verizon"],[P,q]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[D,[k,"Barnes & Noble"],[P,q]],[/\b(tm\d{3}\w+) b/i],[D,[k,"NuVision"],[P,q]],[/\b(k88) b/i],[D,[k,"ZTE"],[P,q]],[/\b(nx\d{3}j) b/i],[D,[k,"ZTE"],[P,_e]],[/\b(gen\d{3}) b.+49h/i],[D,[k,"Swiss"],[P,_e]],[/\b(zur\d{3}) b/i],[D,[k,"Swiss"],[P,q]],[/^((zeki)?tb.*\b) b/i],[D,[k,"Zeki"],[P,q]],[/\b([yr]\d{2}) b/i,/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i],[D,[k,"Dragon Touch"],[P,q]],[/\b(ns-?\w{0,9}) b/i],[D,[k,"Insignia"],[P,q]],[/\b((nxa|next)-?\w{0,9}) b/i],[D,[k,"NextBook"],[P,q]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[k,"Voice"],D,[P,_e]],[/\b(lvtel\-)?(v1[12]) b/i],[[k,"LvTel"],D,[P,_e]],[/\b(ph-1) /i],[D,[k,"Essential"],[P,_e]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[D,[k,"Envizen"],[P,q]],[/\b(trio[-\w\. ]+) b/i],[D,[k,"MachSpeed"],[P,q]],[/\btu_(1491) b/i],[D,[k,"Rotor"],[P,q]]]}),uf=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,Y,[P,br]],[/zdesktop\/([\w\.]+)/i],[Y,[F,"Zimbra"],[P,br]]]}),Ir=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,Y,[P,wr]],[/((?: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,[P,wr]]],os:[[/whatsapp\/[\d\.]+ (a|i)/i],[[F,t=>t=="A"?"Android":"iOS"]]]}),df=Object.freeze({browser:[[/\b(discord|figma|mattermost|notion|postman|rambox|rocket.chat|slack|teams)\/([\w\.]+).+(electron\/|; ios)/i,/(flipboard)\/([\w\.]+)/i],[F,Y,[P,nt]],[/(evernote) win/i,/(teams)mobile-(ios|and)/i],[F,[P,nt]],[/chatlyio\/([\d\.]+)/i],[Y,[F,"Slack"],[P,nt]],[/ultralite app_version\/([\w\.]+)/i],[Y,[F,"TikTok Lite"],[P,nt]],[/\) code\/([\d\.]+).+electron\//i],[Y,[F,"VS Code"],[P,nt]],[/jp\.co\.yahoo\.(?:android\.yjtop|ipn\.appli)\/([\d\.]+)/i],[Y,[F,"Yahoo! Japan"],[P,nt]]]}),ff=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,Y,[P,Ft]],[/(flrp)\/([\w\.-]+)/i],[[F,"Flip Player"],Y,[P,Ft]],[/(fstream|media player classic|inlight radio|mplayer|nativehost|nero showtime|ocms-bot|queryseekspider|tapinradio|tunein radio|winamp|yourmuze)/i],[F,[P,Ft]],[/(htc_one_s|windows-media-player|wmplayer)\/([\w\.-]+)/i],[[F,/[_-]/g," "],Y,[P,Ft]],[/(rad.io|radio.(?:de|at|fr)) ([\d\.]+)/i],[[F,"rad.io"],Y,[P,Ft]]]}),Ha=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,Y,[P,Ua]]]}),pf=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"]]]}),Cr=Object.freeze({browser:[...Fa.browser,...Ir.browser,...Sr.browser,...Ha.browser],os:[...Ir.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"}},Ga=[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],Tr=[S.ICELAND.REYKJAVIK,S.LIECHTENSTEIN.VADUZ,S.NORWAY.OSLO,S.NORWAY.JAN_MAYEN],mf=[...Ga,...Tr],hf=[S.SWITZERLAND.ZURICH,...Tr],Ef=[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 Pi(){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:Pf}=Ar.BrowserName,Ni=(t,e,n)=>typeof t=="string"?ee(t,e,n):t;var yr=t=>{let e=Ni(t);if(e.os.is(Er.MACOS)){if(e.cpu.is(mr.ARM))return!0;if(typeof t!="string"&&typeof window!="undefined")try{let n=document.createElement("canvas"),i=n.getContext("webgl2")||n.getContext("webgl")||n.getContext("experimental-webgl"),o=i.getExtension("WEBGL_debug_renderer_info");if(i.getParameter(o.UNMASKED_RENDERER_WEBGL).match(/apple m\d/i))return!0}catch(n){return!1}}return!1};var Or=t=>[Ut.CLI,Ut.CRAWLER,Ut.FETCHER,Ut.LIBRARY].includes(Ni(t,Cr).browser.type),Rr=t=>Ni(t).engine.is(hr.BLINK);function Va(){return{width:window.screen.width,height:window.screen.height}}function Ka(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return console.error("Failed to get timezone:",t),"UTC"}}function vr(){try{return navigator.language||"en-US"}catch(t){return console.error("Failed to get browser locale:",t),"en-US"}}function Pr(){if(typeof window=="undefined")return{userAgent:{name:"",browser:{major:"",name:"",version:""},os:{name:"",version:""},device:void 0,engine:{name:"",version:""},cpu:{architecture:""}},screenResolution:{width:0,height:0},timeZone:"UTC",flags:{isBot:!1,isChromeFamily:!1,isStandalonePWA:!1,isAppleSilicon:!1}};let e=new ee().getResult(),n;try{n={isBot:Or(e),isChromeFamily:Rr(e),isStandalonePWA:Pi(),isAppleSilicon:yr(e)}}catch(i){console.error("Failed to compute device flags:",i),n={isBot:!1,isChromeFamily:!1,isStandalonePWA:!1,isAppleSilicon:!1}}return{userAgent:{name:e.ua,browser:{major:e.browser.major||"",name:e.browser.name||"",version:e.browser.version||"",type:e.browser.type},os:{name:e.os.name||"",version:e.os.version||""},device:e.device.model||e.device.type||e.device.vendor?{model:e.device.model,type:e.device.type,vendor:e.device.vendor}:void 0,engine:{name:e.engine.name||"",version:e.engine.version||""},cpu:{architecture:e.cpu.architecture||""}},screenResolution:Va(),timeZone:Ka(),flags:n}}function Nr(){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 On=class{constructor(){this.listeners=new Map}on(e,n){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(n),()=>this.off(e,n)}off(e,n){this.listeners.has(e)&&this.listeners.get(e).delete(n)}async emit(e,n){if(this.listeners.has(e)){let i=Array.from(this.listeners.get(e));await Promise.all(i.map(o=>{try{return Promise.resolve(o(n))}catch(r){return console.error('[EventBus] Error in listener for event "'.concat(e,'":'),r),Promise.resolve()}}))}}clear(){this.listeners.clear()}};Ln();function Ht(t){try{let e=t.split(".");if(e.length!==3)return console.error("Invalid JWT token format"),null;let n=e[1],i=n+"=".repeat((4-n.length%4)%4),o=atob(i),r=JSON.parse(o);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 xr(t){try{let e=t.split(".");if(e.length!==3)return!0;let n=e[1],i=n+"=".repeat((4-n.length%4)%4),o=atob(i),r=JSON.parse(o);return r.exp?Date.now()>=r.exp*1e3:!1}catch(e){return console.error("Failed to check token expiration:",e),!0}}Yt();var it={},Wa=["","VITE_","REACT_APP_","NEXT_PUBLIC_"];function he(t,e=Wa){var n,i,o;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 it!="undefined"&&((i=it==null?void 0:it.env)!=null&&i[s]))return console.log("import.meta.env[".concat(s,"]"),it.env[s]),it.env[s];if(typeof window!="undefined"&&((o=window==null?void 0:window.__TAGADA_ENV__)!=null&&o[s]))return console.log("window.__TAGADA_ENV__[".concat(s,"]"),window.__TAGADA_ENV__[s]),window.__TAGADA_ENV__[s]}}var za=async(t="default")=>{try{if((he("TAGADA_ENV")||he("TAGADA_ENVIRONMENT"))==="production"||!at(!0))return null;let n=await fetch("/.local.json");if(!n.ok)return null;let i=await n.json(),o={},r=!1;try{let a=await fetch("/config/".concat(t,".tgd.json"));a.ok||(a=await fetch("/config/".concat(t,".json"))),a.ok&&(o=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&&(o=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:i.storeId,accountId:i.accountId,basePath:i.basePath,config:o};return console.log("\u{1F6E0}\uFE0F Using local development plugin config:",s),s}catch(e){return null}},Ya=async()=>{try{if((he("TAGADA_ENV")||he("TAGADA_ENVIRONMENT"))==="production"||!at(!0))return null;try{console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/funnel.local.json...");let i=await fetch("/config/funnel.local.json");if(i.ok){let o=await i.json();console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded local funnel config (NEW format):",o);let{loadLocalFunnelConfig:r}=await Promise.resolve().then(()=>(Gn(),fo));if(await r(),o.staticResources){let s={};for(let[a,l]of Object.entries(o.staticResources))s[a]={id:l};return s}return null}}catch(i){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}},Re=t=>{if(typeof document=="undefined")return;let e=document.querySelector('meta[name="'.concat(t,'"]'));return(e==null?void 0:e.getAttribute("content"))||void 0};function ja(){if(typeof document=="undefined")return{basePath:"/",config:{}};let t=Re("x-plugin-store-id"),e=Re("x-plugin-account-id"),n=Re("x-plugin-base-path")||"/",i={};try{let o=Re("x-plugin-config");o&&(i=JSON.parse(decodeURIComponent(o)))}catch(o){console.warn("[TagadaSDK] Failed to parse plugin config from meta tag:",o)}return{storeId:t,accountId:e,basePath:n,config:i}}var $a=async()=>{try{if(typeof document=="undefined")return null;let t=Re("x-plugin-store-id"),e=Re("x-plugin-account-id");if(!t)return null;let n=Re("x-plugin-base-path")||"/",i={};try{let r=Re("x-plugin-config");if(r){let s=decodeURIComponent(r);i=JSON.parse(s)}}catch(r){console.warn("\u26A0\uFE0F Failed to parse plugin config from meta tag:",r)}e||console.warn("\u26A0\uFE0F Plugin config: Account ID not found in meta tags");let o={storeId:t,accountId:e,basePath:n,config:i};return console.log("\u{1F680} [HIGHEST PRIORITY] Plugin config loaded from meta tags (runtime injected config):",{storeId:t,accountId:e,basePath:n,configKeys:Object.keys(i),configSize:JSON.stringify(i).length}),o}catch(t){return console.warn("\u26A0\uFE0F Error loading production config from meta tags:",t),null}},ki=async(t="default",e)=>{var s,a;console.log("\u{1F527} [V2] loadPluginConfig called with variant:",t);let n=await Ya(),i=await $a();if(i){let l=K(O({},i),{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 o=await Lr();if(o){let l=K(O({},o),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using environment variables config (PRIORITY 3 - build time)"),l}let r=await za(t);if(r){let l=K(O({},r),{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 kr(t="default",e){try{if(!at())return null;if(e)return e;let n=["/config/".concat(t,".config.json"),"/config/".concat(t,".tgd.json"),"/config/".concat(t,".json")];for(let i of n)try{let o=await fetch(i);if(o.ok)return await o.json()}catch(o){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 Lr(){try{if(!at())return;let t=he("TAGADA_STORE_ID"),e=he("TAGADA_ACCOUNT_ID"),n=he("TAGADA_BASE_PATH"),i=he("TAGADA_CONFIG_NAME");if(!t||!e)return;let o=await kr(i);if(!o)return;let r={storeId:t,accountId:e,basePath:n||"/",config:o};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}}var xi=class{static getPluginConfig(e,n){return{storeId:(e==null?void 0:e.storeId)||(n==null?void 0:n.storeId),accountId:(e==null?void 0:e.accountId)||(n==null?void 0:n.accountId),basePath:(e==null?void 0:e.basePath)||(n==null?void 0:n.basePath)||"/",config:(e==null?void 0:e.config)||{}}}static validateConfig(e){return!!(e.storeId&&e.accountId)}};Zt();Fe();Fe();var Li=new Map,_i=new Set;function qa(){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get("authCode")}async function _r(t,e,n,i=!1){if(_i.has(t))throw i&&console.log("[AuthHandoff] Code already resolved, skipping duplicate request"),new Error("Auth code already resolved");let o=Li.get(t);if(o)return i&&console.log("[AuthHandoff] Resolution already in progress, waiting for existing request"),o;i&&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 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 i&&console.log("[AuthHandoff] \u2705 Resolved successfully:",{customerId:a.customer.id,role:a.customer.role,hasContext:Object.keys(a.context).length>0}),i&&console.log("[AuthHandoff] Storing new token (overriding existing)"),ne(a.token),Xa(i),_i.add(t),a}catch(s){throw console.error("[AuthHandoff] \u274C Failed to resolve:",s),s}finally{Li.delete(t)}})();return Li.set(t,r),r}function Xa(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 Dr(){let t=qa();return!(!t||!t.startsWith("ah_")||_i.has(t))}var Gt=class{constructor(e={}){this.bus=new On;this.eventDispatcher=new Me;this.tokenPromise=null;this.tokenResolver=null;this.isInitializingSession=!1;this.lastSessionInitError=null;this.sessionInitRetryCount=0;this.MAX_SESSION_INIT_RETRIES=3;var a,l,u,d;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 I=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:I},f).catch(C=>{console.error("[TagadaClient] Funnel re-initialization failed:",C)})}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}),no(this.config.debugMode)&&this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Preview mode active - state cleared"));let i=this.resolveEnvironment(),o=Qi(i);e.customApiConfig&&(o=K(O(O({},o),e.customApiConfig),{apiConfig:O(O({},o.apiConfig),e.customApiConfig.apiConfig)}),this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Applied custom API config:"),o.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:o,isLoading:!0,isInitialized:!1,isSessionInitialized:!1,pluginConfig:{basePath:"/",config:{}},pluginConfigLoading:!0,debugMode:(a=e.debugMode)!=null?a:i!=="production",token:null},console.log("[TagadaClient ".concat(this.instanceId,"] Initial state:"),{pluginConfigLoading:this.state.pluginConfigLoading,hasRawPluginConfig:!!e.rawPluginConfig}),this.apiClient=new $e({baseURL:o.apiConfig.baseUrl});let r=(l=e.features)==null?void 0:l.funnel;if(r!==!1){let p=typeof r=="object"?r:{};this.funnel=new gt({apiClient:this.apiClient,debugMode:this.state.debugMode,pluginConfig:this.state.pluginConfig,environment:this.state.environment,autoRedirect:p.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(lt()===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:st()}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 ki(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(Dr()){let n=this.state.pluginConfig.storeId;if(!n)return console.error("[TagadaClient] Cannot resolve authCode: storeId not found in config"),this.fallbackToNormalFlow();console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F510} Cross-domain auth detected, resolving..."));try{let i=new URLSearchParams(window.location.search).get("authCode");if(!i)return this.fallbackToNormalFlow();let o=await _r(i,n,this.state.environment.apiConfig.baseUrl,this.state.debugMode);console.log("[TagadaClient ".concat(this.instanceId,"] \u2705 Auth handoff resolved:"),{customerId:o.customer.id,role:o.customer.role,hasContext:Object.keys(o.context).length>0}),this.setToken(o.token);let r=Ht(o.token);r?(this.updateState({session:r}),await this.initializeSession(r),(e=o.context)!=null&&e.funnelSessionId&&this.funnel&&this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Restoring funnel session from handoff context:"),o.context.funnelSessionId)):(console.error("[TagadaClient] Failed to decode token from handoff"),this.updateState({isInitialized:!0,isLoading:!1}));return}catch(i){console.error("[TagadaClient ".concat(this.instanceId,"] \u274C Auth handoff failed, falling back to normal flow:"),i)}}await this.fallbackToNormalFlow()}async fallbackToNormalFlow(){let 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),ne(n));let i=lt();console.log("[TagadaClient ".concat(this.instanceId,"] Initializing token (normal flow)..."),{hasExistingToken:!!i,hasQueryToken:!!n,storeId:this.state.pluginConfig.storeId});let o=null,r=!1;if(n?(o=n,r=!0):i&&!xr(i)&&(o=i),o){this.setToken(o),r&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Persisting query token to storage...")),ne(o));let s=Ht(o);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 i=new URLSearchParams(window.location.search).get("token");if(i){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL has token, skipping anonymous token creation")),this.setToken(i),ne(i);let o=Ht(i);o&&(this.updateState({session:o}),await this.initializeSession(o));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=ft();this.state.debugMode&&console.log("[TagadaClient] Creating anonymous token for store:",e,{draft:n});let i=await this.apiClient.post("/api/v1/cms/session/anonymous",{storeId:e,role:"anonymous",draft:n},{skipAuth:!0});this.setToken(i.token),ne(i.token);let o=Ht(i.token);o&&(this.updateState({session:o}),await this.initializeSession(o)),this.updateState({isSessionInitialized:!0})}catch(n){console.error("[TagadaClient] Failed to create anonymous token:",n),this.updateState({isInitialized:!0,isLoading:!1})}}async initializeSession(e){var n,i,o,r,s,a,l,u,d,p,I;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=Pr(),f=Nr(),C=vr(),b=ft(),v=new URLSearchParams(window.location.search).get("draft");v!==null&&Mn(v==="true");let L={storeId:e.storeId,accountId:e.accountId,customerId:e.customerId,role:e.role,browserLocale:C,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:(i=w.userAgent.device)==null?void 0:i.model,deviceVendor:(o=w.userAgent.device)==null?void 0:o.vendor,userAgent:w.userAgent.name,engineName:w.userAgent.engine.name,engineVersion:w.userAgent.engine.version,cpuArchitecture:w.userAgent.cpu.architecture,isBot:(s=(r=w.flags)==null?void 0:r.isBot)!=null?s:!1,isChromeFamily:(l=(a=w.flags)==null?void 0:a.isChromeFamily)!=null?l:!1,isStandalonePWA:(d=(u=w.flags)==null?void 0:u.isStandalonePWA)!=null?d:!1,isAppleSilicon:(I=(p=w.flags)==null?void 0:p.isAppleSilicon)!=null?I:!1,screenWidth:w.screenResolution.width,screenHeight:w.screenResolution.height,timeZone:w.timeZone,draft:b,fetchMessages:!1},y=await this.apiClient.post("/api/v1/cms/session/v2/init",L);this.lastSessionInitError=null,this.sessionInitRetryCount=0,this.updateSessionState(y,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 o,r,s,a,l,u,d,p,I;if(e.store){let w=e.store,f=K(O({},e.store),{accountId:w.accountId||((o=this.state.pluginConfig)==null?void 0:o.accountId)||n.accountId||"",presentmentCurrencies:w.presentmentCurrencies||[e.store.currency||"USD"],chargeCurrencies:w.chargeCurrencies||[e.store.currency||"USD"]});this.updateState({store:f})}if(e.locale){let w={locale:e.locale,language:e.locale.split("-")[0],region:(r=e.locale.split("-")[1])!=null?r:"US",messages:(s=e.messages)!=null?s:{}};this.updateState({locale:w})}if(e.store){let w={code:e.store.currency,symbol:this.getCurrencySymbol(e.store.currency),name:this.getCurrencyName(e.store.currency)};this.updateState({currency:w})}let i={isAuthenticated:(l=(a=e.customer)==null?void 0:a.isAuthenticated)!=null?l:!1,isLoading:!1,customer:(u=e.customer)!=null?u:null,session:n};if(this.updateState({customer:(d=e.customer)!=null?d:null,auth:i}),this.funnel&&n.customerId&&((p=e.store)!=null&&p.id)){let w=e.store.accountId||((I=this.state.pluginConfig)==null?void 0:I.accountId)||n.accountId||"";if(w){let C=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:w,funnelId:C||"auto-detect"}),this.funnel.autoInitialize({customerId:n.customerId,sessionId:n.sessionId},{id:e.store.id,accountId:w},C).catch(b=>{console.error("[TagadaClient] Funnel auto-initialization failed:",b)})}else console.warn("[TagadaClient] Cannot auto-initialize funnel: accountId is missing")}}getCurrencySymbol(e){return{USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5",CAD:"C$",AUD:"A$"}[e]||e}getCurrencyName(e){return{USD:"US Dollar",EUR:"Euro",GBP:"British Pound",JPY:"Japanese Yen",CAD:"Canadian Dollar",AUD:"Australian Dollar"}[e]||e}getAccountId(){var e,n,i;return((e=this.state.store)==null?void 0:e.accountId)||((n=this.state.pluginConfig)==null?void 0:n.accountId)||((i=this.state.session)==null?void 0:i.accountId)||""}updatePluginConfig(e){this.state.debugMode&&console.log("[TagadaClient] Hot-reloading config:",e);let n=O(O({},this.state.pluginConfig.config),e);this.updateState({pluginConfig:K(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 i,o;if(((i=n.data)==null?void 0:i.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(((o=n.data)==null?void 0:o.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 i="tagada-editor-highlight",o=document.getElementById(i);o&&o.remove();let r=p=>{var y;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 _=document.createElement("div");_.setAttribute("data-tagada-highlight-wrapper","true");let z=window.getComputedStyle(p),ae=z.display;if(ae==="inline"?_.style.display="inline-block":_.style.display=ae,_.style.position="relative",ae==="inline"||ae.includes("inline")){let te=z.verticalAlign;te&&te!=="baseline"&&(_.style.verticalAlign=te)}["width","height","minWidth","minHeight","maxWidth","maxHeight","flex","flexGrow","flexShrink","flexBasis","gridColumn","gridRow","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","gridArea","alignSelf","justifySelf","boxSizing","gap","rowGap","columnGap","order","aspectRatio"].forEach(te=>{let Ae=te.replace(/([A-Z])/g,"-$1").toLowerCase(),j=z.getPropertyValue(Ae);j&&j.trim()!==""&&(te==="flex"&&j!=="none"&&j!=="0 1 auto"?_.style.flex=j:te==="boxSizing"?_.style.boxSizing=j:_.style.setProperty(Ae,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(Ae=>{let j=p.style.getPropertyValue(Ae);j&&_.style.setProperty(Ae,j)}),(y=p.parentNode)==null||y.insertBefore(_,p),_.appendChild(p),f=_}}let C=getComputedStyle(w?p:f);(f.style.position==="static"||!f.style.position)&&(f.style.position="relative");let b=document.createElement("div");b.id=i,b.style.position="absolute",b.style.inset="0",b.style.pointerEvents="none",b.style.zIndex="9999",b.style.boxSizing="border-box",b.style.background="none",b.style.border="none",b.style.outline="none",b.style.margin="0",b.style.padding="0";let v=C.borderRadius;v&&(b.style.borderRadius=v),f.appendChild(b);let L=n||{boxShadow:"0 0 0 2px rgb(239 68 68)"};if(Object.entries(L).forEach(([N,W])=>{let _=N.includes("-")?N.replace(/-([a-z])/g,(z,ae)=>ae.toUpperCase()):N;N.includes("-")?b.style.setProperty(N,W):b.style[_]=W}),p.scrollIntoView({behavior:"smooth",block:"center"}),this.state.debugMode){let N=Object.entries(L).map(([W,_])=>"".concat(W,": ").concat(_)).join("; ");console.log("[TagadaClient] Applied styles to highlight div of element #".concat(e,":"),N)}},s=5,a=1e3,l=0,u=p=>{let I=window.getComputedStyle(p);return I.display==="none"||I.visibility==="hidden"||I.opacity==="0"||p.hidden||p.offsetWidth===0||p.offsetHeight===0},d=()=>{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(d,a);return}let I=null;if(p.length===1)I=p[0];else{for(let w=0;w<p.length;w++)if(!u(p[w])){I=p[w];break}I||(I=p[0])}I&&r(I)};d()}};var Rn=class{constructor(e){this.apiClient=e}async initCheckout(e){return this.apiClient.post("/api/v1/checkout/session/init",e)}async initCheckoutAsync(e){return this.apiClient.post("/api/v1/checkout/session/init-async",e)}async preloadCheckout(e,n){let i=e.funnelSessionId;!i&&n&&(i=n()||void 0);let o=typeof e.navigationEvent=="string"?{type:e.navigationEvent}:e.navigationEvent,r=K(O(O(O({},e),i&&{funnelSessionId:i}),o&&{navigationEvent:o}),{currentUrl:e.currentUrl||(typeof window!="undefined"?window.location.href:void 0)});return this.apiClient.post("/api/v1/checkout/session/preload",r)}async checkAsyncStatus(e){return this.apiClient.get("/api/public/v1/checkout/async-status/".concat(e))}async getCheckout(e,n){let i=new URLSearchParams;n&&i.set("currency",n),i.set("skipAsyncWait","false");let o="/api/v1/checkout-sessions/".concat(e,"/v2").concat(i.toString()?"?".concat(i.toString()):"");return this.apiClient.get(o)}async getCheckoutRaw(e,n){let i=new URLSearchParams;n&&i.set("currency",n),i.set("skipAsyncWait","true");let o="/api/v1/checkout-sessions/".concat(e,"/v2").concat(i.toString()?"?".concat(i.toString()):"");return this.apiClient.get(o)}async updateAddress(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/address"),{data:n})}async setCheckoutInfo(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/checkout-info"),{shippingAddress:n.shippingAddress,billingAddress:n.differentBillingAddress?n.billingAddress:n.shippingAddress,differentBillingAddress:n.differentBillingAddress||!1})}async applyPromotionCode(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/promotions/apply"),{code:n})}async removePromotion(e,n){return this.apiClient.delete("/api/v1/checkout-sessions/".concat(e,"/promotions/").concat(n))}async getAppliedPromotions(e){return this.apiClient.get("/api/v1/checkout-sessions/".concat(e,"/promotions"))}async updateLineItems(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items"),{lineItems:n})}async addLineItems(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/add"),{lineItems:n})}async removeLineItems(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/remove"),{lineItems:n})}async setItemQuantity(e,n,i,o){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/set-quantity"),{variantId:n,quantity:i,priceId:o})}async toggleOrderBump(e,n,i){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/toggle-order-bump"),{orderBumpOfferId:n,selected:i})}async updateCustomer(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/customer"),n)}async updateCustomerAndSessionInfo(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/customer-and-session-info"),n)}async previewCheckoutSession(e){return this.apiClient.post("/api/v1/checkout-sessions/preview",e)}};kn();var Di=class{static findVariant(e,n){for(let i of e){let o=i.variants.find(r=>r.id===n);if(o)return o}return null}static getVariantPrice(e,n="USD"){let i=e.prices.find(r=>r.currency===n);if(i)return i;let o=e.prices.find(r=>r.default);return o||e.prices[0]||null}static getAllVariants(e){let n=[];for(let i of e)if(i.variants)for(let o of i.variants)n.push({product:i,variant:o});return n}static filterVariants(e,n){let i=[];for(let o of e)if(o.variants)for(let r of o.variants)n(r,o)&&i.push({product:o,variant:r});return i}};var Bi=class{static getOrderLineItems(e){return e.items||[]}static getOrderTotal(e){return e.paidAmount||0}static getOrderStatus(e){return e.status||"unknown"}static isOrderCompleted(e){return e.status==="completed"||e.status==="fulfilled"}static isOrderPending(e){return e.status==="pending"||e.status==="processing"}static isOrderCancelled(e){return e.status==="cancelled"||e.status==="refunded"}};function Ja(t,e="USD",n="en-US"){let i=Vt.getDecimalPlaces(e),o;i===0?o=t/100:o=t/Math.pow(10,i);try{return new Intl.NumberFormat(n,{style:"currency",currency:e,minimumFractionDigits:i,maximumFractionDigits:i}).format(o)}catch(r){let s=Vt.getCurrencySymbol(e);return"".concat(s).concat(o.toFixed(i))}}var Vt=class{static getCurrency(e,n="USD"){var o,r,s;let i;return typeof(e==null?void 0:e.currency)=="string"?i=e.currency:(o=e==null?void 0:e.currency)!=null&&o.code?i=e.currency.code:(s=(r=e==null?void 0:e.store)==null?void 0:r.presentmentCurrencies)!=null&&s[0]?i=e.store.presentmentCurrencies[0]:i=n,{code:i,symbol:this.getCurrencySymbol(i),name:this.getCurrencyName(i),decimalPlaces:this.getDecimalPlaces(i)}}static getCurrencySymbol(e){return{USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5",CAD:"C$",AUD:"A$",CHF:"CHF",CNY:"\xA5",SEK:"kr",NOK:"kr",DKK:"kr",PLN:"z\u0142",CZK:"K\u010D",HUF:"Ft",RON:"lei",BGN:"\u043B\u0432",HRK:"kn",RUB:"\u20BD",UAH:"\u20B4",TRY:"\u20BA",BRL:"R$",ARS:"$",CLP:"$",COP:"$",MXN:"$",PEN:"S/",UYU:"$U",VEF:"Bs",ZAR:"R",EGP:"\xA3",MAD:"\u062F.\u0645.",TND:"\u062F.\u062A",DZD:"\u062F.\u062C",LYD:"\u0644.\u062F",NGN:"\u20A6",GHS:"\u20B5",KES:"KSh",UGX:"USh",TZS:"TSh",ETB:"Br",ZMW:"ZK",BWP:"P",SZL:"L",LSL:"L",NAD:"N$",MUR:"\u20A8",SCR:"\u20A8",KWD:"\u062F.\u0643",BHD:"\u062F.\u0628",QAR:"\u0631.\u0642",AED:"\u062F.\u0625",OMR:"\u0631.\u0639.",YER:"\uFDFC",SAR:"\u0631.\u0633",JOD:"\u062F.\u0627",LBP:"\u0644.\u0644",ILS:"\u20AA",INR:"\u20B9",PKR:"\u20A8",BDT:"\u09F3",LKR:"\u20A8",NPR:"\u20A8",AFN:"\u060B",KZT:"\u20B8",UZS:"\u043B\u0432",KGS:"\u043B\u0432",TJS:"SM",TMT:"T",AZN:"\u20BC",GEL:"\u20BE",AMD:"\u058F",KRW:"\u20A9",THB:"\u0E3F",VND:"\u20AB",IDR:"Rp",MYR:"RM",SGD:"S$",PHP:"\u20B1",TWD:"NT$",HKD:"HK$",MOP:"MOP$",BND:"B$",LAK:"\u20AD",KHR:"\u17DB",MMK:"K",BOB:"Bs",PYG:"\u20B2",GTQ:"Q",HNL:"L",NIO:"C$",CRC:"\u20A1",PAB:"B/.",DOP:"RD$",JMD:"J$",TTD:"TT$",BBD:"Bds$",XCD:"EC$",AWG:"\u0192",ANG:"\u0192",SRD:"$",GYD:"G$",VES:"Bs.S",VED:"Bs.D"}[e]||e}static getCurrencyName(e){return{USD:"US Dollar",EUR:"Euro",GBP:"British Pound",JPY:"Japanese Yen",CAD:"Canadian Dollar",AUD:"Australian Dollar",CHF:"Swiss Franc",CNY:"Chinese Yuan",SEK:"Swedish Krona",NOK:"Norwegian Krone",DKK:"Danish Krone",PLN:"Polish Zloty",CZK:"Czech Koruna",HUF:"Hungarian Forint",RON:"Romanian Leu",BGN:"Bulgarian Lev",HRK:"Croatian Kuna",RUB:"Russian Ruble",UAH:"Ukrainian Hryvnia",TRY:"Turkish Lira",BRL:"Brazilian Real",ARS:"Argentine Peso",CLP:"Chilean Peso",COP:"Colombian Peso",MXN:"Mexican Peso",PEN:"Peruvian Sol",UYU:"Uruguayan Peso",VEF:"Venezuelan Bolivar",ZAR:"South African Rand",EGP:"Egyptian Pound",MAD:"Moroccan Dirham",TND:"Tunisian Dinar",DZD:"Algerian Dinar",LYD:"Libyan Dinar",NGN:"Nigerian Naira",GHS:"Ghanaian Cedi",KES:"Kenyan Shilling",UGX:"Ugandan Shilling",TZS:"Tanzanian Shilling",ETB:"Ethiopian Birr",ZMW:"Zambian Kwacha",BWP:"Botswana Pula",SZL:"Swazi Lilangeni",LSL:"Lesotho Loti",NAD:"Namibian Dollar",MUR:"Mauritian Rupee",SCR:"Seychellois Rupee",KWD:"Kuwaiti Dinar",BHD:"Bahraini Dinar",QAR:"Qatari Riyal",AED:"UAE Dirham",OMR:"Omani Rial",YER:"Yemeni Rial",SAR:"Saudi Riyal",JOD:"Jordanian Dinar",LBP:"Lebanese Pound",ILS:"Israeli Shekel",INR:"Indian Rupee",PKR:"Pakistani Rupee",BDT:"Bangladeshi Taka",LKR:"Sri Lankan Rupee",NPR:"Nepalese Rupee",AFN:"Afghan Afghani",KZT:"Kazakhstani Tenge",UZS:"Uzbekistani Som",KGS:"Kyrgyzstani Som",TJS:"Tajikistani Somoni",TMT:"Turkmenistani Manat",AZN:"Azerbaijani Manat",GEL:"Georgian Lari",AMD:"Armenian Dram",KRW:"South Korean Won",THB:"Thai Baht",VND:"Vietnamese Dong",IDR:"Indonesian Rupiah",MYR:"Malaysian Ringgit",SGD:"Singapore Dollar",PHP:"Philippine Peso",TWD:"Taiwan Dollar",HKD:"Hong Kong Dollar",MOP:"Macanese Pataca",BND:"Brunei Dollar",LAK:"Lao Kip",KHR:"Cambodian Riel",MMK:"Myanmar Kyat",BOB:"Bolivian Boliviano",PYG:"Paraguayan Guarani",GTQ:"Guatemalan Quetzal",HNL:"Honduran Lempira",NIO:"Nicaraguan Cordoba",CRC:"Costa Rican Colon",PAB:"Panamanian Balboa",DOP:"Dominican Peso",JMD:"Jamaican Dollar",TTD:"Trinidad and Tobago Dollar",BBD:"Barbadian Dollar",XCD:"East Caribbean Dollar",AWG:"Aruban Florin",ANG:"Netherlands Antillean Guilder",SRD:"Surinamese Dollar",GYD:"Guyanese Dollar",VES:"Venezuelan Bolivar Soberano",VED:"Venezuelan Bolivar Digital"}[e]||e}static getDecimalPlaces(e){var i;return(i={JPY:0,KRW:0,VND:0,IDR:0,LAK:0,KHR:0,MMK:0,PYG:0,VEF:0,VES:0,VED:0}[e])!=null?i:2}};var Mi=class{static getCheckoutSessionId(e){var n;return((n=e.checkoutSession)==null?void 0:n.id)||""}static getLineItems(e){var n;return((n=e.checkoutSession)==null?void 0:n.lineItems)||[]}static getTotal(e){var n;return((n=e.checkoutSession)==null?void 0:n.totalPrice)||0}static isClubMember(e){return e.customerIsClubMember||!1}};var Ui=class{static isValidPromotion(e){return!!(e.id&&e.name)}static getPromotionType(e){return e.type||"unknown"}static hasRules(e){return!!(e.rules&&e.rules.length>0)}static hasActions(e){return!!(e.actions&&e.actions.length>0)}};var Fi=class{static isValidOffer(e){return!!(e.id&&e.summaries&&e.summaries.length>0)}static getOfferTotal(e){var n,i;return((i=(n=e.summaries)==null?void 0:n[0])==null?void 0:i.totalAmount)||0}static getOfferAdjustedTotal(e){var n,i;return((i=(n=e.summaries)==null?void 0:n[0])==null?void 0:i.totalAdjustedAmount)||0}static hasItems(e){return!!(e.offerLineItems&&e.offerLineItems.length>0)}static getOfferCurrency(e){var n,i;return((i=(n=e.summaries)==null?void 0:n[0])==null?void 0:i.currency)||"USD"}static getOfferTitle(e,n="en"){var i,o;return((i=e.titleTrans)==null?void 0:i[n])||((o=e.titleTrans)==null?void 0:o.en)||"Offer ".concat(e.id)}};var Hi=class{static isValidOffer(e){return!!(e.id&&e.name&&e.price>0)}static toggleSelection(e){return K(O({},e),{isSelected:!e.isSelected})}static calculatePreview(e,n=0){let i=n+e.price,o=e.isSelected?i:n;return{offer:e,totalAmount:i,adjustedAmount:o}}static getSelectedOffers(e){return e.filter(n=>n.isSelected)}static getSelectedTotal(e){return e.filter(n=>n.isSelected).reduce((n,i)=>n+i.price,0)}};ut();var Za={session:t=>["funnel","session",t],allSessions:()=>["funnel","sessions"],funnelMeta:t=>["funnel","meta",t]};function Br(t,e,n="*"){let i={type:"TAGADAPAY_CONFIG_UPDATE",config:e,timestamp:Date.now()};t.postMessage(i,n)}function Qa(t,e="iframe"){if(typeof document=="undefined")return;let n=document.querySelectorAll(e);n.forEach(i=>{i.contentWindow&&Br(i.contentWindow,t)}),console.log("[ConfigHotReload] Broadcasted config update to ".concat(n.length," iframe(s)"))}function el(t){if(typeof window=="undefined")return()=>{};let e=n=>{var i;((i=n.data)==null?void 0:i.type)==="TAGADAPAY_CONFIG_UPDATE"&&t(n.data.config)};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}}function tl(t,e=150){let n=null;return i=>{n&&clearTimeout(n),n=setTimeout(()=>{t(i),n=null},e)}}Fe();function Mr(t){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get(t)}function Ee(t,...e){t&&console.log("[TagadaTracker]",...e)}var Kt=class{constructor(){this.config=null;this.client=null;this.initialized=!1;this.initializing=!1}async init(e){var n,i,o,r;if(this.initialized||this.initializing)return Ee(e.debug||!1,"Already initialized or initializing"),this.getSession();this.initializing=!0,this.config=O({debug:!1},e),Ee(this.config.debug,"\u{1F680} Initializing external tracker with SDK...",e);try{let s=Mr("token");s&&(ne(s),Ee(this.config.debug,"\u{1F511} Bootstrapped token from URL")),this.client=Vi({debugMode:this.config.debug,features:{funnel:!0}}),await this.waitForClientReady();let a=await this.initializeFunnel();Ee(this.config.debug,"\u2705 Session initialized (tracking handled by orchestrator):",a),this.initialized=!0;let l=this.getSession();return l&&((i=(n=this.config).onReady)==null||i.call(n,l)),l}catch(s){let a=s instanceof Error?s:new Error(String(s));throw Ee(this.config.debug,"\u274C Initialization failed:",a),(r=(o=this.config).onError)==null||r.call(o,a),a}finally{this.initializing=!1}}getSession(){var n,i;if(!((i=(n=this.client)==null?void 0:n.funnel)!=null&&i.state.context))return null;let e=this.client.funnel.state.context;return{sessionId:e.sessionId,customerId:e.customerId,storeId:e.storeId,funnelId:e.funnelId,currentStepId:e.currentStepId,cmsToken:this.client.state.token||void 0}}isReady(){var e,n;return this.initialized&&!!((n=(e=this.client)==null?void 0:e.funnel)!=null&&n.state.context)}async navigate(e){if(!this.isReady())throw new Error("Tracker not initialized. Call init() first.");Ee(this.config.debug,"\u{1F680} Navigating:",e);let n=e.autoRedirect!==!1;try{let i=await this.client.funnel.navigate({type:e.eventType,data:e.eventData||{}},{autoRedirect:!1});return i!=null&&i.url?(Ee(this.config.debug,"\u2705 Navigation result:",i.url),n&&typeof window!="undefined"&&(window.location.href=e.returnUrl||i.url),{url:i.url}):null}catch(i){throw Ee(this.config.debug,"\u274C Navigation failed:",i),i}}getCustomerId(){var e,n,i,o,r;return((n=(e=this.client)==null?void 0:e.state.auth.customer)==null?void 0:n.id)||((r=(o=(i=this.client)==null?void 0:i.funnel)==null?void 0:o.state.context)==null?void 0:r.customerId)||null}getFunnelSessionId(){var e,n,i;return((i=(n=(e=this.client)==null?void 0:e.funnel)==null?void 0:n.state.context)==null?void 0:i.sessionId)||null}buildUrl(e,n){let i=this.getSession();if(!i)return e;let o=new URL(e,typeof window!="undefined"?window.location.origin:void 0);return o.searchParams.set("funnelSessionId",i.sessionId),i.cmsToken&&o.searchParams.set("token",i.cmsToken),i.funnelId&&o.searchParams.set("funnelId",i.funnelId),o.searchParams.set("storeId",i.storeId),n&&Object.entries(n).forEach(([r,s])=>{o.searchParams.set(r,s)}),o.toString()}getClient(){return this.client}async waitForClientReady(){if(this.client)return new Promise(e=>{let n=0,i=()=>{var o,r;(o=this.client)!=null&&o.state.isInitialized||(r=this.client)!=null&&r.state.token||n>40?e():(n++,setTimeout(i,50))};i()})}async initializeFunnel(){var o,r,s;if(!((o=this.client)!=null&&o.funnel))return null;let e={customerId:((r=this.client.state.auth.customer)==null?void 0:r.id)||"anon_placeholder",sessionId:((s=this.client.state.auth.session)==null?void 0:s.sessionId)||"sess_placeholder"},n={id:this.config.storeId,accountId:this.config.accountId||""},i=this.config.stepId;if(!i)throw new Error("stepId is required for external page tracking (URL mapping does not work for external pages)");return Ee(this.config.debug,"\u{1F50D} Initializing external page at step:",i),this.client.funnel.initialize(e,n,this.config.funnelId||Mr("funnelId")||void 0,i)}},Gi=new Kt;typeof window!="undefined"&&(window.TagadaTracker=Gi);function Vi(t={}){return new Gt(t)}return Yr(nl);})();
|
|
7
|
+
"use strict";var TagadaSDKBundle=(()=>{var js=Object.create;var St=Object.defineProperty,qs=Object.defineProperties,Xs=Object.getOwnPropertyDescriptor,Js=Object.getOwnPropertyDescriptors,Zs=Object.getOwnPropertyNames,Di=Object.getOwnPropertySymbols,Qs=Object.getPrototypeOf,Mi=Object.prototype.hasOwnProperty,ea=Object.prototype.propertyIsEnumerable;var $e=(n,e)=>(e=Symbol[n])?e:Symbol.for("Symbol."+n),ta=n=>{throw TypeError(n)};var Bi=(n,e,t)=>e in n?St(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,C=(n,e)=>{for(var t in e||(e={}))Mi.call(e,t)&&Bi(n,t,e[t]);if(Di)for(var t of Di(e))ea.call(e,t)&&Bi(n,t,e[t]);return n},D=(n,e)=>qs(n,Js(e));var Oe=(n,e)=>()=>(n&&(e=n(n=0)),e);var na=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),ir=(n,e)=>{for(var t in e)St(n,t,{get:e[t],enumerable:!0})},Ui=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Zs(e))!Mi.call(n,i)&&i!==t&&St(n,i,{get:()=>e[i],enumerable:!(r=Xs(e,i))||r.enumerable});return n};var ra=(n,e,t)=>(t=n!=null?js(Qs(n)):{},Ui(e||!n||!n.__esModule?St(t,"default",{value:n,enumerable:!0}):t,n)),ia=n=>Ui(St({},"__esModule",{value:!0}),n);var De=function(n,e){this[0]=n,this[1]=e},or=(n,e,t)=>{var r=(s,a,l,c)=>{try{var u=t[s](a),p=(a=u.value)instanceof De,w=u.done;Promise.resolve(p?a[0]:a).then(b=>p?r(s==="return"?s:"next",a[1]?{done:b.done,value:b.value}:b,l,c):l({value:b,done:w})).catch(b=>r("throw",b,l,c))}catch(b){c(b)}},i=s=>o[s]=a=>new Promise((l,c)=>r(s,a,l,c)),o={};return t=t.apply(n,e),o[$e("asyncIterator")]=()=>o,i("next"),i("throw"),i("return"),o},ze=n=>{var e=n[$e("asyncIterator")],t=!1,r,i={};return e==null?(e=n[$e("iterator")](),r=o=>i[o]=s=>e[o](s)):(e=e.call(n),r=o=>i[o]=s=>{if(t){if(t=!1,o==="throw")throw s;return s}return t=!0,{done:!1,value:new De(new Promise(a=>{var l=e[o](s);l instanceof Object||ta("Object expected"),a(l)}),1)}}),i[$e("iterator")]=()=>i,r("next"),"throw"in e?r("throw"):i.throw=o=>{throw o},"return"in e&&r("return"),i},Fi=(n,e,t)=>(e=n[$e("asyncIterator")])?e.call(n):(n=n[$e("iterator")](),e={},t=(r,i)=>(i=n[r])&&(e[r]=o=>new Promise((s,a,l)=>(o=i.call(n,o),l=o.done,Promise.resolve(o.value).then(c=>s({value:c,done:l}),a)))),t("next"),t("return"),e);function Hi(n){var r;if(typeof document=="undefined")return null;let t="; ".concat(document.cookie).split("; ".concat(n,"="));return t.length===2&&((r=t.pop())==null?void 0:r.split(";").shift())||null}function Ki(n="local"){let e=Gi[n];if(!e)return console.warn("Unknown environment: ".concat(n,". Falling back to local.")),{environment:"local",apiConfig:Gi.local};let t=null;if(typeof window!="undefined"&&(t=new URLSearchParams(window.location.search).get("tagadaClientBaseUrl"),!t))try{t=localStorage.getItem("tgd_client_base_url")||Hi("tgd_client_base_url")}catch(i){}return t?(console.log("[SDK] Using custom API base URL override: ".concat(t)),{environment:n,apiConfig:D(C({},e),{baseUrl:t})}):{environment:n,apiConfig:e}}function It(){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")||Hi("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 t=window.location.hostname,r=window.location.href;if(console.log('[SDK] detectEnvironment() - hostname: "'.concat(t,'"')),t==="localhost"||t.startsWith("127.")||t.startsWith("192.168.")||t.startsWith("10.")||t.includes(".local")||t===""||t==="0.0.0.0"||t.includes("ngrok-free.dev")||t.includes("ngrok-free.app")||t.includes("ngrok.io")||t.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 t==="app.tagadapay.com"||t.includes("tagadapay.com")||t.includes("yourproductiondomain.com")?"production":t==="app.tagadapay.dev"||t.includes("tagadapay.dev")||t.includes("vercel.app")||t.includes("netlify.app")||t.includes("surge.sh")||t.includes("github.io")||t.includes("herokuapp.com")||t.includes("railway.app")||r.includes("?env=dev")||r.includes("?dev=true")||r.includes("#dev")?"development":(console.warn("[SDK] Unknown domain: ".concat(t,", defaulting to production")),"production")}function Ct(n=!1){return It()!=="local"?!1:n&&typeof window!="undefined"?!window.location.hostname.includes(".cdn."):!0}var Gi,dn=Oe(()=>{"use strict";Gi={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 fn,pn,sr=Oe(()=>{"use strict";fn=(w=>(w.DIRECT_NAVIGATION="direct_navigation",w.BACK_NAVIGATION="back_navigation",w.CONTINUE_CLICKED="continue_clicked",w.BUTTON_CLICK="button_click",w.FORM_SUBMIT="form_submit",w.PAYMENT_SUCCESS="payment_success",w.PAYMENT_FAILED="payment_failed",w.OFFER_ACCEPTED="offer_accepted",w.OFFER_DECLINED="offer_declined",w.CART_UPDATED="cart_updated",w.CART_ITEM_ADDED="cart_item_added",w.CUSTOM="custom",w))(fn||{}),pn=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,t){return this.apiClient.patch("/api/v1/funnel/context/".concat(e),t)}async endSession(e){return this.apiClient.delete("/api/v1/funnel/session/".concat(e))}async getSession(e,t,r){let i=new URLSearchParams;t&&i.append("currentUrl",t),r&&i.append("includeDebugData","true");let o="/api/v1/funnel/session/".concat(e).concat(i.toString()?"?".concat(i):"");return this.apiClient.get(o)}}});var Ye,ar=Oe(()=>{"use strict";Ye=class{constructor(){this.listeners=new Set}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(e){this.listeners.forEach(t=>{try{t(e)}catch(r){console.error("Error in event listener:",r)}})}clear(){this.listeners.clear()}}});function oe(n){if(typeof window!="undefined")try{let t=localStorage.getItem(gn)!==n;localStorage.setItem(gn,n),t&&window.dispatchEvent(new Event("storage"))}catch(e){console.error("Failed to save token to localStorage:",e)}}function Tt(){if(typeof window!="undefined")try{return localStorage.getItem(gn)}catch(n){return console.error("Failed to get token from localStorage:",n),null}return null}function je(){if(typeof window!="undefined")try{localStorage.removeItem(gn)}catch(n){console.error("Failed to clear token from localStorage:",n)}}var gn,qe=Oe(()=>{"use strict";gn="cms_token"});function lr(n){typeof document!="undefined"&&(document.cookie="".concat(cr,"=").concat(n,"; path=/; max-age=2592000; SameSite=Lax"))}function mn(){if(typeof document=="undefined")return;let n=document.cookie.split("; ").find(e=>e.startsWith("".concat(cr,"=")));return n?n.split("=")[1]:void 0}function Rt(){typeof document!="undefined"&&(document.cookie="".concat(cr,"=; path=/; max-age=0"))}function sa(){return!!mn()}function aa(){var n;if(typeof document!="undefined")try{let e=document.cookie.split("; ").find(r=>r.startsWith("".concat(oa,"=")));if(!e)return;let t=JSON.parse(decodeURIComponent(e.split("=")[1]));return(n=t==null?void 0:t.metadata)==null?void 0:n.funnelVariantId}catch(e){console.warn("Failed to parse sticky session for variant ID:",e);return}}var cr,oa,Ot=Oe(()=>{"use strict";cr="tgd-funnel-session-id",oa="tgd-session-id"});function Xe(n){if(typeof window=="undefined")return null;try{return localStorage.getItem(n)}catch(e){return null}}function hn(n,e){if(typeof window!="undefined")try{localStorage.setItem(n,e)}catch(t){}}function Pt(n){var r;if(typeof document=="undefined")return null;let t=document.cookie.split(";").find(i=>i.trim().startsWith("".concat(n,"=")));return t?(r=t.split("=")[1])==null?void 0:r.trim():null}function ur(n,e,t=86400){if(typeof document!="undefined"){if(n==="tgd_draft"||n==="tgd-draft"){console.warn("\u{1F6E1}\uFE0F [SDK] Blocked attempt to set ".concat(n," as cookie - this should only be in localStorage"));return}document.cookie="".concat(n,"=").concat(e,"; path=/; max-age=").concat(t)}}function Wi(n){typeof document!="undefined"&&(document.cookie="".concat(n,"=; path=/; max-age=0"))}function Be(){if(typeof window=="undefined")return{};let n=new URLSearchParams(window.location.search),e,t=n.get("draft");if(t!==null)e=t==="true";else{let T=Xe(M.DRAFT);T!==null&&(e=T==="true")}let r,i=n.get("funnelTracking");if(i!==null)r=i!=="false";else{let T=Xe(M.FUNNEL_TRACKING)||Pt(M.FUNNEL_TRACKING);T!==null&&(r=T!=="false")}let o=n.get("token")||Tt()||null,s=n.get("funnelSessionId")||null,a=n.get("funnelId")||null,l,c=n.get("funnelEnv");c&&(c==="staging"||c==="production")&&(l=c);let u=n.get("forceReset")==="true",p,w=n.get("tagadaClientEnv");if(w&&(w==="production"||w==="development"||w==="local"))p=w;else{let T=Xe(M.CLIENT_ENV)||Pt(M.CLIENT_ENV);T&&(T==="production"||T==="development"||T==="local")&&(p=T)}let b,f=n.get("tagadaClientBaseUrl");if(f)b=f;else{let T=Xe(M.CLIENT_BASE_URL)||Pt(M.CLIENT_BASE_URL);T&&(b=T)}let I,h=n.get("currency");if(h)I=h;else{let T=Xe(M.CURRENCY)||Pt(M.CURRENCY);T&&(I=T)}let O,x=n.get("locale");if(x)O=x;else{let T=Xe(M.LOCALE)||Pt(M.LOCALE);T&&(O=T)}return{forceReset:u,token:o,funnelSessionId:s,funnelId:a,draft:e,funnelTracking:r,funnelEnv:l,tagadaClientEnv:p,tagadaClientBaseUrl:b,currency:I,locale:O}}function vt(){var e;return(e=Be().draft)!=null?e:!1}function dr(n){if(typeof window!="undefined")if(n)hn(M.DRAFT,"true");else try{localStorage.removeItem(M.DRAFT)}catch(e){}}function $i(n=!1){let e=null;typeof window!="undefined"&&(e=new URLSearchParams(window.location.search).get("token"));let t=Be(),r=t.forceReset||!1;if(!r&&!t.token)return Vi(),!1;n&&(console.log("[SDK] Detected params:",t),console.log("[SDK] URL token (direct read):",e?e.substring(0,20)+"...":"none")),r&&(n&&console.log("[SDK] Force reset: Clearing all stored state"),je(),Rt(),typeof window!="undefined"&&window.localStorage&&Object.keys(localStorage).forEach(s=>{(s.startsWith("tagadapay_")||s.startsWith("tgd_"))&&(n&&console.log("[SDK] Clearing localStorage: ".concat(s)),localStorage.removeItem(s))}));let i=e||t.token;return i!=null?(n&&console.log("[SDK] Setting token from URL:",i.substring(0,20)+"..."),i===""||i==="null"?je():(oe(i),n&&console.log("[SDK] \u2705 Token set in localStorage immediately after clear"))):r&&(n&&console.log("[SDK] Force reset mode (no token in URL)"),je()),Vi(),t.funnelSessionId&&n&&console.log("[SDK] Using funnelSessionId from URL:",t.funnelSessionId),r}function Vi(){if(typeof window=="undefined")return;let n=new URLSearchParams(window.location.search),e=n.get("draft");e!==null&&dr(e==="true");let t=n.get("funnelTracking");t!==null&&ca(t!=="false");let r=n.get("tagadaClientEnv");r&&(r==="production"||r==="development"||r==="local")&&la(r);let i=n.get("tagadaClientBaseUrl");i&&ua(i)}function ca(n){if(typeof window=="undefined")return;let e=n?"true":"false";hn(M.FUNNEL_TRACKING,e),ur(M.FUNNEL_TRACKING,e,86400)}function la(n){typeof window!="undefined"&&(hn(M.CLIENT_ENV,n),ur(M.CLIENT_ENV,n,86400))}function zi(){if(typeof window!="undefined")try{localStorage.removeItem(M.CLIENT_ENV),Wi(M.CLIENT_ENV)}catch(n){}}function ua(n){typeof window!="undefined"&&(hn(M.CLIENT_BASE_URL,n),ur(M.CLIENT_BASE_URL,n,86400))}function Yi(){if(typeof window!="undefined")try{localStorage.removeItem(M.CLIENT_BASE_URL),Wi(M.CLIENT_BASE_URL)}catch(n){}}function ji(){var e;return(e=Be().funnelTracking)!=null?e:!0}var M,En=Oe(()=>{"use strict";qe();Ot();M={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 pr(n){if(typeof window=="undefined"||typeof document=="undefined")return;let e=window.location.hostname,t=e.split("."),r=["",e,"."+e];for(let a=1;a<t.length;a++){let l=t.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(n,"=; 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 pa(){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)}je(),Rt(),zi(),Yi(),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=>pr(o)),["tgd-draft","tgd_draft","tgd.draft","tgddraft"].forEach(o=>pr(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),w=["/"],b="";p.forEach(f=>{b+="/"+f,w.push(b)}),u.forEach(f=>{w.forEach(I=>{let h="".concat(a,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(I),O=f?"; domain=".concat(f):"";document.cookie=h+O,document.cookie=h+O+"; secure",document.cookie=h+O+"; SameSite=None; secure",document.cookie=h+O+"; SameSite=Lax",document.cookie=h+O+"; SameSite=Strict",document.cookie=h+O+"; secure; SameSite=None",document.cookie=h+O+"; secure; SameSite=Lax",document.cookie=h+O+"; secure; SameSite=Strict"})})}),setTimeout(()=>{window.localStorage&&localStorage.length>0&&localStorage.clear(),pr("tgd_draft"),typeof window.stop=="function"&&window.stop(),window.location.replace(e.href)},10)}function fr(){if(qi||typeof window=="undefined"||typeof document=="undefined")return;let n=Be(),e=vt(),t=!ji(),r=!!(n.tagadaClientEnv||n.tagadaClientBaseUrl);if(!e&&!t&&!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 '),t&&(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 '),n.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(n.funnelEnv,"\n </span>\n </div>\n ")),n.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(n.tagadaClientEnv,"\n </span>\n </div>\n ")),n.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(n.tagadaClientBaseUrl,"\n </div>\n </div>\n ")),n.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(n.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 w=s.querySelector("#tgd-leave-preview");w&&(w.addEventListener("mouseenter",()=>{w.style.opacity="0.8"}),w.addEventListener("mouseleave",()=>{w.style.opacity="1"}),w.addEventListener("click",b=>{b.stopPropagation(),pa()})),i.appendChild(o),i.appendChild(a),i.appendChild(s),document.body.appendChild(i),da=i,qi=!0}var da,qi,Xi=Oe(()=>{"use strict";En();qe();Ot();da=null,qi=!1});var eo={};ir(eo,{FunnelClient:()=>Nt,TrackingProvider:()=>Zi,getAssignedPaymentFlowId:()=>Ea,getAssignedPixels:()=>wa,getAssignedScripts:()=>Aa,getAssignedStaticResources:()=>ya,getAssignedStepConfig:()=>Me,getLocalFunnelConfig:()=>Qi,loadLocalFunnelConfig:()=>ma});function fa(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_ID__)return window.__TGD_FUNNEL_ID__;if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-funnel-id"]');return(n==null?void 0:n.getAttribute("content"))||void 0}}}function yn(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_VARIANT_ID__)return window.__TGD_FUNNEL_VARIANT_ID__;if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-funnel-variant-id"]');return(n==null?void 0:n.getAttribute("content"))||void 0}}}function xt(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_STEP_ID__)return window.__TGD_FUNNEL_STEP_ID__;if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-funnel-step-id"]');return(n==null?void 0:n.getAttribute("content"))||void 0}}}function Ji(n){if(!n||typeof n!="string")return;let e=n.trim();if(!e)return;let t=[()=>JSON.parse(e),()=>JSON.parse(decodeURIComponent(e)),()=>JSON.parse(decodeURIComponent(decodeURIComponent(e)))];for(let r of t)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 ga(){if(typeof window=="undefined")return!1;let n=window.location.hostname;return n==="localhost"||n==="127.0.0.1"||n.endsWith(".localhost")&&!n.includes(".cdn.")}async function ma(){if(!ga())return null;if(se!==void 0)return se;if(gr)return await new Promise(n=>setTimeout(n,100)),se!=null?se:null;gr=!0;try{console.log("\u{1F6E0}\uFE0F [SDK] Loading local funnel config from /config/funnel.local.json...");let n=await fetch("/config/funnel.local.json");if(!n.ok)return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not found (this is fine in production)"),se=null,null;let e=await n.json();return console.log("\u{1F6E0}\uFE0F [SDK] \u2705 Loaded local funnel config:",e),se=e,e}catch(n){return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not available:",n),se=null,null}finally{gr=!1}}function Qi(){return se!=null?se:null}function ha(n){return{payment:n.paymentFlowId?{paymentFlowId:n.paymentFlowId}:void 0,staticResources:n.staticResources,scripts:n.scripts,pixels:n.pixels}}function Me(){if(typeof window=="undefined")return;let n=Qi();if(n)return console.log("\u{1F6E0}\uFE0F [SDK] Using local funnel.local.json (overrides injected)"),ha(n);let e=window.__TGD_STEP_CONFIG__;if(e){let t=Ji(e);if(t)return t}if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-step-config"]'),r=t==null?void 0:t.getAttribute("content");if(r){let i=Ji(r);if(i)return i}}}function Ea(){var e;let n=Me();if((e=n==null?void 0:n.payment)!=null&&e.paymentFlowId)return n.payment.paymentFlowId;if(typeof window!="undefined"){if(window.__TGD_PAYMENT_FLOW_ID__)return window.__TGD_PAYMENT_FLOW_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-payment-flow-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function ya(){let n=Me();return n==null?void 0:n.staticResources}function Aa(n){let e=Me();if(!(e!=null&&e.scripts))return;let t=e.scripts.filter(r=>r.enabled);return n&&(t=t.filter(r=>r.position===n||!r.position&&n==="head-end")),t.length>0?t:void 0}function wa(){let n=Me(),e=n==null?void 0:n.pixels;if(!e||typeof e!="object")return;let t={};for(let[r,i]of Object.entries(e))i&&(Array.isArray(i)?t[r]=i:typeof i=="object"&&(t[r]=[i]));return Object.keys(t).length>0?t:void 0}var Zi,se,gr,Nt,An=Oe(()=>{"use strict";dn();sr();ar();En();Xi();Ot();Zi=(o=>(o.FACEBOOK="facebook",o.TIKTOK="tiktok",o.SNAPCHAT="snapchat",o.PINTEREST="pinterest",o.GTM="gtm",o))(Zi||{});gr=!1;Nt=class{constructor(e){this.eventDispatcher=new Ye;this.isInitializing=!1;this.initializationAttempted=!1;this.config=e,this.resource=new pn(e.apiClient),this.state={context:null,isLoading:!1,isInitialized:!1,isNavigating:!1,error:null,sessionError:null}}setConfig(e){this.config=C(C({},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 t=new URLSearchParams(window.location.search).get("funnelSessionId");return t||mn()||null}resetInitialization(){this.initializationAttempted=!1,this.isInitializing=!1,this.updateState({context:null,isInitialized:!1})}async autoInitialize(e,t,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=fa(),c=yn(),u=xt(),p=Be(),w=this.config.funnelId||l||a,b=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:w,funnelVariantId:c,funnelStepId:b,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:t.id,accountId:t.accountId},funnelId:w,existingSessionId:i||void 0,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:c,funnelStepId:b,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 O=this.enrichContext(h.context);return this.handleSessionSuccess(O),fr(),O}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,t,r,i){this.updateState({isLoading:!0,error:null});try{let o=yn(),s=xt();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:t.id,accountId:t.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),fr(),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,t){var r,i,o,s,a,l;if(t!=null&&t.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=yn(),u=xt(),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:!!xt(),hasInjectedVariantId:!!yn(),usedConfigFallback:!xt()&&!!this.config.stepId,customerTags:(t==null?void 0:t.customerTags)||"(none)",deviceId:(t==null?void 0:t.deviceId)||"(none)"});let w=(t==null?void 0:t.fireAndForget)||!1,b=await this.resource.navigate({sessionId:this.state.context.sessionId,event:e,currentUrl:p,funnelStepId:u,funnelVariantId:c,fireAndForget:w,customerTags:t==null?void 0:t.customerTags,deviceId:t==null?void 0:t.deviceId});if(!b.success||!b.result)throw new Error(b.error||"Navigation failed");let f=b.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=(t==null?void 0:t.autoRedirect)!==void 0?t.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,t){return this.navigate({type:"direct_navigation",data:{targetStepId:e}},t)}async refreshSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{let t=await this.resource.getSession(this.state.context.sessionId);if(t.success&&t.context){let r=this.enrichContext(t.context);return this.updateState({context:r,sessionError:null}),r}}catch(t){this.updateState({sessionError:t instanceof Error?t:new Error(String(t))})}}async updateContext(e){var t;if(!((t=this.state.context)!=null&&t.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=C(C({},this.state),e),this.eventDispatcher.notify(this.state)}handleSessionSuccess(e){lr(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)||It())!=="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:D(C({},e),{static:C(C({},r),i)})}}});var Us=na(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.PathError=de.TokenData=void 0;de.parse=Ai;de.compile=wl;de.match=Sl;de.pathToRegexp=Ds;de.stringify=Tl;var hi="/",Ei=n=>n,ks=new RegExp("^[$_\\p{ID_Start}]$","u"),yi=new RegExp("^[$\\u200c\\u200d\\p{ID_Continue}]$","u"),yl={"{":"{","}":"}","(":"(",")":")","[":"[","]":"]","+":"+","?":"?","!":"!"};function Al(n){return n.replace(/[{}()\[\]+?!:*\\]/g,"\\$&")}function Ae(n){return n.replace(/[.+*?^${}()[\]|/\\]/g,"\\$&")}var Qn=class{constructor(e,t){this.tokens=e,this.originalPath=t}};de.TokenData=Qn;var Ke=class extends TypeError{constructor(e,t){let r=e;t&&(r+=": ".concat(t)),r+="; visit https://git.new/pathToRegexpError for info",super(r),this.originalPath=t}};de.PathError=Ke;function Ai(n,e={}){let{encodePath:t=Ei}=e,r=[...n],i=[],o=0,s=0;function a(){let c="";if(ks.test(r[o]))do c+=r[o++];while(yi.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 Ke("Unterminated quote at index ".concat(u),n)}if(!c)throw new Ke("Missing parameter name at index ".concat(o),n);return c}for(;o<r.length;){let c=r[o],u=yl[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 w=p.value,b=i[s];for(;b.type==="char"||b.type==="escape";)w+=b.value,b=i[++s];u.push({type:"text",value:t(w)});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 Ke("Unexpected ".concat(p.type," at index ").concat(p.index,", expected ").concat(c),n)}return u}return new Qn(l("end"),n)}function wl(n,e={}){let{encode:t=encodeURIComponent,delimiter:r=hi}=e,i=typeof n=="object"?n:Ai(n,e),o=Ls(i.tokens,r,t);return function(a={}){let[l,...c]=o(a);if(c.length)throw new TypeError("Missing parameters: ".concat(c.join(", ")));return l}}function Ls(n,e,t){let r=n.map(i=>bl(i,e,t));return i=>{let o=[""];for(let s of r){let[a,...l]=s(i);o[0]+=a,o.push(...l)}return o}}function bl(n,e,t){if(n.type==="text")return()=>[n.value];if(n.type==="group"){let i=Ls(n.tokens,e,t);return o=>{let[s,...a]=i(o);return a.length?[""]:[s]}}let r=t||Ei;return n.type==="wildcard"&&t!==!1?i=>{let o=i[n.name];if(o==null)return["",n.name];if(!Array.isArray(o)||o.length===0)throw new TypeError('Expected "'.concat(n.name,'" to be a non-empty array'));return[o.map((s,a)=>{if(typeof s!="string")throw new TypeError('Expected "'.concat(n.name,"/").concat(a,'" to be a string'));return r(s)}).join(e)]}:i=>{let o=i[n.name];if(o==null)return["",n.name];if(typeof o!="string")throw new TypeError('Expected "'.concat(n.name,'" to be a string'));return[r(o)]}}function Sl(n,e={}){let{decode:t=decodeURIComponent,delimiter:r=hi}=e,{regexp:i,keys:o}=Ds(n,e),s=o.map(a=>t===!1?Ei:a.type==="param"?t:l=>l.split(r).map(t));return function(l){let c=i.exec(l);if(!c)return!1;let u=c[0],p=Object.create(null);for(let w=1;w<c.length;w++){if(c[w]===void 0)continue;let b=o[w-1],f=s[w-1];p[b.name]=f(c[w])}return{path:u,params:p}}}function Ds(n,e={}){let{delimiter:t=hi,end:r=!0,sensitive:i=!1,trailing:o=!0}=e,s=[],a=i?"":"i",l=[];for(let p of Bs(n,[])){let w=typeof p=="object"?p:Ai(p,e);for(let b of Zn(w.tokens,0,[]))l.push(Il(b,t,s,w.originalPath))}let c="^(?:".concat(l.join("|"),")");return o&&(c+="(?:".concat(Ae(t),"$)?")),c+=r?"$":"(?=".concat(Ae(t),"|$)"),{regexp:new RegExp(c,a),keys:s}}function Bs(n,e){if(Array.isArray(n))for(let t of n)Bs(t,e);else e.push(n);return e}function*Zn(n,e,t){if(e===n.length)return yield t;let r=n[e];if(r.type==="group")for(let i of Zn(r.tokens,0,t.slice()))yield*ze(Zn(n,e+1,i));else t.push(r);yield*ze(Zn(n,e+1,t))}function Il(n,e,t,r){let i="",o="",s=!0;for(let a of n){if(a.type==="text"){i+=Ae(a.value),o+=a.value,s||(s=a.value.includes(e));continue}if(a.type==="param"||a.type==="wildcard"){if(!s&&!o)throw new Ke('Missing text before "'.concat(a.name,'" ').concat(a.type),r);a.type==="param"?i+="(".concat(Cl(e,s?"":o),"+)"):i+="([\\s\\S]+)",t.push(a),o="",s=!1;continue}}return i}function Cl(n,e){return e.length<2?n.length<2?"[^".concat(Ae(n+e),"]"):"(?:(?!".concat(Ae(n),")[^").concat(Ae(e),"])"):n.length<2?"(?:(?!".concat(Ae(e),")[^").concat(Ae(n),"])"):"(?:(?!".concat(Ae(e),"|").concat(Ae(n),")[\\s\\S])")}function Ms(n){let e="",t=0;function r(i){return Rl(i)&&Ol(n[t])?i:JSON.stringify(i)}for(;t<n.length;){let i=n[t++];if(i.type==="text"){e+=Al(i.value);continue}if(i.type==="group"){e+="{".concat(Ms(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 Tl(n){return Ms(n.tokens)}function Rl(n){let[e,...t]=n;return ks.test(e)&&t.every(r=>yi.test(r))}function Ol(n){return n&&n.type==="text"?!yi.test(n.value[0]):!0}});var Wl={};ir(Wl,{ApiClient:()=>at,CheckoutResource:()=>zn,CheckoutUtils:()=>pi,CurrencyUtils:()=>sn,FunnelActionType:()=>fn,GoogleAutocompleteCore:()=>yt,ISODataCore:()=>Jn,OrderBumpUtils:()=>mi,OrderUtils:()=>di,OrdersResource:()=>qn,PaymentsResource:()=>jn,PluginConfigUtils:()=>ii,PostPurchasesUtils:()=>gi,ProductsUtils:()=>ui,PromotionsUtils:()=>fi,ShippingRatesResource:()=>Yn,TagadaApiError:()=>we,TagadaAuthError:()=>ot,TagadaCircuitBreakerError:()=>st,TagadaClient:()=>on,TagadaError:()=>le,TagadaErrorCode:()=>ne,TagadaExternalTracker:()=>ln,TagadaNetworkError:()=>it,TagadaTracker:()=>Pi,TagadaValidationError:()=>Dn,applyGoogleAdsConversion:()=>Oi,broadcastConfigUpdate:()=>ml,clearFunnelSessionCookie:()=>Rt,createRawPluginConfig:()=>Ss,createTagadaClient:()=>vi,debounceConfigUpdate:()=>El,formatMoney:()=>fl,funnelQueryKeys:()=>gl,getEligiblePixels:()=>Ve,getFunnelSessionCookie:()=>mn,getFunnelVariantId:()=>aa,getInternalPath:()=>an,getPathInfo:()=>Hs,getPluginConfig:()=>ol,hasFunnelSessionCookie:()=>sa,injectStepConfigScripts:()=>xi,isEventEnabled:()=>bi,isPathRemapped:()=>Gs,loadLocalConfig:()=>bs,loadPluginConfig:()=>oi,mapGTMEvent:()=>Ri,mapMetaEvent:()=>Si,mapPinterestEvent:()=>Ti,mapSnapchatEvent:()=>Ci,mapTikTokEvent:()=>Ii,matchRoute:()=>Ks,onConfigUpdate:()=>hl,resolvePixelEvents:()=>Vs,sendConfigUpdate:()=>_s,setFunnelSessionCookie:()=>lr});dn();An();function _t(n,e){return function(){return n.apply(e,arguments)}}var{toString:ba}=Object.prototype,{getPrototypeOf:hr}=Object,{iterator:bn,toStringTag:no}=Symbol,Sn=(n=>e=>{let t=ba.call(e);return n[t]||(n[t]=t.slice(8,-1).toLowerCase())})(Object.create(null)),ae=n=>(n=n.toLowerCase(),e=>Sn(e)===n),In=n=>e=>typeof e===n,{isArray:Ze}=Array,Je=In("undefined");function kt(n){return n!==null&&!Je(n)&&n.constructor!==null&&!Je(n.constructor)&&J(n.constructor.isBuffer)&&n.constructor.isBuffer(n)}var ro=ae("ArrayBuffer");function Sa(n){let e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(n):e=n&&n.buffer&&ro(n.buffer),e}var Ia=In("string"),J=In("function"),io=In("number"),Lt=n=>n!==null&&typeof n=="object",Ca=n=>n===!0||n===!1,wn=n=>{if(Sn(n)!=="object")return!1;let e=hr(n);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(no in n)&&!(bn in n)},Ta=n=>{if(!Lt(n)||kt(n))return!1;try{return Object.keys(n).length===0&&Object.getPrototypeOf(n)===Object.prototype}catch(e){return!1}},Ra=ae("Date"),Oa=ae("File"),Pa=ae("Blob"),va=ae("FileList"),xa=n=>Lt(n)&&J(n.pipe),Na=n=>{let e;return n&&(typeof FormData=="function"&&n instanceof FormData||J(n.append)&&((e=Sn(n))==="formdata"||e==="object"&&J(n.toString)&&n.toString()==="[object FormData]"))},_a=ae("URLSearchParams"),[ka,La,Da,Ba]=["ReadableStream","Request","Response","Headers"].map(ae),Ma=n=>n.trim?n.trim():n.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Dt(n,e,{allOwnKeys:t=!1}={}){if(n===null||typeof n=="undefined")return;let r,i;if(typeof n!="object"&&(n=[n]),Ze(n))for(r=0,i=n.length;r<i;r++)e.call(null,n[r],r,n);else{if(kt(n))return;let o=t?Object.getOwnPropertyNames(n):Object.keys(n),s=o.length,a;for(r=0;r<s;r++)a=o[r],e.call(null,n[a],a,n)}}function oo(n,e){if(kt(n))return null;e=e.toLowerCase();let t=Object.keys(n),r=t.length,i;for(;r-- >0;)if(i=t[r],e===i.toLowerCase())return i;return null}var Ue=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,so=n=>!Je(n)&&n!==Ue;function mr(){let{caseless:n,skipUndefined:e}=so(this)&&this||{},t={},r=(i,o)=>{let s=n&&oo(t,o)||o;wn(t[s])&&wn(i)?t[s]=mr(t[s],i):wn(i)?t[s]=mr({},i):Ze(i)?t[s]=i.slice():(!e||!Je(i))&&(t[s]=i)};for(let i=0,o=arguments.length;i<o;i++)arguments[i]&&Dt(arguments[i],r);return t}var Ua=(n,e,t,{allOwnKeys:r}={})=>(Dt(e,(i,o)=>{t&&J(i)?n[o]=_t(i,t):n[o]=i},{allOwnKeys:r}),n),Fa=n=>(n.charCodeAt(0)===65279&&(n=n.slice(1)),n),Ga=(n,e,t,r)=>{n.prototype=Object.create(e.prototype,r),n.prototype.constructor=n,Object.defineProperty(n,"super",{value:e.prototype}),t&&Object.assign(n.prototype,t)},Ha=(n,e,t,r)=>{let i,o,s,a={};if(e=e||{},n==null)return e;do{for(i=Object.getOwnPropertyNames(n),o=i.length;o-- >0;)s=i[o],(!r||r(s,n,e))&&!a[s]&&(e[s]=n[s],a[s]=!0);n=t!==!1&&hr(n)}while(n&&(!t||t(n,e))&&n!==Object.prototype);return e},Ka=(n,e,t)=>{n=String(n),(t===void 0||t>n.length)&&(t=n.length),t-=e.length;let r=n.indexOf(e,t);return r!==-1&&r===t},Va=n=>{if(!n)return null;if(Ze(n))return n;let e=n.length;if(!io(e))return null;let t=new Array(e);for(;e-- >0;)t[e]=n[e];return t},Wa=(n=>e=>n&&e instanceof n)(typeof Uint8Array!="undefined"&&hr(Uint8Array)),$a=(n,e)=>{let r=(n&&n[bn]).call(n),i;for(;(i=r.next())&&!i.done;){let o=i.value;e.call(n,o[0],o[1])}},za=(n,e)=>{let t,r=[];for(;(t=n.exec(e))!==null;)r.push(t);return r},Ya=ae("HTMLFormElement"),ja=n=>n.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,r,i){return r.toUpperCase()+i}),to=(({hasOwnProperty:n})=>(e,t)=>n.call(e,t))(Object.prototype),qa=ae("RegExp"),ao=(n,e)=>{let t=Object.getOwnPropertyDescriptors(n),r={};Dt(t,(i,o)=>{let s;(s=e(i,o,n))!==!1&&(r[o]=s||i)}),Object.defineProperties(n,r)},Xa=n=>{ao(n,(e,t)=>{if(J(n)&&["arguments","caller","callee"].indexOf(t)!==-1)return!1;let r=n[t];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 '"+t+"'")})}})},Ja=(n,e)=>{let t={},r=i=>{i.forEach(o=>{t[o]=!0})};return Ze(n)?r(n):r(String(n).split(e)),t},Za=()=>{},Qa=(n,e)=>n!=null&&Number.isFinite(n=+n)?n:e;function ec(n){return!!(n&&J(n.append)&&n[no]==="FormData"&&n[bn])}var tc=n=>{let e=new Array(10),t=(r,i)=>{if(Lt(r)){if(e.indexOf(r)>=0)return;if(kt(r))return r;if(!("toJSON"in r)){e[i]=r;let o=Ze(r)?[]:{};return Dt(r,(s,a)=>{let l=t(s,i+1);!Je(l)&&(o[a]=l)}),e[i]=void 0,o}}return r};return t(n,0)},nc=ae("AsyncFunction"),rc=n=>n&&(Lt(n)||J(n))&&J(n.then)&&J(n.catch),co=((n,e)=>n?setImmediate:e?((t,r)=>(Ue.addEventListener("message",({source:i,data:o})=>{i===Ue&&o===t&&r.length&&r.shift()()},!1),i=>{r.push(i),Ue.postMessage(t,"*")}))("axios@".concat(Math.random()),[]):t=>setTimeout(t))(typeof setImmediate=="function",J(Ue.postMessage)),ic=typeof queueMicrotask!="undefined"?queueMicrotask.bind(Ue):typeof process!="undefined"&&process.nextTick||co,oc=n=>n!=null&&J(n[bn]),d={isArray:Ze,isArrayBuffer:ro,isBuffer:kt,isFormData:Na,isArrayBufferView:Sa,isString:Ia,isNumber:io,isBoolean:Ca,isObject:Lt,isPlainObject:wn,isEmptyObject:Ta,isReadableStream:ka,isRequest:La,isResponse:Da,isHeaders:Ba,isUndefined:Je,isDate:Ra,isFile:Oa,isBlob:Pa,isRegExp:qa,isFunction:J,isStream:xa,isURLSearchParams:_a,isTypedArray:Wa,isFileList:va,forEach:Dt,merge:mr,extend:Ua,trim:Ma,stripBOM:Fa,inherits:Ga,toFlatObject:Ha,kindOf:Sn,kindOfTest:ae,endsWith:Ka,toArray:Va,forEachEntry:$a,matchAll:za,isHTMLForm:Ya,hasOwnProperty:to,hasOwnProp:to,reduceDescriptors:ao,freezeMethods:Xa,toObjectSet:Ja,toCamelCase:ja,noop:Za,toFiniteNumber:Qa,findKey:oo,global:Ue,isContextDefined:so,isSpecCompliantForm:ec,toJSONObject:tc,isAsyncFn:nc,isThenable:rc,setImmediate:co,asap:ic,isIterable:oc};function Qe(n,e,t,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=n,this.name="AxiosError",e&&(this.code=e),t&&(this.config=t),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}d.inherits(Qe,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 lo=Qe.prototype,uo={};["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(n=>{uo[n]={value:n}});Object.defineProperties(Qe,uo);Object.defineProperty(lo,"isAxiosError",{value:!0});Qe.from=(n,e,t,r,i,o)=>{let s=Object.create(lo);d.toFlatObject(n,s,function(u){return u!==Error.prototype},c=>c!=="isAxiosError");let a=n&&n.message?n.message:"Error",l=e==null&&n?n.code:e;return Qe.call(s,a,l,t,r,i),n&&s.cause==null&&Object.defineProperty(s,"cause",{value:n,configurable:!0}),s.name=n&&n.name||"Error",o&&Object.assign(s,o),s};var R=Qe;var Cn=null;function Er(n){return d.isPlainObject(n)||d.isArray(n)}function fo(n){return d.endsWith(n,"[]")?n.slice(0,-2):n}function po(n,e,t){return n?n.concat(e).map(function(i,o){return i=fo(i),!t&&o?"["+i+"]":i}).join(t?".":""):e}function sc(n){return d.isArray(n)&&!n.some(Er)}var ac=d.toFlatObject(d,{},null,function(e){return/^is[A-Z]/.test(e)});function cc(n,e,t){if(!d.isObject(n))throw new TypeError("target must be an object");e=e||new(Cn||FormData),t=d.toFlatObject(t,{metaTokens:!0,dots:!1,indexes:!1},!1,function(I,h){return!d.isUndefined(h[I])});let r=t.metaTokens,i=t.visitor||u,o=t.dots,s=t.indexes,l=(t.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 R("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 O=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)&&sc(f)||(d.isFileList(f)||d.endsWith(I,"[]"))&&(O=d.toArray(f)))return I=fo(I),O.forEach(function(T,N){!(d.isUndefined(T)||T===null)&&e.append(s===!0?po([I],N,o):s===null?I:I+"[]",c(T))}),!1}return Er(f)?!0:(e.append(po(h,I,o),c(f)),!1)}let p=[],w=Object.assign(ac,{defaultVisitor:u,convertValue:c,isVisitable:Er});function b(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(O,x){(!(d.isUndefined(O)||O===null)&&i.call(e,O,d.isString(x)?x.trim():x,I,w))===!0&&b(O,I?I.concat(x):[x])}),p.pop()}}if(!d.isObject(n))throw new TypeError("data must be an object");return b(n),e}var Pe=cc;function go(n){let e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(n).replace(/[!'()~]|%20|%00/g,function(r){return e[r]})}function mo(n,e){this._pairs=[],n&&Pe(n,this,e)}var ho=mo.prototype;ho.append=function(e,t){this._pairs.push([e,t])};ho.toString=function(e){let t=e?function(r){return e.call(this,r,go)}:go;return this._pairs.map(function(i){return t(i[0])+"="+t(i[1])},"").join("&")};var Tn=mo;function lc(n){return encodeURIComponent(n).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Bt(n,e,t){if(!e)return n;let r=t&&t.encode||lc;d.isFunction(t)&&(t={serialize:t});let i=t&&t.serialize,o;if(i?o=i(e,t):o=d.isURLSearchParams(e)?e.toString():new Tn(e,t).toString(r),o){let s=n.indexOf("#");s!==-1&&(n=n.slice(0,s)),n+=(n.indexOf("?")===-1?"?":"&")+o}return n}var yr=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,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)})}},Ar=yr;var Rn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var Eo=typeof URLSearchParams!="undefined"?URLSearchParams:Tn;var yo=typeof FormData!="undefined"?FormData:null;var Ao=typeof Blob!="undefined"?Blob:null;var wo={isBrowser:!0,classes:{URLSearchParams:Eo,FormData:yo,Blob:Ao},protocols:["http","https","file","blob","url","data"]};var Sr={};ir(Sr,{hasBrowserEnv:()=>br,hasStandardBrowserEnv:()=>uc,hasStandardBrowserWebWorkerEnv:()=>dc,navigator:()=>wr,origin:()=>pc});var br=typeof window!="undefined"&&typeof document!="undefined",wr=typeof navigator=="object"&&navigator||void 0,uc=br&&(!wr||["ReactNative","NativeScript","NS"].indexOf(wr.product)<0),dc=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",pc=br&&window.location.href||"http://localhost";var U=C(C({},Sr),wo);function Ir(n,e){return Pe(n,new U.classes.URLSearchParams,C({visitor:function(t,r,i,o){return U.isNode&&d.isBuffer(t)?(this.append(r,t.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},e))}function fc(n){return d.matchAll(/\w+|\[(\w*)]/g,n).map(e=>e[0]==="[]"?"":e[1]||e[0])}function gc(n){let e={},t=Object.keys(n),r,i=t.length,o;for(r=0;r<i;r++)o=t[r],e[o]=n[o];return e}function mc(n){function e(t,r,i,o){let s=t[o++];if(s==="__proto__")return!0;let a=Number.isFinite(+s),l=o>=t.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(t,r,i[s],o)&&d.isArray(i[s])&&(i[s]=gc(i[s])),!a)}if(d.isFormData(n)&&d.isFunction(n.entries)){let t={};return d.forEachEntry(n,(r,i)=>{e(fc(r),i,t,0)}),t}return null}var On=mc;function hc(n,e,t){if(d.isString(n))try{return(e||JSON.parse)(n),d.trim(n)}catch(r){if(r.name!=="SyntaxError")throw r}return(t||JSON.stringify)(n)}var Cr={transitional:Rn,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){let r=t.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(On(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 t.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 Pe(a?{"files[]":e}:e,l&&new l,this.formSerializer)}}return o||i?(t.setContentType("application/json",!1),hc(e)):e}],transformResponse:[function(e){let t=this.transitional||Cr.transitional,r=t&&t.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=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,this.parseReviver)}catch(a){if(s)throw a.name==="SyntaxError"?R.from(a,R.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:U.classes.FormData,Blob:U.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"],n=>{Cr.headers[n]={}});var et=Cr;var Ec=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"]),bo=n=>{let e={},t,r,i;return n&&n.split("\n").forEach(function(s){i=s.indexOf(":"),t=s.substring(0,i).trim().toLowerCase(),r=s.substring(i+1).trim(),!(!t||e[t]&&Ec[t])&&(t==="set-cookie"?e[t]?e[t].push(r):e[t]=[r]:e[t]=e[t]?e[t]+", "+r:r)}),e};var So=Symbol("internals");function Mt(n){return n&&String(n).trim().toLowerCase()}function Pn(n){return n===!1||n==null?n:d.isArray(n)?n.map(Pn):String(n)}function yc(n){let e=Object.create(null),t=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=t.exec(n);)e[r[1]]=r[2];return e}var Ac=n=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(n.trim());function Tr(n,e,t,r,i){if(d.isFunction(r))return r.call(this,e,t);if(i&&(e=t),!!d.isString(e)){if(d.isString(r))return e.indexOf(r)!==-1;if(d.isRegExp(r))return r.test(e)}}function wc(n){return n.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,r)=>t.toUpperCase()+r)}function bc(n,e){let t=d.toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(n,r+t,{value:function(i,o,s){return this[r].call(this,e,i,o,s)},configurable:!0})})}var tt=class{constructor(e){e&&this.set(e)}set(e,t,r){let i=this;function o(a,l,c){let u=Mt(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]=Pn(a))}let s=(a,l)=>d.forEach(a,(c,u)=>o(c,u,l));if(d.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(d.isString(e)&&(e=e.trim())&&!Ac(e))s(bo(e),t);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,t)}else e!=null&&o(t,e,r);return this}get(e,t){if(e=Mt(e),e){let r=d.findKey(this,e);if(r){let i=this[r];if(!t)return i;if(t===!0)return yc(i);if(d.isFunction(t))return t.call(this,i,r);if(d.isRegExp(t))return t.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Mt(e),e){let r=d.findKey(this,e);return!!(r&&this[r]!==void 0&&(!t||Tr(this,this[r],r,t)))}return!1}delete(e,t){let r=this,i=!1;function o(s){if(s=Mt(s),s){let a=d.findKey(r,s);a&&(!t||Tr(r,r[a],a,t))&&(delete r[a],i=!0)}}return d.isArray(e)?e.forEach(o):o(e),i}clear(e){let t=Object.keys(this),r=t.length,i=!1;for(;r--;){let o=t[r];(!e||Tr(this,this[o],o,e,!0))&&(delete this[o],i=!0)}return i}normalize(e){let t=this,r={};return d.forEach(this,(i,o)=>{let s=d.findKey(r,o);if(s){t[s]=Pn(i),delete t[o];return}let a=e?wc(o):String(o).trim();a!==o&&delete t[o],t[a]=Pn(i),r[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return d.forEach(this,(r,i)=>{r!=null&&r!==!1&&(t[i]=e&&d.isArray(r)?r.join(", "):r)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).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,...t){let r=new this(e);return t.forEach(i=>r.set(i)),r}static accessor(e){let r=(this[So]=this[So]={accessors:{}}).accessors,i=this.prototype;function o(s){let a=Mt(s);r[a]||(bc(i,s),r[a]=!0)}return d.isArray(e)?e.forEach(o):o(e),this}};tt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);d.reduceDescriptors(tt.prototype,({value:n},e)=>{let t=e[0].toUpperCase()+e.slice(1);return{get:()=>n,set(r){this[t]=r}}});d.freezeMethods(tt);var V=tt;function Ut(n,e){let t=this||et,r=e||t,i=V.from(r.headers),o=r.data;return d.forEach(n,function(a){o=a.call(t,o,i.normalize(),e?e.status:void 0)}),i.normalize(),o}function Ft(n){return!!(n&&n.__CANCEL__)}function Io(n,e,t){R.call(this,n==null?"canceled":n,R.ERR_CANCELED,e,t),this.name="CanceledError"}d.inherits(Io,R,{__CANCEL__:!0});var ge=Io;function Gt(n,e,t){let r=t.config.validateStatus;!t.status||!r||r(t.status)?n(t):e(new R("Request failed with status code "+t.status,[R.ERR_BAD_REQUEST,R.ERR_BAD_RESPONSE][Math.floor(t.status/100)-4],t.config,t.request,t))}function Rr(n){let e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(n);return e&&e[1]||""}function Sc(n,e){n=n||10;let t=new Array(n),r=new Array(n),i=0,o=0,s;return e=e!==void 0?e:1e3,function(l){let c=Date.now(),u=r[o];s||(s=c),t[i]=l,r[i]=c;let p=o,w=0;for(;p!==i;)w+=t[p++],p=p%n;if(i=(i+1)%n,i===o&&(o=(o+1)%n),c-s<e)return;let b=u&&c-u;return b?Math.round(w*1e3/b):void 0}}var Co=Sc;function Ic(n,e){let t=0,r=1e3/e,i,o,s=(c,u=Date.now())=>{t=u,i=null,o&&(clearTimeout(o),o=null),n(...c)};return[(...c)=>{let u=Date.now(),p=u-t;p>=r?s(c,u):(i=c,o||(o=setTimeout(()=>{o=null,s(i)},r-p)))},()=>i&&s(i)]}var To=Ic;var nt=(n,e,t=3)=>{let r=0,i=Co(50,250);return To(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};n(p)},t)},Or=(n,e)=>{let t=n!=null;return[r=>e[0]({lengthComputable:t,total:n,loaded:r}),e[1]]},Pr=n=>(...e)=>d.asap(()=>n(...e));var Ro=U.hasStandardBrowserEnv?((n,e)=>t=>(t=new URL(t,U.origin),n.protocol===t.protocol&&n.host===t.host&&(e||n.port===t.port)))(new URL(U.origin),U.navigator&&/(msie|trident)/i.test(U.navigator.userAgent)):()=>!0;var Oo=U.hasStandardBrowserEnv?{write(n,e,t,r,i,o,s){if(typeof document=="undefined")return;let a=["".concat(n,"=").concat(encodeURIComponent(e))];d.isNumber(t)&&a.push("expires=".concat(new Date(t).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(n){if(typeof document=="undefined")return null;let e=document.cookie.match(new RegExp("(?:^|; )"+n+"=([^;]*)"));return e?decodeURIComponent(e[1]):null},remove(n){this.write(n,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function vr(n){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(n)}function xr(n,e){return e?n.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):n}function Ht(n,e,t){let r=!vr(e);return n&&(r||t==!1)?xr(n,e):e}var Po=n=>n instanceof V?C({},n):n;function ce(n,e){e=e||{};let t={};function r(c,u,p,w){return d.isPlainObject(c)&&d.isPlainObject(u)?d.merge.call({caseless:w},c,u):d.isPlainObject(u)?d.merge({},u):d.isArray(u)?u.slice():u}function i(c,u,p,w){if(d.isUndefined(u)){if(!d.isUndefined(c))return r(void 0,c,p,w)}else return r(c,u,p,w)}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 n)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(Po(c),Po(u),p,!0)};return d.forEach(Object.keys(C(C({},n),e)),function(u){let p=l[u]||i,w=p(n[u],e[u],u);d.isUndefined(w)&&p!==a||(t[u]=w)}),t}var vn=n=>{let e=ce({},n),{data:t,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:o,headers:s,auth:a}=e;if(e.headers=s=V.from(s),e.url=Bt(Ht(e.baseURL,e.url,e.allowAbsoluteUrls),n.params,n.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),d.isFormData(t)){if(U.hasStandardBrowserEnv||U.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(d.isFunction(t.getHeaders)){let l=t.getHeaders(),c=["content-type","content-length"];Object.entries(l).forEach(([u,p])=>{c.includes(u.toLowerCase())&&s.set(u,p)})}}if(U.hasStandardBrowserEnv&&(r&&d.isFunction(r)&&(r=r(e)),r||r!==!1&&Ro(e.url))){let l=i&&o&&Oo.read(o);l&&s.set(i,l)}return e};var Cc=typeof XMLHttpRequest!="undefined",vo=Cc&&function(n){return new Promise(function(t,r){let i=vn(n),o=i.data,s=V.from(i.headers).normalize(),{responseType:a,onUploadProgress:l,onDownloadProgress:c}=i,u,p,w,b,f;function I(){b&&b(),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 O(){if(!h)return;let T=V.from("getAllResponseHeaders"in h&&h.getAllResponseHeaders()),W={data:!a||a==="text"||a==="json"?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:T,config:n,request:h};Gt(function($){t($),I()},function($){r($),I()},W),h=null}"onloadend"in h?h.onloadend=O:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.indexOf("file:")===0)||setTimeout(O)},h.onabort=function(){h&&(r(new R("Request aborted",R.ECONNABORTED,n,h)),h=null)},h.onerror=function(N){let W=N&&N.message?N.message:"Network Error",L=new R(W,R.ERR_NETWORK,n,h);L.event=N||null,r(L),h=null},h.ontimeout=function(){let N=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded",W=i.transitional||Rn;i.timeoutErrorMessage&&(N=i.timeoutErrorMessage),r(new R(N,W.clarifyTimeoutError?R.ETIMEDOUT:R.ECONNABORTED,n,h)),h=null},o===void 0&&s.setContentType(null),"setRequestHeader"in h&&d.forEach(s.toJSON(),function(N,W){h.setRequestHeader(W,N)}),d.isUndefined(i.withCredentials)||(h.withCredentials=!!i.withCredentials),a&&a!=="json"&&(h.responseType=i.responseType),c&&([w,f]=nt(c,!0),h.addEventListener("progress",w)),l&&h.upload&&([p,b]=nt(l),h.upload.addEventListener("progress",p),h.upload.addEventListener("loadend",b)),(i.cancelToken||i.signal)&&(u=T=>{h&&(r(!T||T.type?new ge(null,n,h):T),h.abort(),h=null)},i.cancelToken&&i.cancelToken.subscribe(u),i.signal&&(i.signal.aborted?u():i.signal.addEventListener("abort",u)));let x=Rr(i.url);if(x&&U.protocols.indexOf(x)===-1){r(new R("Unsupported protocol "+x+":",R.ERR_BAD_REQUEST,n));return}h.send(o||null)})};var Tc=(n,e)=>{let{length:t}=n=n?n.filter(Boolean):[];if(e||t){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 R?u:new ge(u instanceof Error?u.message:u))}},s=e&&setTimeout(()=>{s=null,o(new R("timeout ".concat(e," of ms exceeded"),R.ETIMEDOUT))},e),a=()=>{n&&(s&&clearTimeout(s),s=null,n.forEach(c=>{c.unsubscribe?c.unsubscribe(o):c.removeEventListener("abort",o)}),n=null)};n.forEach(c=>c.addEventListener("abort",o));let{signal:l}=r;return l.unsubscribe=()=>d.asap(a),l}},xo=Tc;var Rc=function*(n,e){let t=n.byteLength;if(!e||t<e){yield n;return}let r=0,i;for(;r<t;)i=r+e,yield n.slice(r,i),r=i},Oc=function(n,e){return or(this,null,function*(){try{for(var t=Fi(Pc(n)),r,i,o;r=!(i=yield new De(t.next())).done;r=!1){let s=i.value;yield*ze(Rc(s,e))}}catch(i){o=[i]}finally{try{r&&(i=t.return)&&(yield new De(i.call(t)))}finally{if(o)throw o[0]}}})},Pc=function(n){return or(this,null,function*(){if(n[Symbol.asyncIterator]){yield*ze(n);return}let e=n.getReader();try{for(;;){let{done:t,value:r}=yield new De(e.read());if(t)break;yield r}}finally{yield new De(e.cancel())}})},Nr=(n,e,t,r)=>{let i=Oc(n,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(t){let w=o+=p;t(w)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),i.return()}},{highWaterMark:2})};var No=64*1024,{isFunction:xn}=d,vc=(({Request:n,Response:e})=>({Request:n,Response:e}))(d.global),{ReadableStream:_o,TextEncoder:ko}=d.global,Lo=(n,...e)=>{try{return!!n(...e)}catch(t){return!1}},xc=n=>{n=d.merge.call({skipUndefined:!0},vc,n);let{fetch:e,Request:t,Response:r}=n,i=e?xn(e):typeof fetch=="function",o=xn(t),s=xn(r);if(!i)return!1;let a=i&&xn(_o),l=i&&(typeof ko=="function"?(f=>I=>f.encode(I))(new ko):async f=>new Uint8Array(await new t(f).arrayBuffer())),c=o&&a&&Lo(()=>{let f=!1,I=new t(U.origin,{body:new _o,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!I}),u=s&&a&&Lo(()=>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 O=I&&I[f];if(O)return O.call(I);throw new R("Response type '".concat(f,"' is not supported"),R.ERR_NOT_SUPPORT,h)})});let w=async f=>{if(f==null)return 0;if(d.isBlob(f))return f.size;if(d.isSpecCompliantForm(f))return(await new t(U.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},b=async(f,I)=>{let h=d.toFiniteNumber(f.getContentLength());return h==null?w(I):h};return async f=>{let{url:I,method:h,data:O,signal:x,cancelToken:T,timeout:N,onDownloadProgress:W,onUploadProgress:L,responseType:$,headers:pe,withCredentials:wt="same-origin",fetchOptions:ie}=vn(f),Ce=e||fetch;$=$?($+"").toLowerCase():"text";let j=xo([x,T&&T.toAbortSignal()],N),bt=null,Le=j&&j.unsubscribe&&(()=>{j.unsubscribe()}),Ni;try{if(L&&c&&h!=="get"&&h!=="head"&&(Ni=await b(pe,O))!==0){let Re=new t(I,{method:"POST",body:O,duplex:"half"}),We;if(d.isFormData(O)&&(We=Re.headers.get("content-type"))&&pe.setContentType(We),Re.body){let[rr,un]=Or(Ni,nt(Pr(L)));O=Nr(Re.body,No,rr,un)}}d.isString(wt)||(wt=wt?"include":"omit");let fe=o&&"credentials"in t.prototype,_i=D(C({},ie),{signal:j,method:h.toUpperCase(),headers:pe.normalize().toJSON(),body:O,duplex:"half",credentials:fe?wt:void 0});bt=o&&new t(I,_i);let Te=await(o?Ce(bt,ie):Ce(I,_i)),ki=u&&($==="stream"||$==="response");if(u&&(W||ki&&Le)){let Re={};["status","statusText","headers"].forEach(Li=>{Re[Li]=Te[Li]});let We=d.toFiniteNumber(Te.headers.get("content-length")),[rr,un]=W&&Or(We,nt(Pr(W),!0))||[];Te=new r(Nr(Te.body,No,rr,()=>{un&&un(),Le&&Le()}),Re)}$=$||"text";let Ys=await p[d.findKey(p,$)||"text"](Te,f);return!ki&&Le&&Le(),await new Promise((Re,We)=>{Gt(Re,We,{data:Ys,headers:V.from(Te.headers),status:Te.status,statusText:Te.statusText,config:f,request:bt})})}catch(fe){throw Le&&Le(),fe&&fe.name==="TypeError"&&/Load failed|fetch/i.test(fe.message)?Object.assign(new R("Network Error",R.ERR_NETWORK,f,bt),{cause:fe.cause||fe}):R.from(fe,fe&&fe.code,f,bt)}}},Nc=new Map,_r=n=>{let e=n&&n.env||{},{fetch:t,Request:r,Response:i}=e,o=[r,i,t],s=o.length,a=s,l,c,u=Nc;for(;a--;)l=o[a],c=u.get(l),c===void 0&&u.set(l,c=a?new Map:xc(e)),u=c;return c},Cp=_r();var kr={http:Cn,xhr:vo,fetch:{get:_r}};d.forEach(kr,(n,e)=>{if(n){try{Object.defineProperty(n,"name",{value:e})}catch(t){}Object.defineProperty(n,"adapterName",{value:e})}});var Do=n=>"- ".concat(n),kc=n=>d.isFunction(n)||n===null||n===!1;function Lc(n,e){n=d.isArray(n)?n:[n];let{length:t}=n,r,i,o={};for(let s=0;s<t;s++){r=n[s];let a;if(i=r,!kc(r)&&(i=kr[(a=String(r)).toLowerCase()],i===void 0))throw new R("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=t?s.length>1?"since :\n"+s.map(Do).join("\n"):" "+Do(s[0]):"as no adapter specified";throw new R("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return i}var Nn={getAdapter:Lc,adapters:kr};function Lr(n){if(n.cancelToken&&n.cancelToken.throwIfRequested(),n.signal&&n.signal.aborted)throw new ge(null,n)}function _n(n){return Lr(n),n.headers=V.from(n.headers),n.data=Ut.call(n,n.transformRequest),["post","put","patch"].indexOf(n.method)!==-1&&n.headers.setContentType("application/x-www-form-urlencoded",!1),Nn.getAdapter(n.adapter||et.adapter,n)(n).then(function(r){return Lr(n),r.data=Ut.call(n,n.transformResponse,r),r.headers=V.from(r.headers),r},function(r){return Ft(r)||(Lr(n),r&&r.response&&(r.response.data=Ut.call(n,n.transformResponse,r.response),r.response.headers=V.from(r.response.headers))),Promise.reject(r)})}var kn="1.13.2";var Ln={};["object","boolean","number","function","string","symbol"].forEach((n,e)=>{Ln[n]=function(r){return typeof r===n||"a"+(e<1?"n ":" ")+n}});var Bo={};Ln.transitional=function(e,t,r){function i(o,s){return"[Axios v"+kn+"] Transitional option '"+o+"'"+s+(r?". "+r:"")}return(o,s,a)=>{if(e===!1)throw new R(i(s," has been removed"+(t?" in "+t:"")),R.ERR_DEPRECATED);return t&&!Bo[s]&&(Bo[s]=!0,console.warn(i(s," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(o,s,a):!0}};Ln.spelling=function(e){return(t,r)=>(console.warn("".concat(r," is likely a misspelling of ").concat(e)),!0)};function Dc(n,e,t){if(typeof n!="object")throw new R("options must be an object",R.ERR_BAD_OPTION_VALUE);let r=Object.keys(n),i=r.length;for(;i-- >0;){let o=r[i],s=e[o];if(s){let a=n[o],l=a===void 0||s(a,o,n);if(l!==!0)throw new R("option "+o+" must be "+l,R.ERR_BAD_OPTION_VALUE);continue}if(t!==!0)throw new R("Unknown option "+o,R.ERR_BAD_OPTION)}}var Kt={assertOptions:Dc,validators:Ln};var me=Kt.validators,rt=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Ar,response:new Ar}}async request(e,t){try{return await this._request(e,t)}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,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=ce(this.defaults,t);let{transitional:r,paramsSerializer:i,headers:o}=t;r!==void 0&&Kt.assertOptions(r,{silentJSONParsing:me.transitional(me.boolean),forcedJSONParsing:me.transitional(me.boolean),clarifyTimeoutError:me.transitional(me.boolean)},!1),i!=null&&(d.isFunction(i)?t.paramsSerializer={serialize:i}:Kt.assertOptions(i,{encode:me.function,serialize:me.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),Kt.assertOptions(t,{baseUrl:me.spelling("baseURL"),withXsrfToken:me.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&d.merge(o.common,o[t.method]);o&&d.forEach(["delete","get","head","post","put","patch","common"],f=>{delete o[f]}),t.headers=V.concat(s,o);let a=[],l=!0;this.interceptors.request.forEach(function(I){typeof I.runWhen=="function"&&I.runWhen(t)===!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,w;if(!l){let f=[_n.bind(this),void 0];for(f.unshift(...a),f.push(...c),w=f.length,u=Promise.resolve(t);p<w;)u=u.then(f[p++],f[p++]);return u}w=a.length;let b=t;for(;p<w;){let f=a[p++],I=a[p++];try{b=f(b)}catch(h){I.call(this,h);break}}try{u=_n.call(this,b)}catch(f){return Promise.reject(f)}for(p=0,w=c.length;p<w;)u=u.then(c[p++],c[p++]);return u}getUri(e){e=ce(this.defaults,e);let t=Ht(e.baseURL,e.url,e.allowAbsoluteUrls);return Bt(t,e.params,e.paramsSerializer)}};d.forEach(["delete","get","head","options"],function(e){rt.prototype[e]=function(t,r){return this.request(ce(r||{},{method:e,url:t,data:(r||{}).data}))}});d.forEach(["post","put","patch"],function(e){function t(r){return function(o,s,a){return this.request(ce(a||{},{method:e,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:s}))}}rt.prototype[e]=t(),rt.prototype[e+"Form"]=t(!0)});var Vt=rt;var Dr=class n{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(o){t=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 ge(o,s,a),t(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 t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=r=>{e.abort(r)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new n(function(i){e=i}),cancel:e}}},Mo=Dr;function Br(n){return function(t){return n.apply(null,t)}}function Mr(n){return d.isObject(n)&&n.isAxiosError===!0}var Ur={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(Ur).forEach(([n,e])=>{Ur[e]=n});var Uo=Ur;function Fo(n){let e=new Vt(n),t=_t(Vt.prototype.request,e);return d.extend(t,Vt.prototype,e,{allOwnKeys:!0}),d.extend(t,e,null,{allOwnKeys:!0}),t.create=function(i){return Fo(ce(n,i))},t}var H=Fo(et);H.Axios=Vt;H.CanceledError=ge;H.CancelToken=Mo;H.isCancel=Ft;H.VERSION=kn;H.toFormData=Pe;H.AxiosError=R;H.Cancel=H.CanceledError;H.all=function(e){return Promise.all(e)};H.spread=Br;H.isAxiosError=Mr;H.mergeConfig=ce;H.AxiosHeaders=V;H.formToJSON=n=>On(d.isHTMLForm(n)?new FormData(n):n);H.getAdapter=Nn.getAdapter;H.HttpStatusCode=Uo;H.default=H;var Wt=H;var{Axios:If,AxiosError:Cf,CanceledError:Tf,isCancel:Rf,CancelToken:Of,VERSION:Pf,all:vf,Cancel:xf,isAxiosError:Nf,spread:_f,toFormData:kf,AxiosHeaders:Lf,HttpStatusCode:Df,formToJSON:Bf,getAdapter:Mf,mergeConfig:Uf}=Wt;var ne={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"},le=class extends Error{constructor(e,t){var r;super(e),this.name="TagadaError",this.code=t.code,this.statusCode=t.statusCode,this.retryable=(r=t.retryable)!=null?r:!1,this.details=t.details,Object.setPrototypeOf(this,new.target.prototype)}},we=class extends le{constructor(e,t,r){var i,o;super(e,{code:(i=r==null?void 0:r.code)!=null?i:ne.API_ERROR,statusCode:t,retryable:(o=r==null?void 0:r.retryable)!=null?o:t>=500,details:r==null?void 0:r.details}),this.name="TagadaApiError"}},it=class extends le{constructor(e="Network request failed"){super(e,{code:ne.NETWORK_ERROR,retryable:!0}),this.name="TagadaNetworkError"}},ot=class extends le{constructor(e="Authentication required",t=401){super(e,{code:ne.AUTH_REQUIRED,statusCode:t,retryable:!1}),this.name="TagadaAuthError"}},Dn=class extends le{constructor(e,t){super(e,{code:ne.VALIDATION_ERROR,statusCode:400,retryable:!1,details:t}),this.name="TagadaValidationError"}},st=class extends le{constructor(e){super(e,{code:ne.CIRCUIT_BREAKER,retryable:!1}),this.name="TagadaCircuitBreakerError"}};var at=class{constructor(e){this.currentToken=null;this.tokenProvider=null;this.requestHistory=new Map;this.WINDOW_MS=5e3;this.MAX_REQUESTS=30;this.axios=Wt.create({baseURL:e.baseURL,timeout:e.timeout||6e4,headers:C({"Content-Type":"application/json"},e.headers)}),typeof setInterval!="undefined"&&setInterval(()=>this.cleanupHistory(),1e4),this.axios.interceptors.request.use(async t=>{var r,i;if(t.url)try{this.checkRequestLimit("".concat((r=t.method)==null?void 0:r.toUpperCase(),":").concat(t.url))}catch(o){return console.error("[SDK] \u{1F6D1} Request blocked by Circuit Breaker:",o),Promise.reject(o)}if(!t.skipAuth&&!this.currentToken&&this.tokenProvider)try{console.log("[SDK] Waiting for token...");let o=await this.tokenProvider();o&&(this.updateToken(o),t.headers["x-cms-token"]=o)}catch(o){console.error("[SDK] Failed to get token from provider:",o)}return!t.skipAuth&&this.currentToken&&(t.headers["x-cms-token"]=this.currentToken),console.log("[SDK] Making ".concat((i=t.method)==null?void 0:i.toUpperCase()," request to: ").concat(t.baseURL||"").concat(t.url)),t},t=>(console.error("[SDK] Request error:",t),Promise.reject(t instanceof Error?t:new Error(String(t))))),this.axios.interceptors.response.use(t=>t,t=>(console.error("[SDK] Response error:",t.message),t instanceof le?Promise.reject(t):Wt.isAxiosError(t)?Promise.reject(this.toTagadaError(t)):Promise.reject(t instanceof Error?t:new Error(String(t)))))}setTokenProvider(e){this.tokenProvider=e}async get(e,t){return(await this.axios.get(e,t)).data}async post(e,t,r){return(await this.axios.post(e,t,r)).data}async put(e,t,r){return(await this.axios.put(e,t,r)).data}async patch(e,t,r){return(await this.axios.patch(e,t,r)).data}async delete(e,t){return(await this.axios.delete(e,t)).data}setHeader(e,t){this.axios.defaults.headers.common[e]=t}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 t=Date.now(),r=this.requestHistory.get(e);if(!r){this.requestHistory.set(e,{count:1,firstRequestTime:t});return}if(t-r.firstRequestTime>this.WINDOW_MS){this.requestHistory.set(e,{count:1,firstRequestTime:t});return}if(r.count++,r.count>this.MAX_REQUESTS)throw new st("Circuit Breaker: Too many requests to ".concat(e," (").concat(r.count," in ").concat(this.WINDOW_MS,"ms)"))}cleanupHistory(){let e=Date.now();for(let[t,r]of this.requestHistory.entries())e-r.firstRequestTime>this.WINDOW_MS&&this.requestHistory.delete(t)}toTagadaError(e){var o,s,a,l,c;let t=(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?t===401||t===403?new ot(i,t):t===429?new we(i,429,{code:ne.RATE_LIMITED,retryable:!0}):t===404?new we(i,404,{code:ne.NOT_FOUND,retryable:!1}):new we(i,t!=null?t:0,{code:(c=r==null?void 0:r.code)!=null?c:ne.API_ERROR,details:r,retryable:(t!=null?t:0)>=500}):e.code==="ECONNABORTED"?new we("Request timed out",0,{code:ne.TIMEOUT,retryable:!0}):new it(i)}};var Bc="2.0.6",Mc=500,Go="user-agent",ft="",Ho="?",F={FUNCTION:"function",OBJECT:"object",STRING:"string",UNDEFINED:"undefined"},Z="browser",be="cpu",ye="device",ue="engine",te="os",dt="result",E="name",g="type",y="vendor",A="version",q="architecture",Qt="major",m="model",Jt="console",P="mobile",_="tablet",K="smarttv",he="wearable",Bn="xr",Zt="embedded",ct="inapp",Zr="brands",Ge="formFactors",Qr="fullVersionList",pt="platform",ei="platformVersion",Vn="bitness",_e="sec-ch-ua",Uc=_e+"-full-version-list",Fc=_e+"-arch",Gc=_e+"-"+Vn,Hc=_e+"-form-factors",Kc=_e+"-"+P,Vc=_e+"-"+m,ts=_e+"-"+pt,Wc=ts+"-version",ns=[Zr,Qr,P,m,pt,ei,q,Ge,Vn],Mn="Amazon",lt="Apple",Ko="ASUS",Vo="BlackBerry",Fe="Google",Wo="Huawei",Fr="Lenovo",$o="Honor",Un="LG",Gr="Microsoft",Hr="Motorola",Kr="Nvidia",zo="OnePlus",Vr="OPPO",$t="Samsung",Yo="Sharp",zt="Sony",Wr="Xiaomi",$r="Zebra",jo="Chrome",qo="Chromium",ve="Chromecast",Gn="Edge",Yt="Firefox",jt="Opera",zr="Facebook",Xo="Sogou",ut="Mobile ",qt=" Browser",Xr="Windows",$c=typeof window!==F.UNDEFINED,Q=$c&&window.navigator?window.navigator:void 0,xe=Q&&Q.userAgentData?Q.userAgentData:void 0,zc=function(n,e){var t={},r=e;if(!Hn(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 n)t[s]=r[s]&&r[s].length%2===0?r[s].concat(n[s]):n[s];return t},Wn=function(n){for(var e={},t=0;t<n.length;t++)e[n[t].toUpperCase()]=n[t];return e},Jr=function(n,e){if(typeof n===F.OBJECT&&n.length>0){for(var t in n)if(Ne(e)==Ne(n[t]))return!0;return!1}return en(n)?Ne(e)==Ne(n):!1},Hn=function(n,e){for(var t in n)return/^(browser|cpu|device|engine|os)$/.test(t)||(e?Hn(n[t]):!1)},en=function(n){return typeof n===F.STRING},Yr=function(n){if(n){for(var e=[],t=gt(/\\?\"/g,n).split(","),r=0;r<t.length;r++)if(t[r].indexOf(";")>-1){var i=Kn(t[r]).split(";v=");e[r]={brand:i[0],version:i[1]}}else e[r]=Kn(t[r]);return e}},Ne=function(n){return en(n)?n.toLowerCase():n},jr=function(n){return en(n)?gt(/[^\d\.]/g,n).split(".")[0]:void 0},Se=function(n){for(var e in n)if(n.hasOwnProperty(e)){var t=n[e];typeof t==F.OBJECT&&t.length==2?this[t[0]]=t[1]:this[t]=void 0}return this},gt=function(n,e){return en(e)?e.replace(n,ft):e},Xt=function(n){return gt(/\\?\"/g,n)},Kn=function(n,e){return n=gt(/^\s\s*/,String(n)),typeof e===F.UNDEFINED?n:n.substring(0,e)},qr=function(n,e){if(!(!n||!e))for(var t=0,r,i,o,s,a,l;t<e.length&&!a;){var c=e[t],u=e[t+1];for(r=i=0;r<c.length&&!a&&c[r];)if(a=c[r++].exec(n),a)for(o=0;o<u.length;o++)l=a[++i],s=u[o],typeof s===F.OBJECT&&s.length>0?s.length===2?typeof s[1]==F.FUNCTION?this[s[0]]=s[1].call(this,l):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]===F.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;t+=2}},Ee=function(n,e){for(var t in e)if(typeof e[t]===F.OBJECT&&e[t].length>0){for(var r=0;r<e[t].length;r++)if(Jr(e[t][r],n))return t===Ho?void 0:t}else if(Jr(e[t],n))return t===Ho?void 0:t;return e.hasOwnProperty("*")?e["*"]:n},Jo={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:""},Zo={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Yc={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"},Qo={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[A,[E,ut+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[A,[E,Gn+" 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,jt+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[A,[E,jt+" GX"]],[/\bopr\/([\w\.]+)/i],[A,[E,jt]],[/\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 "+Fr+qt]],[/(avast|avg)\/([\w\.]+)/i],[[E,/(.+)/,"$1 Secure"+qt],A],[/\bfocus\/([\w\.]+)/i],[A,[E,Yt+" Focus"]],[/\bopt\/([\w\.]+)/i],[A,[E,jt+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[A,[E,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[A,[E,"Dolphin"]],[/coast\/([\w\.]+)/i],[A,[E,jt+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[A,[E,"MIUI"+qt]],[/fxios\/([\w\.-]+)/i],[A,[E,ut+Yt]],[/\bqihoobrowser\/?([\w\.]*)/i],[A,[E,"360"]],[/\b(qq)\/([\w\.]+)/i],[[E,/(.+)/,"$1Browser"],A],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[E,/(.+)/,"$1"+qt],A],[/samsungbrowser\/([\w\.]+)/i],[A,[E,$t+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[A,[E,Xo+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[E,Xo+" 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,zr],A,[g,ct]],[/(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,ct]],[/\bgsa\/([\w\.]+) .*safari\//i],[A,[E,"GSA"],[g,ct]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[A,[E,"TikTok"],[g,ct]],[/\[(linkedin)app\]/i],[E,[g,ct]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[E,/(.+)/,"Zalo"],A,[g,ct]],[/(chromium)[\/ ]([-\w\.]+)/i],[E,A],[/headlesschrome(?:\/([\w\.]+)| )/i],[A,[E,jo+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[A,[E,Gn+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[E,jo+" WebView"],A],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[A,[E,"Android"+qt]],[/chrome\/([\w\.]+) mobile/i],[A,[E,ut+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[E,A],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[A,[E,ut+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[E,ut+"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,ut+Yt],A],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[E,"Netscape"],A],[/(wolvic|librewolf)\/([\w\.]+)/i],[E,A],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[A,[E,Yt+" 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\.]+./,ft]]],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/,ft,Ne]],[/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,$t],[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,$t],[g,P]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[m,[y,lt],[g,P]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[m,[y,lt],[g,_]],[/(macintosh);/i],[m,[y,lt]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[y,Yo],[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,$o],[g,_]],[/honor([-\w ]+)[;\)]/i],[m,[y,$o],[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,Wo],[g,_]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[m,[y,Wo],[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,Wr],[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,Wr],[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,zo],[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,Vr],[g,P]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[m,[y,Ee,{OnePlus:["203","304","403","404","413","415"],"*":Vr}],[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,Fr],[g,_]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[m,[y,Fr],[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,Hr],[g,P]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[y,Hr],[g,_]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[y,Un],[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,Un],[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,Fe],[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,Fe],[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,zt],[g,P]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[y,zt],[g,_]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[y,Mn],[g,_]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[y,Mn],[g,P]],[/(playbook);[-\w\),; ]+(rim)/i],[m,y,[g,_]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[m,[y,Vo],[g,P]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[y,Ko],[g,_]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[y,Ko],[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,Ne],m,[g,Ee,{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,Gr],[g,_]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[y,"Fairphone"],[g,P]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[m,[y,Kr],[g,_]],[/(sprint) (\w+)/i],[y,m,[g,P]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[y,Gr],[g,P]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[y,$r],[g,_]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[y,$r],[g,P]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[y,[g,K]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[y,$t],[g,K]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[y,m,[g,K]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[y,Un],[g,K]],[/(apple) ?tv/i],[y,[m,lt+" TV"],[g,K]],[/crkey.*devicetype\/chromecast/i],[[m,ve+" Third Generation"],[y,Fe],[g,K]],[/crkey.*devicetype\/([^/]*)/i],[[m,/^/,"Chromecast "],[y,Fe],[g,K]],[/fuchsia.*crkey/i],[[m,ve+" Nest Hub"],[y,Fe],[g,K]],[/crkey/i],[[m,ve],[y,Fe],[g,K]],[/(portaltv)/i],[m,[y,zr],[g,K]],[/droid.+aft(\w+)( bui|\))/i],[m,[y,Mn],[g,K]],[/(shield \w+ tv)/i],[m,[y,Kr],[g,K]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[y,Yo],[g,K]],[/(bravia[\w ]+)( bui|\))/i],[m,[y,zt],[g,K]],[/(mi(tv|box)-?\w+) bui/i],[m,[y,Wr],[g,K]],[/Hbbtv.*(technisat) (.*);/i],[y,m,[g,K]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[y,/.+\/(\w+)/,"$1",Ee,{LG:"lge"}],[m,Kn],[g,K]],[/(playstation \w+)/i],[m,[y,zt],[g,Jt]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[y,Gr],[g,Jt]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[y,m,[g,Jt]],[/droid.+; (shield)( bui|\))/i],[m,[y,Kr],[g,Jt]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[m,[y,$t],[g,he]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[y,m,[g,he]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[m,[y,Vr],[g,he]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[y,lt],[g,he]],[/(opwwe\d{3})/i],[m,[y,zo],[g,he]],[/(moto 360)/i],[m,[y,Hr],[g,he]],[/(smartwatch 3)/i],[m,[y,zt],[g,he]],[/(g watch r)/i],[m,[y,Un],[g,he]],[/droid.+; (wt63?0{2,3})\)/i],[m,[y,$r],[g,he]],[/droid.+; (glass) \d/i],[m,[y,Fe],[g,Bn]],[/(pico) ([\w ]+) os\d/i],[y,m,[g,Bn]],[/(quest( \d| pro)?s?).+vr/i],[m,[y,zr],[g,Bn]],[/mobile vr; rv.+firefox/i],[[g,Bn]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[y,[g,Zt]],[/(aeobc)\b/i],[m,[y,Mn],[g,Zt]],[/(homepod).+mac os/i],[m,[y,lt],[g,Zt]],[/windows iot/i],[[g,Zt]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[m,[g,K]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[g,K]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[m,[g,Ee,{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,Gn+"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,Ee,Jo]],[/(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,"",Ee,Jo],[E,Xr]],[/(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,ve+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[A,[E,ve+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[A,[E,ve+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[A,[E,ve+" Linux"]],[/crkey\/([\d\.]+)/i],[A,[E,ve]],[/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,Vo]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[A,[E,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[A,[E,Yt+" 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,Ee,{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]]},Fn=function(){var n={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return Se.call(n.init,[[Z,[E,A,Qt,g]],[be,[q]],[ye,[g,m,y]],[ue,[E,A]],[te,[E,A]]]),Se.call(n.isIgnore,[[Z,[A,Qt]],[ue,[A]],[te,[A]]]),Se.call(n.isIgnoreRgx,[[Z,/ ?browser$/i],[te,/ ?os$/i]]),Se.call(n.toString,[[Z,[E,A]],[be,[q]],[ye,[y,m]],[ue,[E,A]],[te,[E,A]]]),n}(),jc=function(n,e){var t=Fn.init[e],r=Fn.isIgnore[e]||0,i=Fn.isIgnoreRgx[e]||0,o=Fn.toString[e]||0;function s(){Se.call(this,t)}return s.prototype.getItem=function(){return n},s.prototype.withClientHints=function(){return xe?xe.getHighEntropyValues(ns).then(function(a){return n.setCH(new rs(a,!1)).parseCH().get()}):n.parseCH().get()},s.prototype.withFeatureCheck=function(){return n.detectFeature().get()},e!=dt&&(s.prototype.is=function(a){var l=!1;for(var c in this)if(this.hasOwnProperty(c)&&!Jr(r,c)&&Ne(i?gt(i,this[c]):this[c])==Ne(i?gt(i,a):a)){if(l=!0,a!=F.UNDEFINED)break}else if(a==F.UNDEFINED&&l){l=!l;break}return l},s.prototype.toString=function(){var a=ft;for(var l in o)typeof this[o[l]]!==F.UNDEFINED&&(a+=(a?" ":ft)+this[o[l]]);return a||F.UNDEFINED}),xe||(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 rs(n,e){if(n=n||{},Se.call(this,ns),e)Se.call(this,[[Zr,Yr(n[_e])],[Qr,Yr(n[Uc])],[P,/\?1/.test(n[Kc])],[m,Xt(n[Vc])],[pt,Xt(n[ts])],[ei,Xt(n[Wc])],[q,Xt(n[Fc])],[Ge,Yr(n[Hc])],[Vn,Xt(n[Gc])]]);else for(var t in n)this.hasOwnProperty(t)&&typeof n[t]!==F.UNDEFINED&&(this[t]=n[t])}function es(n,e,t,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==F.FUNCTION&&this.set(E,"Brave");break;case ye:!this.get(g)&&xe&&xe[P]&&this.set(g,P),this.get(m)=="Macintosh"&&Q&&typeof Q.standalone!==F.UNDEFINED&&Q.maxTouchPoints&&Q.maxTouchPoints>2&&this.set(m,"iPad").set(g,_);break;case te:!this.get(E)&&xe&&xe[pt]&&this.set(E,xe[pt]);break;case dt:var i=this.data,o=function(s){return i[s].getItem().detectFeature().get()};this.set(Z,o(Z)).set(be,o(be)).set(ye,o(ye)).set(ue,o(ue)).set(te,o(te))}return this},this.parseUA=function(){switch(this.itemType!=dt&&qr.call(this.data,this.ua,this.rgxMap),this.itemType){case Z:this.set(Qt,jr(this.get(A)));break;case te: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 ue:var s=i[Qr]||i[Zr],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!=qo||a==Gn&&/WebView2/.test(c))&&(c=Ee(c,Yc),a=this.get(E),a&&!/Chrom/.test(a)&&/Chrom/.test(c)||this.set(E,c).set(A,u).set(Qt,jr(u)),a=c),this.itemType==ue&&c==qo&&this.set(A,u)}break;case be:var p=i[q];p&&(p&&i[Vn]=="64"&&(p+="64"),qr.call(this.data,p+";",o));break;case ye:if(i[P]&&this.set(g,P),i[m]&&(this.set(m,i[m]),!this.get(g)||!this.get(y))){var w={};qr.call(w,"droid 9; "+i[m]+")",o),!this.get(g)&&w.type&&this.set(g,w.type),!this.get(y)&&w.vendor&&this.set(y,w.vendor)}if(i[Ge]){var b;if(typeof i[Ge]!="string")for(var f=0;!b&&f<i[Ge].length;)b=Ee(i[Ge][f++],Zo);else b=Ee(i[Ge],Zo);this.set(g,b)}break;case te:var I=i[pt];if(I){var h=i[ei];I==Xr&&(h=parseInt(jr(h),10)>=13?"11":"10"),this.set(E,I).set(A,h)}this.get(E)==Xr&&i[m]=="Xbox"&&this.set(E,"Xbox").set(A,void 0);break;case dt:var O=this.data,x=function(T){return O[T].getItem().setCH(i).parseCH().get()};this.set(Z,x(Z)).set(be,x(be)).set(ye,x(ye)).set(ue,x(ue)).set(te,x(te))}return this},Se.call(this,[["itemType",n],["ua",e],["uaCH",r],["rgxMap",t],["data",jc(this,n)]]),this}function re(n,e,t){if(typeof n===F.OBJECT?(Hn(n,!0)?(typeof e===F.OBJECT&&(t=e),e=n):(t=n,e=void 0),n=void 0):typeof n===F.STRING&&!Hn(e,!0)&&(t=e,e=void 0),t)if(typeof t.append===F.FUNCTION){var r={};t.forEach(function(u,p){r[String(p).toLowerCase()]=u}),t=r}else{var i={};for(var o in t)t.hasOwnProperty(o)&&(i[String(o).toLowerCase()]=t[o]);t=i}if(!(this instanceof re))return new re(n,e,t).getResult();var s=typeof n===F.STRING?n:t&&t[Go]?t[Go]:Q&&Q.userAgent?Q.userAgent:ft,a=new rs(t,!0),l=e?zc(Qo,e):Qo,c=function(u){return u==dt?function(){return new es(u,s,l,a).set("ua",s).set(Z,this.getBrowser()).set(be,this.getCPU()).set(ye,this.getDevice()).set(ue,this.getEngine()).set(te,this.getOS()).get()}:function(){return new es(u,s,l[u],a).parseUA().get()}};return Se.call(this,[["getBrowser",c(Z)],["getCPU",c(be)],["getDevice",c(ye)],["getEngine",c(ue)],["getOS",c(te)],["getResult",c(dt)],["getUA",function(){return s}],["setUA",function(u){return en(u)&&(s=Kn(u,Mc)),this}]]).setUA(s),this}re.VERSION=Bc;re.BROWSER=Wn([E,A,Qt,g]);re.CPU=Wn([q]);re.DEVICE=Wn([m,y,g,Jt,P,K,_,he,Zt]);re.ENGINE=re.OS=Wn([E,A]);var Xf=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 tn=Object.freeze({CRAWLER:"crawler",CLI:"cli",EMAIL:"email",FETCHER:"fetcher",INAPP:"inapp",MEDIAPLAYER:"mediaplayer",LIBRARY:"library"}),is=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 Jf=Object.freeze({CONSOLE:"console",DESKTOP:"desktop",EMBEDDED:"embedded",MOBILE:"mobile",SMARTTV:"smarttv",TABLET:"tablet",WEARABLE:"wearable",XR:"xr"});var Zf=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 os=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 ss=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 as=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 B="model",G="name",v="type",k="vendor",z="version",He="mobile",X="tablet",ti="crawler",qc="cli",cs="email",ls="fetcher",mt="inapp",nn="mediaplayer",Xc="library",Jc=Object.freeze({browser:[[/(wget|curl|lynx|elinks|httpie)[\/ ]\(?([\w\.-]+)/i],[G,z,[v,qc]]]}),ds=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],[G,z,[v,ti]],[/(yandexbot\/([\w\.]+); mirrordetector)/i],[[G,/\/.+;/ig,""],z,[v,ti]],[/((?: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],[G,[v,ti]]]}),eg=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,B,[v,X]],[/(u304aa)/i],[B,[k,"AT&T"],[v,He]],[/\bsie-(\w*)/i],[B,[k,"Siemens"],[v,He]],[/\b(rct\w+) b/i],[B,[k,"RCA"],[v,X]],[/\b(venue[\d ]{2,7}) b/i],[B,[k,"Dell"],[v,X]],[/\b(q(?:mv|ta)\w+) b/i],[B,[k,"Verizon"],[v,X]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[B,[k,"Barnes & Noble"],[v,X]],[/\b(tm\d{3}\w+) b/i],[B,[k,"NuVision"],[v,X]],[/\b(k88) b/i],[B,[k,"ZTE"],[v,X]],[/\b(nx\d{3}j) b/i],[B,[k,"ZTE"],[v,He]],[/\b(gen\d{3}) b.+49h/i],[B,[k,"Swiss"],[v,He]],[/\b(zur\d{3}) b/i],[B,[k,"Swiss"],[v,X]],[/^((zeki)?tb.*\b) b/i],[B,[k,"Zeki"],[v,X]],[/\b([yr]\d{2}) b/i,/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i],[B,[k,"Dragon Touch"],[v,X]],[/\b(ns-?\w{0,9}) b/i],[B,[k,"Insignia"],[v,X]],[/\b((nxa|next)-?\w{0,9}) b/i],[B,[k,"NextBook"],[v,X]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[k,"Voice"],B,[v,He]],[/\b(lvtel\-)?(v1[12]) b/i],[[k,"LvTel"],B,[v,He]],[/\b(ph-1) /i],[B,[k,"Essential"],[v,He]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[B,[k,"Envizen"],[v,X]],[/\b(trio[-\w\. ]+) b/i],[B,[k,"MachSpeed"],[v,X]],[/\btu_(1491) b/i],[B,[k,"Rotor"],[v,X]]]}),tg=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],[G,z,[v,cs]],[/zdesktop\/([\w\.]+)/i],[z,[G,"Zimbra"],[v,cs]]]}),us=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],[G,z,[v,ls]],[/((?: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],[G,[v,ls]]],os:[[/whatsapp\/[\d\.]+ (a|i)/i],[[G,n=>n=="A"?"Android":"iOS"]]]}),ng=Object.freeze({browser:[[/\b(discord|figma|mattermost|notion|postman|rambox|rocket.chat|slack|teams)\/([\w\.]+).+(electron\/|; ios)/i,/(flipboard)\/([\w\.]+)/i],[G,z,[v,mt]],[/(evernote) win/i,/(teams)mobile-(ios|and)/i],[G,[v,mt]],[/chatlyio\/([\d\.]+)/i],[z,[G,"Slack"],[v,mt]],[/ultralite app_version\/([\w\.]+)/i],[z,[G,"TikTok Lite"],[v,mt]],[/\) code\/([\d\.]+).+electron\//i],[z,[G,"VS Code"],[v,mt]],[/jp\.co\.yahoo\.(?:android\.yjtop|ipn\.appli)\/([\d\.]+)/i],[z,[G,"Yahoo! Japan"],[v,mt]]]}),rg=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],[G,z,[v,nn]],[/(flrp)\/([\w\.-]+)/i],[[G,"Flip Player"],z,[v,nn]],[/(fstream|media player classic|inlight radio|mplayer|nativehost|nero showtime|ocms-bot|queryseekspider|tapinradio|tunein radio|winamp|yourmuze)/i],[G,[v,nn]],[/(htc_one_s|windows-media-player|wmplayer)\/([\w\.-]+)/i],[[G,/[_-]/g," "],z,[v,nn]],[/(rad.io|radio.(?:de|at|fr)) ([\d\.]+)/i],[[G,"rad.io"],z,[v,nn]]]}),Zc=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],[G,z,[v,Xc]]]}),ig=Object.freeze({device:[[/aftlbt962e2/i],[[k,"BMW"]],[/dilink.+(byd) auto/i],[k],[/aftlft962x3/i],[[k,"Jeep"],[B,"Wagooner"]],[/(rivian) (r1t)/i],[k,B],[/vcc.+netfront/i],[[k,"Volvo"]]]}),ps=Object.freeze({browser:[...Jc.browser,...us.browser,...ds.browser,...Zc.browser],os:[...us.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"}},Qc=[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],fs=[S.ICELAND.REYKJAVIK,S.LIECHTENSTEIN.VADUZ,S.NORWAY.OSLO,S.NORWAY.JAN_MAYEN],sg=[...Qc,...fs],ag=[S.SWITZERLAND.ZURICH,...fs],cg=[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 ni(){var n;return typeof window!="undefined"&&((window==null?void 0:window.matchMedia("(display-mode: standalone)").matches)||((n=window.navigator)===null||n===void 0?void 0:n.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:wg}=as.BrowserName,ri=(n,e,t)=>typeof n=="string"?re(n,e,t):n;var gs=n=>{let e=ri(n);if(e.os.is(ss.MACOS)){if(e.cpu.is(is.ARM))return!0;if(typeof n!="string"&&typeof window!="undefined")try{let t=document.createElement("canvas"),r=t.getContext("webgl2")||t.getContext("webgl")||t.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(t){return!1}}return!1};var ms=n=>[tn.CLI,tn.CRAWLER,tn.FETCHER,tn.LIBRARY].includes(ri(n,ps).browser.type),hs=n=>ri(n).engine.is(os.BLINK);function el(){return{width:window.screen.width,height:window.screen.height}}function tl(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(n){return console.error("Failed to get timezone:",n),"UTC"}}function Es(){try{return navigator.language||"en-US"}catch(n){return console.error("Failed to get browser locale:",n),"en-US"}}function ys(){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 re().getResult(),t;try{t={isBot:ms(e),isChromeFamily:hs(e),isStandalonePWA:ni(),isAppleSilicon:gs(e)}}catch(r){console.error("Failed to compute device flags:",r),t={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:el(),timeZone:tl(),flags:t}}function As(){if(typeof window=="undefined")return{};let n=new URLSearchParams(window.location.search);return{locale:n.get("locale")||void 0,currency:n.get("currency")||void 0,utmSource:n.get("utm_source")||void 0,utmMedium:n.get("utm_medium")||void 0,utmCampaign:n.get("utm_campaign")||void 0}}var $n=class{constructor(){this.listeners=new Map}on(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),()=>this.off(e,t)}off(e,t){this.listeners.has(e)&&this.listeners.get(e).delete(t)}async emit(e,t){if(this.listeners.has(e)){let r=Array.from(this.listeners.get(e));await Promise.all(r.map(i=>{try{return Promise.resolve(i(t))}catch(o){return console.error('[EventBus] Error in listener for event "'.concat(e,'":'),o),Promise.resolve()}}))}}clear(){this.listeners.clear()}};ar();function rn(n){try{let e=n.split(".");if(e.length!==3)return console.error("Invalid JWT token format"),null;let t=e[1],r=t+"=".repeat((4-t.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 ws(n){try{let e=n.split(".");if(e.length!==3)return!0;let t=e[1],r=t+"=".repeat((4-t.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}}dn();var ht={},nl=["","VITE_","REACT_APP_","NEXT_PUBLIC_"];function Ie(n,e=nl){var t,r,i;for(let o of e){let s=o?"".concat(o).concat(n):n;if(typeof process!="undefined"&&((t=process==null?void 0:process.env)!=null&&t[s]))return console.log("process.env[".concat(s,"]"),process.env[s]),process.env[s];if(typeof ht!="undefined"&&((r=ht==null?void 0:ht.env)!=null&&r[s]))return console.log("import.meta.env[".concat(s,"]"),ht.env[s]),ht.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 rl=async(n="default")=>{try{if((Ie("TAGADA_ENV")||Ie("TAGADA_ENVIRONMENT"))==="production"||!Ct(!0))return null;let t=await fetch("/.local.json");if(!t.ok)return null;let r=await t.json(),i={},o=!1;try{let a=await fetch("/config/".concat(n,".tgd.json"));a.ok||(a=await fetch("/config/".concat(n,".json"))),a.ok&&(i=await a.json(),o=!0)}catch(a){}if(!o&&n!=="default"){console.warn("\u26A0\uFE0F Config variant '".concat(n,"' 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(n==="default"?"\u26A0\uFE0F No 'default' config found. Create /config/default.tgd.json":"\u26A0\uFE0F Neither '".concat(n,"' 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}},il=async()=>{try{if((Ie("TAGADA_ENV")||Ie("TAGADA_ENVIRONMENT"))==="production"||!Ct(!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(()=>(An(),eo));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 t=await e.json();return console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded legacy static resources:",t),t}catch(n){return console.error("\u{1F6E0}\uFE0F [V2] \u274C Error loading static resources:",n),null}},ke=n=>{if(typeof document=="undefined")return;let e=document.querySelector('meta[name="'.concat(n,'"]'));return(e==null?void 0:e.getAttribute("content"))||void 0};function ol(){if(typeof document=="undefined")return{basePath:"/",config:{}};let n=ke("x-plugin-store-id"),e=ke("x-plugin-account-id"),t=ke("x-plugin-base-path")||"/",r={};try{let i=ke("x-plugin-config");i&&(r=JSON.parse(decodeURIComponent(i)))}catch(i){console.warn("[TagadaSDK] Failed to parse plugin config from meta tag:",i)}return{storeId:n,accountId:e,basePath:t,config:r}}var sl=async()=>{try{if(typeof document=="undefined")return null;let n=ke("x-plugin-store-id"),e=ke("x-plugin-account-id");if(!n)return null;let t=ke("x-plugin-base-path")||"/",r={};try{let o=ke("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:n,accountId:e,basePath:t,config:r};return console.log("\u{1F680} [HIGHEST PRIORITY] Plugin config loaded from meta tags (runtime injected config):",{storeId:n,accountId:e,basePath:t,configKeys:Object.keys(r),configSize:JSON.stringify(r).length}),i}catch(n){return console.warn("\u26A0\uFE0F Error loading production config from meta tags:",n),null}},oi=async(n="default",e)=>{var s,a;console.log("\u{1F527} [V2] loadPluginConfig called with variant:",n);let t=await il(),r=await sl();if(r){let l=D(C({},r),{staticResources:t!=null?t: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:t!=null?t:void 0};return console.log("\u2705 [V2] Using raw config parameter (PRIORITY 2)"),l}let i=await Ss();if(i){let l=D(C({},i),{staticResources:t!=null?t:void 0});return console.log("\u2705 [V2] Using environment variables config (PRIORITY 3 - build time)"),l}let o=await rl(n);if(o){let l=D(C({},o),{staticResources:t!=null?t: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:t!=null?t:void 0}};async function bs(n="default",e){try{if(!Ct())return null;if(e)return e;let t=["/config/".concat(n,".config.json"),"/config/".concat(n,".tgd.json"),"/config/".concat(n,".json")];for(let r of t)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(n,"'")),null}catch(t){return console.error("[loadLocalConfig] Error loading config:",t),null}}async function Ss(){try{if(!Ct())return;let n=Ie("TAGADA_STORE_ID"),e=Ie("TAGADA_ACCOUNT_ID"),t=Ie("TAGADA_BASE_PATH"),r=Ie("TAGADA_CONFIG_NAME");if(!n||!e)return;let i=await bs(r);if(!i)return;let o={storeId:n,accountId:e,basePath:t||"/",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(n){console.error("[createRawPluginConfig] Error creating config:",n);return}}var ii=class{static getPluginConfig(e,t){return{storeId:(e==null?void 0:e.storeId)||(t==null?void 0:t.storeId),accountId:(e==null?void 0:e.accountId)||(t==null?void 0:t.accountId),basePath:(e==null?void 0:e.basePath)||(t==null?void 0:t.basePath)||"/",config:(e==null?void 0:e.config)||{}}}static validateConfig(e){return!!(e.storeId&&e.accountId)}};En();qe();qe();var si=new Map,ai=new Set;function al(){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get("authCode")}async function Is(n,e,t,r=!1){if(ai.has(n))throw r&&console.log("[AuthHandoff] Code already resolved, skipping duplicate request"),new Error("Auth code already resolved");let i=si.get(n);if(i)return r&&console.log("[AuthHandoff] Resolution already in progress, waiting for existing request"),i;r&&console.log("[AuthHandoff] Resolving authCode:",n.substring(0,15)+"...");let o=(async()=>{try{let s=await fetch("".concat(t,"/api/v1/cms/auth/resolve-handoff"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:n,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)"),oe(a.token),cl(r),ai.add(n),a}catch(s){throw console.error("[AuthHandoff] \u274C Failed to resolve:",s),s}finally{si.delete(n)}})();return si.set(n,o),o}function cl(n=!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),n&&console.log("[AuthHandoff] Cleaned authCode from URL"))}function Cs(){let n=al();return!(!n||!n.startsWith("ah_")||ai.has(n))}var on=class{constructor(e={}){this.bus=new $n;this.eventDispatcher=new Ye;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 w=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:w},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}),$i(this.config.debugMode)&&this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Preview mode active - state cleared"));let r=this.resolveEnvironment(),i=Ki(r);e.customApiConfig&&(i=D(C(C({},i),e.customApiConfig),{apiConfig:C(C({},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 at({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 Nt({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(Tt()===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=C(C({},this.state),e),this.eventDispatcher.notify(this.state)}resolveEnvironment(){return this.config.environment?this.config.environment:It()}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 t=await oi(e,this.config.rawPluginConfig);console.log("[TagadaClient ".concat(this.instanceId,"] Plugin config loaded:"),t),this.updateState({pluginConfig:t,pluginConfigLoading:!1}),this.funnel&&this.funnel.setConfig({pluginConfig:t,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(Cs()){let t=this.state.pluginConfig.storeId;if(!t)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 Is(r,t,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=rn(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 t=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("token");t&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL token detected, setting immediately to prevent race condition")),this.apiClient.updateToken(t),oe(t));let r=Tt();console.log("[TagadaClient ".concat(this.instanceId,"] Initializing token (normal flow)..."),{hasExistingToken:!!r,hasQueryToken:!!t,storeId:this.state.pluginConfig.storeId});let i=null,o=!1;if(t?(i=t,o=!0):r&&!ws(r)&&(i=r),i){this.setToken(i),o&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Persisting query token to storage...")),oe(i));let s=rn(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),oe(r);let i=rn(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 t=vt();this.state.debugMode&&console.log("[TagadaClient] Creating anonymous token for store:",e,{draft:t});let r=await this.apiClient.post("/api/v1/cms/session/anonymous",{storeId:e,role:"anonymous",draft:t},{skipAuth:!0});this.setToken(r.token),oe(r.token);let i=rn(r.token);i&&(this.updateState({session:i}),await this.initializeSession(i)),this.updateState({isSessionInitialized:!0})}catch(t){console.error("[TagadaClient] Failed to create anonymous token:",t),this.updateState({isInitialized:!0,isLoading:!1})}}async initializeSession(e){var t,r,i,o,s,a,l,c,u,p,w;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 b=ys(),f=As(),I=Es(),h=vt(),O=new URLSearchParams(window.location.search).get("draft");O!==null&&dr(O==="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:b.userAgent.browser.name,browserVersion:b.userAgent.browser.version,os:b.userAgent.os.name,osVersion:b.userAgent.os.version,deviceType:(t=b.userAgent.device)==null?void 0:t.type,deviceModel:(r=b.userAgent.device)==null?void 0:r.model,deviceVendor:(i=b.userAgent.device)==null?void 0:i.vendor,userAgent:b.userAgent.name,engineName:b.userAgent.engine.name,engineVersion:b.userAgent.engine.version,cpuArchitecture:b.userAgent.cpu.architecture,isBot:(s=(o=b.flags)==null?void 0:o.isBot)!=null?s:!1,isChromeFamily:(l=(a=b.flags)==null?void 0:a.isChromeFamily)!=null?l:!1,isStandalonePWA:(u=(c=b.flags)==null?void 0:c.isStandalonePWA)!=null?u:!1,isAppleSilicon:(w=(p=b.flags)==null?void 0:p.isAppleSilicon)!=null?w:!1,screenWidth:b.screenResolution.width,screenHeight:b.screenResolution.height,timeZone:b.timeZone,draft:h,fetchMessages:!1},T=await this.apiClient.post("/api/v1/cms/session/v2/init",x);this.lastSessionInitError=null,this.sessionInitRetryCount=0,this.updateSessionState(T,e),this.updateState({isInitialized:!0,isSessionInitialized:!0,isLoading:!1}),this.state.debugMode&&console.log("[TagadaClient] Session initialized successfully")}catch(b){this.lastSessionInitError=b,this.sessionInitRetryCount++,console.error("[TagadaClient] Error initializing session (attempt ".concat(this.sessionInitRetryCount,"/").concat(this.MAX_SESSION_INIT_RETRIES,"):"),b),this.updateState({isInitialized:!0,isLoading:!1})}finally{this.isInitializingSession=!1}}updateSessionState(e,t){var s,a,l,c,u,p,w,b,f,I;if(e.store){let h=e.store,O=D(C({},e.store),{accountId:h.accountId||((s=this.state.pluginConfig)==null?void 0:s.accountId)||t.accountId||"",presentmentCurrencies:h.presentmentCurrencies||[e.store.currency||"USD"],chargeCurrencies:h.chargeCurrencies||[e.store.currency||"USD"]});this.updateState({store:O})}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:t};this.updateState({customer:(w=e.customer)!=null?w:null,auth:r});let i=(b=this.config.features)==null?void 0:b.funnel,o=typeof i=="object"&&i.skipAutoInit;if(this.funnel&&!o&&t.customerId&&((f=e.store)!=null&&f.id)){let h=e.store.accountId||((I=this.state.pluginConfig)==null?void 0:I.accountId)||t.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:t.customerId,storeId:e.store.id,accountId:h,funnelId:x||"auto-detect"}),this.funnel.autoInitialize({customerId:t.customerId,sessionId:t.sessionId},{id:e.store.id,accountId:h},x).catch(T=>{console.error("[TagadaClient] Funnel auto-initialization failed:",T)})}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,t,r;return((e=this.state.store)==null?void 0:e.accountId)||((t=this.state.pluginConfig)==null?void 0:t.accountId)||((r=this.state.session)==null?void 0:r.accountId)||""}updatePluginConfig(e){this.state.debugMode&&console.log("[TagadaClient] Hot-reloading config:",e);let t=C(C({},this.state.pluginConfig.config),e);this.updateState({pluginConfig:D(C({},this.state.pluginConfig),{config:t})}),this.bus.emit("CONFIG_UPDATED",t),this.state.debugMode&&console.log("[TagadaClient] Config updated successfully")}setupConfigHotReload(){if(typeof window=="undefined")return;let e=t=>{var r,i;if(((r=t.data)==null?void 0:r.type)==="TAGADAPAY_CONFIG_UPDATE"){let{config:o}=t.data;this.state.debugMode&&console.log("[TagadaClient] Received config update from parent:",o),this.updatePluginConfig(o)}else if(((i=t.data)==null?void 0:i.type)==="APPLY_STYLES_TO_ELEMENT"){let{elementId:o,styles:s}=t.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,t){if(typeof document=="undefined")return;let r="tagada-editor-highlight",i=document.getElementById(r);i&&i.remove();let o=p=>{var T;let b=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]).has(p.tagName.toLowerCase()),f=p;if(b){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 $=window.getComputedStyle(p),pe=$.display;if(pe==="inline"?L.style.display="inline-block":L.style.display=pe,L.style.position="relative",pe==="inline"||pe.includes("inline")){let ie=$.verticalAlign;ie&&ie!=="baseline"&&(L.style.verticalAlign=ie)}["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(ie=>{let Ce=ie.replace(/([A-Z])/g,"-$1").toLowerCase(),j=$.getPropertyValue(Ce);j&&j.trim()!==""&&(ie==="flex"&&j!=="none"&&j!=="0 1 auto"?L.style.flex=j:ie==="boxSizing"?L.style.boxSizing=j:L.style.setProperty(Ce,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(Ce=>{let j=p.style.getPropertyValue(Ce);j&&L.style.setProperty(Ce,j)}),(T=p.parentNode)==null||T.insertBefore(L,p),L.appendChild(p),f=L}}let I=getComputedStyle(b?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 O=I.borderRadius;O&&(h.style.borderRadius=O),f.appendChild(h);let x=t||{boxShadow:"0 0 0 2px rgb(239 68 68)"};if(Object.entries(x).forEach(([N,W])=>{let L=N.includes("-")?N.replace(/-([a-z])/g,($,pe)=>pe.toUpperCase()):N;N.includes("-")?h.style.setProperty(N,W):h.style[L]=W}),p.scrollIntoView({behavior:"smooth",block:"center"}),this.state.debugMode){let N=Object.entries(x).map(([W,L])=>"".concat(W,": ").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 w=window.getComputedStyle(p);return w.display==="none"||w.visibility==="hidden"||w.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 w=null;if(p.length===1)w=p[0];else{for(let b=0;b<p.length;b++)if(!c(p[b])){w=p[b];break}w||(w=p[0])}w&&o(w)};u()}};var zn=class{constructor(e){this.apiClient=e}async initCheckout(e){return this.apiClient.post("/api/v1/checkout/session/init",e)}async initCheckoutAsync(e){return this.apiClient.post("/api/v1/checkout/session/init-async",e)}async preloadCheckout(e,t){let r=e.funnelSessionId;!r&&t&&(r=t()||void 0);let i=typeof e.navigationEvent=="string"?{type:e.navigationEvent}:e.navigationEvent,o=D(C(C(C({},e),r&&{funnelSessionId:r}),i&&{navigationEvent:i}),{currentUrl:e.currentUrl||(typeof window!="undefined"?window.location.href:void 0)});return this.apiClient.post("/api/v1/checkout/session/preload",o)}async checkAsyncStatus(e){return this.apiClient.get("/api/public/v1/checkout/async-status/".concat(e))}async getCheckout(e,t){let r=new URLSearchParams;t&&r.set("currency",t),r.set("skipAsyncWait","false");let i="/api/v1/checkout-sessions/".concat(e,"/v2").concat(r.toString()?"?".concat(r.toString()):"");return this.apiClient.get(i)}async getCheckoutRaw(e,t){let r=new URLSearchParams;t&&r.set("currency",t),r.set("skipAsyncWait","true");let i="/api/v1/checkout-sessions/".concat(e,"/v2").concat(r.toString()?"?".concat(r.toString()):"");return this.apiClient.get(i)}async updateAddress(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/address"),{data:t})}async setCheckoutInfo(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/checkout-info"),{shippingAddress:t.shippingAddress,billingAddress:t.differentBillingAddress?t.billingAddress:t.shippingAddress,differentBillingAddress:t.differentBillingAddress||!1})}async applyPromotionCode(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/promotions/apply"),{code:t})}async removePromotion(e,t){return this.apiClient.delete("/api/v1/checkout-sessions/".concat(e,"/promotions/").concat(t))}async getAppliedPromotions(e){return this.apiClient.get("/api/v1/checkout-sessions/".concat(e,"/promotions"))}async replaceSessionLineItems(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items"),{lineItems:t})}async updateLineItems(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items"),{lineItems:t})}async addLineItems(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/add"),{lineItems:t})}async removeLineItems(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/remove"),{lineItems:t})}async setItemQuantity(e,t,r,i){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/set-quantity"),{variantId:t,quantity:r,priceId:i})}async toggleOrderBump(e,t,r){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/toggle-order-bump"),{orderBumpOfferId:t,selected:r})}async updateCustomer(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/customer"),t)}async updateCustomerAndSessionInfo(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/customer-and-session-info"),t)}async previewCheckoutSession(e){return this.apiClient.post("/api/v1/checkout-sessions/preview",e)}};An();var Yn=class{constructor(e){this.apiClient=e}async getShippingRates(e){return this.apiClient.get("/api/v1/checkout-sessions/".concat(e,"/shipping-rates"))}async setShippingRate(e,t){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/shipping-rate"),{shippingRateId:t})}async previewShippingRates(e,t){let r=new URLSearchParams({countryCode:t.countryCode});return t.stateCode&&r.set("stateCode",t.stateCode),this.apiClient.get("/api/v1/checkout-sessions/".concat(e,"/shipping-rates/preview?").concat(r.toString()))}};var jn=class{constructor(e){this.apiClient=e}async createPaymentInstrument(e){return this.apiClient.post("/api/v1/payment/create-payment-instrument",{paymentInstrumentData:e})}async createCardPaymentInstrument(e,t){var l,c;if(!e)throw new Error("Payment processor not initialized");console.log("Creating card payment instrument");let r=await e.tokens.create({type:"card",data:C({cvc:t.cvc,number:Number(t.cardNumber.replace(/\s+/g,""))},this.getCardMonthAndYear(t.expiryDate)),metadata:{nonSensitiveField:"nonSensitiveValue"}}),{expiration_month:i,expiration_year:o}=this.getCardMonthAndYear(t.expiryDate),s={type:r.type,card:{maskedCardNumber:(c=(l=r.enrichments)==null?void 0:l.cardDetails)!=null&&c.bin?"".concat(r.enrichments.cardDetails.bin,"****").concat(r.enrichments.cardDetails.last4):t.cardNumber.replace(/\d(?=\d{4})/g,"*"),expirationMonth:i,expirationYear:o},token:r.id},a=await this.apiClient.post("/api/v1/payment/create-payment-instrument",{paymentInstrumentData:s});return console.log("Payment instrument created:",a),a}async createApplePayPaymentInstrument(e,t){if(!e)throw new Error("Payment processor not initialized");if(!t.id)throw new Error("Apple Pay token is missing");let r={type:"apple_pay",token:t.id,dpanType:t.type,card:{bin:t.card.bin,last4:t.card.last4,expirationMonth:t.card.expiration_month,expirationYear:t.card.expiration_year,brand:t.card.brand}};return await this.apiClient.post("/api/v1/payment/create-payment-instrument",{paymentInstrumentData:r})}async createGooglePayPaymentInstrument(e,t){var o;if(!e)throw new Error("Payment processor not initialized");if(!t.id)throw new Error("Google Pay token is missing");let r={type:"google_pay",token:t.id,dpanType:t.type,card:{bin:t.card.bin,last4:t.card.last4,expirationMonth:t.card.expiration_month,expirationYear:t.card.expiration_year,brand:t.card.brand},authMethod:(o=t==null?void 0:t.details)==null?void 0:o.auth_method};return await this.apiClient.post("/api/v1/payment/create-payment-instrument",{paymentInstrumentData:r})}async createApmPaymentInstrument(e){console.log("Creating APM payment instrument:",e);let t={type:"apm",provider:e.provider,paymentMethod:e.paymentMethod,processorId:e.processorId},r=await this.apiClient.post("/api/v1/payment/create-payment-instrument",{paymentInstrumentData:t});return console.log("APM payment instrument created:",r),r}getCardMonthAndYear(e){let[t,r]=e.split("/"),i=new Date().getFullYear(),o=Math.floor(i/100)*100,s=Number(r)+o;return{expiration_month:Number(t),expiration_year:s}}async processPaymentDirect(e,t,r,i={}){console.log("[PaymentsResource] processPaymentDirect START",i.paymentFlowId?"(flow: ".concat(i.paymentFlowId,")"):""),console.log("[PaymentsResource] Full options object:",JSON.stringify(i,null,2)),console.log("[PaymentsResource] processorId:",i.processorId,"paymentMethod:",i.paymentMethod);try{let o=C(C(C(C(C(C({checkoutSessionId:e,paymentInstrumentId:t},r&&{threedsSessionId:r}),i.initiatedBy&&{initiatedBy:i.initiatedBy}),i.source&&{source:i.source}),i.paymentFlowId&&{paymentFlowId:i.paymentFlowId}),i.processorId&&{processorId:i.processorId}),i.paymentMethod&&{paymentMethod:i.paymentMethod});console.log("[PaymentsResource] Request body being sent:",JSON.stringify(o,null,2));let s=await this.apiClient.post("/api/public/v1/checkout/pay-v2",o);return console.log("[PaymentsResource] processPaymentDirect SUCCESS:",s),s}catch(o){throw console.error("[PaymentsResource] processPaymentDirect ERROR:",o),o}}async getCardPaymentInstruments(){return this.apiClient.get("/api/v1/payment-instruments/customer")}async markPaymentActionProcessed(e){return this.apiClient.post("/api/v1/payments/require-action/processed",{paymentId:e})}async getPaymentStatus(e){return this.apiClient.get("/api/v1/payments/".concat(e))}async retrievePayment(e){return this.apiClient.post("/api/v1/payments/retrieve",{paymentId:e})}async saveRadarSession(e){return this.apiClient.post("/api/v1/radar-sessions",e)}async completePaymentAfterAction(e){return this.apiClient.post("/api/v1/payments/complete-after-3ds",{paymentId:e})}async updateThreedsStatus(e){return this.apiClient.post("/api/v1/threeds/status",e)}};var qn=class{constructor(e){this.apiClient=e}async getOrder(e){let t=await this.apiClient.get("/api/v1/orders/".concat(e));if(typeof t=="object"&&t!==null&&"success"in t&&t.success===!1)throw new Error(t.error||"Failed to fetch order");let r=typeof t=="object"&&t!==null&&"order"in t?t.order:t;if(!r)throw new Error("Order not found");return r}async createOrder(e){return this.apiClient.post("/api/v1/orders",{checkoutSessionId:e})}async updateOrderStatus(e,t){return this.apiClient.patch("/api/v1/orders/".concat(e,"/status"),{status:t})}async addOrderItems(e,t){return this.apiClient.post("/api/v1/orders/".concat(e,"/items"),{items:t})}async getOrderLineItems(e){return(await this.getOrder(e)).items||[]}};var Ts="https://cvwnizdbugpz6jwk.public.blob.vercel-storage.com/geodata/v1";var Et=new Map,Xn=new Map,ci=new Map,li=new Map;async function ll(n){let e=Et.get(n);if(e)return e;let t=ci.get(n);return t||(t=(async()=>{let r="".concat(Ts,"/").concat(n,"/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 Et.set(n,o),ci.delete(n),o})(),ci.set(n,t),t)}async function ul(n){let e=Xn.get(n);if(e)return e;let t=li.get(n);return t||(t=(async()=>{let r="".concat(Ts,"/").concat(n,"/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 Xn.set(n,o),li.delete(n),o})(),li.set(n,t),t)}function dl(n){return Et.get(n)||Et.get("en")||{}}function pl(n){return Xn.get(n)||Xn.get("en")||{}}async function Rs(n="en"){await Promise.all([ll(n),ul(n)])}var Os=(n="en")=>{let e=dl(n);return Object.entries(e).map(([t,r])=>({code:t,name:r.n,iso3:r.i3,numeric:r.nu,uniqueKey:"country-".concat(t)})).sort((t,r)=>t.name.localeCompare(r.name))},Ps=(n,e="en")=>{let r=pl(e)[n];return r?r.map(([i,o],s)=>({code:i,name:o,countryCode:n,uniqueKey:"state-".concat(n,"-").concat(i,"-").concat(s)})).sort((i,o)=>i.name.localeCompare(o.name)):[]};function vs(n){return Et.has(n)}function xs(){return[...Et.keys()]}async function Ns(n){await Rs(n)}typeof globalThis!="undefined"&&typeof fetch!="undefined"&&Rs("en").catch(()=>{});var Jn=class{static getCountriesData(e="en"){try{let t=Os(e),r={};return t.forEach(i=>{r[i.code]={iso:i.code,iso3:i.iso3||"",numeric:i.numeric||0,name:i.name}}),r}catch(t){return console.error("Failed to load ISO data for language: ".concat(e),t),{}}}static getRegions(e,t="en"){try{return Ps(e,t).map(i=>({iso:i.code,name:i.name}))}catch(r){return[]}}static findRegion(e,t,r="en"){var o;return(o=this.getRegions(e,r).find(s=>s.iso===t))!=null?o:null}static mapGoogleToISO(e,t,r,i="en"){let o=this.getRegions(r,i);if(o.length===0)return null;let s=o.find(a=>a.iso===e);return s||(s=o.find(a=>a.name.toLowerCase()===e.toLowerCase()),s)||(s=o.find(a=>a.name.toLowerCase()===t.toLowerCase()),s)?s:(s=o.find(a=>a.name.toLowerCase().includes(t.toLowerCase())||t.toLowerCase().includes(a.name.toLowerCase())),s!=null?s:null)}static isLanguageRegistered(e){return vs(e)}static getRegisteredLanguages(){return xs()}static async importLanguage(e){return Ns(e)}static getAvailableLanguages(){return["en","ru","de","fr","es","zh","hi","pt","ja","ar","it","he"]}};var yt=class{static initialize(e){var t,r;this.apiKey=e,typeof window!="undefined"&&((r=(t=window.google)==null?void 0:t.maps)!=null&&r.places)&&(this.service=new window.google.maps.places.AutocompleteService)}static async searchPlaces(e,t={}){return!this.service||!e.trim()?[]:new Promise((r,i)=>{this.service.getPlacePredictions({input:e,types:t.types||["address"],componentRestrictions:t.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 t,r;return typeof window=="undefined"||!((r=(t=window.google)==null?void 0:t.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 t={};for(let r of e.address_components){let i=r.types;i.includes("street_number")?t.streetNumber=r.long_name:i.includes("route")?t.route=r.long_name:i.includes("locality")?(t.city=r.long_name,t.locality=r.long_name):i.includes("administrative_area_level_2")?(t.administrativeAreaLevel2=r.short_name,t.administrativeAreaLevel2Long=r.long_name,t.city||(t.city=r.long_name,t.locality=r.long_name)):i.includes("administrative_area_level_1")?(t.state=r.long_name,t.administrativeAreaLevel1=r.short_name,t.administrativeAreaLevel1Long=r.long_name):i.includes("postal_code")?t.postalCode=r.long_name:i.includes("country")&&(t.country=r.long_name,t.countryCode=r.short_name,t.iso=r.short_name)}return!t.administrativeAreaLevel1&&t.administrativeAreaLevel2&&(t.state=t.administrativeAreaLevel2Long||t.administrativeAreaLevel2,t.administrativeAreaLevel1=t.administrativeAreaLevel2,t.administrativeAreaLevel1Long=t.administrativeAreaLevel2Long),t}};yt.apiKey=null,yt.service=null;sr();var ui=class{static findVariant(e,t){for(let r of e){let i=r.variants.find(o=>o.id===t);if(i)return i}return null}static getVariantPrice(e,t="USD"){let r=e.prices.find(o=>o.currency===t);if(r)return r;let i=e.prices.find(o=>o.default);return i||e.prices[0]||null}static getAllVariants(e){let t=[];for(let r of e)if(r.variants)for(let i of r.variants)t.push({product:r,variant:i});return t}static filterVariants(e,t){let r=[];for(let i of e)if(i.variants)for(let o of i.variants)t(o,i)&&r.push({product:i,variant:o});return r}};var di=class{static getOrderLineItems(e){return e.items||[]}static getOrderTotal(e){return e.paidAmount||0}static getOrderStatus(e){return e.status||"unknown"}static isOrderCompleted(e){return e.status==="completed"||e.status==="fulfilled"}static isOrderPending(e){return e.status==="pending"||e.status==="processing"}static isOrderCancelled(e){return e.status==="cancelled"||e.status==="refunded"}};function fl(n,e="USD",t="en-US"){let r=sn.getDecimalPlaces(e),i;r===0?i=n/100:i=n/Math.pow(10,r);try{return new Intl.NumberFormat(t,{style:"currency",currency:e,minimumFractionDigits:r,maximumFractionDigits:r}).format(i)}catch(o){let s=sn.getCurrencySymbol(e);return"".concat(s).concat(i.toFixed(r))}}var sn=class{static getCurrency(e,t="USD"){var i,o,s;let r;return typeof(e==null?void 0:e.currency)=="string"?r=e.currency:(i=e==null?void 0:e.currency)!=null&&i.code?r=e.currency.code:(s=(o=e==null?void 0:e.store)==null?void 0:o.presentmentCurrencies)!=null&&s[0]?r=e.store.presentmentCurrencies[0]:r=t,{code:r,symbol:this.getCurrencySymbol(r),name:this.getCurrencyName(r),decimalPlaces:this.getDecimalPlaces(r)}}static getCurrencySymbol(e){return{USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5",CAD:"C$",AUD:"A$",CHF:"CHF",CNY:"\xA5",SEK:"kr",NOK:"kr",DKK:"kr",PLN:"z\u0142",CZK:"K\u010D",HUF:"Ft",RON:"lei",BGN:"\u043B\u0432",HRK:"kn",RUB:"\u20BD",UAH:"\u20B4",TRY:"\u20BA",BRL:"R$",ARS:"$",CLP:"$",COP:"$",MXN:"$",PEN:"S/",UYU:"$U",VEF:"Bs",ZAR:"R",EGP:"\xA3",MAD:"\u062F.\u0645.",TND:"\u062F.\u062A",DZD:"\u062F.\u062C",LYD:"\u0644.\u062F",NGN:"\u20A6",GHS:"\u20B5",KES:"KSh",UGX:"USh",TZS:"TSh",ETB:"Br",ZMW:"ZK",BWP:"P",SZL:"L",LSL:"L",NAD:"N$",MUR:"\u20A8",SCR:"\u20A8",KWD:"\u062F.\u0643",BHD:"\u062F.\u0628",QAR:"\u0631.\u0642",AED:"\u062F.\u0625",OMR:"\u0631.\u0639.",YER:"\uFDFC",SAR:"\u0631.\u0633",JOD:"\u062F.\u0627",LBP:"\u0644.\u0644",ILS:"\u20AA",INR:"\u20B9",PKR:"\u20A8",BDT:"\u09F3",LKR:"\u20A8",NPR:"\u20A8",AFN:"\u060B",KZT:"\u20B8",UZS:"\u043B\u0432",KGS:"\u043B\u0432",TJS:"SM",TMT:"T",AZN:"\u20BC",GEL:"\u20BE",AMD:"\u058F",KRW:"\u20A9",THB:"\u0E3F",VND:"\u20AB",IDR:"Rp",MYR:"RM",SGD:"S$",PHP:"\u20B1",TWD:"NT$",HKD:"HK$",MOP:"MOP$",BND:"B$",LAK:"\u20AD",KHR:"\u17DB",MMK:"K",BOB:"Bs",PYG:"\u20B2",GTQ:"Q",HNL:"L",NIO:"C$",CRC:"\u20A1",PAB:"B/.",DOP:"RD$",JMD:"J$",TTD:"TT$",BBD:"Bds$",XCD:"EC$",AWG:"\u0192",ANG:"\u0192",SRD:"$",GYD:"G$",VES:"Bs.S",VED:"Bs.D"}[e]||e}static getCurrencyName(e){return{USD:"US Dollar",EUR:"Euro",GBP:"British Pound",JPY:"Japanese Yen",CAD:"Canadian Dollar",AUD:"Australian Dollar",CHF:"Swiss Franc",CNY:"Chinese Yuan",SEK:"Swedish Krona",NOK:"Norwegian Krone",DKK:"Danish Krone",PLN:"Polish Zloty",CZK:"Czech Koruna",HUF:"Hungarian Forint",RON:"Romanian Leu",BGN:"Bulgarian Lev",HRK:"Croatian Kuna",RUB:"Russian Ruble",UAH:"Ukrainian Hryvnia",TRY:"Turkish Lira",BRL:"Brazilian Real",ARS:"Argentine Peso",CLP:"Chilean Peso",COP:"Colombian Peso",MXN:"Mexican Peso",PEN:"Peruvian Sol",UYU:"Uruguayan Peso",VEF:"Venezuelan Bolivar",ZAR:"South African Rand",EGP:"Egyptian Pound",MAD:"Moroccan Dirham",TND:"Tunisian Dinar",DZD:"Algerian Dinar",LYD:"Libyan Dinar",NGN:"Nigerian Naira",GHS:"Ghanaian Cedi",KES:"Kenyan Shilling",UGX:"Ugandan Shilling",TZS:"Tanzanian Shilling",ETB:"Ethiopian Birr",ZMW:"Zambian Kwacha",BWP:"Botswana Pula",SZL:"Swazi Lilangeni",LSL:"Lesotho Loti",NAD:"Namibian Dollar",MUR:"Mauritian Rupee",SCR:"Seychellois Rupee",KWD:"Kuwaiti Dinar",BHD:"Bahraini Dinar",QAR:"Qatari Riyal",AED:"UAE Dirham",OMR:"Omani Rial",YER:"Yemeni Rial",SAR:"Saudi Riyal",JOD:"Jordanian Dinar",LBP:"Lebanese Pound",ILS:"Israeli Shekel",INR:"Indian Rupee",PKR:"Pakistani Rupee",BDT:"Bangladeshi Taka",LKR:"Sri Lankan Rupee",NPR:"Nepalese Rupee",AFN:"Afghan Afghani",KZT:"Kazakhstani Tenge",UZS:"Uzbekistani Som",KGS:"Kyrgyzstani Som",TJS:"Tajikistani Somoni",TMT:"Turkmenistani Manat",AZN:"Azerbaijani Manat",GEL:"Georgian Lari",AMD:"Armenian Dram",KRW:"South Korean Won",THB:"Thai Baht",VND:"Vietnamese Dong",IDR:"Indonesian Rupiah",MYR:"Malaysian Ringgit",SGD:"Singapore Dollar",PHP:"Philippine Peso",TWD:"Taiwan Dollar",HKD:"Hong Kong Dollar",MOP:"Macanese Pataca",BND:"Brunei Dollar",LAK:"Lao Kip",KHR:"Cambodian Riel",MMK:"Myanmar Kyat",BOB:"Bolivian Boliviano",PYG:"Paraguayan Guarani",GTQ:"Guatemalan Quetzal",HNL:"Honduran Lempira",NIO:"Nicaraguan Cordoba",CRC:"Costa Rican Colon",PAB:"Panamanian Balboa",DOP:"Dominican Peso",JMD:"Jamaican Dollar",TTD:"Trinidad and Tobago Dollar",BBD:"Barbadian Dollar",XCD:"East Caribbean Dollar",AWG:"Aruban Florin",ANG:"Netherlands Antillean Guilder",SRD:"Surinamese Dollar",GYD:"Guyanese Dollar",VES:"Venezuelan Bolivar Soberano",VED:"Venezuelan Bolivar Digital"}[e]||e}static getDecimalPlaces(e){var r;return(r={JPY:0,KRW:0,VND:0,IDR:0,LAK:0,KHR:0,MMK:0,PYG:0,VEF:0,VES:0,VED:0}[e])!=null?r:2}};var pi=class{static getCheckoutSessionId(e){var t;return((t=e.checkoutSession)==null?void 0:t.id)||""}static getLineItems(e){var r;let t=(r=e.checkoutSession)==null?void 0:r.lineItems;return Array.isArray(t)?t:[]}static getTotal(e){var r;let t=(r=e.checkoutSession)==null?void 0:r.totalPrice;return typeof t=="number"?t:0}static isClubMember(e){return e.customerIsClubMember||!1}};var fi=class{static isValidPromotion(e){return!!(e.id&&e.name)}static getPromotionType(e){return e.type||"unknown"}static hasRules(e){return!!(e.rules&&e.rules.length>0)}static hasActions(e){return!!(e.actions&&e.actions.length>0)}};var gi=class{static isValidOffer(e){return!!(e.id&&e.summaries&&e.summaries.length>0)}static getOfferTotal(e){var t,r;return((r=(t=e.summaries)==null?void 0:t[0])==null?void 0:r.totalAmount)||0}static getOfferAdjustedTotal(e){var t,r;return((r=(t=e.summaries)==null?void 0:t[0])==null?void 0:r.totalAdjustedAmount)||0}static hasItems(e){return!!(e.offerLineItems&&e.offerLineItems.length>0)}static getOfferCurrency(e){var t,r;return((r=(t=e.summaries)==null?void 0:t[0])==null?void 0:r.currency)||"USD"}static getOfferTitle(e,t="en"){var r,i;return((r=e.titleTrans)==null?void 0:r[t])||((i=e.titleTrans)==null?void 0:i.en)||"Offer ".concat(e.id)}};var mi=class{static isValidOffer(e){return!!(e.id&&e.name&&e.price>0)}static toggleSelection(e){return D(C({},e),{isSelected:!e.isSelected})}static calculatePreview(e,t=0){let r=t+e.price,i=e.isSelected?r:t;return{offer:e,totalAmount:r,adjustedAmount:i}}static getSelectedOffers(e){return e.filter(t=>t.isSelected)}static getSelectedTotal(e){return e.filter(t=>t.isSelected).reduce((t,r)=>t+r.price,0)}};Ot();var gl={session:n=>["funnel","session",n],allSessions:()=>["funnel","sessions"],funnelMeta:n=>["funnel","meta",n]};function _s(n,e,t="*"){let r={type:"TAGADAPAY_CONFIG_UPDATE",config:e,timestamp:Date.now()};n.postMessage(r,t)}function ml(n,e="iframe"){if(typeof document=="undefined")return;let t=document.querySelectorAll(e);t.forEach(r=>{r.contentWindow&&_s(r.contentWindow,n)}),console.log("[ConfigHotReload] Broadcasted config update to ".concat(t.length," iframe(s)"))}function hl(n){if(typeof window=="undefined")return()=>{};let e=t=>{var r;((r=t.data)==null?void 0:r.type)==="TAGADAPAY_CONFIG_UPDATE"&&n(t.data.config)};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}}function El(n,e=150){let t=null;return r=>{t&&clearTimeout(t),t=setTimeout(()=>{n(r),t=null},e)}}var wi=ra(Us()),ee,At=typeof window!="undefined"&&typeof document!="undefined",Pl=At?history.pushState.bind(history):null,vl=At?history.replaceState.bind(history):null;function er(){ee=void 0}At&&(window.addEventListener("popstate",er),window.addEventListener("hashchange",er),history.pushState=function(...n){return er(),Pl.apply(this,n)},history.replaceState=function(...n){return er(),vl.apply(this,n)});function an(){if(!At)return null;if(ee!==void 0)return console.log("[TagadaPay SDK] \u{1F4E6} Returning cached internal path:",ee),ee;console.log("[TagadaPay SDK] \u{1F50D} getInternalPath() called for:",window.location.pathname);try{let n=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"||window.location.hostname.endsWith(".localhost");if(console.log("[TagadaPay SDK] \u{1F3E0} isLocalhost:",n),n){let s=new URLSearchParams(window.location.search).get("__remap");if(console.log("[TagadaPay SDK] \u{1F50D} Query parameter __remap:",s),s)return ee=s,s;try{let a=localStorage.getItem("tagadapay-remap");if(console.log("[TagadaPay SDK] \u{1F50D} localStorage tagadapay-remap:",a),a)try{let l=JSON.parse(a);if(console.log("[TagadaPay SDK] \u{1F4DD} Parsed remap config:",l),l.externalPath&&l.internalPath){let c=window.location.pathname;console.log("[TagadaPay SDK] \u{1F50D} Checking if",c,"matches pattern",l.externalPath);let p=(0,wi.match)(l.externalPath,{decode:decodeURIComponent,end:!0})(c);return console.log("[TagadaPay SDK] \u{1F3AF} Match result:",p),p!==!1?(ee=l.internalPath,console.log("[TagadaPay SDK] \u2705 Path remap: ".concat(l.externalPath," \u2192 ").concat(l.internalPath)),console.log("[TagadaPay SDK] \u2705 Current URL ".concat(c," matches external pattern")),console.log("[TagadaPay SDK] \u{1F4E6} Caching and returning:",l.internalPath),l.internalPath):(console.log("[TagadaPay SDK] \u274C Current URL ".concat(c," does NOT match external pattern ").concat(l.externalPath)),ee=null,null)}else console.log("[TagadaPay SDK] \u26A0\uFE0F Parsed config missing externalPath or internalPath")}catch(l){return console.log("[TagadaPay SDK] \u26A0\uFE0F Failed to parse as JSON, using legacy format:",l),ee=a,a}else console.log("[TagadaPay SDK] \u{1F4ED} No localStorage tagadapay-remap found")}catch(a){console.log("[TagadaPay SDK] \u274C localStorage error:",a)}}let e=document.querySelector('meta[name="tagadapay-path-remap"]');if(e)try{let o=e.getAttribute("content");if(o){let s=decodeURIComponent(o),a=JSON.parse(s);if(a.internal)return console.log("[TagadaPay SDK] \u2705 Got internal path from full remap config:",a.internal),ee=a.internal,a.internal}}catch(o){console.error("[TagadaPay SDK] Error parsing full remap config:",o)}let t=document.querySelector('meta[name="x-plugin-internal-path"]');if(!t)return console.log("[TagadaPay SDK] \u2139\uFE0F No path remap meta tags found"),ee=null,null;let r=t.getAttribute("content");if(!r||r.trim()==="")return ee=null,null;let i=r.trim();return i.startsWith("/")?(console.log("[TagadaPay SDK] \u2705 Got internal path from legacy meta tag:",i),ee=i,i):(ee=null,null)}catch(n){return ee=null,null}}function Gs(){return an()!==null}function Hs(){if(!At)throw new Error("[TagadaPay SDK] getPathInfo() cannot be called in SSR context");try{let n=window.location.pathname,e=an(),t=new URLSearchParams(window.location.search),r=window.location.hash.replace(/^#/,"");return{externalPath:n,internalPath:e,isRemapped:e!==null,fullUrl:window.location.href,query:t,hash:r}}catch(n){return{externalPath:"/",internalPath:null,isRemapped:!1,fullUrl:"",query:new URLSearchParams,hash:""}}}function tr(n,e){try{if(n===e)return{matched:!0,params:{}};if(!(e.includes(":")||e.includes("*")||e.includes("{")))return{matched:n===e,params:{}};let i=(0,wi.match)(e,{decode:decodeURIComponent,end:!0})(n);if(i===!1)return{matched:!1,params:{}};let o={};return typeof i=="object"&&i.params&&Object.keys(i.params).forEach(s=>{let a=i.params[s];o[s]=Array.isArray(a)?a.join("/"):String(a)}),{matched:!0,params:o}}catch(t){return{matched:n===e,params:{}}}}function xl(n,e,t){let r=Fs(e),i=Fs(t);if(r.length===0||r.length!==i.length)return n;let o={};return r.forEach((s,a)=>{let l=i[a],c=n[s];c!==void 0&&(o[l]=c)}),o}function Fs(n){let e=n.match(/:([a-zA-Z0-9_]+)/g);return e?e.map(t=>t.substring(1)):[]}function Ks(n){if(typeof n!="string")throw new Error("[TagadaPay SDK] internalPath must be a string, got ".concat(typeof n));if(n.trim()==="")throw new Error("[TagadaPay SDK] internalPath cannot be empty");if(!n.startsWith("/"))throw new Error('[TagadaPay SDK] internalPath must start with /, got "'.concat(n,'"'));if(!At)return{matched:!1,params:{}};try{let e=window.location.pathname,t=an();if(t){if(!tr(t,n).matched)return{matched:!1,params:{}};let i=null;if(typeof localStorage!="undefined")try{let s=localStorage.getItem("tagadapay-remap");if(s){let a=JSON.parse(s);a.externalPath&&a.internalPath===t&&(i=a.externalPath)}}catch(s){}if(!i&&typeof document!="undefined"){console.log("[TagadaPay SDK] \u{1F50D} Checking for production path remap meta tag...");let s=document.querySelector('meta[name="tagadapay-path-remap"]');if(s)try{let a=s.getAttribute("content");if(console.log("[TagadaPay SDK] \u{1F4C4} Found meta tag content (encoded):",(a==null?void 0:a.substring(0,100))+"..."),a){let l=decodeURIComponent(a);console.log("[TagadaPay SDK] \u{1F4C4} Decoded content:",l);let c=JSON.parse(l);console.log("[TagadaPay SDK] \u{1F4E6} Parsed remap config:",c),console.log("[TagadaPay SDK] \u{1F50D} Checking if internal path matches:",{parsedInternal:c.internal,remappedInternalPath:t}),c.external&&c.internal===t?(i=c.external,console.log("[TagadaPay SDK] \u2705 Using external pattern from meta tag:",i)):console.log("[TagadaPay SDK] \u26A0\uFE0F Internal path mismatch - not using meta tag config")}}catch(a){console.error("[TagadaPay SDK] \u274C Error parsing path remap meta tag:",a)}else console.log("[TagadaPay SDK] \u274C No tagadapay-path-remap meta tag found")}if(i){let s=tr(e,i);if(s.matched){console.log("[TagadaPay SDK] \u{1F504} Mapping params from external to internal pattern"),console.log("[TagadaPay SDK] External params:",s.params),console.log("[TagadaPay SDK] External pattern:",i),console.log("[TagadaPay SDK] Internal pattern:",n);let a=xl(s.params,i,n);return console.log("[TagadaPay SDK] Mapped params:",a),{matched:!0,params:a}}}return{matched:!0,params:tr(e,n).params}}return tr(e,n)}catch(e){return{matched:!1,params:{}}}}var Nl=new Set(["BIF","CLP","DJF","GNF","ISK","JPY","KMF","KRW","PYG","RWF","UGX","VND","VUV","XAF","XOF","XPF"]),_l=new Set(["BHD","IQD","JOD","KWD","LYD","OMR","TND"]);function nr(n,e){let t=e.toUpperCase();return Nl.has(t)?n:_l.has(t)?n/1e3:n/100}function bi(n,e){if(!("events"in n)||!n.events)return!0;let t=n.events;return e in t?t[e]===!0:!0}function Ve(n,e){return n?n.filter(t=>t.enabled&&bi(t,e)):[]}function kl(n){return n.currency&&typeof n.currency=="string"?D(C({},n),{currency:n.currency.toUpperCase()}):C({},n)}function Ll(n){if(n.currency&&n.value!=null){let e=String(n.currency),t=nr(Number(n.value),e);return D(C({},n),{value:t})}return n}function cn(n){let e=kl(n);return e=Ll(e),e}var Dl={PageView:"PageView",ViewContent:"ViewContent",AddToCart:"AddToCart",AddToWishlist:"AddToWishlist",Search:"Search",InitiateCheckout:"InitiateCheckout",AddPaymentInfo:"AddPaymentInfo",Purchase:"Purchase",Lead:"Lead",CompleteRegistration:"CompleteRegistration"};function Si(n,e){var i,o;let t=(i=Dl[n])!=null?i:n,r=cn(e);return r.contents&&Array.isArray(r.contents)&&(r.content_ids=r.contents.map(s=>s.content_id).filter(Boolean),r.content_type=(o=r.content_type)!=null?o:"product"),{name:t,params:r}}var Bl={PageView:"Pageview",ViewContent:"ViewContent",AddToCart:"AddToCart",AddToWishlist:"AddToWishlist",Search:"Search",InitiateCheckout:"InitiateCheckout",AddPaymentInfo:"AddPaymentInfo",Purchase:"Purchase",Lead:"SubmitForm",CompleteRegistration:"CompleteRegistration"};function Ii(n,e){var o,s;let t=(o=Bl[n])!=null?o:n,r=cn(e),i=r.currency?String(r.currency):null;if(i)for(let a of["shipping","tax","subtotal","total_discount"])r[a]!=null&&(r[a]=nr(Number(r[a]),i));return r.contents&&Array.isArray(r.contents)&&(r.content_ids||(r.content_ids=r.contents.map(a=>a.content_id).filter(Boolean)),r.contents=r.contents.map(a=>{var c;let l=a.currency?String(a.currency):i;return{content_id:a.content_id,content_name:a.content_name,content_type:(c=a.content_type)!=null?c:"product",content_category:a.content_category,price:a.price!=null&&l?nr(Number(a.price),l):a.price!=null?Number(a.price):void 0,original_price:a.original_price!=null&&l?nr(Number(a.original_price),l):a.original_price!=null?Number(a.original_price):void 0,quantity:a.quantity!=null?Number(a.quantity):void 0,description:a.description}})),n==="InitiateCheckout"&&(r.content_type=(s=r.content_type)!=null?s:"product",r.delivery_category||(r.delivery_category="home_delivery")),{name:t,params:r}}var Ml={PageView:"PAGE_VIEW",ViewContent:"VIEW_CONTENT",AddToCart:"ADD_CART",AddToWishlist:"ADD_TO_WISHLIST",Search:"SEARCH",InitiateCheckout:"START_CHECKOUT",AddPaymentInfo:"ADD_BILLING",Purchase:"PURCHASE",Lead:"LEAD",CompleteRegistration:"SIGN_UP"};function Ci(n,e){var i;let t=(i=Ml[n])!=null?i:n,r=cn(e);return"value"in r&&(r=D(C({},r),{price:r.value}),delete r.value),"num_items"in r&&(r=D(C({},r),{number_items:r.num_items}),delete r.num_items),r.contents&&Array.isArray(r.contents)&&(r.item_ids=r.contents.map(o=>o.content_id).filter(Boolean)),{name:t,params:r}}var Ul={PageView:"pagevisit",ViewContent:"viewcontent",AddToCart:"addtocart",AddToWishlist:"addtowishlist",Search:"search",InitiateCheckout:"initiatecheckout",AddPaymentInfo:"addpaymentinfo",Purchase:"checkout",Lead:"lead",CompleteRegistration:"signup"};function Ti(n,e){var i;let t=(i=Ul[n])!=null?i:n.toLowerCase(),r=cn(e);return r.order_quantity!==void 0&&(r.order_quantity=Number(r.order_quantity)),r.contents&&Array.isArray(r.contents)&&(r.line_items=r.contents.map(o=>({product_id:o.content_id,product_name:o.content_name,product_category:o.content_category,product_price:o.price!=null?Number(o.price):void 0,product_quantity:o.quantity!=null?Number(o.quantity):void 0}))),{name:t,params:r}}var Fl={PageView:"page_view",ViewContent:"view_item",AddToCart:"add_to_cart",AddToWishlist:"add_to_wishlist",Search:"search",InitiateCheckout:"begin_checkout",AddPaymentInfo:"add_payment_info",Purchase:"purchase",Lead:"generate_lead",CompleteRegistration:"sign_up",Conversion:"conversion"};function Ri(n,e){var i;let t=(i=Fl[n])!=null?i:n.toLowerCase(),r=cn(e);return r.num_items!==void 0&&(r.num_items=Number(r.num_items)),r.contents&&Array.isArray(r.contents)&&(r.items=r.contents.map(o=>({item_id:o.content_id,item_name:o.content_name,item_category:o.content_category,price:o.price!=null?Number(o.price):void 0,quantity:o.quantity!=null?Number(o.quantity):void 0})),r.contents=r.contents.map(o=>({id:o.content_id,name:o.content_name,category:o.content_category,price:o.price!=null?Number(o.price):void 0,quantity:o.quantity!=null?Number(o.quantity):void 0}))),{name:t,params:r}}function Oi(n,e,t){return(e==="Purchase"||e==="Conversion")&&t.googleAdsConversionId&&t.googleAdsConversionLabel?D(C({},n),{send_to:"".concat(t.googleAdsConversionId,"/").concat(t.googleAdsConversionLabel)}):n}function Vs(n,e,t){let r=[],i=Ve(n.facebook,e);if(i.length>0){let c=Si(e,t);i.forEach(u=>r.push({provider:"facebook",mapped:c,pixel:u}))}let o=Ve(n.tiktok,e);if(o.length>0){let c=Ii(e,t);o.forEach(u=>r.push({provider:"tiktok",mapped:c,pixel:u}))}let s=Ve(n.snapchat,e);if(s.length>0){let c=Ci(e,t);s.forEach(u=>r.push({provider:"snapchat",mapped:c,pixel:u}))}let a=Ve(n.pinterest,e);if(a.length>0){let c=Ti(e,t);a.forEach(u=>r.push({provider:"pinterest",mapped:c,pixel:u}))}let l=Ve(n.gtm,e);if(l.length>0){let c=Ri(e,t);l.forEach(u=>{let p=Oi(c.params,e,u);r.push({provider:"gtm",mapped:{name:c.name,params:p},pixel:u})})}return r}qe();var Ws="1.0.0";function $s(n){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get(n)}function Y(n,...e){n&&console.log("[TagadaTracker]",...e)}function zs(...n){console.warn("[TagadaTracker]",...n)}function Gl(n){if(!n.storeId||typeof n.storeId!="string")throw new Error("TagadaTracker: storeId is required and must be a non-empty string.");if(!n.accountId||typeof n.accountId!="string")throw new Error("TagadaTracker: accountId is required and must be a non-empty string.");if(!n.stepId||typeof n.stepId!="string")throw new Error("TagadaTracker: stepId is required and must be a non-empty string.");if(n.apiBaseUrl)try{new URL(n.apiBaseUrl)}catch(e){throw new Error('TagadaTracker: apiBaseUrl is not a valid URL: "'.concat(n.apiBaseUrl,'"'))}}async function Hl(n,e,t){let r;for(let i=0;i<=e;i++)try{return await n()}catch(o){if(r=o instanceof Error?o:new Error(String(o)),i<e){let s=Math.min(1e3*2**i,8e3);Y(t,"Retry ".concat(i+1,"/").concat(e," in ").concat(s,"ms...")),await new Promise(a=>setTimeout(a,s))}}throw r}var ln=class{constructor(){this.config=null;this.client=null;this.initialized=!1;this.initializing=!1;this.unsubscribe=null;this.version=Ws}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=C({debug:!1},e);let t=this.config.debug;try{Gl(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(t,"\u{1F680} Initializing external tracker v".concat(Ws),{storeId:e.storeId,accountId:e.accountId,stepId:e.stepId,funnelId:e.funnelId});try{let o=$s("token");o&&(oe(o),Y(t,"\u{1F511} Bootstrapped token from URL")),this.client=vi({debugMode:t,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 Hl(()=>this.initializeFunnel(),2,t);Y(t,"\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(t,"\u274C Initialization failed:",s),this.config.onError)return this.config.onError(s),null;throw s}finally{this.initializing=!1}}getSession(){var t,r;if(!((r=(t=this.client)==null?void 0:t.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,t;return this.initialized&&!!((t=(e=this.client)==null?void 0:e.funnel)!=null&&t.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 t=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),t&&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()){zs("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(t){Y(this.config.debug,"\u26A0\uFE0F Event tracking failed (non-critical):",e.name)}}getCustomerId(){var e,t,r,i,o;return((t=(e=this.client)==null?void 0:e.state.auth.customer)==null?void 0:t.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,t,r;return((r=(t=(e=this.client)==null?void 0:e.funnel)==null?void 0:t.state.context)==null?void 0:r.sessionId)||null}buildUrl(e,t){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),t&&Object.entries(t).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 t=await this.initializeFunnel(),r=this.getSession();return r&&((o=(i=this.config).onReady)==null||o.call(i,r)),r}destroy(){var e,t;this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this.client&&((t=(e=this.client).destroy)==null||t.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 t=!1,r=setTimeout(()=>{var o;t||(t=!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;!t&&((o=this.client)!=null&&o.state.isInitialized)&&(t=!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,t=(l=this.client.state.auth.session)==null?void 0:l.sessionId;!e&&!t&&zs("No auth session available \u2014 funnel init may fail.");let r={customerId:e||"anon_placeholder",sessionId:t||"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||$s("funnelId")||void 0,o)}},Pi=new ln;typeof window!="undefined"&&(window.TagadaTracker=Pi);function Kl(){if(typeof window=="undefined"||typeof document=="undefined")return[];let n=Me();return n!=null&&n.scripts?n.scripts.filter(e=>e.enabled):[]}function Vl(n,e){let t=n.position||"body-end",r="tagada-stepconfig-script-".concat(e);if(document.getElementById(r))return;let i=n.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: "+n.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",n.name),a.textContent=s,t){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 xi(){let n=Kl();n.length!==0&&n.forEach((e,t)=>{Vl(e,t)})}if(typeof window!="undefined"&&typeof document!="undefined"){let n=()=>{document.body?xi():document.addEventListener("DOMContentLoaded",xi,{once:!0})};"requestIdleCallback"in window?window.requestIdleCallback(n,{timeout:100}):setTimeout(n,0)}function vi(n={}){return new on(n)}return ia(Wl);})();
|
|
8
8
|
/*! Bundled license information:
|
|
9
9
|
|
|
10
10
|
detect-europe-js/dist/esm/index.js:
|
|
@@ -42,6 +42,8 @@ if (typeof window !== 'undefined' && TagadaSDKBundle) {
|
|
|
42
42
|
window.tgd.broadcastConfigUpdate = TagadaSDKBundle.broadcastConfigUpdate;
|
|
43
43
|
// Currency
|
|
44
44
|
window.tgd.formatMoney = TagadaSDKBundle.formatMoney;
|
|
45
|
+
// Script injection (auto-runs on load, but can be manually called)
|
|
46
|
+
window.tgd.injectStepConfigScripts = TagadaSDKBundle.injectStepConfigScripts;
|
|
45
47
|
// Full bundle reference
|
|
46
48
|
window.tgd.sdk = TagadaSDKBundle;
|
|
47
49
|
}
|