@namiml/web-sdk
Version:
Nami Web SDK makes subscriptions & in-app purchases easy, with powerful built-in paywalls and A/B testing
1 lines • 1.34 MB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).NamiWebSdk={})}(this,(function(e){"use strict";const t=class{get shadowRoot(){return this.__host.__shadowRoot}constructor(e){this.ariaAtomic="",this.ariaAutoComplete="",this.ariaBrailleLabel="",this.ariaBrailleRoleDescription="",this.ariaBusy="",this.ariaChecked="",this.ariaColCount="",this.ariaColIndex="",this.ariaColSpan="",this.ariaCurrent="",this.ariaDescription="",this.ariaDisabled="",this.ariaExpanded="",this.ariaHasPopup="",this.ariaHidden="",this.ariaInvalid="",this.ariaKeyShortcuts="",this.ariaLabel="",this.ariaLevel="",this.ariaLive="",this.ariaModal="",this.ariaMultiLine="",this.ariaMultiSelectable="",this.ariaOrientation="",this.ariaPlaceholder="",this.ariaPosInSet="",this.ariaPressed="",this.ariaReadOnly="",this.ariaRequired="",this.ariaRoleDescription="",this.ariaRowCount="",this.ariaRowIndex="",this.ariaRowSpan="",this.ariaSelected="",this.ariaSetSize="",this.ariaSort="",this.ariaValueMax="",this.ariaValueMin="",this.ariaValueNow="",this.ariaValueText="",this.role="",this.form=null,this.labels=[],this.states=new Set,this.validationMessage="",this.validity={},this.willValidate=!0,this.__host=e}checkValidity(){return console.warn("`ElementInternals.checkValidity()` was called on the server.This method always returns true."),!0}reportValidity(){return!0}setFormValue(){}setValidity(){}},n=new WeakMap,i=e=>{let t=n.get(e);return void 0===t&&n.set(e,t=new Map),t},a=class{constructor(){this.__shadowRootMode=null,this.__shadowRoot=null,this.__internals=null}get attributes(){return Array.from(i(this)).map((([e,t])=>({name:e,value:t})))}get shadowRoot(){return"closed"===this.__shadowRootMode?null:this.__shadowRoot}get localName(){return this.constructor.__localName}get tagName(){return this.localName?.toUpperCase()}setAttribute(e,t){i(this).set(e,String(t))}removeAttribute(e){i(this).delete(e)}toggleAttribute(e,t){return this.hasAttribute(e)?!(void 0===t||!t)||(this.removeAttribute(e),!1):!(void 0!==t&&!t)&&(this.setAttribute(e,""),!0)}hasAttribute(e){return i(this).has(e)}attachShadow(e){const t={host:this};return this.__shadowRootMode=e.mode,e&&"open"===e.mode&&(this.__shadowRoot=t),t}attachInternals(){if(null!==this.__internals)throw new Error("Failed to execute 'attachInternals' on 'HTMLElement': ElementInternals for the specified element was already attached.");const e=new t(this);return this.__internals=e,e}getAttribute(e){return i(this).get(e)??null}},r=class extends a{};function o(e,t,n,i){var a,r=arguments.length,o=r<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(r<3?a(o):r>3?a(t,n,o):a(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}function s(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}"undefined"==typeof HTMLElement&&(globalThis.HTMLElement=r),"function"==typeof SuppressedError&&SuppressedError;const{NAMI_SDK_VERSION:d="3.2.4",PRODUCTION:l="production",DEVELOPMENT:u="development",PLATFORM_ID_REQUIRED:c="Platform ID is required",DEVICE_ID_REQUIRED:h="Device ID is required",EXTERNAL_ID_REQUIRED:m="External ID is required",SDK_NOT_INITIALIZED:f="SDK has not been initialized. Make sure to call Nami.configure() first!",CAMPAIGN_NOT_AVAILABLE:g="Campaign is not available",UNABLE_TO_UPDATE_CDP_ID:p="Unable to update CDP id in anonymous mode",ANONYMOUS_MODE_ALREADY_ON:v="Anonymous mode is already turned on.",ANONYMOUS_MODE_ALREADY_OFF:y="Anonymous mode is already turned off.",ANONYMOUS_MODE_LOGIN_NOT_ALLOWED:b="Login/logout are not available in anonymous mode",SESSION_REQUIRED:w="Session is required",DEVICE_ID_NOT_SET:k="Nami Device ID is not set",AUTH_DEVICE:M="nami_auth_device",NAMI_CONFIGURATION:S="nami_configuration",NAMI_PROFILE:T="nami_profile",API_CONFIG:E="api_config",API_CAMPAIGN_RULES:P="api_campaign_rules",API_PAYWALLS:A="api_paywalls",API_PRODUCTS:x="api_products",API_ACTIVE_ENTITLEMENTS:C="api_active_entitlements",SERVER_NAMI_ENTITLEMENTS:L="server_active_entitlements",INITIAL_APP_CONFIG:D="initial_app_config",INITIAL_CAMPAIGN_RULES:I="initial_campaign_rules",INITIAL_PAYWALLS:_="initial_paywalls",INITIAL_PRODUCTS:R="initial_products",LOCAL_NAMI_ENTITLEMENTS:W="local_active_entitlements",CUSTOMER_ATTRIBUTES_KEY_PREFIX:N="nami_cmr_attributes_",NAMI_CUSTOMER_JOURNEY_STATE:O="nami_customer_journey_state",ANONYMOUS_MODE:F="nami_anonymous_mode",KEY_SESSION_COUNTER:j="nami_session_counter",INITIAL_SESSION_COUNTER_VALUE:$=1,NAMI_LAST_IMPRESSION_ID:z="nami_last_impression_id",NAMI_PURCHASE_IMPRESSION_ID:H="nami_purchase_impression_id",NAMI_SESSION_ID:U="nami_session_id",NAMI_LANGUAGE_CODE:B="nami_language_code",NAMI_PURCHASE_CHANNEL:G="nami_purchase_channel",API_VERSION:X="v3",BASE_URL_PATH:Y=`sdk/${X}/platform`,BASE_URL:V="https://app.namiml.com",BASE_STAGING_URL:K="https://app-staging.namiml.com",CUSTOM_HOST_PREFIX:q="namiAPIHost=",USE_STAGING_API:J="useStagingAPI",EXTENDED_CLIENT_INFO_PREFIX:Q="extendedClientInfo",EXTENDED_CLIENT_INFO_DELIMITER:Z=":",VALIDATE_PRODUCT_GROUPS:ee="validateProductGroups",EXTENDED_PLATFORM:te="extended-platform",EXTENDED_PLATFORM_VERSION:ne="extended-platform-version",API_MAX_CALLS_LIMIT:ie=2,API_RETRY_DELAY_SEC:ae=2,API_TIMEOUT_LIMIT:re=2e4,DEVICE_API_TIMEOUT_LIMIT:oe=3e3,STATUS_SUCCESS:se=200,STATUS_BAD_REQUEST:de=400,STATUS_NOT_FOUND:le=404,STATUS_INTERNAL_SERVER_ERROR:ue=500,INITIAL_SUCCESS:ce="Initial success",RECONFIG_SUCCESS:he="Reconfig success",ALREADY_CONFIGURED:me="Already configured",AVAILABLE_CAMPAIGNS_CHANGED:fe="AvailableCampaignsChanged",PAYWALL_ACTION_EVENT:ge="PaywallActionEvent",AVAILABLE_ACTIVE_ENTITLEMENTS_CHANGED:pe="AvailableActiveEntitlementsChanged",CUSTOMER_JOURNEY_STATE_CHANGED:ve="CustomerJourneyStateChanged",SKU_TEXT_REGEX:ye=/\$\{sku\.(\w+)(:\d+)?\}/g,VAR_REGEX:be=/\$\{\s*(\w+(\.[a-zA-Z\d_:${}-]{0,99})*?)\s*}/g,HTML_REGEX:we=/<\/?[a-z][\s\S]*>/i,SMART_TEXT_PATTERN:ke="${",CORS_PROXY_URL:Me="https://hosted-content-staging.namiml.com",CORS_PROXY_URL_LOCAL:Se="http://localhost:8001"}={};var Te;e.LogLevel=void 0,(Te=e.LogLevel||(e.LogLevel={}))[Te.DEBUG=1]="DEBUG",Te[Te.INFO=2]="INFO",Te[Te.WARN=3]="WARN",Te[Te.ERROR=4]="ERROR";const Ee={debug:e.LogLevel.DEBUG,info:e.LogLevel.INFO,warn:e.LogLevel.WARN,error:e.LogLevel.ERROR};const Pe=new class{constructor(){this.setLogger=t=>{this.currentLogLevel=t?Ee[t]:e.LogLevel.WARN}}debug(t,...n){this.shouldLog(e.LogLevel.DEBUG)&&console.debug(this.formatMessage(e.LogLevel.DEBUG,t,...n))}info(t,...n){this.shouldLog(e.LogLevel.INFO)&&console.info(this.formatMessage(e.LogLevel.INFO,t,...n))}warn(t,...n){this.shouldLog(e.LogLevel.WARN)&&console.warn(this.formatMessage(e.LogLevel.WARN,t,...n))}error(t,...n){this.shouldLog(e.LogLevel.ERROR)&&console.error(this.formatMessage(e.LogLevel.ERROR,t,...n))}shouldLog(e){return e>=this.currentLogLevel}formatMessage(t,n,...i){const a=e.LogLevel[t];return`[${(new Date).toISOString()}] [${a}] ${n} ${i=i.map((e=>"object"==typeof e?JSON.stringify(e):e))}`}};function Ae(e){for(var t=-1,n=null==e?0:e.length,i=0,a=[];++t<n;){var r=e[t];r&&(a[i++]=r)}return a}function xe(e,t){return e===t||e!=e&&t!=t}function Ce(e,t){for(var n=e.length;n--;)if(xe(e[n][0],t))return n;return-1}var Le=Array.prototype.splice;function De(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}De.prototype.clear=function(){this.__data__=[],this.size=0},De.prototype.delete=function(e){var t=this.__data__,n=Ce(t,e);return!(n<0)&&(n==t.length-1?t.pop():Le.call(t,n,1),--this.size,!0)},De.prototype.get=function(e){var t=this.__data__,n=Ce(t,e);return n<0?void 0:t[n][1]},De.prototype.has=function(e){return Ce(this.__data__,e)>-1},De.prototype.set=function(e,t){var n=this.__data__,i=Ce(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this};var Ie="object"==typeof global&&global&&global.Object===Object&&global,_e="object"==typeof self&&self&&self.Object===Object&&self,Re=Ie||_e||Function("return this")(),We=Re.Symbol,Ne=Object.prototype,Oe=Ne.hasOwnProperty,Fe=Ne.toString,je=We?We.toStringTag:void 0;var $e=Object.prototype.toString;var ze="[object Null]",He="[object Undefined]",Ue=We?We.toStringTag:void 0;function Be(e){return null==e?void 0===e?He:ze:Ue&&Ue in Object(e)?function(e){var t=Oe.call(e,je),n=e[je];try{e[je]=void 0;var i=!0}catch(e){}var a=Fe.call(e);return i&&(t?e[je]=n:delete e[je]),a}(e):function(e){return $e.call(e)}(e)}function Ge(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var Xe="[object AsyncFunction]",Ye="[object Function]",Ve="[object GeneratorFunction]",Ke="[object Proxy]";function qe(e){if(!Ge(e))return!1;var t=Be(e);return t==Ye||t==Ve||t==Xe||t==Ke}var Je,Qe=Re["__core-js_shared__"],Ze=(Je=/[^.]+$/.exec(Qe&&Qe.keys&&Qe.keys.IE_PROTO||""))?"Symbol(src)_1."+Je:"";var et=Function.prototype.toString;function tt(e){if(null!=e){try{return et.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var nt=/^\[object .+?Constructor\]$/,it=Function.prototype,at=Object.prototype,rt=it.toString,ot=at.hasOwnProperty,st=RegExp("^"+rt.call(ot).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dt(e){return!(!Ge(e)||(t=e,Ze&&Ze in t))&&(qe(e)?st:nt).test(tt(e));var t}function lt(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return dt(n)?n:void 0}var ut=lt(Re,"Map"),ct=lt(Object,"create");var ht=Object.prototype.hasOwnProperty;var mt=Object.prototype.hasOwnProperty;function ft(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function gt(e,t){var n,i,a=e.__data__;return("string"==(i=typeof(n=t))||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==n:null===n)?a["string"==typeof t?"string":"hash"]:a.map}function pt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}ft.prototype.clear=function(){this.__data__=ct?ct(null):{},this.size=0},ft.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},ft.prototype.get=function(e){var t=this.__data__;if(ct){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return ht.call(t,e)?t[e]:void 0},ft.prototype.has=function(e){var t=this.__data__;return ct?void 0!==t[e]:mt.call(t,e)},ft.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ct&&void 0===t?"__lodash_hash_undefined__":t,this},pt.prototype.clear=function(){this.size=0,this.__data__={hash:new ft,map:new(ut||De),string:new ft}},pt.prototype.delete=function(e){var t=gt(this,e).delete(e);return this.size-=t?1:0,t},pt.prototype.get=function(e){return gt(this,e).get(e)},pt.prototype.has=function(e){return gt(this,e).has(e)},pt.prototype.set=function(e,t){var n=gt(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this};function vt(e){var t=this.__data__=new De(e);this.size=t.size}vt.prototype.clear=function(){this.__data__=new De,this.size=0},vt.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},vt.prototype.get=function(e){return this.__data__.get(e)},vt.prototype.has=function(e){return this.__data__.has(e)},vt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof De){var i=n.__data__;if(!ut||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new pt(i)}return n.set(e,t),this.size=n.size,this};function yt(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new pt;++t<n;)this.add(e[t])}function bt(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}function wt(e,t){return e.has(t)}yt.prototype.add=yt.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},yt.prototype.has=function(e){return this.__data__.has(e)};var kt=1,Mt=2;function St(e,t,n,i,a,r){var o=n&kt,s=e.length,d=t.length;if(s!=d&&!(o&&d>s))return!1;var l=r.get(e),u=r.get(t);if(l&&u)return l==t&&u==e;var c=-1,h=!0,m=n&Mt?new yt:void 0;for(r.set(e,t),r.set(t,e);++c<s;){var f=e[c],g=t[c];if(i)var p=o?i(g,f,c,t,e,r):i(f,g,c,e,t,r);if(void 0!==p){if(p)continue;h=!1;break}if(m){if(!bt(t,(function(e,t){if(!wt(m,t)&&(f===e||a(f,e,n,i,r)))return m.push(t)}))){h=!1;break}}else if(f!==g&&!a(f,g,n,i,r)){h=!1;break}}return r.delete(e),r.delete(t),h}var Tt=Re.Uint8Array;function Et(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function Pt(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var At=1,xt=2,Ct="[object Boolean]",Lt="[object Date]",Dt="[object Error]",It="[object Map]",_t="[object Number]",Rt="[object RegExp]",Wt="[object Set]",Nt="[object String]",Ot="[object Symbol]",Ft="[object ArrayBuffer]",jt="[object DataView]",$t=We?We.prototype:void 0,zt=$t?$t.valueOf:void 0;var Ht=Array.isArray;var Ut=Object.prototype.propertyIsEnumerable,Bt=Object.getOwnPropertySymbols,Gt=Bt?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,i=null==e?0:e.length,a=0,r=[];++n<i;){var o=e[n];t(o,n,e)&&(r[a++]=o)}return r}(Bt(e),(function(t){return Ut.call(e,t)})))}:function(){return[]};function Xt(e){return null!=e&&"object"==typeof e}function Yt(e){return Xt(e)&&"[object Arguments]"==Be(e)}var Vt=Object.prototype,Kt=Vt.hasOwnProperty,qt=Vt.propertyIsEnumerable,Jt=Yt(function(){return arguments}())?Yt:function(e){return Xt(e)&&Kt.call(e,"callee")&&!qt.call(e,"callee")};var Qt="object"==typeof e&&e&&!e.nodeType&&e,Zt=Qt&&"object"==typeof module&&module&&!module.nodeType&&module,en=Zt&&Zt.exports===Qt?Re.Buffer:void 0,tn=(en?en.isBuffer:void 0)||function(){return!1},nn=9007199254740991,an=/^(?:0|[1-9]\d*)$/;function rn(e,t){var n=typeof e;return!!(t=null==t?nn:t)&&("number"==n||"symbol"!=n&&an.test(e))&&e>-1&&e%1==0&&e<t}var on=9007199254740991;function sn(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=on}var dn={};dn["[object Float32Array]"]=dn["[object Float64Array]"]=dn["[object Int8Array]"]=dn["[object Int16Array]"]=dn["[object Int32Array]"]=dn["[object Uint8Array]"]=dn["[object Uint8ClampedArray]"]=dn["[object Uint16Array]"]=dn["[object Uint32Array]"]=!0,dn["[object Arguments]"]=dn["[object Array]"]=dn["[object ArrayBuffer]"]=dn["[object Boolean]"]=dn["[object DataView]"]=dn["[object Date]"]=dn["[object Error]"]=dn["[object Function]"]=dn["[object Map]"]=dn["[object Number]"]=dn["[object Object]"]=dn["[object RegExp]"]=dn["[object Set]"]=dn["[object String]"]=dn["[object WeakMap]"]=!1;var ln,un="object"==typeof e&&e&&!e.nodeType&&e,cn=un&&"object"==typeof module&&module&&!module.nodeType&&module,hn=cn&&cn.exports===un&&Ie.process,mn=function(){try{var e=cn&&cn.require&&cn.require("util").types;return e||hn&&hn.binding&&hn.binding("util")}catch(e){}}(),fn=mn&&mn.isTypedArray,gn=fn?(ln=fn,function(e){return ln(e)}):function(e){return Xt(e)&&sn(e.length)&&!!dn[Be(e)]},pn=Object.prototype.hasOwnProperty;function vn(e,t){var n=Ht(e),i=!n&&Jt(e),a=!n&&!i&&tn(e),r=!n&&!i&&!a&&gn(e),o=n||i||a||r,s=o?function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}(e.length,String):[],d=s.length;for(var l in e)!pn.call(e,l)||o&&("length"==l||a&&("offset"==l||"parent"==l)||r&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||rn(l,d))||s.push(l);return s}var yn=Object.prototype;var bn=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),wn=Object.prototype.hasOwnProperty;function kn(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||yn))return bn(e);var t,n,i=[];for(var a in Object(e))wn.call(e,a)&&"constructor"!=a&&i.push(a);return i}function Mn(e){return null!=(t=e)&&sn(t.length)&&!qe(t)?vn(e):kn(e);var t}function Sn(e){return function(e,t,n){var i=t(e);return Ht(e)?i:function(e,t){for(var n=-1,i=t.length,a=e.length;++n<i;)e[a+n]=t[n];return e}(i,n(e))}(e,Mn,Gt)}var Tn=1,En=Object.prototype.hasOwnProperty;var Pn=lt(Re,"DataView"),An=lt(Re,"Promise"),xn=lt(Re,"Set"),Cn=lt(Re,"WeakMap"),Ln="[object Map]",Dn="[object Promise]",In="[object Set]",_n="[object WeakMap]",Rn="[object DataView]",Wn=tt(Pn),Nn=tt(ut),On=tt(An),Fn=tt(xn),jn=tt(Cn),$n=Be;(Pn&&$n(new Pn(new ArrayBuffer(1)))!=Rn||ut&&$n(new ut)!=Ln||An&&$n(An.resolve())!=Dn||xn&&$n(new xn)!=In||Cn&&$n(new Cn)!=_n)&&($n=function(e){var t=Be(e),n="[object Object]"==t?e.constructor:void 0,i=n?tt(n):"";if(i)switch(i){case Wn:return Rn;case Nn:return Ln;case On:return Dn;case Fn:return In;case jn:return _n}return t});var zn=1,Hn="[object Arguments]",Un="[object Array]",Bn="[object Object]",Gn=Object.prototype.hasOwnProperty;function Xn(e,t,n,i,a,r){var o=Ht(e),s=Ht(t),d=o?Un:$n(e),l=s?Un:$n(t),u=(d=d==Hn?Bn:d)==Bn,c=(l=l==Hn?Bn:l)==Bn,h=d==l;if(h&&tn(e)){if(!tn(t))return!1;o=!0,u=!1}if(h&&!u)return r||(r=new vt),o||gn(e)?St(e,t,n,i,a,r):function(e,t,n,i,a,r,o){switch(n){case jt:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Ft:return!(e.byteLength!=t.byteLength||!r(new Tt(e),new Tt(t)));case Ct:case Lt:case _t:return xe(+e,+t);case Dt:return e.name==t.name&&e.message==t.message;case Rt:case Nt:return e==t+"";case It:var s=Et;case Wt:var d=i&At;if(s||(s=Pt),e.size!=t.size&&!d)return!1;var l=o.get(e);if(l)return l==t;i|=xt,o.set(e,t);var u=St(s(e),s(t),i,a,r,o);return o.delete(e),u;case Ot:if(zt)return zt.call(e)==zt.call(t)}return!1}(e,t,d,n,i,a,r);if(!(n&zn)){var m=u&&Gn.call(e,"__wrapped__"),f=c&&Gn.call(t,"__wrapped__");if(m||f){var g=m?e.value():e,p=f?t.value():t;return r||(r=new vt),a(g,p,n,i,r)}}return!!h&&(r||(r=new vt),function(e,t,n,i,a,r){var o=n&Tn,s=Sn(e),d=s.length;if(d!=Sn(t).length&&!o)return!1;for(var l=d;l--;){var u=s[l];if(!(o?u in t:En.call(t,u)))return!1}var c=r.get(e),h=r.get(t);if(c&&h)return c==t&&h==e;var m=!0;r.set(e,t),r.set(t,e);for(var f=o;++l<d;){var g=e[u=s[l]],p=t[u];if(i)var v=o?i(p,g,u,t,e,r):i(g,p,u,e,t,r);if(!(void 0===v?g===p||a(g,p,n,i,r):v)){m=!1;break}f||(f="constructor"==u)}if(m&&!f){var y=e.constructor,b=t.constructor;y==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof y&&y instanceof y&&"function"==typeof b&&b instanceof b||(m=!1)}return r.delete(e),r.delete(t),m}(e,t,n,i,a,r))}function Yn(e,t,n,i,a){return e===t||(null==e||null==t||!Xt(e)&&!Xt(t)?e!=e&&t!=t:Xn(e,t,n,i,Yn,a))}var Vn=1,Kn=2;function qn(e){return e==e&&!Ge(e)}function Jn(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}function Qn(e){var t=function(e){for(var t=Mn(e),n=t.length;n--;){var i=t[n],a=e[i];t[n]=[i,a,qn(a)]}return t}(e);return 1==t.length&&t[0][2]?Jn(t[0][0],t[0][1]):function(n){return n===e||function(e,t,n,i){var a=n.length,r=a;if(null==e)return!r;for(e=Object(e);a--;){var o=n[a];if(o[2]?o[1]!==e[o[0]]:!(o[0]in e))return!1}for(;++a<r;){var s=(o=n[a])[0],d=e[s],l=o[1];if(o[2]){if(void 0===d&&!(s in e))return!1}else{var u=new vt;if(!Yn(l,d,Vn|Kn,i,u))return!1}}return!0}(n,0,t)}}var Zn="[object Symbol]";function ei(e){return"symbol"==typeof e||Xt(e)&&Be(e)==Zn}var ti=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ni=/^\w*$/;function ii(e,t){if(Ht(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!ei(e))||(ni.test(e)||!ti.test(e)||null!=t&&e in Object(t))}var ai="Expected a function";function ri(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(ai);var n=function(){var i=arguments,a=t?t.apply(this,i):i[0],r=n.cache;if(r.has(a))return r.get(a);var o=e.apply(this,i);return n.cache=r.set(a,o)||r,o};return n.cache=new(ri.Cache||pt),n}ri.Cache=pt;var oi=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,si=/\\(\\)?/g,di=function(e){var t=ri(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(oi,(function(e,n,i,a){t.push(i?a.replace(si,"$1"):n||e)})),t}));var li=1/0,ui=We?We.prototype:void 0,ci=ui?ui.toString:void 0;function hi(e){if("string"==typeof e)return e;if(Ht(e))return function(e,t){for(var n=-1,i=null==e?0:e.length,a=Array(i);++n<i;)a[n]=t(e[n],n,e);return a}(e,hi)+"";if(ei(e))return ci?ci.call(e):"";var t=e+"";return"0"==t&&1/e==-li?"-0":t}function mi(e){return null==e?"":hi(e)}function fi(e,t){return Ht(e)?e:ii(e,t)?[e]:di(mi(e))}var gi=1/0;function pi(e){if("string"==typeof e||ei(e))return e;var t=e+"";return"0"==t&&1/e==-gi?"-0":t}function vi(e,t){for(var n=0,i=(t=fi(t,e)).length;null!=e&&n<i;)e=e[pi(t[n++])];return n&&n==i?e:void 0}function yi(e,t){return null!=e&&t in Object(e)}function bi(e,t){return null!=e&&function(e,t,n){for(var i=-1,a=(t=fi(t,e)).length,r=!1;++i<a;){var o=pi(t[i]);if(!(r=null!=e&&n(e,o)))break;e=e[o]}return r||++i!=a?r:!!(a=null==e?0:e.length)&&sn(a)&&rn(o,a)&&(Ht(e)||Jt(e))}(e,t,yi)}var wi=1,ki=2;function Mi(e,t){return ii(e)&&qn(t)?Jn(pi(e),t):function(n){var i=function(e,t,n){var i=null==e?void 0:vi(e,t);return void 0===i?n:i}(n,e);return void 0===i&&i===t?bi(n,e):Yn(t,i,wi|ki)}}function Si(e){return e}function Ti(e){return ii(e)?(t=pi(e),function(e){return null==e?void 0:e[t]}):function(e){return function(t){return vi(t,e)}}(e);var t}function Ei(e){return e!=e}function Pi(e,t){return!!(null==e?0:e.length)&&function(e,t,n){return t==t?function(e,t,n){for(var i=n-1,a=e.length;++i<a;)if(e[i]===t)return i;return-1}(e,t,n):function(e,t,n){for(var i=e.length,a=n+-1;++a<i;)if(t(e[a],a,e))return a;return-1}(e,Ei,n)}(e,t,0)>-1}var Ai=xn&&1/Pt(new xn([,-0]))[1]==1/0?function(e){return new xn(e)}:function(){},xi=200;function Ci(e,t){return e&&e.length?function(e,t,n){var i=-1,a=Pi,r=e.length,o=!0,s=[],d=s;if(r>=xi){var l=t?null:Ai(e);if(l)return Pt(l);o=!1,a=wt,d=new yt}else d=t?[]:s;e:for(;++i<r;){var u=e[i],c=t?t(u):u;if(u=0!==u?u:0,o&&c==c){for(var h=d.length;h--;)if(d[h]===c)continue e;t&&d.push(c),s.push(u)}else a(d,c,n)||(d!==s&&d.push(c),s.push(u))}return s}(e,"function"==typeof(n=t)?n:null==n?Si:"object"==typeof n?Ht(n)?Mi(n[0],n[1]):Qn(n):Ti(n)):[];var n}const Li=new class{setDevice(e){this.setItem(M,e)}getDevice(){return this.getItem(M)}resetDevice(){this.resetItem(M)}getAnonymousMode(){return this.getItem(F)||!1}setAnonymousMode(e){this.setItem(F,e)}clearAnonymousMode(){this.resetItem(F)}setAppConfig(e,t){this.setItem(e,t)}getAppConfig(e){return this.getItem(e)}setLanguageCode(e){this.setItem(B,e||"en")}getLanguageCode(){return this.getItem(B)||"en"}setCampaignRules(e,t){this.setItem(e,t)}getCampaignRules(e){return this.getItem(e)}setPaywalls(e,t){this.setItem(e,t)}getPaywalls(e){return this.getItem(e)}setActiveEntitlements(e,t){this.setItem(e,t)}setNamiEntitlements(e,t){this.setItem(e,t)}getNamiEntitlements(e){return this.getItem(e)||[]}setProducts(e,t){this.setItem(e,t)}getProducts(e){return this.getItem(e)}getCachedProducts(){const e=this.getItem(x)??[];return Ci(Ae([...this.getItem(R)??[],...e]),"sku_ref_id")}setNamiConfig(e){this.setItem(S,e)}getNamiConfig(){return this.getItem(S)}setCustomerAttribute(e,t){this.setItem(N+e,t)}getCustomerAttribute(e){return this.getItem(N+e)}getAllCustomerAttributes(){return Object.entries(localStorage).filter((([e])=>e.includes(N))).map((([e,t])=>e.replace(N,"")+":"+t))}getAllCustomerAttributesKeys(){return Object.keys(localStorage).filter((e=>e.includes(N))).map((e=>e.replace(N,"")))}clearCustomerAttribute(e){const t=N+e,n=this.getItem(t);return n&&this.resetItem(t),!!n}clearAllCustomerAttributes(){Object.keys(localStorage).filter((e=>e.includes(N))).map((e=>this.resetItem(e)))}setNamiProfile(e){this.setItem(T,e)}getNamiProfile(){return this.getItem(T)}removeNamiProfile(){this.resetItem(T)}setCustomerJourneyState(e){this.setItem(O,e)}getCustomerJourneyState(){return this.getItem(O)}setSessionCounter(){const e=this.getItem(j),t=e?parseInt(e):$||$;this.setItem(j,t+1)}setLastImpressionId(e){this.setItem(z,e)}getLastImpressionId(){return this.getItem(z)??""}setPurchaseImpression(){const e=this.getLastImpressionId()??"";this.setItem(H,e)}getPurchaseImpression(){return this.getItem(H)??""}setSessionId(e){e&&this.setItem(U,e)}getSessionId(){return this.getItem(U)??""}clearSessionId(){this.resetItem(U)}setPurchaseChannel(e){e&&this.setItem(G,e)}getPurchaseChannel(){return this.getItem(G)}setItem(e,t){try{const n=JSON.stringify(t);localStorage.setItem(e,n)}catch(e){Pe.error("Error setting item in localStorage:",e)}}getItem(e){try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch(t){return Pe.error("Error getting item from localStorage:",e,": ",t),null}}resetItem(e){try{localStorage.removeItem(e)}catch(e){Pe.error("Error removing item from localStorage:",e)}}clear(){try{localStorage.clear()}catch(e){Pe.error("Error clearing localStorage:",e)}}};class Di extends Error{constructor(e,t){super(t),this.statusCode=e,this.status=e,this.message=`RetryLimitExceededError: ${this.message}`}}class Ii extends Error{constructor(){super(f)}}class _i extends Error{constructor(){super(c)}}class Ri extends Error{constructor(){super(h)}}class Wi extends Error{constructor(){super(m)}}class Ni extends Error{constructor(){super(g)}}class Oi extends Error{constructor(){super(v)}}class Fi extends Error{constructor(){super(y)}}class ji extends Error{constructor(){super(y)}}class $i extends Error{constructor(){super(p)}}class zi extends Error{constructor(e){super(e),this.message=`BadRequestError: ${this.message}`}}class Hi extends Error{constructor(e){super(e),this.message=`NotFoundError: ${this.message}`}}class Ui extends Error{constructor(e,t){super(t),this.statusCode=e,this.message=`ClientError: ${this.message}`}}class Bi extends Error{constructor(e){super(e),this.message=`ServerError: ${this.message}`}}const Gi=(e,t)=>{if(e==de)throw new zi(t);if(e==le)throw new Hi(t);if(e>de&&e<ue)throw new Ui(e,t);if(e>=ue)throw new Bi(t)};async function Xi(e,t,n=re,i=ie){let a=0;const r=async()=>{const o=await async function(e,t={},n){const i=new AbortController,a=setTimeout((()=>i.abort()),n);t.signal=i.signal;const r=await fetch(e,t);return clearTimeout(a),r}(e,t,n);if(!o.ok){if(a++,a<=i){const e=1e3*(a+ae);return await new Promise((t=>setTimeout(t,e))),r()}throw new Di(o.status,`Request failed after ${i} retries`)}return o};return(await r()).json()}var Yi;!function(e){e.SDK="sdk",e.ML="ml",e.THIRD_PARTY_ANALYTICS="third_party_analytics",e.THIRD_PARTY_TRANSACTIONS="third_party_transactions",e.PAYWALL_PERSONALIZATION="paywall_personalization",e.ANONYMOUS_MODE_CAPABILITY="anonymous_allowed",e.LANGUAGE_MANAGEMENT="language_management",e.ENTITLEMENT_MANAGEMENT="entitlement_management"}(Yi||(Yi={}));const Vi=e=>{let t;if(e?.includes(J))t=K;else{const n=e?.find((e=>e.includes(q)));t=n?n.split("=")[1]:V}return t=t.replace(/\/$/,""),t+"/"+Y},Ki=e=>{const t=Li.getAppConfig(E)||Li.getAppConfig(D);return t?.capabilities?.includes(e)??!1},qi=e=>{const t=!Ki(Yi.THIRD_PARTY_TRANSACTIONS);return e&&!t&&Pe.info(`[${e}] Your plan does not have purchase management features.`),t};function Ji(e,t,n){const i=n.value;return n.value=function(...e){if(!this.platformID)throw new _i;return i.apply(this,e)},n}function Qi(e,t,n){const i=n.value;return n.value=function(...e){const t=Li.getDevice();if(!t?.id)throw new Ri;return i.apply(this,e)},n}class Zi{get deviceID(){return Li.getDevice()?.id}constructor(){const e=Li.getNamiConfig();!this.platformID&&e&&this.configure(e)}static configure(e){this.instance.configure(e)}configure(e){this.baseURL=Vi(e.namiCommands),this.platformID=e.appPlatformID}async login(e){if(!e)throw new Wi;const t=`device/${this.deviceID}/login/`,n={external_id:e};return await this.requestBodyAPI(t,n,"PUT")}async logout(){const e=`device/${this.deviceID}/logout/`;return await this.requestBodyAPI(e,{},"PUT")}async startSession(e){const t=`device/${this.deviceID}/session/`,n=await this.requestBodyAPI(t,{start_time:e,app_env:"production"});Li.setSessionCounter(),n.id&&Li.setSessionId(n.id)}async postImpression(e){const t=`device/${this.deviceID}/impression/`,n=await this.requestBodyAPI(t,e,"POST",!0);n.id&&Li.setLastImpressionId(n.id)}async postConversion(e){const t=`device/${this.deviceID}/transaction/`;await this.requestBodyAPI(t,e,"POST",!0)}async purchaseValidation(e){const t=`device/${this.deviceID}/purchase_event/`;await this.requestBodyAPI(t,e,"PUT")}async fetchAPI(e){const t=`${this.baseURL}/${this.platformID}/`+e;return await Xi(t)}async requestBodyAPI(e,t,n="POST",i=!1,a){const r=`${this.baseURL}/${this.platformID}/`+e,o={method:n,headers:{"Content-Type":"application/json"},body:JSON.stringify(t),keepalive:i};return await Xi(r,o,a)}}var ea;Zi.instance=new Zi,o([Qi],Zi.prototype,"login",null),o([Qi],Zi.prototype,"logout",null),o([Qi],Zi.prototype,"startSession",null),o([Qi],Zi.prototype,"postImpression",null),o([Qi],Zi.prototype,"postConversion",null),o([Qi],Zi.prototype,"purchaseValidation",null),o([Ji],Zi.prototype,"fetchAPI",null),o([Ji],Zi.prototype,"requestBodyAPI",null),e.NamiCampaignRuleType=void 0,(ea=e.NamiCampaignRuleType||(e.NamiCampaignRuleType={})).DEFAULT="default",ea.LABEL="label",ea.UNKNOWN="unknown",ea.URL="url";const ta=()=>Ci(Ae([...Li.getPaywalls(A)??[],...Li.getPaywalls(_)??[]]),"id"),na={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},ia={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},aa={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},ra={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},oa={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class sa{static getFirstMatch(e,t){const n=t.match(e);return n&&n.length>0&&n[1]||""}static getSecondMatch(e,t){const n=t.match(e);return n&&n.length>1&&n[2]||""}static matchAndReturnConst(e,t,n){if(e.test(t))return n}static getWindowsVersionName(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(e){const t=e.split(".").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(e){const t=e.split(".").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0}static getVersionPrecision(e){return e.split(".").length}static compareVersions(e,t,n=!1){const i=sa.getVersionPrecision(e),a=sa.getVersionPrecision(t);let r=Math.max(i,a),o=0;const s=sa.map([e,t],(e=>{const t=r-sa.getVersionPrecision(e),n=e+new Array(t+1).join(".0");return sa.map(n.split("."),(e=>new Array(20-e.length).join("0")+e)).reverse()}));for(n&&(o=r-Math.min(i,a)),r-=1;r>=o;){if(s[0][r]>s[1][r])return 1;if(s[0][r]===s[1][r]){if(r===o)return 0;r-=1}else if(s[0][r]<s[1][r])return-1}}static map(e,t){const n=[];let i;if(Array.prototype.map)return Array.prototype.map.call(e,t);for(i=0;i<e.length;i+=1)n.push(t(e[i]));return n}static find(e,t){let n,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(n=0,i=e.length;n<i;n+=1){const i=e[n];if(t(i,n))return i}}static assign(e,...t){const n=e;let i,a;if(Object.assign)return Object.assign(e,...t);for(i=0,a=t.length;i<a;i+=1){const e=t[i];if("object"==typeof e&&null!==e){Object.keys(e).forEach((t=>{n[t]=e[t]}))}}return e}static getBrowserAlias(e){return na[e]}static getBrowserTypeByAlias(e){return ia[e]||""}}const da=/version\/(\d+(\.?_?\d+)+)/i,la=[{test:[/googlebot/i],describe(e){const t={name:"Googlebot"},n=sa.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/opera/i],describe(e){const t={name:"Opera"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opr\/|opios/i],describe(e){const t={name:"Opera"},n=sa.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/SamsungBrowser/i],describe(e){const t={name:"Samsung Internet for Android"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Whale/i],describe(e){const t={name:"NAVER Whale Browser"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MZBrowser/i],describe(e){const t={name:"MZ Browser"},n=sa.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/focus/i],describe(e){const t={name:"Focus"},n=sa.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/swing/i],describe(e){const t={name:"Swing"},n=sa.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/coast/i],describe(e){const t={name:"Opera Coast"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(e){const t={name:"Opera Touch"},n=sa.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/yabrowser/i],describe(e){const t={name:"Yandex Browser"},n=sa.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/ucbrowser/i],describe(e){const t={name:"UC Browser"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Maxthon|mxios/i],describe(e){const t={name:"Maxthon"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/epiphany/i],describe(e){const t={name:"Epiphany"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/puffin/i],describe(e){const t={name:"Puffin"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sleipnir/i],describe(e){const t={name:"Sleipnir"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/k-meleon/i],describe(e){const t={name:"K-Meleon"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/micromessenger/i],describe(e){const t={name:"WeChat"},n=sa.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/qqbrowser/i],describe(e){const t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},n=sa.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/msie|trident/i],describe(e){const t={name:"Internet Explorer"},n=sa.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/\sedg\//i],describe(e){const t={name:"Microsoft Edge"},n=sa.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/edg([ea]|ios)/i],describe(e){const t={name:"Microsoft Edge"},n=sa.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/vivaldi/i],describe(e){const t={name:"Vivaldi"},n=sa.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/seamonkey/i],describe(e){const t={name:"SeaMonkey"},n=sa.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sailfish/i],describe(e){const t={name:"Sailfish"},n=sa.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return n&&(t.version=n),t}},{test:[/silk/i],describe(e){const t={name:"Amazon Silk"},n=sa.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/phantom/i],describe(e){const t={name:"PhantomJS"},n=sa.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/slimerjs/i],describe(e){const t={name:"SlimerJS"},n=sa.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const t={name:"BlackBerry"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(web|hpw)[o0]s/i],describe(e){const t={name:"WebOS Browser"},n=sa.getFirstMatch(da,e)||sa.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/bada/i],describe(e){const t={name:"Bada"},n=sa.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/tizen/i],describe(e){const t={name:"Tizen"},n=sa.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/qupzilla/i],describe(e){const t={name:"QupZilla"},n=sa.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/firefox|iceweasel|fxios/i],describe(e){const t={name:"Firefox"},n=sa.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/electron/i],describe(e){const t={name:"Electron"},n=sa.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MiuiBrowser/i],describe(e){const t={name:"Miui"},n=sa.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/chromium/i],describe(e){const t={name:"Chromium"},n=sa.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/chrome|crios|crmo/i],describe(e){const t={name:"Chrome"},n=sa.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/GSA/i],describe(e){const t={name:"Google Search"},n=sa.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test(e){const t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe(e){const t={name:"Android Browser"},n=sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/playstation 4/i],describe(e){const t={name:"PlayStation 4"},n=sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/safari|applewebkit/i],describe(e){const t={name:"Safari"},n=sa.getFirstMatch(da,e);return n&&(t.version=n),t}},{test:[/.*/i],describe(e){const t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:sa.getFirstMatch(t,e),version:sa.getSecondMatch(t,e)}}}];var ua=[{test:[/Roku\/DVP/],describe(e){const t=sa.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:ra.Roku,version:t}}},{test:[/windows phone/i],describe(e){const t=sa.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:ra.WindowsPhone,version:t}}},{test:[/windows /i],describe(e){const t=sa.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),n=sa.getWindowsVersionName(t);return{name:ra.Windows,version:t,versionName:n}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(e){const t={name:ra.iOS},n=sa.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return n&&(t.version=n),t}},{test:[/macintosh/i],describe(e){const t=sa.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),n=sa.getMacOSVersionName(t),i={name:ra.MacOS,version:t};return n&&(i.versionName=n),i}},{test:[/(ipod|iphone|ipad)/i],describe(e){const t=sa.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:ra.iOS,version:t}}},{test(e){const t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe(e){const t=sa.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),n=sa.getAndroidVersionName(t),i={name:ra.Android,version:t};return n&&(i.versionName=n),i}},{test:[/(web|hpw)[o0]s/i],describe(e){const t=sa.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),n={name:ra.WebOS};return t&&t.length&&(n.version=t),n}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const t=sa.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||sa.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||sa.getFirstMatch(/\bbb(\d+)/i,e);return{name:ra.BlackBerry,version:t}}},{test:[/bada/i],describe(e){const t=sa.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:ra.Bada,version:t}}},{test:[/tizen/i],describe(e){const t=sa.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:ra.Tizen,version:t}}},{test:[/linux/i],describe:()=>({name:ra.Linux})},{test:[/CrOS/],describe:()=>({name:ra.ChromeOS})},{test:[/PlayStation 4/],describe(e){const t=sa.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:ra.PlayStation4,version:t}}}],ca=[{test:[/googlebot/i],describe:()=>({type:"bot",vendor:"Google"})},{test:[/huawei/i],describe(e){const t=sa.getFirstMatch(/(can-l01)/i,e)&&"Nova",n={type:aa.mobile,vendor:"Huawei"};return t&&(n.model=t),n}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:()=>({type:aa.tablet,vendor:"Nexus"})},{test:[/ipad/i],describe:()=>({type:aa.tablet,vendor:"Apple",model:"iPad"})},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:()=>({type:aa.tablet,vendor:"Apple",model:"iPad"})},{test:[/kftt build/i],describe:()=>({type:aa.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"})},{test:[/silk/i],describe:()=>({type:aa.tablet,vendor:"Amazon"})},{test:[/tablet(?! pc)/i],describe:()=>({type:aa.tablet})},{test(e){const t=e.test(/ipod|iphone/i),n=e.test(/like (ipod|iphone)/i);return t&&!n},describe(e){const t=sa.getFirstMatch(/(ipod|iphone)/i,e);return{type:aa.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:aa.mobile,vendor:"Nexus"})},{test:[/[^-]mobi/i],describe:()=>({type:aa.mobile})},{test:e=>"blackberry"===e.getBrowserName(!0),describe:()=>({type:aa.mobile,vendor:"BlackBerry"})},{test:e=>"bada"===e.getBrowserName(!0),describe:()=>({type:aa.mobile})},{test:e=>"windows phone"===e.getBrowserName(),describe:()=>({type:aa.mobile,vendor:"Microsoft"})},{test(e){const t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:()=>({type:aa.tablet})},{test:e=>"android"===e.getOSName(!0),describe:()=>({type:aa.mobile})},{test:e=>"macos"===e.getOSName(!0),describe:()=>({type:aa.desktop,vendor:"Apple"})},{test:e=>"windows"===e.getOSName(!0),describe:()=>({type:aa.desktop})},{test:e=>"linux"===e.getOSName(!0),describe:()=>({type:aa.desktop})},{test:e=>"playstation 4"===e.getOSName(!0),describe:()=>({type:aa.tv})},{test:e=>"roku"===e.getOSName(!0),describe:()=>({type:aa.tv})}],ha=[{test:e=>"microsoft edge"===e.getBrowserName(!0),describe(e){if(/\sedg\//i.test(e))return{name:oa.Blink};const t=sa.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:oa.EdgeHTML,version:t}}},{test:[/trident/i],describe(e){const t={name:oa.Trident},n=sa.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:e=>e.test(/presto/i),describe(e){const t={name:oa.Presto},n=sa.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test(e){const t=e.test(/gecko/i),n=e.test(/like gecko/i);return t&&!n},describe(e){const t={name:oa.Gecko},n=sa.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(apple)?webkit\/537\.36/i],describe:()=>({name:oa.Blink})},{test:[/(apple)?webkit/i],describe(e){const t={name:oa.WebKit},n=sa.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}}];class ma{constructor(e,t=!1){if(null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=sa.find(la,(e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=sa.find(ua,(e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:t}=this.getOS();return e?String(t).toLowerCase()||"":t||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:t}=this.getPlatform();return e?String(t).toLowerCase()||"":t||""}parsePlatform(){this.parsedResult.platform={};const e=sa.find(ca,(e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const e=sa.find(ha,(e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return sa.assign({},this.parsedResult)}satisfies(e){const t={};let n=0;const i={};let a=0;if(Object.keys(e).forEach((r=>{const o=e[r];"string"==typeof o?(i[r]=o,a+=1):"object"==typeof o&&(t[r]=o,n+=1)})),n>0){const e=Object.keys(t),n=sa.find(e,(e=>this.isOS(e)));if(n){const e=this.satisfies(t[n]);if(void 0!==e)return e}const i=sa.find(e,(e=>this.isPlatform(e)));if(i){const e=this.satisfies(t[i]);if(void 0!==e)return e}}if(a>0){const e=Object.keys(i),t=sa.find(e,(e=>this.isBrowser(e,!0)));if(void 0!==t)return this.compareVersion(i[t])}}isBrowser(e,t=!1){const n=this.getBrowserName().toLowerCase();let i=e.toLowerCase();const a=sa.getBrowserTypeByAlias(i);return t&&a&&(i=a.toLowerCase()),i===n}compareVersion(e){let t=[0],n=e,i=!1;const a=this.getBrowserVersion();if("string"==typeof a)return">"===e[0]||"<"===e[0]?(n=e.substr(1),"="===e[1]?(i=!0,n=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?n=e.substr(1):"~"===e[0]&&(i=!0,n=e.substr(1)),t.indexOf(sa.compareVersions(a,n,i))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,t=!1){return this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some((e=>this.is(e)))}}class fa{static getParser(e,t=!1){if("string"!=typeof e)throw new Error("UserAgent should be a string");return new ma(e,t)}static parse(e){return new ma(e).getResult()}static get BROWSER_MAP(){return ia}static get ENGINE_MAP(){return oa}static get OS_MAP(){return ra}static get PLATFORMS_MAP(){return aa}}const ga={tablet:"tablet",mobile:"phone",tv:"television",desktop:"desktop"},pa=e=>{if("undefined"==typeof window)return{os_version:"X.X.X",os_name:"Server",browser_name:"Unknown",browser_version:"X.X.X",sdk_client:"web",sdk_version:d,language:"en"};const t=fa.getParser(window.navigator.userAgent),n=t.getPlatform(),i={os_version:t.getOSVersion(),o