@amplitude/session-replay-browser 1.30.3 → 1.30.5-feat-zoning-010526.0

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.
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "1.30.3";
1
+ export declare const VERSION = "1.30.5-feat-zoning-010526.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,WAAW,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,gCAAgC,CAAC"}
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // Autogenerated by `yarn version-file`. DO NOT EDIT
5
- exports.VERSION = '1.30.3';
5
+ exports.VERSION = '1.30.5-feat-zoning-010526.0';
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACvC,QAAA,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["// Autogenerated by `yarn version-file`. DO NOT EDIT\nexport const VERSION = '1.30.3';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACvC,QAAA,OAAO,GAAG,6BAA6B,CAAC","sourcesContent":["// Autogenerated by `yarn version-file`. DO NOT EDIT\nexport const VERSION = '1.30.5-feat-zoning-010526.0';\n"]}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "1.30.3";
1
+ export declare const VERSION = "1.30.5-feat-zoning-010526.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,WAAW,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,gCAAgC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  // Autogenerated by `yarn version-file`. DO NOT EDIT
2
- export var VERSION = '1.30.3';
2
+ export var VERSION = '1.30.5-feat-zoning-010526.0';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["// Autogenerated by `yarn version-file`. DO NOT EDIT\nexport const VERSION = '1.30.3';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,CAAC,IAAM,OAAO,GAAG,6BAA6B,CAAC","sourcesContent":["// Autogenerated by `yarn version-file`. DO NOT EDIT\nexport const VERSION = '1.30.5-feat-zoning-010526.0';\n"]}
@@ -1,2 +1,2 @@
1
- import{_ as e,a as t,b as n,c as i,d as r,o as s}from"./targeting-min.js";var o,a;!function(e){e.SET="$set",e.SET_ONCE="$setOnce",e.ADD="$add",e.APPEND="$append",e.PREPEND="$prepend",e.REMOVE="$remove",e.PREINSERT="$preInsert",e.POSTINSERT="$postInsert",e.UNSET="$unset",e.CLEAR_ALL="$clearAll"}(o||(o={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(a||(a={}));var l,c="".concat("AMP","_unsent"),d="$default_instance",u="https://api2.amplitude.com/2/httpapi";!function(e){e.Unknown="unknown",e.Skipped="skipped",e.Success="success",e.RateLimit="rate_limit",e.PayloadTooLarge="payload_too_large",e.Invalid="invalid",e.Failed="failed",e.Timeout="Timeout",e.SystemError="SystemError"}(l||(l={}));var h,g=function(){var e="ampIntegrationContext";return"undefined"!=typeof globalThis&&void 0!==globalThis[e]?globalThis[e]:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},v=e([],t(Array(256).keys()),!1).map(function(e){return e.toString(16).padStart(2,"0")}),f=function(n){var i,r=g();if(!(null===(i=null==r?void 0:r.crypto)||void 0===i?void 0:i.getRandomValues))return function(e){return e?(e^16*Math.random()>>e/4).toString(16):(String(1e7)+String(-1e3)+String(-4e3)+String(-8e3)+String(-1e11)).replace(/[018]/g,f)}(n);var s=r.crypto.getRandomValues(new Uint8Array(16));return s[6]=15&s[6]|64,s[8]=63&s[8]|128,e([],t(s.entries()),!1).map(function(e){var n=t(e,2),i=n[0],r=n[1];return[4,6,8,10].includes(i)?"-".concat(v[r]):v[r]}).join("")},p=function(e){return{promise:e||Promise.resolve()}};!function(e){e[e.None=0]="None",e[e.Error=1]="Error",e[e.Warn=2]="Warn",e[e.Verbose=3]="Verbose",e[e.Debug=4]="Debug"}(h||(h={}));var m="Amplitude Logger ",y=function(){function e(){this.logLevel=h.None}return e.prototype.disable=function(){this.logLevel=h.None},e.prototype.enable=function(e){void 0===e&&(e=h.Warn),this.logLevel=e},e.prototype.log=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<h.Verbose||console.log("".concat(m,"[Log]: ").concat(e.join(" ")))},e.prototype.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<h.Warn||console.warn("".concat(m,"[Warn]: ").concat(e.join(" ")))},e.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<h.Error||console.error("".concat(m,"[Error]: ").concat(e.join(" ")))},e.prototype.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<h.Debug||console.log("".concat(m,"[Debug]: ").concat(e.join(" ")))},e}(),b=function(){return{flushMaxRetries:12,flushQueueSize:200,flushIntervalMillis:1e4,instanceName:d,logLevel:h.Warn,loggerProvider:new y,offline:!1,optOut:!1,serverUrl:u,serverZone:"US",useBatch:!1}},S=function(){function e(e){var t,n,i,r;this._optOut=!1;var s=b();this.apiKey=e.apiKey,this.flushIntervalMillis=null!==(t=e.flushIntervalMillis)&&void 0!==t?t:s.flushIntervalMillis,this.flushMaxRetries=e.flushMaxRetries||s.flushMaxRetries,this.flushQueueSize=e.flushQueueSize||s.flushQueueSize,this.instanceName=e.instanceName||s.instanceName,this.loggerProvider=e.loggerProvider||s.loggerProvider,this.logLevel=null!==(n=e.logLevel)&&void 0!==n?n:s.logLevel,this.minIdLength=e.minIdLength,this.plan=e.plan,this.ingestionMetadata=e.ingestionMetadata,this.offline=void 0!==e.offline?e.offline:s.offline,this.optOut=null!==(i=e.optOut)&&void 0!==i?i:s.optOut,this.serverUrl=e.serverUrl,this.serverZone=e.serverZone||s.serverZone,this.storageProvider=e.storageProvider,this.transportProvider=e.transportProvider,this.useBatch=null!==(r=e.useBatch)&&void 0!==r?r:s.useBatch,this.loggerProvider.enable(this.logLevel);var o=C(e.serverUrl,e.serverZone,e.useBatch);this.serverZone=o.serverZone,this.serverUrl=o.serverUrl}return Object.defineProperty(e.prototype,"optOut",{get:function(){return this._optOut},set:function(e){this._optOut=e},enumerable:!1,configurable:!0}),e}(),I=function(e,t){return"EU"===e?t?"https://api.eu.amplitude.com/batch":"https://api.eu.amplitude.com/2/httpapi":t?"https://api2.amplitude.com/batch":u},C=function(e,t,n){if(void 0===e&&(e=""),void 0===t&&(t=b().serverZone),void 0===n&&(n=b().useBatch),e)return{serverUrl:e,serverZone:void 0};var i=["US","EU"].includes(t)?t:b().serverZone;return{serverZone:i,serverUrl:I(i,n)}};var w=function(e,t,n,i,r){return void 0===r&&(r=null),function(){for(var s=[],o=0;o<arguments.length;o++)s[o]=arguments[o];var a=n(),l=a.logger,c=a.logLevel;if(c&&c<h.Debug||!c||!l)return e.apply(r,s);var d,u={type:"invoke public method",name:t,args:s,stacktrace:(d=1,void 0===d&&(d=0),((new Error).stack||"").split("\n").slice(2+d).map(function(e){return e.trim()})),time:{start:(new Date).toISOString()},states:{}};i&&u.states&&(u.states.before=i());var g=e.apply(r,s);return g&&g.promise?g.promise.then(function(){i&&u.states&&(u.states.after=i()),u.time&&(u.time.end=(new Date).toISOString()),l.debug(JSON.stringify(u,null,2))}):(i&&u.states&&(u.states.after=i()),u.time&&(u.time.end=(new Date).toISOString()),l.debug(JSON.stringify(u,null,2))),g}},E=function(){function e(){}return e.prototype.getApplicationContext=function(){return{versionName:this.versionName,language:P(),platform:"Web",os:void 0,deviceModel:void 0}},e}(),P=function(){return"undefined"!=typeof navigator&&(navigator.languages&&navigator.languages[0]||navigator.language)||""},k=function(){function e(){this.queue=[]}return e.prototype.logEvent=function(e){this.receiver?this.receiver(e):this.queue.length<512&&this.queue.push(e)},e.prototype.setEventReceiver=function(e){this.receiver=e,this.queue.length>0&&(this.queue.forEach(function(t){e(t)}),this.queue=[])},e}(),O=function(){return O=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},O.apply(this,arguments)};function R(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function _(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,s=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(i=s.next()).done;)o.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return o}"function"==typeof SuppressedError&&SuppressedError;var T=function(e,t){var n,i,r=typeof e;if(r!==typeof t)return!1;try{for(var s=R(["string","number","boolean","undefined"]),o=s.next();!o.done;o=s.next()){if(o.value===r)return e===t}}catch(e){n={error:e}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}if(null==e&&null==t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;var a=Array.isArray(e),l=Array.isArray(t);if(a!==l)return!1;if(!a||!l){var c=Object.keys(e).sort(),d=Object.keys(t).sort();if(!T(c,d))return!1;var u=!0;return Object.keys(e).forEach(function(n){T(e[n],t[n])||(u=!1)}),u}for(var h=0;h<e.length;h++)if(!T(e[h],t[h]))return!1;return!0};Object.entries||(Object.entries=function(e){for(var t=Object.keys(e),n=t.length,i=new Array(n);n--;)i[n]=[t[n],e[t[n]]];return i});var x,M=function(){function e(){this.identity={userProperties:{}},this.listeners=new Set}return e.prototype.editIdentity=function(){var e=this,t=O({},this.identity.userProperties),n=O(O({},this.identity),{userProperties:t});return{setUserId:function(e){return n.userId=e,this},setDeviceId:function(e){return n.deviceId=e,this},setUserProperties:function(e){return n.userProperties=e,this},setOptOut:function(e){return n.optOut=e,this},updateUserProperties:function(e){var t,i,r,s,o,a,l=n.userProperties||{};try{for(var c=R(Object.entries(e)),d=c.next();!d.done;d=c.next()){var u=_(d.value,2),h=u[0],g=u[1];switch(h){case"$set":try{for(var v=(r=void 0,R(Object.entries(g))),f=v.next();!f.done;f=v.next()){var p=_(f.value,2),m=p[0],y=p[1];l[m]=y}}catch(e){r={error:e}}finally{try{f&&!f.done&&(s=v.return)&&s.call(v)}finally{if(r)throw r.error}}break;case"$unset":try{for(var b=(o=void 0,R(Object.keys(g))),S=b.next();!S.done;S=b.next()){delete l[m=S.value]}}catch(e){o={error:e}}finally{try{S&&!S.done&&(a=b.return)&&a.call(b)}finally{if(o)throw o.error}}break;case"$clearAll":l={}}}}catch(e){t={error:e}}finally{try{d&&!d.done&&(i=c.return)&&i.call(c)}finally{if(t)throw t.error}}return n.userProperties=l,this},commit:function(){return e.setIdentity(n),this}}},e.prototype.getIdentity=function(){return O({},this.identity)},e.prototype.setIdentity=function(e){var t=O({},this.identity);this.identity=O({},e),T(t,this.identity)||this.listeners.forEach(function(t){t(e)})},e.prototype.addIdentityListener=function(e){this.listeners.add(e)},e.prototype.removeIdentityListener=function(e){this.listeners.delete(e)},e}(),D="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:self,L=function(){function e(){this.identityStore=new M,this.eventBridge=new k,this.applicationContextProvider=new E}return e.getInstance=function(t){return D.analyticsConnectorInstances||(D.analyticsConnectorInstances={}),D.analyticsConnectorInstances[t]||(D.analyticsConnectorInstances[t]=new e),D.analyticsConnectorInstances[t]},e}(),q=function(e){var t=0;if(0===e.length)return t;for(var n=0;n<e.length;n++){t=(t<<5)-t+e.charCodeAt(n),t|=0}return t},N=function(){function e(){}return e.prototype.send=function(e,t){return Promise.resolve(null)},e.prototype.buildResponse=function(e){var t,n,i,r,s,o,a,c,d,u,h,g,v,f,p,m,y,b,S,I,C,w;if("object"!=typeof e)return null;var E=e.code||0,P=this.buildStatus(E);switch(P){case l.Success:return{status:P,statusCode:E,body:{eventsIngested:null!==(t=e.events_ingested)&&void 0!==t?t:0,payloadSizeBytes:null!==(n=e.payload_size_bytes)&&void 0!==n?n:0,serverUploadTime:null!==(i=e.server_upload_time)&&void 0!==i?i:0}};case l.Invalid:return{status:P,statusCode:E,body:{error:null!==(r=e.error)&&void 0!==r?r:"",missingField:null!==(s=e.missing_field)&&void 0!==s?s:"",eventsWithInvalidFields:null!==(o=e.events_with_invalid_fields)&&void 0!==o?o:{},eventsWithMissingFields:null!==(a=e.events_with_missing_fields)&&void 0!==a?a:{},eventsWithInvalidIdLengths:null!==(c=e.events_with_invalid_id_lengths)&&void 0!==c?c:{},epsThreshold:null!==(d=e.eps_threshold)&&void 0!==d?d:0,exceededDailyQuotaDevices:null!==(u=e.exceeded_daily_quota_devices)&&void 0!==u?u:{},silencedDevices:null!==(h=e.silenced_devices)&&void 0!==h?h:[],silencedEvents:null!==(g=e.silenced_events)&&void 0!==g?g:[],throttledDevices:null!==(v=e.throttled_devices)&&void 0!==v?v:{},throttledEvents:null!==(f=e.throttled_events)&&void 0!==f?f:[]}};case l.PayloadTooLarge:return{status:P,statusCode:E,body:{error:null!==(p=e.error)&&void 0!==p?p:""}};case l.RateLimit:return{status:P,statusCode:E,body:{error:null!==(m=e.error)&&void 0!==m?m:"",epsThreshold:null!==(y=e.eps_threshold)&&void 0!==y?y:0,throttledDevices:null!==(b=e.throttled_devices)&&void 0!==b?b:{},throttledUsers:null!==(S=e.throttled_users)&&void 0!==S?S:{},exceededDailyQuotaDevices:null!==(I=e.exceeded_daily_quota_devices)&&void 0!==I?I:{},exceededDailyQuotaUsers:null!==(C=e.exceeded_daily_quota_users)&&void 0!==C?C:{},throttledEvents:null!==(w=e.throttled_events)&&void 0!==w?w:[]}};case l.Timeout:default:return{status:P,statusCode:E}}},e.prototype.buildStatus=function(e){return function(e){return e>=200&&e<300}(e)?l.Success:429===e?l.RateLimit:413===e?l.PayloadTooLarge:408===e?l.Timeout:e>=400&&e<500?l.Invalid:e>=500?l.Failed:l.Unknown},e}(),j=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.send=function(e,t){return i(this,void 0,void 0,function(){var n,i,s;return r(this,function(r){switch(r.label){case 0:if("undefined"==typeof fetch)throw new Error("FetchTransport is not supported");return n={headers:{"Content-Type":"application/json",Accept:"*/*"},body:JSON.stringify(t),method:"POST"},[4,fetch(e,n)];case 1:return[4,(i=r.sent()).text()];case 2:s=r.sent();try{return[2,this.buildResponse(JSON.parse(s))]}catch(e){return[2,this.buildResponse({code:i.status})]}return[2]}})})},t}(N),$=function(){function e(e,t){this.key="AMP_remote_config_".concat(e.substring(0,10)),this.logger=t}return e.prototype.fetchConfig=function(){var e=null,t={remoteConfig:null,lastFetch:new Date};try{e=localStorage.getItem(this.key)}catch(e){return this.logger.debug("Remote config localstorage failed to access: ",e),Promise.resolve(t)}if(null===e)return this.logger.debug("Remote config localstorage gets null because the key does not exist"),Promise.resolve(t);try{var n=JSON.parse(e);return this.logger.debug("Remote config localstorage parsed successfully: ".concat(JSON.stringify(n))),Promise.resolve({remoteConfig:n.remoteConfig,lastFetch:new Date(n.lastFetch)})}catch(e){return this.logger.debug("Remote config localstorage failed to parse: ",e),localStorage.removeItem(this.key),Promise.resolve(t)}},e.prototype.setConfig=function(e){try{return localStorage.setItem(this.key,JSON.stringify(e)),this.logger.debug("Remote config localstorage set successfully."),Promise.resolve(!0)}catch(e){this.logger.debug("Remote config localstorage failed to set: ",e)}return Promise.resolve(!1)},e}(),F=function(){function e(e,t,n,i){void 0===n&&(n="US"),this.callbackInfos=[],this.lastSuccessfulFetch=null,this.fetchPromise=null,this.apiKey=e,this.serverUrl=i||("US"===n?"https://sr-client-cfg.amplitude.com/config":"https://sr-client-cfg.eu.amplitude.com/config"),this.logger=t,this.storage=new $(e,t)}return e.prototype.subscribe=function(e,t,n){var i=f(),r={id:i,key:e,deliveryMode:t,callback:n};return this.callbackInfos.push(r),"all"===t?this.subscribeAll(r):this.subscribeWaitForRemote(r,t.timeout),i},e.prototype.unsubscribe=function(e){var t=this.callbackInfos.findIndex(function(t){return t.id===e});return-1===t?(this.logger.debug("Remote config client unsubscribe failed because callback with id ".concat(e," doesn't exist.")),!1):(this.callbackInfos.splice(t,1),this.logger.debug("Remote config client unsubscribe succeeded removing callback with id ".concat(e,".")),!0)},e.prototype.updateConfigs=function(){return i(this,void 0,void 0,function(){var e,t=this;return r(this,function(n){switch(n.label){case 0:return this.lastSuccessfulFetch&&Date.now()-this.lastSuccessfulFetch<3e5?(this.logger.debug("Remote config client skipping updateConfigs: Too recent"),[2]):[4,this.getOrCreateFetchPromise()];case 1:return e=n.sent(),this.storage.setConfig(e),this.callbackInfos.forEach(function(n){t.sendCallback(n,e,"remote")}),[2]}})})},e.prototype.getOrCreateFetchPromise=function(){var e=this;return this.fetchPromise||(this.fetchPromise=this.fetch().then(function(t){return null!==t.remoteConfig&&(e.lastSuccessfulFetch=Date.now()),t}).finally(function(){e.fetchPromise=null})),this.fetchPromise},e.prototype.subscribeAll=function(e){return i(this,void 0,void 0,function(){var t,n,i,s=this;return r(this,function(r){switch(r.label){case 0:return t=this.getOrCreateFetchPromise().then(function(t){s.logger.debug("Remote config client subscription all mode fetched from remote: ".concat(JSON.stringify(t))),s.sendCallback(e,t,"remote"),s.storage.setConfig(t)}),n=this.storage.fetchConfig().then(function(e){return e}),[4,Promise.race([t,n])];case 1:return void 0!==(i=r.sent())&&(this.logger.debug("Remote config client subscription all mode fetched from cache: ".concat(JSON.stringify(i))),null!==i.remoteConfig?this.sendCallback(e,i,"cache"):this.logger.debug("Remote config client skips sending callback because cache is empty (first time user).")),[4,t];case 2:return r.sent(),[2]}})})},e.prototype.subscribeWaitForRemote=function(e,t){return i(this,void 0,void 0,function(){var n,i;return r(this,function(r){switch(r.label){case 0:n=new Promise(function(e,n){setTimeout(function(){n("Timeout exceeded")},t)}),r.label=1;case 1:return r.trys.push([1,3,,5]),[4,Promise.race([this.getOrCreateFetchPromise(),n])];case 2:return i=r.sent(),this.logger.debug("Remote config client subscription wait for remote mode returns from remote."),this.sendCallback(e,i,"remote"),this.storage.setConfig(i),[3,5];case 3:return r.sent(),this.logger.debug("Remote config client subscription wait for remote mode exceeded timeout. Try to fetch from cache."),[4,this.storage.fetchConfig()];case 4:return null!==(i=r.sent()).remoteConfig?(this.logger.debug("Remote config client subscription wait for remote mode returns a cached copy."),this.sendCallback(e,i,"cache")):(this.logger.debug("Remote config client subscription wait for remote mode failed to fetch cache."),this.sendCallback(e,i,"remote")),[3,5];case 5:return[2]}})})},e.prototype.sendCallback=function(e,t,n){var i;e.lastCallback=new Date,i=e.key?e.key.split(".").reduce(function(e,t){return null===e?e:t in e?e[t]:null},t.remoteConfig):t.remoteConfig,e.callback(i,n,t.lastFetch)},e.prototype.fetch=function(e,t){return void 0===e&&(e=3),void 0===t&&(t=1e3),i(this,void 0,void 0,function(){var n,i,s,o,a,l,c=this;return r(this,function(d){switch(d.label){case 0:n=t/e,i={remoteConfig:null,lastFetch:new Date},s=function(i){var s,a,l,d,u;return r(this,function(r){switch(r.label){case 0:s=new AbortController,a=setTimeout(function(){return s.abort()},t),r.label=1;case 1:return r.trys.push([1,7,8,9]),[4,fetch(o.getUrlParams(),{method:"GET",headers:{Accept:"*/*"},signal:s.signal})];case 2:return(l=r.sent()).ok?[3,4]:[4,l.text()];case 3:return d=r.sent(),o.logger.debug("Remote config client fetch with retry time ".concat(e," failed with ").concat(l.status,": ").concat(d)),[3,6];case 4:return[4,l.json()];case 5:return[2,{value:{remoteConfig:r.sent(),lastFetch:new Date}}];case 6:return[3,9];case 7:return(u=r.sent())instanceof Error&&"AbortError"===u.name?o.logger.debug("Remote config client fetch with retry time ".concat(e," timed out after ").concat(t,"ms")):o.logger.debug("Remote config client fetch with retry time ".concat(e," is rejected because: "),u),[3,9];case 8:return clearTimeout(a),[7];case 9:return i<e-1?[4,new Promise(function(e){return setTimeout(e,c.getJitterDelay(n))})]:[3,11];case 10:r.sent(),r.label=11;case 11:return[2]}})},o=this,a=0,d.label=1;case 1:return a<e?[5,s(a)]:[3,4];case 2:if("object"==typeof(l=d.sent()))return[2,l.value];d.label=3;case 3:return a++,[3,1];case 4:return[2,i]}})})},e.prototype.getJitterDelay=function(e){return Math.floor(Math.random()*e)},e.prototype.getUrlParams=function(){var t=encodeURIComponent(this.apiKey),n=new URLSearchParams;return n.append("config_group",e.CONFIG_GROUP),"".concat(this.serverUrl,"/").concat(t,"?").concat(n.toString())},e.CONFIG_GROUP="browser",e}();!function(e){e.US="US",e.EU="EU",e.STAGING="STAGING"}(x||(x={}));const U="[Amplitude]",A=`${U} Session Replay ID`,W=x.US,B={enabled:!0},K=`${U} Session Replay Debug`,z="amp-mask";var J;!function(e){e.GET_SR_PROPS="get-sr-props",e.DEBUG_INFO="debug-info",e.FETCH_REQUEST="fetch-request",e.METADATA="metadata",e.TARGETING_DECISION="targeting-decision"}(J||(J={}));class H{constructor(e){this.logger=e,this.log=this.getSafeMethod("log"),this.warn=this.getSafeMethod("warn"),this.error=this.getSafeMethod("error"),this.debug=this.getSafeMethod("debug")}getSafeMethod(e){var t;if(!this.logger)return()=>{};const n=this.logger[e];if("function"==typeof n){return(null!==(t=n.__rrweb_original__)&&void 0!==t?t:n).bind(this.logger)}return()=>{}}enable(e){this.logger.enable(e)}disable(){this.logger.disable()}}const G="medium";const Q=(e,t,n)=>{switch(t){case"light":{if("input"!==e)return!0;const t=n?function(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?t.toLowerCase():null}(n):"";return!!t&&(!!["password","hidden","email","tel"].includes(t)||!!n.autocomplete.startsWith("cc-"))}case"medium":case"conservative":return!0;default:return Q(e,G,n)}},X=(e,t)=>(n,i)=>((e,t={defaultMaskLevel:G},n)=>{var i,r,s;if(n){if(n.closest("."+z))return!0;const e=(null!==(i=t.maskSelector)&&void 0!==i?i:[]).some(e=>n.closest(e));if(e)return!0;if(n.closest(".amp-unmask"))return!1;const s=(null!==(r=t.unmaskSelector)&&void 0!==r?r:[]).some(e=>n.closest(e));if(s)return!1}return Q(e,null!==(s=t.defaultMaskLevel)&&void 0!==s?s:G,n)})(e,t,i)?n.replace(/[^\s]/g,"*"):n,Z=(e,t)=>t||(e===x.STAGING?"https://api-sr.stag2.amplitude.com/sessions/v2/track":e===x.EU?"https://api-sr.eu.amplitude.com/sessions/v2/track":"https://api-sr.amplitude.com/sessions/v2/track"),Y=e=>{const t=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)},V=(e,t)=>{for(const n of t){const t=Y(n.selector);if(t.test(e))return e.replace(t,n.replacement)}return e},ee=()=>i(void 0,void 0,void 0,function*(){try{const e=g();if(e){const{usage:t,quota:n,usageDetails:i}=yield e.navigator.storage.estimate(),r=t?Math.round(t/1024):0;return{totalStorageSize:r,percentOfQuota:t&&n?Math.round(1e3*(t/n+Number.EPSILON))/1e3:0,usageDetails:JSON.stringify(i)}}}catch(e){}return{totalStorageSize:0,percentOfQuota:0,usageDetails:""}}),te=e=>{const t=Object.assign({},e),{apiKey:n}=t;return t.apiKey=`****${n.substring(n.length-4)}`,t},ne=()=>({flushMaxRetries:2,logLevel:h.Warn,loggerProvider:new y,transportProvider:new j});class ie extends S{constructor(e,t){var n,i,r,s,o,a;const l=ne();if(super(Object.assign(Object.assign({transportProvider:l.transportProvider,loggerProvider:new H(t.loggerProvider||l.loggerProvider)},t),{apiKey:e})),this.flushMaxRetries=void 0!==t.flushMaxRetries&&t.flushMaxRetries<=l.flushMaxRetries?t.flushMaxRetries:l.flushMaxRetries,this.apiKey=e,this.sampleRate=t.sampleRate||0,this.serverZone=t.serverZone||W,this.configServerUrl=t.configServerUrl,this.trackServerUrl=t.trackServerUrl,this.shouldInlineStylesheet=t.shouldInlineStylesheet,this.version=t.version,this.performanceConfig=t.performanceConfig||B,this.storeType=null!==(n=t.storeType)&&void 0!==n?n:"idb",this.applyBackgroundColorToBlockedElements=null!==(i=t.applyBackgroundColorToBlockedElements)&&void 0!==i&&i,this.enableUrlChangePolling=null!==(r=t.enableUrlChangePolling)&&void 0!==r&&r,this.urlChangePollingInterval=null!==(s=t.urlChangePollingInterval)&&void 0!==s?s:1e3,this.captureDocumentTitle=null!==(o=t.captureDocumentTitle)&&void 0!==o&&o,t.privacyConfig&&(this.privacyConfig=t.privacyConfig),t.interactionConfig&&(this.interactionConfig=t.interactionConfig,this.interactionConfig.ugcFilterRules&&(e=>{if(!e.every(e=>"string"==typeof e.selector&&"string"==typeof e.replacement))throw new Error("ugcFilterRules must be an array of objects with selector and replacement properties");if(!e.every(e=>{return"string"==typeof(t=e.selector)&&""!==t.trim()&&!!/^\/|^https?:\/\/[^\s]+$/.test(t);var t}))throw new Error("ugcFilterRules must be an array of objects with valid globs")})(this.interactionConfig.ugcFilterRules)),t.debugMode&&(this.debugMode=t.debugMode),void 0!==t.useWebWorker)this.useWebWorker=t.useWebWorker;else{const e=t;void 0!==(null===(a=e.experimental)||void 0===a?void 0:a.useWebWorker)&&(this.useWebWorker=e.experimental.useWebWorker)}t.omitElementTags&&(this.omitElementTags=t.omitElementTags)}}var re=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(re||{}),se=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(se||{});class oe{constructor(e,t){this.localConfig=t,this.remoteConfigClient=e}generateJoinedConfig(){var e,t,n;return i(this,void 0,void 0,function*(){const i=Object.assign({},this.localConfig);let r;i.optOut=this.localConfig.optOut,i.captureEnabled=!0;try{yield new Promise((e,t)=>{this.remoteConfigClient.subscribe("configs.sessionReplay","all",(n,s)=>{var o;if(this.localConfig.loggerProvider.debug(`Session Replay remote configuration received from ${s}:`,JSON.stringify(n,null,2)),!n)return void t(new Error("No remote config received"));const a=n,l=a.sr_sampling_config,c=a.sr_privacy_config,d=a.sr_targeting_config,u=null===(o=i.interactionConfig)||void 0===o?void 0:o.ugcFilterRules;i.interactionConfig=a.sr_interaction_config,i.interactionConfig&&u&&(i.interactionConfig.ugcFilterRules=u),i.loggingConfig=a.sr_logging_config,(l||c||d)&&(r={},l&&(r.sr_sampling_config=l),c&&(r.sr_privacy_config=c),d&&(r.sr_targeting_config=d)),e()})})}catch(e){return this.localConfig.loggerProvider.error("Failed to generate joined config: ",e),i.captureEnabled=!1,{localConfig:this.localConfig,joinedConfig:i,remoteConfig:void 0}}if(!r)return{localConfig:this.localConfig,joinedConfig:i,remoteConfig:r};const{sr_sampling_config:s,sr_privacy_config:o,sr_targeting_config:a}=r;if(s&&Object.keys(s).length>0?(Object.prototype.hasOwnProperty.call(s,"capture_enabled")?i.captureEnabled=s.capture_enabled:i.captureEnabled=!1,Object.prototype.hasOwnProperty.call(s,"sample_rate")&&(i.sampleRate=s.sample_rate)):(i.captureEnabled=!0,this.localConfig.loggerProvider.debug("Remote config successfully fetched, but no values set for project, Session Replay capture enabled.")),o){const r=null!==(e=i.privacyConfig)&&void 0!==e?e:{},s={defaultMaskLevel:null!==(n=null!==(t=o.defaultMaskLevel)&&void 0!==t?t:r.defaultMaskLevel)&&void 0!==n?n:"medium",blockSelector:[],maskSelector:[],unmaskSelector:[]},a=e=>{var t,n,i;const r={};"string"==typeof e.blockSelector&&(e.blockSelector=[e.blockSelector]);for(const n of null!==(t=e.blockSelector)&&void 0!==t?t:[])r[n]="block";for(const t of null!==(n=e.maskSelector)&&void 0!==n?n:[])r[t]="mask";for(const t of null!==(i=e.unmaskSelector)&&void 0!==i?i:[])r[t]="unmask";return r},l=Object.assign(Object.assign({},a(r)),a(o));for(const[e,t]of Object.entries(l))"mask"===t?s.maskSelector.push(e):"block"===t?s.blockSelector.push(e):"unmask"===t&&s.unmaskSelector.push(e);i.privacyConfig=((e,t)=>{const n=document.createDocumentFragment(),i=(e=[])=>{if("string"==typeof e&&(e=[e]),e=e.filter(e=>{try{n.querySelector(e)}catch(n){return t.warn(`[session-replay-browser] omitting selector "${e}" because it is invalid`),!1}return!0}),0!==e.length)return e};return e.blockSelector=i(e.blockSelector),e.maskSelector=i(e.maskSelector),e.unmaskSelector=i(e.unmaskSelector),e})(s,this.localConfig.loggerProvider)}return a&&Object.keys(a).length>0&&(i.targetingConfig=a),this.localConfig.loggerProvider.debug(JSON.stringify({name:"session replay joined config",config:te(i)},null,2)),{localConfig:this.localConfig,joinedConfig:i,remoteConfig:r}})}}var ae=Uint8Array,le=Uint16Array,ce=Uint32Array,de=new ae([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ue=new ae([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),he=new ae([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ge=function(e,t){for(var n=new le(31),i=0;i<31;++i)n[i]=t+=1<<e[i-1];var r=new ce(n[30]);for(i=1;i<30;++i)for(var s=n[i];s<n[i+1];++s)r[s]=s-n[i]<<5|i;return[n,r]},ve=ge(de,2),fe=ve[0],pe=ve[1];fe[28]=258,pe[258]=28;for(var me=ge(ue,0)[1],ye=new le(32768),be=0;be<32768;++be){var Se=(43690&be)>>>1|(21845&be)<<1;Se=(61680&(Se=(52428&Se)>>>2|(13107&Se)<<2))>>>4|(3855&Se)<<4,ye[be]=((65280&Se)>>>8|(255&Se)<<8)>>>1}var Ie=function(e,t,n){for(var i=e.length,r=0,s=new le(t);r<i;++r)++s[e[r]-1];var o,a=new le(t);for(r=0;r<t;++r)a[r]=a[r-1]+s[r-1]<<1;if(n){o=new le(1<<t);var l=15-t;for(r=0;r<i;++r)if(e[r])for(var c=r<<4|e[r],d=t-e[r],u=a[e[r]-1]++<<d,h=u|(1<<d)-1;u<=h;++u)o[ye[u]>>>l]=c}else for(o=new le(i),r=0;r<i;++r)o[r]=ye[a[e[r]-1]++]>>>15-e[r];return o},Ce=new ae(288);for(be=0;be<144;++be)Ce[be]=8;for(be=144;be<256;++be)Ce[be]=9;for(be=256;be<280;++be)Ce[be]=7;for(be=280;be<288;++be)Ce[be]=8;var we=new ae(32);for(be=0;be<32;++be)we[be]=5;var Ee=Ie(Ce,9,0),Pe=Ie(we,5,0),ke=function(e){return(e/8|0)+(7&e&&1)},Oe=function(e,t,n){(null==n||n>e.length)&&(n=e.length);var i=new(e instanceof le?le:e instanceof ce?ce:ae)(n-t);return i.set(e.subarray(t,n)),i},Re=function(e,t,n){n<<=7&t;var i=t/8|0;e[i]|=n,e[i+1]|=n>>>8},_e=function(e,t,n){n<<=7&t;var i=t/8|0;e[i]|=n,e[i+1]|=n>>>8,e[i+2]|=n>>>16},Te=function(e,t){for(var n=[],i=0;i<e.length;++i)e[i]&&n.push({s:i,f:e[i]});var r=n.length,s=n.slice();if(!r)return[new ae(0),0];if(1==r){var o=new ae(n[0].s+1);return o[n[0].s]=1,[o,1]}n.sort(function(e,t){return e.f-t.f}),n.push({s:-1,f:25001});var a=n[0],l=n[1],c=0,d=1,u=2;for(n[0]={s:-1,f:a.f+l.f,l:a,r:l};d!=r-1;)a=n[n[c].f<n[u].f?c++:u++],l=n[c!=d&&n[c].f<n[u].f?c++:u++],n[d++]={s:-1,f:a.f+l.f,l:a,r:l};var h=s[0].s;for(i=1;i<r;++i)s[i].s>h&&(h=s[i].s);var g=new le(h+1),v=xe(n[d-1],g,0);if(v>t){i=0;var f=0,p=v-t,m=1<<p;for(s.sort(function(e,t){return g[t.s]-g[e.s]||e.f-t.f});i<r;++i){var y=s[i].s;if(!(g[y]>t))break;f+=m-(1<<v-g[y]),g[y]=t}for(f>>>=p;f>0;){var b=s[i].s;g[b]<t?f-=1<<t-g[b]++-1:++i}for(;i>=0&&f;--i){var S=s[i].s;g[S]==t&&(--g[S],++f)}v=t}return[new ae(g),v]},xe=function(e,t,n){return-1==e.s?Math.max(xe(e.l,t,n+1),xe(e.r,t,n+1)):t[e.s]=n},Me=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new le(++t),i=0,r=e[0],s=1,o=function(e){n[i++]=e},a=1;a<=t;++a)if(e[a]==r&&a!=t)++s;else{if(!r&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(r),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(r);s=1,r=e[a]}return[n.subarray(0,i),t]},De=function(e,t){for(var n=0,i=0;i<t.length;++i)n+=e[i]*t[i];return n},Le=function(e,t,n){var i=n.length,r=ke(t+2);e[r]=255&i,e[r+1]=i>>>8,e[r+2]=255^e[r],e[r+3]=255^e[r+1];for(var s=0;s<i;++s)e[r+s+4]=n[s];return 8*(r+4+i)},qe=function(e,t,n,i,r,s,o,a,l,c,d){Re(t,d++,n),++r[256];for(var u=Te(r,15),h=u[0],g=u[1],v=Te(s,15),f=v[0],p=v[1],m=Me(h),y=m[0],b=m[1],S=Me(f),I=S[0],C=S[1],w=new le(19),E=0;E<y.length;++E)w[31&y[E]]++;for(E=0;E<I.length;++E)w[31&I[E]]++;for(var P=Te(w,7),k=P[0],O=P[1],R=19;R>4&&!k[he[R-1]];--R);var _,T,x,M,D=c+5<<3,L=De(r,Ce)+De(s,we)+o,q=De(r,h)+De(s,f)+o+14+3*R+De(w,k)+(2*w[16]+3*w[17]+7*w[18]);if(D<=L&&D<=q)return Le(t,d,e.subarray(l,l+c));if(Re(t,d,1+(q<L)),d+=2,q<L){_=Ie(h,g,0),T=h,x=Ie(f,p,0),M=f;var N=Ie(k,O,0);Re(t,d,b-257),Re(t,d+5,C-1),Re(t,d+10,R-4),d+=14;for(E=0;E<R;++E)Re(t,d+3*E,k[he[E]]);d+=3*R;for(var j=[y,I],$=0;$<2;++$){var F=j[$];for(E=0;E<F.length;++E){var U=31&F[E];Re(t,d,N[U]),d+=k[U],U>15&&(Re(t,d,F[E]>>>5&127),d+=F[E]>>>12)}}}else _=Ee,T=Ce,x=Pe,M=we;for(E=0;E<a;++E)if(i[E]>255){U=i[E]>>>18&31;_e(t,d,_[U+257]),d+=T[U+257],U>7&&(Re(t,d,i[E]>>>23&31),d+=de[U]);var A=31&i[E];_e(t,d,x[A]),d+=M[A],A>3&&(_e(t,d,i[E]>>>5&8191),d+=ue[A])}else _e(t,d,_[i[E]]),d+=T[i[E]];return _e(t,d,_[256]),d+T[256]},Ne=new ce([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),je=function(e,t,n,i,r){return function(e,t,n,i,r,s){var o=e.length,a=new ae(i+o+5*(1+Math.floor(o/7e3))+r),l=a.subarray(i,a.length-r),c=0;if(!t||o<8)for(var d=0;d<=o;d+=65535){var u=d+65535;u<o?c=Le(l,c,e.subarray(d,u)):(l[d]=s,c=Le(l,c,e.subarray(d,o)))}else{for(var h=Ne[t-1],g=h>>>13,v=8191&h,f=(1<<n)-1,p=new le(32768),m=new le(f+1),y=Math.ceil(n/3),b=2*y,S=function(t){return(e[t]^e[t+1]<<y^e[t+2]<<b)&f},I=new ce(25e3),C=new le(288),w=new le(32),E=0,P=0,k=(d=0,0),O=0,R=0;d<o;++d){var _=S(d),T=32767&d,x=m[_];if(p[T]=x,m[_]=T,O<=d){var M=o-d;if((E>7e3||k>24576)&&M>423){c=qe(e,l,0,I,C,w,P,k,R,d-R,c),k=E=P=0,R=d;for(var D=0;D<286;++D)C[D]=0;for(D=0;D<30;++D)w[D]=0}var L=2,q=0,N=v,j=T-x&32767;if(M>2&&_==S(d-j))for(var $=Math.min(g,M)-1,F=Math.min(32767,d),U=Math.min(258,M);j<=F&&--N&&T!=x;){if(e[d+L]==e[d+L-j]){for(var A=0;A<U&&e[d+A]==e[d+A-j];++A);if(A>L){if(L=A,q=j,A>$)break;var W=Math.min(j,A-2),B=0;for(D=0;D<W;++D){var K=d-j+D+32768&32767,z=K-p[K]+32768&32767;z>B&&(B=z,x=K)}}}j+=(T=x)-(x=p[T])+32768&32767}if(q){I[k++]=268435456|pe[L]<<18|me[q];var J=31&pe[L],H=31&me[q];P+=de[J]+ue[H],++C[257+J],++w[H],O=d+L,++E}else I[k++]=e[d],++C[e[d]]}}c=qe(e,l,s,I,C,w,P,k,R,d-R,c)}return Oe(a,0,i+ke(c)+r)}(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,n,i,!0)};function $e(e,t){void 0===t&&(t={});var n=function(){var e=1,t=0;return{p:function(n){for(var i=e,r=t,s=n.length,o=0;o!=s;){for(var a=Math.min(o+5552,s);o<a;++o)r+=i+=n[o];i%=65521,r%=65521}e=i,t=r},d:function(){return(e>>>8<<16|(255&t)<<8|t>>>8)+2*((255&e)<<23)}}}();n.p(e);var i,r,s,o=je(e,t,2,4);return i=o,r=t.level,s=0==r?0:r<6?1:9==r?3:2,i[0]=120,i[1]=s<<6|(s?32-2*s:1),function(e,t,n){for(;n;++t)e[t]=n,n>>>=8}(o,o.length-4,n.d()),o}const Fe=e=>{const t={...e,v:"v1"};return function(e,t){var n="";if(!t&&"undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);for(var i=0;i<e.length;){var r=e[i++];r<128||t?n+=String.fromCharCode(r):r<224?n+=String.fromCharCode((31&r)<<6|63&e[i++]):r<240?n+=String.fromCharCode((15&r)<<12|(63&e[i++])<<6|63&e[i++]):(r=((15&r)<<18|(63&e[i++])<<12|(63&e[i++])<<6|63&e[i++])-65536,n+=String.fromCharCode(55296|r>>10,56320|1023&r))}return n}($e(function(e,t){var n=e.length;if(!t&&"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);for(var i=new ae(e.length+(e.length>>>1)),r=0,s=function(e){i[r++]=e},o=0;o<n;++o){if(r+5>i.length){var a=new ae(r+8+(n-o<<1));a.set(i),i=a}var l=e.charCodeAt(o);l<128||t?s(l):l<2048?(s(192|l>>>6),s(128|63&l)):l>55295&&l<57344?(s(240|(l=65536+(1047552&l)|1023&e.charCodeAt(++o))>>>18),s(128|l>>>12&63),s(128|l>>>6&63),s(128|63&l)):(s(224|l>>>12),s(128|l>>>6&63),s(128|63&l))}return Oe(i,0,r)}(JSON.stringify(t))),!0)};class Ue{constructor(e,t,n,i){var r;this.taskQueue=[],this.isProcessing=!1,this.compressEvent=e=>{const t=Fe(e);return JSON.stringify(t)},this.addCompressedEventToManager=(e,t)=>{this.eventsManager&&this.deviceId&&this.eventsManager.addEvent({event:{type:"replay",data:e},sessionId:t,deviceId:this.deviceId})},this.addCompressedEvent=(e,t)=>{if(this.worker)try{this.worker.postMessage({event:e,sessionId:t})}catch(n){"DataCloneError"===n.name?this.worker.postMessage(JSON.stringify({event:e,sessionId:t})):this.config.loggerProvider.warn("Unexpected error while posting message to worker:",n)}else{const n=this.compressEvent(e);this.addCompressedEventToManager(n,t)}},this.terminate=()=>{var e;null===(e=this.worker)||void 0===e||e.terminate()};const s=g();if(this.canUseIdleCallback=s&&"requestIdleCallback"in s,this.eventsManager=e,this.config=t,this.deviceId=n,this.timeout=(null===(r=t.performanceConfig)||void 0===r?void 0:r.timeout)||2e3,i){t.loggerProvider.log("Enabling web worker for compression");const e=new Worker(URL.createObjectURL(new Blob([i],{type:"application/javascript"})));e.onerror=e=>{t.loggerProvider.error(e)},e.onmessage=e=>{const{compressedEvent:t,sessionId:n}=e.data;this.addCompressedEventToManager(t,n)},this.worker=e}}scheduleIdleProcessing(){this.isProcessing||(this.isProcessing=!0,requestIdleCallback(e=>{this.processQueue(e)},{timeout:this.timeout}))}enqueueEvent(e,t){var n;this.canUseIdleCallback&&(null===(n=this.config.performanceConfig)||void 0===n?void 0:n.enabled)?(this.config.loggerProvider.debug("Enqueuing event for processing during idle time."),this.taskQueue.push({event:e,sessionId:t}),this.scheduleIdleProcessing()):(this.config.loggerProvider.debug("Processing event without idle callback."),this.addCompressedEvent(e,t))}processQueue(e){for(;this.taskQueue.length>0&&(e.timeRemaining()>0||e.didTimeout);){const e=this.taskQueue.shift();if(e){const{event:t,sessionId:n}=e;this.addCompressedEvent(t,n)}}this.taskQueue.length>0?requestIdleCallback(e=>{this.processQueue(e)},{timeout:this.timeout}):this.isProcessing=!1}}const Ae="Failed to store session replay events in IndexedDB",We="1.30.3";class Be{constructor({trackServerUrl:e,loggerProvider:t,payloadBatcher:n}){this.storageKey="",this.retryTimeout=1e3,this.scheduled=null,this.queue=[],this.loggerProvider=t,this.payloadBatcher=n||(e=>e),this.trackServerUrl=e}sendEventsList(e){this.addToQueue(Object.assign(Object.assign({},e),{attempts:0,timeout:0}))}addToQueue(...e){e.filter(e=>e.attempts<(e.flushMaxRetries||0)?(e.attempts+=1,!0):(this.completeRequest({context:e,err:"Session replay event batch rejected due to exceeded retry count"}),!1)).forEach(e=>{this.queue=this.queue.concat(e),0!==e.timeout?setTimeout(()=>{e.timeout=0,this.schedule(0)},e.timeout):this.schedule(0)})}schedule(e){this.scheduled||(this.scheduled=setTimeout(()=>{this.flush(!0).then(()=>{this.queue.length>0&&this.schedule(e)})},e))}flush(e=!1){return i(this,void 0,void 0,function*(){const t=[],n=[];this.queue.forEach(e=>0===e.timeout?t.push(e):n.push(e)),this.queue=n,this.scheduled&&(clearTimeout(this.scheduled),this.scheduled=null),yield Promise.all(t.map(t=>this.send(t,e)))})}send(e,t=!0){var n,r;return i(this,void 0,void 0,function*(){const i=e.apiKey;if(!i)return this.completeRequest({context:e,err:"Session replay event batch not sent due to missing api key"});const s=e.deviceId;if(!s)return this.completeRequest({context:e,err:"Session replay event batch not sent due to missing device ID"});const o=(()=>{const e=g();return(null==e?void 0:e.location)?e.location.href:""})(),a=We,l=e.sampleRate,c=new URLSearchParams({device_id:s,session_id:`${e.sessionId}`,type:`${e.type}`}),d=`${(null===(n=e.version)||void 0===n?void 0:n.type)||"standalone"}/${(null===(r=e.version)||void 0===r?void 0:r.version)||a}`,u=this.payloadBatcher({version:1,events:e.events});if(0!==u.events.length)try{const n={headers:{"Content-Type":"application/json",Accept:"*/*",Authorization:`Bearer ${i}`,"X-Client-Version":a,"X-Client-Library":d,"X-Client-Url":o.substring(0,1e3),"X-Client-Sample-Rate":`${l}`},body:JSON.stringify(u),method:"POST"},r=`${Z(e.serverZone,this.trackServerUrl)}?${c.toString()}`,s=yield fetch(r,n);if(null===s)return void this.completeRequest({context:e,err:"Unexpected error occurred"});if(t)this.handleReponse(s.status,e);else{let t="";try{t=JSON.stringify(s.body,null,2)}catch(e){}this.completeRequest({context:e,success:`${s.status}: ${t}`})}}catch(t){this.completeRequest({context:e,err:t})}else this.completeRequest({context:e})})}handleReponse(e,t){switch((new N).buildStatus(e)){case l.Success:this.handleSuccessResponse(t);break;case l.Failed:this.handleOtherResponse(t);break;default:this.completeRequest({context:t,err:"Network error occurred, event batch rejected"})}}handleSuccessResponse(e){const t=Math.round(new Blob(e.events).size/1024);this.completeRequest({context:e,success:`Session replay event batch tracked successfully for session id ${e.sessionId}, size of events: ${t} KB`})}handleOtherResponse(e){this.addToQueue(Object.assign(Object.assign({},e),{timeout:e.attempts*this.retryTimeout}))}completeRequest({context:e,err:t,success:n}){e.onComplete(),t?this.loggerProvider.warn(t):n&&this.loggerProvider.log(n)}}class Ke{get timeAtLastSplit(){return this._timeAtLastSplit}constructor(e){var t,n,i;this.minInterval=500,this.maxInterval=1e4,this.maxPersistedEventsSize=1e6,this.interval=this.minInterval,this._timeAtLastSplit=Date.now(),this.shouldSplitEventsList=(e,t)=>{const n=this.getStringSize(t);return this.getEventsArraySize(e)+n>=this.maxPersistedEventsSize||!!(Date.now()-this.timeAtLastSplit>this.interval&&e.length)&&(this.interval=Math.min(this.maxInterval,this.interval+this.minInterval),this._timeAtLastSplit=Date.now(),!0)},this.loggerProvider=e.loggerProvider,this.minInterval=null!==(t=e.minInterval)&&void 0!==t?t:this.minInterval,this.maxInterval=null!==(n=e.maxInterval)&&void 0!==n?n:this.maxInterval,this.maxPersistedEventsSize=null!==(i=e.maxPersistedEventsSize)&&void 0!==i?i:this.maxPersistedEventsSize}getStringSize(e){return e.length}getEventsArraySize(e){let t=0;for(const n of e)t+=this.getStringSize(n);return t+(2+Math.max(0,e.length-1)+2*e.length)}}var ze;!function(e){e.RECORDING="recording",e.SENT="sent"}(ze||(ze={}));const Je="sessionCurrentSequence",He="sequencesToSend",Ge=e=>i(void 0,void 0,void 0,function*(){for(;e.length>0;){const t=10,n=e.splice(0,t);yield Promise.all(n)}}),Qe=e=>{let t,n;return e.objectStoreNames.contains(Je)||(n=e.createObjectStore(Je,{keyPath:"sessionId"})),e.objectStoreNames.contains(He)||(t=e.createObjectStore(He,{keyPath:"sequenceId",autoIncrement:!0}),t.createIndex("sessionId","sessionId")),{sequencesStore:t,currentSequenceStore:n}};class Xe extends Ke{constructor(e){super(e),this.getSequencesToSend=()=>i(this,void 0,void 0,function*(){try{const e=[];let t=yield this.db.transaction("sequencesToSend").store.openCursor();for(;t;){const{sessionId:n,events:i}=t.value;e.push({events:i,sequenceId:t.key,sessionId:n}),t=yield t.continue()}return e}catch(e){this.loggerProvider.warn(`${Ae}: ${e}`)}}),this.storeCurrentSequence=e=>i(this,void 0,void 0,function*(){try{const t=yield this.db.get(Je,e);if(!t)return;const n=yield this.db.put(He,{sessionId:e,events:t.events});return yield this.db.put(Je,{sessionId:e,events:[]}),Object.assign(Object.assign({},t),{sessionId:e,sequenceId:n})}catch(e){this.loggerProvider.warn(`${Ae}: ${e}`)}}),this.addEventToCurrentSequence=(e,t)=>i(this,void 0,void 0,function*(){try{const n=this.db.transaction(Je,"readwrite"),i=yield n.store.get(e);if(!i)return void(yield n.store.put({sessionId:e,events:[t]}));let r;if(this.shouldSplitEventsList(i.events,t))r=i.events,yield n.store.put({sessionId:e,events:[t]});else{const r=i.events.concat(t);yield n.store.put({sessionId:e,events:r})}if(yield n.done,!r)return;const s=yield this.storeSendingEvents(e,r);if(!s)return;return{events:r,sessionId:e,sequenceId:s}}catch(e){this.loggerProvider.warn(`${Ae}: ${e}`)}}),this.storeSendingEvents=(e,t)=>i(this,void 0,void 0,function*(){try{return yield this.db.put(He,{sessionId:e,events:t})}catch(e){this.loggerProvider.warn(`${Ae}: ${e}`)}}),this.cleanUpSessionEventsStore=(e,t)=>i(this,void 0,void 0,function*(){if(t)try{yield this.db.delete(He,t)}catch(e){this.loggerProvider.warn(`${Ae}: ${e}`)}}),this.transitionFromKeyValStore=e=>i(this,void 0,void 0,function*(){try{const t=yield function(){const e=g();return new Promise((t,n)=>{if(!e)return n(new Error("Global scope not found"));if(!e.indexedDB)return n(new Error("Session Replay: cannot find indexedDB"));try{const i=e.indexedDB.open("keyval-store");let r=!1;i.onupgradeneeded=function(){1===i.result.version&&(r=!0)},i.onsuccess=function(){if(r){try{i.result.close()}catch(e){}try{e.indexedDB.deleteDatabase("keyval-store")}catch(e){}t()}else t(i.result)},i.onerror=function(e){var r;if("AbortError"===(null===(r=i.error)||void 0===r?void 0:r.name))return e.preventDefault(),void t();n(i.error)}}catch(e){n(e)}})}();if(!t)return;const n=(e,t)=>i(this,void 0,void 0,function*(){const n=t.sessionSequences,r=[];Object.keys(n).forEach(s=>{const o=parseInt(s,10),a=n[o];if(o===t.currentSequenceId){const t=a.events.map(t=>i(this,void 0,void 0,function*(){return this.addEventToCurrentSequence(e,t)}));r.push(...t)}else a.status!==ze.SENT&&r.push(this.storeSendingEvents(e,a.events))}),yield Ge(r)}),r=`${c}_${this.apiKey.substring(0,10)}`;try{const s=t.transaction("keyval").objectStore("keyval").getAll(r),o=new Promise(t=>{s.onsuccess=r=>i(this,void 0,void 0,function*(){const i=r&&r.target.result,s=i&&i[0];if(s){const t=[];Object.keys(s).forEach(i=>{const r=parseInt(i,10),o=s[r];if(e===r)t.push(n(r,o));else{const e=o.sessionSequences;Object.keys(e).forEach(n=>{const i=parseInt(n,10);e[i].status!==ze.SENT&&t.push(this.storeSendingEvents(r,e[i].events))})}}),yield Ge(t)}t()})});yield o;const a=g();a&&a.indexedDB.deleteDatabase("keyval-store")}catch(e){this.loggerProvider.warn(`Failed to transition session replay events from keyval to new store: ${e}`)}}catch(e){this.loggerProvider.warn(`Failed to access keyval store: ${e}. For more information, visit: https://www.docs.developers.amplitude.com/session-replay/sdks/standalone/#indexeddb-best-practices`)}}),this.apiKey=e.apiKey,this.db=e.db}static new(e,t,n){return i(this,void 0,void 0,function*(){try{const r="replay"===e?"":`_${e}`,o=`${t.apiKey.substring(0,10)}_amp_session_replay_events${r}`,a=yield(e=>i(void 0,void 0,void 0,function*(){return yield s(e,1,{upgrade:Qe})}))(o),l=new Xe(Object.assign(Object.assign({},t),{db:a}));return yield l.transitionFromKeyValStore(n),l}catch(e){t.loggerProvider.warn(`${Ae}: ${e}`)}})}getCurrentSequenceEvents(e){return i(this,void 0,void 0,function*(){if(e){const t=yield this.db.get("sessionCurrentSequence",e);if(!t)return;return[t]}const t=[];for(const e of yield this.db.getAll("sessionCurrentSequence"))t.push(e);return t})}}class Ze extends Ke{constructor(){super(...arguments),this.finalizedSequences={},this.sequences={},this.sequenceId=0}resetCurrentSequence(e){this.sequences[e]=[]}addSequence(e){const t=this.sequenceId++,n=[...this.sequences[e]];return this.finalizedSequences[t]={sessionId:e,events:n},this.resetCurrentSequence(e),{sequenceId:t,events:n,sessionId:e}}getSequencesToSend(){return i(this,void 0,void 0,function*(){return Object.entries(this.finalizedSequences).map(([e,{sessionId:t,events:n}])=>({sequenceId:Number(e),sessionId:t,events:n}))})}storeCurrentSequence(e){return i(this,void 0,void 0,function*(){if(this.sequences[e])return this.addSequence(e)})}addEventToCurrentSequence(e,t){return i(this,void 0,void 0,function*(){let n;return this.sequences[e]||this.resetCurrentSequence(e),this.shouldSplitEventsList(this.sequences[e],t)&&(n=this.addSequence(e)),this.sequences[e].push(t),n})}storeSendingEvents(e,t){return i(this,void 0,void 0,function*(){return this.finalizedSequences[this.sequenceId]={sessionId:e,events:t},this.sequenceId++})}cleanUpSessionEventsStore(e,t){return i(this,void 0,void 0,function*(){void 0!==t&&delete this.finalizedSequences[t]})}}const Ye=({config:e,sessionId:t,minInterval:n,maxInterval:r,type:s,payloadBatcher:o,storeType:a})=>i(void 0,void 0,void 0,function*(){const l=new Be(Object.assign(Object.assign({},e),{loggerProvider:e.loggerProvider,payloadBatcher:o})),c=()=>new Ze({loggerProvider:e.loggerProvider,maxInterval:r,minInterval:n}),d="idb"===a?yield i(void 0,void 0,void 0,function*(){const i=yield Xe.new(s,{loggerProvider:e.loggerProvider,minInterval:n,maxInterval:r,apiKey:e.apiKey},t);return e.loggerProvider.log("Failed to initialize idb store, falling back to memory store."),null!=i?i:c()}):c(),u=({events:t,sessionId:n,deviceId:r,sequenceId:o})=>{e.debugMode&&ee().then(({totalStorageSize:t,percentOfQuota:n,usageDetails:i})=>{e.loggerProvider.debug(`Total storage size: ${t} KB, percentage of quota: ${n}%, usage details: ${i}`)}).catch(()=>{}),l.sendEventsList({events:t,sessionId:n,flushMaxRetries:e.flushMaxRetries,apiKey:e.apiKey,deviceId:r,sampleRate:e.sampleRate,serverZone:e.serverZone,version:e.version,type:s,onComplete:()=>i(void 0,void 0,void 0,function*(){yield d.cleanUpSessionEventsStore(n,o)})})};return{sendCurrentSequenceEvents:({sessionId:t,deviceId:n})=>{d.storeCurrentSequence(t).then(e=>{e&&u({sequenceId:e.sequenceId,events:e.events,sessionId:e.sessionId,deviceId:n})}).catch(t=>{e.loggerProvider.warn("Failed to get current sequence of session replay events for session:",t)})},addEvent:({event:t,sessionId:n,deviceId:i})=>{d.addEventToCurrentSequence(n,t.data).then(e=>e&&u({sequenceId:e.sequenceId,events:e.events,sessionId:e.sessionId,deviceId:i})).catch(t=>{e.loggerProvider.warn("Failed to add event to session replay capture:",t)})},sendStoredEvents:({deviceId:e})=>i(void 0,void 0,void 0,function*(){const t=yield d.getSequencesToSend();t&&t.forEach(t=>{u({sequenceId:t.sequenceId,events:t.events,sessionId:t.sessionId,deviceId:e})})}),flush:function(e=!1){return i(this,void 0,void 0,function*(){return l.flush(e)})}}});class Ve{constructor(...e){const t=new Map;e.forEach(e=>{t.set(e.name,e.manager)}),this.managers=t}sendStoredEvents(e){return i(this,void 0,void 0,function*(){const t=[];this.managers.forEach(n=>{t.push(n.sendStoredEvents(e))}),yield Promise.all(t)})}addEvent({sessionId:e,event:t,deviceId:n}){var i;null===(i=this.managers.get(t.type))||void 0===i||i.addEvent({sessionId:e,event:t,deviceId:n})}sendCurrentSequenceEvents({sessionId:e,deviceId:t}){this.managers.forEach(n=>{n.sendCurrentSequenceEvents({sessionId:e,deviceId:t})})}flush(e){return i(this,void 0,void 0,function*(){const t=[];this.managers.forEach(n=>{t.push(n.flush(e))}),yield Promise.all(t)})}}let et,tt,nt;function it(e,t){if(nt=new Date,e.nodeType!==Node.ELEMENT_NODE)throw new Error("Can't generate CSS selector for non-element node type.");if("html"===e.tagName.toLowerCase())return"html";const n={root:document.body,idName:e=>!0,className:e=>!0,tagName:e=>!0,attr:(e,t)=>!1,seedMinLength:1,optimizedMinLength:2,threshold:1e3,maxNumberOfTries:1e4,timeoutMs:void 0};et=Object.assign(Object.assign({},n),t),tt=function(e,t){if(e.nodeType===Node.DOCUMENT_NODE)return e;if(e===t.root)return e.ownerDocument;return e}(et.root,n);let i=rt(e,"all",()=>rt(e,"two",()=>rt(e,"one",()=>rt(e,"none"))));if(i){const t=St(It(i,e));return t.length>0&&(i=t[0]),ot(i)}throw new Error("Selector was not found.")}function rt(e,t,n){let i=null,r=[],s=e,o=0;for(;s;){const e=(new Date).getTime()-nt.getTime();if(void 0!==et.timeoutMs&&e>et.timeoutMs)throw new Error(`Timeout: Can't find a unique selector after ${e}ms`);let a=mt(ct(s))||mt(...dt(s))||mt(...ut(s))||mt(ht(s))||[gt()];const l=vt(s);if("all"==t)l&&(a=a.concat(a.filter(pt).map(e=>ft(e,l))));else if("two"==t)a=a.slice(0,1),l&&(a=a.concat(a.filter(pt).map(e=>ft(e,l))));else if("one"==t){const[e]=a=a.slice(0,1);l&&pt(e)&&(a=[ft(e,l)])}else"none"==t&&(a=[gt()],l&&(a=[ft(a[0],l)]));for(let e of a)e.level=o;if(r.push(a),r.length>=et.seedMinLength&&(i=st(r,n),i))break;s=s.parentElement,o++}return i||(i=st(r,n)),!i&&n?n():i}function st(e,t){const n=St(bt(e));if(n.length>et.threshold)return t?t():null;for(let e of n)if(lt(e))return e;return null}function ot(e){let t=e[0],n=t.name;for(let i=1;i<e.length;i++){const r=e[i].level||0;n=t.level===r-1?`${e[i].name} > ${n}`:`${e[i].name} ${n}`,t=e[i]}return n}function at(e){return e.map(e=>e.penalty).reduce((e,t)=>e+t,0)}function lt(e){const t=ot(e);switch(tt.querySelectorAll(t).length){case 0:throw new Error(`Can't select any node with this selector: ${t}`);case 1:return!0;default:return!1}}function ct(e){const t=e.getAttribute("id");return t&&et.idName(t)?{name:"#"+CSS.escape(t),penalty:0}:null}function dt(e){const t=Array.from(e.attributes).filter(e=>et.attr(e.name,e.value));return t.map(e=>({name:`[${CSS.escape(e.name)}="${CSS.escape(e.value)}"]`,penalty:.5}))}function ut(e){return Array.from(e.classList).filter(et.className).map(e=>({name:"."+CSS.escape(e),penalty:1}))}function ht(e){const t=e.tagName.toLowerCase();return et.tagName(t)?{name:t,penalty:2}:null}function gt(){return{name:"*",penalty:3}}function vt(e){const t=e.parentNode;if(!t)return null;let n=t.firstChild;if(!n)return null;let i=0;for(;n&&(n.nodeType===Node.ELEMENT_NODE&&i++,n!==e);)n=n.nextSibling;return i}function ft(e,t){return{name:e.name+`:nth-child(${t})`,penalty:e.penalty+1}}function pt(e){return"html"!==e.name&&!e.name.startsWith("#")}function mt(...e){const t=e.filter(yt);return t.length>0?t:null}function yt(e){return null!=e}function*bt(e,t=[]){if(e.length>0)for(let n of e[0])yield*bt(e.slice(1,e.length),t.concat(n));else yield t}function St(e){return[...e].sort((e,t)=>at(e)-at(t))}function*It(e,t,n={counter:0,visited:new Map}){if(e.length>2&&e.length>et.optimizedMinLength)for(let i=1;i<e.length-1;i++){if(n.counter>et.maxNumberOfTries)return;n.counter+=1;const r=[...e];r.splice(i,1);const s=ot(r);if(n.visited.has(s))return;lt(r)&&Ct(r,t)&&(yield r,n.visited.set(s,!0),yield*It(r,t,n))}}function Ct(e,t){return tt.querySelector(ot(e))===t}const wt=({version:e,events:t})=>{const n=[];return t.forEach(e=>{const t=JSON.parse(e);t.count=1,"click"===t.type&&n.push(t)}),{version:e,events:n}},Et=({version:e,events:t})=>{const n=[];t.forEach(e=>{const t=JSON.parse(e);"click"===t.type&&n.push(t)});const i=n.reduce((e,t)=>{const{x:n,y:i,selector:r,timestamp:s}=t,o=s-s%36e5,a=`${n}:${i}:${null!=r?r:""}:${o}`;return e[a]?e[a].count+=1:e[a]=Object.assign(Object.assign({},t),{timestamp:o,count:1}),e},{});return{version:e,events:Object.values(i)}};class Pt{constructor(e,t){this.createHook=({eventsManager:e,sessionId:t,deviceIdFn:n,mirror:i,ugcFilterRules:r,performanceOptions:s})=>o=>{if(o.type!==se.Click)return;const a=g();if(!a)return;const{location:l,innerHeight:c,innerWidth:d}=a;if(!l)return;const{x:u,y:h}=o;if(void 0===u||void 0===h)return;const v=i.getNode(o.id);let f;if(v)try{f=it(v,s)}catch(e){this.logger.debug("error resolving selector from finder")}const p=V(l.href,r),m={x:u+this.scrollWatcher.currentScrollX,y:h+this.scrollWatcher.currentScrollY,selector:f,viewportHeight:c,viewportWidth:d,pageUrl:p,timestamp:Date.now(),type:"click"},y=n();y&&e.addEvent({sessionId:t,event:{type:"interaction",data:JSON.stringify(m)},deviceId:y})},this.logger=e,this.scrollWatcher=t}}function kt(){const e=g();return(null==e?void 0:e.innerHeight)||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight||0}function Ot(){const e=g();return(null==e?void 0:e.innerWidth)||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth||0}class Rt{constructor(e,t){const n=g();n&&n.navigator&&"function"==typeof n.navigator.sendBeacon?this.sendBeacon=(e,t)=>{try{if(n.navigator.sendBeacon(e,JSON.stringify(t)))return!0}catch(e){}return!1}:this.sendBeacon=()=>!1,this.sendXhr=(e,t)=>{const n=new XMLHttpRequest;return n.open("POST",e,!0),n.setRequestHeader("Accept","*/*"),n.send(JSON.stringify(t)),!0},this.basePageUrl=Z(t.serverZone,t.trackServerUrl),this.apiKey=t.apiKey,this.context=e}send(e,t){const{sessionId:n,type:i}=this.context,r=new URLSearchParams({device_id:e,session_id:String(n),type:String(i),api_key:this.apiKey}),s=`${this.basePageUrl}?${r.toString()}`;this.sendBeacon(s,t)||this.sendXhr(s,t)}}class _t{static default(e,t){return new _t(new Rt(e,t),t)}constructor(e,t){this.timestamp=Date.now(),this.hook=e=>{this.update(e)},this.send=e=>t=>{var n,i;const r=e(),s=g();s&&r&&this.transport.send(r,{version:1,events:[{maxScrollX:this._maxScrollX,maxScrollY:this._maxScrollY,maxScrollWidth:this._maxScrollWidth,maxScrollHeight:this._maxScrollHeight,viewportHeight:kt(),viewportWidth:Ot(),pageUrl:V(s.location.href,null!==(i=null===(n=this.config.interactionConfig)||void 0===n?void 0:n.ugcFilterRules)&&void 0!==i?i:[]),timestamp:this.timestamp,type:"scroll"}]})},this._maxScrollX=0,this._maxScrollY=0,this._currentScrollX=0,this._currentScrollY=0,this._maxScrollWidth=Ot(),this._maxScrollHeight=kt(),this.config=t,this.transport=e}get maxScrollX(){return this._maxScrollX}get maxScrollY(){return this._maxScrollY}get maxScrollWidth(){return this._maxScrollWidth}get maxScrollHeight(){return this._maxScrollHeight}get currentScrollX(){return this._currentScrollX}get currentScrollY(){return this._currentScrollY}update(e){const t=Date.now();if(this._currentScrollX=e.x,this._currentScrollY=e.y,e.x>this._maxScrollX){const n=Ot();this._maxScrollX=e.x;const i=e.x+n;i>this._maxScrollWidth&&(this._maxScrollWidth=i),this.timestamp=t}if(e.y>this._maxScrollY){const n=kt();this._maxScrollY=e.y;const i=e.y+n;i>this._maxScrollHeight&&(this._maxScrollHeight=i),this.timestamp=t}}}class Tt{constructor({sessionId:e,deviceId:t}){this.deviceId=t,this.sessionId=e,e&&t&&(this.sessionReplayId=((e,t)=>`${t}/${e}`)(e,t))}}const xt=new class{constructor(){this.dbs={},this.createStore=e=>i(this,void 0,void 0,function*(){return yield s(e,1,{upgrade:e=>{e.objectStoreNames.contains("sessionTargetingMatch")||e.createObjectStore("sessionTargetingMatch",{keyPath:"sessionId"})}})}),this.openOrCreateDB=e=>i(this,void 0,void 0,function*(){if(this.dbs&&this.dbs[e])return this.dbs[e];const t=`${e.substring(0,10)}_amp_session_replay_targeting`,n=yield this.createStore(t);return this.dbs[e]=n,n}),this.getTargetingMatchForSession=({loggerProvider:e,apiKey:t,sessionId:n})=>i(this,void 0,void 0,function*(){try{const e=yield this.openOrCreateDB(t),i=String(n),r=yield e.get("sessionTargetingMatch",i);return null==r?void 0:r.targetingMatch}catch(t){e.warn(`Failed to get targeting match for session id ${n}: ${t}`)}}),this.storeTargetingMatchForSession=({loggerProvider:e,apiKey:t,sessionId:n,targetingMatch:r})=>i(this,void 0,void 0,function*(){try{const e=yield this.openOrCreateDB(t),i=String(n);return yield e.put("sessionTargetingMatch",{targetingMatch:r,sessionId:i,lastUpdated:Date.now()})}catch(t){e.warn(`Failed to store targeting match for session id ${n}: ${t}`)}}),this.clearStoreOfOldSessions=({loggerProvider:e,apiKey:t,currentSessionId:n})=>i(this,void 0,void 0,function*(){try{const e=yield this.openOrCreateDB(t),i=String(n),r=e.transaction("sessionTargetingMatch","readwrite"),s=yield r.store.getAll();for(let e=0;e<s.length;e++){const t=s[e],n=Date.now()-t.lastUpdated;t.sessionId!==i&&n>1728e5&&(yield r.store.delete(t.sessionId))}yield r.done}catch(t){e.warn(`Failed to clear old targeting matches for sessions: ${t}`)}})}};function Mt(e={}){return{name:"amplitude/url-tracking@1",observer(t,n,i){var r,s,o;const a=Object.assign(Object.assign({},e),i),l=a.ugcFilterRules||[],c=null!==(r=a.enablePolling)&&void 0!==r&&r,d=null!==(s=a.pollingInterval)&&void 0!==s?s:1e3,u=null!==(o=a.captureDocumentTitle)&&void 0!==o&&o;if(!n)return()=>{};let h;const g="__amplitude_url_tracking_patched__",v="__amplitude_url_tracking_reset__",f=()=>n.location&&n.location.href||"",p=()=>{const e=f();if(void 0===h||e!==h){h=e;const i=(()=>{const{innerHeight:e,innerWidth:t,document:i}=n,r=f();let s="";return u&&(s=(null==i?void 0:i.title)||""),{href:l.length>0?V(r,l):r,title:s,viewportHeight:e,viewportWidth:t,type:"url-change-event"}})();t(i)}},m=e=>{const t=function(...t){const i=e.apply(this,t);return n[v]||p(),i};return t[g]=!0,t},y=()=>{p()};if(c){const e=n.setInterval(()=>{p()},d);return p(),()=>{e&&n.clearInterval(e)}}if(n.history){const e=n.history.pushState.bind(n.history),t=n.history.replaceState.bind(n.history);return(()=>{n.history.pushState[g]||(n.history.pushState=m(e),n.history.replaceState=m(t))})(),n.addEventListener("popstate",p),n.addEventListener("hashchange",y),p(),()=>{n[v]=!0,n.removeEventListener("popstate",p),n.removeEventListener("hashchange",y)}}return n.addEventListener("hashchange",y),p(),()=>{n.removeEventListener("hashchange",y)}},options:e}}class Dt{constructor(){this.name="@amplitude/session-replay-browser",this.recordCancelCallback=null,this.eventCount=0,this.sessionTargetingMatch=!1,this.pageLeaveFns=[],this.recordFunction=null,this.teardownEventListeners=e=>{const t=g();t&&(t.removeEventListener("blur",this.blurListener),t.removeEventListener("focus",this.focusListener),!e&&t.addEventListener("blur",this.blurListener),!e&&t.addEventListener("focus",this.focusListener),t.self&&"onpagehide"in t.self?(t.removeEventListener("pagehide",this.pageLeaveListener),!e&&t.addEventListener("pagehide",this.pageLeaveListener)):(t.removeEventListener("beforeunload",this.pageLeaveListener),!e&&t.addEventListener("beforeunload",this.pageLeaveListener)))},this.blurListener=()=>{this.sendEvents()},this.focusListener=()=>{this.recordEvents(!1)},this.pageLeaveListener=e=>{this.pageLeaveFns.forEach(t=>{t(e)})},this.evaluateTargetingAndCapture=(e,t=!1,n=!1)=>i(this,void 0,void 0,function*(){if(this.identifiers&&this.identifiers.sessionId&&this.config){if(!this.config.targetingConfig){if(!t)return void this.loggerProvider.log("No targeting config set, skipping initialization/recording for event.");this.loggerProvider.log("Targeting config has not been set yet, cannot evaluate targeting.")}if(this.lastTargetingParams=e,this.config.targetingConfig&&!this.sessionTargetingMatch){let t=e.event;t&&Object.values(a).includes(t.event_type)&&(t=void 0),this.sessionTargetingMatch=yield(({sessionId:e,targetingConfig:t,loggerProvider:n,apiKey:r,targetingParams:s})=>i(void 0,void 0,void 0,function*(){if(yield xt.clearStoreOfOldSessions({loggerProvider:n,apiKey:r,currentSessionId:e}),!0===(yield xt.getTargetingMatchForSession({loggerProvider:n,apiKey:r,sessionId:e})))return!0;let i=!0;try{const{evaluateTargeting:o}=yield import("./targeting-min.js").then(function(e){return e.i}),a=yield o(Object.assign(Object.assign({},s),{flag:t,sessionId:e,apiKey:r,loggerProvider:n}));a&&a.sr_targeting_config&&(i="on"===a.sr_targeting_config.key),xt.storeTargetingMatchForSession({loggerProvider:n,apiKey:r,sessionId:e,targetingMatch:i})}catch(e){const t=e;n.warn(t.message)}return i}))({sessionId:this.identifiers.sessionId,targetingConfig:this.config.targetingConfig,loggerProvider:this.loggerProvider,apiKey:this.config.apiKey,targetingParams:{userProperties:e.userProperties,event:t}}),this.loggerProvider.debug(JSON.stringify({name:"targeted replay capture config",sessionTargetingMatch:this.sessionTargetingMatch,event:t,targetingParams:e},null,2))}t?this.initialize(!0):!n&&this.recordCancelCallback||(this.loggerProvider.log("Recording events for session due to forceRestart or no ongoing recording."),yield this.recordEvents())}else this.identifiers&&!this.identifiers.sessionId?this.loggerProvider.log("Session ID has not been set yet, cannot evaluate targeting for Session Replay."):this.loggerProvider.warn("Session replay init has not been called, cannot evaluate targeting.")}),this.addCustomRRWebEvent=(e,t={},n=!0)=>i(this,void 0,void 0,function*(){try{let i;const r=this.config;if(r&&e!==J.METADATA&&(i={config:te(r),version:We},n)){const e=yield ee();i=Object.assign(Object.assign({},e),i)}this.recordCancelCallback&&this.recordFunction?this.recordFunction.addCustomEvent(e,Object.assign(Object.assign({},t),i)):this.loggerProvider.debug(`Not able to add custom replay capture event ${e} due to no ongoing recording.`)}catch(e){this.loggerProvider.debug("Error while adding custom replay capture event: ",e)}}),this.stopRecordingEvents=()=>{var e;try{this.loggerProvider.log("Session Replay capture stopping."),this.recordCancelCallback&&this.recordCancelCallback(),this.recordCancelCallback=null,null===(e=this.networkObservers)||void 0===e||e.stop()}catch(e){const t=e;this.loggerProvider.warn(`Error occurred while stopping replay capture: ${t.toString()}`)}},this.loggerProvider=new H(new y)}init(e,t){return p(this._init(e,t))}_init(e,t){var n,r,s,o,a,l;return i(this,void 0,void 0,function*(){this.loggerProvider=new H(t.loggerProvider||new y),Object.prototype.hasOwnProperty.call(t,"logLevel")&&this.loggerProvider.enable(t.logLevel),this.identifiers=new Tt({sessionId:t.sessionId,deviceId:t.deviceId}),this.joinedConfigGenerator=yield((e,t)=>i(void 0,void 0,void 0,function*(){const n=new ie(e,t),i=new F(e,n.loggerProvider,n.serverZone,t.configServerUrl);return new oe(i,n)}))(e,t);const{joinedConfig:c,localConfig:d,remoteConfig:u}=yield this.joinedConfigGenerator.generateJoinedConfig();if(this.config=c,this.setMetadata(t.sessionId,c,d,u,null===(n=t.version)||void 0===n?void 0:n.version,We,null===(r=t.version)||void 0===r?void 0:r.type),t.sessionId&&(null===(s=this.config.interactionConfig)||void 0===s?void 0:s.enabled)){const e=_t.default({sessionId:t.sessionId,type:"interaction"},this.config);this.pageLeaveFns=[e.send(this.getDeviceId.bind(this)).bind(e)],this.scrollHook=e.hook.bind(e),this.clickHandler=new Pt(this.loggerProvider,e)}const h=[];let v,{storeType:f}=this.config;"idb"!==f||(null===(o=g())||void 0===o?void 0:o.indexedDB)||(f="memory",this.loggerProvider.warn("Could not use preferred indexedDB storage, reverting to in memory option.")),this.loggerProvider.log(`Using ${f} for event storage.`);try{const e=yield Ye({config:this.config,sessionId:this.identifiers.sessionId,type:"replay",storeType:f});h.push({name:"replay",manager:e})}catch(e){const t=e;this.loggerProvider.warn(`Error occurred while creating replay events manager: ${t.toString()}`)}if(null===(a=this.config.interactionConfig)||void 0===a?void 0:a.enabled){const e=this.config.interactionConfig.batch?Et:wt;try{const t=yield Ye({config:this.config,sessionId:this.identifiers.sessionId,type:"interaction",minInterval:null!==(l=this.config.interactionConfig.trackEveryNms)&&void 0!==l?l:3e4,maxInterval:6e4,payloadBatcher:e,storeType:f});h.push({name:"interaction",manager:t})}catch(e){const t=e;this.loggerProvider.warn(`Error occurred while creating interaction events manager: ${t.toString()}`)}}this.eventsManager=new Ve(...h),this.eventCompressor&&this.eventCompressor.terminate();const p=g();if(this.config.useWebWorker&&p&&p.Worker){const{compressionScript:e}=yield import("./worker-min.js");v=e}this.eventCompressor=new Ue(this.eventsManager,this.config,this.getDeviceId(),v),yield this.initializeNetworkObservers(),this.loggerProvider.log("Installing @amplitude/session-replay-browser."),this.teardownEventListeners(!1),yield this.evaluateTargetingAndCapture({userProperties:t.userProperties},!0)})}setSessionId(e,t){return p(this.asyncSetSessionId(e,t))}asyncSetSessionId(e,t,n){var r;return i(this,void 0,void 0,function*(){this.sessionTargetingMatch=!1,this.lastShouldRecordDecision=void 0;const i=this.identifiers&&this.identifiers.sessionId;i&&this.sendEvents(i);const s=t||this.getDeviceId();if(this.identifiers=new Tt({sessionId:e,deviceId:s}),this.joinedConfigGenerator&&i){const{joinedConfig:e}=yield this.joinedConfigGenerator.generateJoinedConfig();this.config=e}(null===(r=this.config)||void 0===r?void 0:r.targetingConfig)?yield this.evaluateTargetingAndCapture({userProperties:null==n?void 0:n.userProperties},!1,!0):yield this.recordEvents()})}getSessionReplayProperties(){const e=this.config,t=this.identifiers;if(!e||!t)return this.loggerProvider.warn("Session replay init has not been called, cannot get session replay properties."),{};const n=this.getShouldRecord();let i={};return n&&(i={[A]:t.sessionReplayId?t.sessionReplayId:null},e.debugMode&&(i[K]=JSON.stringify({appHash:q(e.apiKey).toString()}))),this.addCustomRRWebEvent(J.GET_SR_PROPS,{shouldRecord:n,eventProperties:i},10===this.eventCount),10===this.eventCount&&(this.eventCount=0),this.eventCount++,i}sendEvents(e){var t;const n=e||(null===(t=this.identifiers)||void 0===t?void 0:t.sessionId),i=this.getDeviceId();this.eventsManager&&n&&i&&this.eventsManager.sendCurrentSequenceEvents({sessionId:n,deviceId:i})}initialize(e=!1){var t;return i(this,void 0,void 0,function*(){if(!(null===(t=this.identifiers)||void 0===t?void 0:t.sessionId))return this.loggerProvider.log("Session is not being recorded due to lack of session id."),Promise.resolve();const n=this.getDeviceId();return n?(this.eventsManager&&e&&this.eventsManager.sendStoredEvents({deviceId:n}),this.recordEvents()):(this.loggerProvider.log("Session is not being recorded due to lack of device id."),Promise.resolve())})}shouldOptOut(){var e,t;let n;if(null===(e=this.config)||void 0===e?void 0:e.instanceName){n=(i=this.config.instanceName,void 0===i&&(i=d),L.getInstance(i)).identityStore.getIdentity().optOut}var i;return void 0!==n?n:null===(t=this.config)||void 0===t?void 0:t.optOut}getShouldRecord(){if(!this.identifiers||!this.config||!this.identifiers.sessionId)return this.loggerProvider.warn("Session is not being recorded due to lack of config, please call sessionReplay.init."),!1;if(!this.config.captureEnabled)return this.loggerProvider.log(`Session ${this.identifiers.sessionId} not being captured due to capture being disabled for project or because the remote config could not be fetched.`),!1;if(this.shouldOptOut())return this.loggerProvider.log(`Opting session ${this.identifiers.sessionId} out of recording due to optOut config.`),!1;let e=!1,t="",n=!1;if(this.config.targetingConfig)this.sessionTargetingMatch?(t=`Capturing replays for session ${this.identifiers.sessionId} due to matching targeting conditions.`,this.loggerProvider.log(t),e=!0,n=!0):(t=`Not capturing replays for session ${this.identifiers.sessionId} due to not matching targeting conditions.`,this.loggerProvider.log(t),e=!1,n=!1);else{(i=this.identifiers.sessionId,r=this.config.sampleRate,s=q(i.toString()),31*Math.abs(s)%1e6/1e6<r)?(e=!0,n=!0):(t=`Opting session ${this.identifiers.sessionId} out of recording due to sample rate.`,this.loggerProvider.log(t),e=!1,n=!1)}var i,r,s;return this.lastShouldRecordDecision!==e&&this.config.targetingConfig&&(this.addCustomRRWebEvent(J.TARGETING_DECISION,{message:t,sessionId:this.identifiers.sessionId,matched:n,targetingParams:this.lastTargetingParams}),this.lastShouldRecordDecision=e),e}getBlockSelectors(){var e,t,n;const i=null!==(n=null===(t=null===(e=this.config)||void 0===e?void 0:e.privacyConfig)||void 0===t?void 0:t.blockSelector)&&void 0!==n?n:[];if(0!==i.length)return i}getMaskTextSelectors(){var e,t,n,i;if("conservative"===(null===(t=null===(e=this.config)||void 0===e?void 0:e.privacyConfig)||void 0===t?void 0:t.defaultMaskLevel))return"*";const r=null===(i=null===(n=this.config)||void 0===n?void 0:n.privacyConfig)||void 0===i?void 0:i.maskSelector;return r||void 0}getRecordingPlugins(e){var t,n,r,s,o,a;return i(this,void 0,void 0,function*(){const i=[];try{const e=Mt({ugcFilterRules:(null===(n=null===(t=this.config)||void 0===t?void 0:t.interactionConfig)||void 0===n?void 0:n.ugcFilterRules)||[],enablePolling:(null===(r=this.config)||void 0===r?void 0:r.enableUrlChangePolling)||!1,pollingInterval:null===(s=this.config)||void 0===s?void 0:s.urlChangePollingInterval,captureDocumentTitle:null===(o=this.config)||void 0===o?void 0:o.captureDocumentTitle});i.push(e)}catch(e){this.loggerProvider.warn("Failed to create URL tracking plugin:",e)}if(null===(a=null==e?void 0:e.console)||void 0===a?void 0:a.enabled)try{const{getRecordConsolePlugin:t}=yield import("./console-plugin-min.js");i.push(t({level:e.console.levels}))}catch(e){this.loggerProvider.warn("Failed to load console plugin:",e)}return i.length>0?i:void 0})}getRecordFunction(){return i(this,void 0,void 0,function*(){if(this.recordFunction)return this.recordFunction;try{const{record:e}=yield import("./rrweb-record-min.js");return this.recordFunction=e,e}catch(e){return this.loggerProvider.warn("Failed to load rrweb-record module:",e),null}})}recordEvents(e=!0){var t,n,r,s,o,a,l;return i(this,void 0,void 0,function*(){const i=this.config,c=this.getShouldRecord(),d=null===(t=this.identifiers)||void 0===t?void 0:t.sessionId;if(!c||!d||!i)return;this.stopRecordingEvents();const u=yield this.getRecordFunction();if(!u)return;yield this.initializeNetworkObservers(),null===(n=this.networkObservers)||void 0===n||n.start(e=>{this.addCustomRRWebEvent(J.FETCH_REQUEST,e)});const{privacyConfig:h,interactionConfig:g,loggingConfig:v}=i,f=(null==g?void 0:g.enabled)?{mouseInteraction:this.eventsManager&&(null===(r=this.clickHandler)||void 0===r?void 0:r.createHook({eventsManager:this.eventsManager,sessionId:d,deviceIdFn:this.getDeviceId.bind(this),mirror:u.mirror,ugcFilterRules:null!==(s=g.ugcFilterRules)&&void 0!==s?s:[],performanceOptions:null===(o=i.performanceConfig)||void 0===o?void 0:o.interaction})),scroll:this.scrollHook}:{},p=(null==g?void 0:g.enabled)&&g.ugcFilterRules?g.ugcFilterRules:[];this.loggerProvider.log(`Session Replay capture beginning for ${d}.`);try{this.recordCancelCallback=u({emit:e=>{if(this.shouldOptOut())return this.loggerProvider.log(`Opting session ${d} out of recording due to optOut config.`),this.stopRecordingEvents(),void this.sendEvents();e.type===re.Meta&&(e.data.href=V(e.data.href,p)),this.eventCompressor&&this.eventCompressor.enqueueEvent(e,d)},inlineStylesheet:i.shouldInlineStylesheet,hooks:f,maskAllInputs:!0,maskTextClass:z,blockClass:"amp-block",blockSelector:this.getBlockSelectors(),applyBackgroundColorToBlockedElements:i.applyBackgroundColorToBlockedElements,maskInputFn:X("input",h),maskTextFn:X("text",h),maskTextSelector:this.getMaskTextSelectors(),recordCanvas:!1,slimDOMOptions:{script:null===(a=i.omitElementTags)||void 0===a?void 0:a.script,comment:null===(l=i.omitElementTags)||void 0===l?void 0:l.comment},errorHandler:e=>{const t=e;if(t.message.includes("insertRule")&&t.message.includes("CSSStyleSheet"))throw t;if(t._external_)throw t;return this.loggerProvider.warn("Error while capturing replay: ",t.toString()),!0},plugins:yield this.getRecordingPlugins(v)}),this.addCustomRRWebEvent(J.DEBUG_INFO),e&&this.addCustomRRWebEvent(J.METADATA,this.metadata)}catch(e){this.loggerProvider.warn("Failed to initialize session replay:",e)}})}getDeviceId(){var e;return null===(e=this.identifiers)||void 0===e?void 0:e.deviceId}getSessionId(){var e;return null===(e=this.identifiers)||void 0===e?void 0:e.sessionId}flush(e=!1){var t;return i(this,void 0,void 0,function*(){return null===(t=this.eventsManager)||void 0===t?void 0:t.flush(e)})}shutdown(){this.teardownEventListeners(!0),this.stopRecordingEvents(),this.sendEvents()}mapSDKType(e){return"plugin"===e?"@amplitude/plugin-session-replay-browser":"segment"===e?"@amplitude/segment-session-replay-plugin":null}setMetadata(e,t,n,i,r,s,o){const a=(null==e?void 0:e.toString())?q(e.toString()):void 0;this.metadata={joinedConfig:t,localConfig:n,remoteConfig:i,sessionId:e,hashValue:a,sampleRate:t.sampleRate,replaySDKType:this.mapSDKType(o),replaySDKVersion:r,standaloneSDKType:"@amplitude/session-replay-browser",standaloneSDKVersion:s}}initializeNetworkObservers(){var e,t,n;return i(this,void 0,void 0,function*(){if((null===(n=null===(t=null===(e=this.config)||void 0===e?void 0:e.loggingConfig)||void 0===t?void 0:t.network)||void 0===n?void 0:n.enabled)&&!this.networkObservers)try{const{NetworkObservers:e}=yield import("./observers-min.js");this.networkObservers=new e}catch(e){this.loggerProvider.warn("Failed to import or instantiate NetworkObservers:",e)}})}}const Lt=e=>()=>{const{config:t}=e,{loggerProvider:n,logLevel:i}=t||ne();return{logger:n,logLevel:i}};var qt=(()=>{const e=new Dt;return{init:w(e.init.bind(e),"init",Lt(e)),evaluateTargetingAndCapture:w(e.evaluateTargetingAndCapture.bind(e),"evaluateTargetingAndRecord",Lt(e)),setSessionId:w(e.setSessionId.bind(e),"setSessionId",Lt(e)),getSessionId:w(e.getSessionId.bind(e),"getSessionId",Lt(e)),getSessionReplayProperties:w(e.getSessionReplayProperties.bind(e),"getSessionReplayProperties",Lt(e)),flush:w(e.flush.bind(e),"flush",Lt(e)),shutdown:w(e.shutdown.bind(e),"shutdown",Lt(e))}})();const{init:Nt,setSessionId:jt,getSessionId:$t,getSessionReplayProperties:Ft,flush:Ut,shutdown:At,evaluateTargetingAndCapture:Wt}=qt;export{H as S,$t as a,Ft as b,At as c,Wt as e,Ut as f,g,Nt as i,jt as s};
1
+ import{_ as e,a as t,b as n,c as i,d as r,e as s,o}from"./targeting-min.js";var a,l;!function(e){e.SET="$set",e.SET_ONCE="$setOnce",e.ADD="$add",e.APPEND="$append",e.PREPEND="$prepend",e.REMOVE="$remove",e.PREINSERT="$preInsert",e.POSTINSERT="$postInsert",e.UNSET="$unset",e.CLEAR_ALL="$clearAll"}(a||(a={})),function(e){e.IDENTIFY="$identify",e.GROUP_IDENTIFY="$groupidentify",e.REVENUE="revenue_amount"}(l||(l={}));var c,d="".concat("AMP","_unsent"),u="$default_instance",h="https://api2.amplitude.com/2/httpapi";!function(e){e.Unknown="unknown",e.Skipped="skipped",e.Success="success",e.RateLimit="rate_limit",e.PayloadTooLarge="payload_too_large",e.Invalid="invalid",e.Failed="failed",e.Timeout="Timeout",e.SystemError="SystemError"}(c||(c={}));var g,v=function(){var e="ampIntegrationContext";return"undefined"!=typeof globalThis&&void 0!==globalThis[e]?globalThis[e]:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:void 0},f=e([],t(Array(256).keys()),!1).map(function(e){return e.toString(16).padStart(2,"0")}),p=function(n){var i,r=v();if(!(null===(i=null==r?void 0:r.crypto)||void 0===i?void 0:i.getRandomValues))return function(e){return e?(e^16*Math.random()>>e/4).toString(16):(String(1e7)+String(-1e3)+String(-4e3)+String(-8e3)+String(-1e11)).replace(/[018]/g,p)}(n);var s=r.crypto.getRandomValues(new Uint8Array(16));return s[6]=15&s[6]|64,s[8]=63&s[8]|128,e([],t(s.entries()),!1).map(function(e){var n=t(e,2),i=n[0],r=n[1];return[4,6,8,10].includes(i)?"-".concat(f[r]):f[r]}).join("")},m=function(e){return{promise:e||Promise.resolve()}};!function(e){e[e.None=0]="None",e[e.Error=1]="Error",e[e.Warn=2]="Warn",e[e.Verbose=3]="Verbose",e[e.Debug=4]="Debug"}(g||(g={}));var y="Amplitude Logger ",b=function(){function e(){this.logLevel=g.None}return e.prototype.disable=function(){this.logLevel=g.None},e.prototype.enable=function(e){void 0===e&&(e=g.Warn),this.logLevel=e},e.prototype.log=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<g.Verbose||console.log("".concat(y,"[Log]: ").concat(e.join(" ")))},e.prototype.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<g.Warn||console.warn("".concat(y,"[Warn]: ").concat(e.join(" ")))},e.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<g.Error||console.error("".concat(y,"[Error]: ").concat(e.join(" ")))},e.prototype.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<g.Debug||console.log("".concat(y,"[Debug]: ").concat(e.join(" ")))},e}(),S=function(){return{flushMaxRetries:12,flushQueueSize:200,flushIntervalMillis:1e4,instanceName:u,logLevel:g.Warn,loggerProvider:new b,offline:!1,optOut:!1,serverUrl:h,serverZone:"US",useBatch:!1}},I=function(){function e(e){var t,n,i,r;this._optOut=!1;var s=S();this.apiKey=e.apiKey,this.flushIntervalMillis=null!==(t=e.flushIntervalMillis)&&void 0!==t?t:s.flushIntervalMillis,this.flushMaxRetries=e.flushMaxRetries||s.flushMaxRetries,this.flushQueueSize=e.flushQueueSize||s.flushQueueSize,this.instanceName=e.instanceName||s.instanceName,this.loggerProvider=e.loggerProvider||s.loggerProvider,this.logLevel=null!==(n=e.logLevel)&&void 0!==n?n:s.logLevel,this.minIdLength=e.minIdLength,this.plan=e.plan,this.ingestionMetadata=e.ingestionMetadata,this.offline=void 0!==e.offline?e.offline:s.offline,this.optOut=null!==(i=e.optOut)&&void 0!==i?i:s.optOut,this.serverUrl=e.serverUrl,this.serverZone=e.serverZone||s.serverZone,this.storageProvider=e.storageProvider,this.transportProvider=e.transportProvider,this.useBatch=null!==(r=e.useBatch)&&void 0!==r?r:s.useBatch,this.loggerProvider.enable(this.logLevel);var o=w(e.serverUrl,e.serverZone,e.useBatch);this.serverZone=o.serverZone,this.serverUrl=o.serverUrl}return Object.defineProperty(e.prototype,"optOut",{get:function(){return this._optOut},set:function(e){this._optOut=e},enumerable:!1,configurable:!0}),e}(),C=function(e,t){return"EU"===e?t?"https://api.eu.amplitude.com/batch":"https://api.eu.amplitude.com/2/httpapi":t?"https://api2.amplitude.com/batch":h},w=function(e,t,n){if(void 0===e&&(e=""),void 0===t&&(t=S().serverZone),void 0===n&&(n=S().useBatch),e)return{serverUrl:e,serverZone:void 0};var i=["US","EU"].includes(t)?t:S().serverZone;return{serverZone:i,serverUrl:C(i,n)}};var E=function(e,t,n,i,r){return void 0===r&&(r=null),function(){for(var s=[],o=0;o<arguments.length;o++)s[o]=arguments[o];var a=n(),l=a.logger,c=a.logLevel;if(c&&c<g.Debug||!c||!l)return e.apply(r,s);var d,u={type:"invoke public method",name:t,args:s,stacktrace:(d=1,void 0===d&&(d=0),((new Error).stack||"").split("\n").slice(2+d).map(function(e){return e.trim()})),time:{start:(new Date).toISOString()},states:{}};i&&u.states&&(u.states.before=i());var h=e.apply(r,s);return h&&h.promise?h.promise.then(function(){i&&u.states&&(u.states.after=i()),u.time&&(u.time.end=(new Date).toISOString()),l.debug(JSON.stringify(u,null,2))}):(i&&u.states&&(u.states.after=i()),u.time&&(u.time.end=(new Date).toISOString()),l.debug(JSON.stringify(u,null,2))),h}},P=function(){function e(){}return e.prototype.getApplicationContext=function(){return{versionName:this.versionName,language:k(),platform:"Web",os:void 0,deviceModel:void 0}},e}(),k=function(){return"undefined"!=typeof navigator&&(navigator.languages&&navigator.languages[0]||navigator.language)||""},O=function(){function e(){this.queue=[]}return e.prototype.logEvent=function(e){this.receiver?this.receiver(e):this.queue.length<512&&this.queue.push(e)},e.prototype.setEventReceiver=function(e){this.receiver=e,this.queue.length>0&&(this.queue.forEach(function(t){e(t)}),this.queue=[])},e}(),R=function(){return R=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},R.apply(this,arguments)};function _(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function T(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,s=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(i=s.next()).done;)o.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return o}"function"==typeof SuppressedError&&SuppressedError;var x=function(e,t){var n,i,r=typeof e;if(r!==typeof t)return!1;try{for(var s=_(["string","number","boolean","undefined"]),o=s.next();!o.done;o=s.next()){if(o.value===r)return e===t}}catch(e){n={error:e}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}if(null==e&&null==t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;var a=Array.isArray(e),l=Array.isArray(t);if(a!==l)return!1;if(!a||!l){var c=Object.keys(e).sort(),d=Object.keys(t).sort();if(!x(c,d))return!1;var u=!0;return Object.keys(e).forEach(function(n){x(e[n],t[n])||(u=!1)}),u}for(var h=0;h<e.length;h++)if(!x(e[h],t[h]))return!1;return!0};Object.entries||(Object.entries=function(e){for(var t=Object.keys(e),n=t.length,i=new Array(n);n--;)i[n]=[t[n],e[t[n]]];return i});var M,D=function(){function e(){this.identity={userProperties:{}},this.listeners=new Set}return e.prototype.editIdentity=function(){var e=this,t=R({},this.identity.userProperties),n=R(R({},this.identity),{userProperties:t});return{setUserId:function(e){return n.userId=e,this},setDeviceId:function(e){return n.deviceId=e,this},setUserProperties:function(e){return n.userProperties=e,this},setOptOut:function(e){return n.optOut=e,this},updateUserProperties:function(e){var t,i,r,s,o,a,l=n.userProperties||{};try{for(var c=_(Object.entries(e)),d=c.next();!d.done;d=c.next()){var u=T(d.value,2),h=u[0],g=u[1];switch(h){case"$set":try{for(var v=(r=void 0,_(Object.entries(g))),f=v.next();!f.done;f=v.next()){var p=T(f.value,2),m=p[0],y=p[1];l[m]=y}}catch(e){r={error:e}}finally{try{f&&!f.done&&(s=v.return)&&s.call(v)}finally{if(r)throw r.error}}break;case"$unset":try{for(var b=(o=void 0,_(Object.keys(g))),S=b.next();!S.done;S=b.next()){delete l[m=S.value]}}catch(e){o={error:e}}finally{try{S&&!S.done&&(a=b.return)&&a.call(b)}finally{if(o)throw o.error}}break;case"$clearAll":l={}}}}catch(e){t={error:e}}finally{try{d&&!d.done&&(i=c.return)&&i.call(c)}finally{if(t)throw t.error}}return n.userProperties=l,this},commit:function(){return e.setIdentity(n),this}}},e.prototype.getIdentity=function(){return R({},this.identity)},e.prototype.setIdentity=function(e){var t=R({},this.identity);this.identity=R({},e),x(t,this.identity)||this.listeners.forEach(function(t){t(e)})},e.prototype.addIdentityListener=function(e){this.listeners.add(e)},e.prototype.removeIdentityListener=function(e){this.listeners.delete(e)},e}(),L="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:self,q=function(){function e(){this.identityStore=new D,this.eventBridge=new O,this.applicationContextProvider=new P}return e.getInstance=function(t){return L.analyticsConnectorInstances||(L.analyticsConnectorInstances={}),L.analyticsConnectorInstances[t]||(L.analyticsConnectorInstances[t]=new e),L.analyticsConnectorInstances[t]},e}(),N=function(e){var t=0;if(0===e.length)return t;for(var n=0;n<e.length;n++){t=(t<<5)-t+e.charCodeAt(n),t|=0}return t},j=function(){function e(){}return e.prototype.send=function(e,t){return Promise.resolve(null)},e.prototype.buildResponse=function(e){var t,n,i,r,s,o,a,l,d,u,h,g,v,f,p,m,y,b,S,I,C,w;if("object"!=typeof e)return null;var E=e.code||0,P=this.buildStatus(E);switch(P){case c.Success:return{status:P,statusCode:E,body:{eventsIngested:null!==(t=e.events_ingested)&&void 0!==t?t:0,payloadSizeBytes:null!==(n=e.payload_size_bytes)&&void 0!==n?n:0,serverUploadTime:null!==(i=e.server_upload_time)&&void 0!==i?i:0}};case c.Invalid:return{status:P,statusCode:E,body:{error:null!==(r=e.error)&&void 0!==r?r:"",missingField:null!==(s=e.missing_field)&&void 0!==s?s:"",eventsWithInvalidFields:null!==(o=e.events_with_invalid_fields)&&void 0!==o?o:{},eventsWithMissingFields:null!==(a=e.events_with_missing_fields)&&void 0!==a?a:{},eventsWithInvalidIdLengths:null!==(l=e.events_with_invalid_id_lengths)&&void 0!==l?l:{},epsThreshold:null!==(d=e.eps_threshold)&&void 0!==d?d:0,exceededDailyQuotaDevices:null!==(u=e.exceeded_daily_quota_devices)&&void 0!==u?u:{},silencedDevices:null!==(h=e.silenced_devices)&&void 0!==h?h:[],silencedEvents:null!==(g=e.silenced_events)&&void 0!==g?g:[],throttledDevices:null!==(v=e.throttled_devices)&&void 0!==v?v:{},throttledEvents:null!==(f=e.throttled_events)&&void 0!==f?f:[]}};case c.PayloadTooLarge:return{status:P,statusCode:E,body:{error:null!==(p=e.error)&&void 0!==p?p:""}};case c.RateLimit:return{status:P,statusCode:E,body:{error:null!==(m=e.error)&&void 0!==m?m:"",epsThreshold:null!==(y=e.eps_threshold)&&void 0!==y?y:0,throttledDevices:null!==(b=e.throttled_devices)&&void 0!==b?b:{},throttledUsers:null!==(S=e.throttled_users)&&void 0!==S?S:{},exceededDailyQuotaDevices:null!==(I=e.exceeded_daily_quota_devices)&&void 0!==I?I:{},exceededDailyQuotaUsers:null!==(C=e.exceeded_daily_quota_users)&&void 0!==C?C:{},throttledEvents:null!==(w=e.throttled_events)&&void 0!==w?w:[]}};case c.Timeout:default:return{status:P,statusCode:E}}},e.prototype.buildStatus=function(e){return function(e){return e>=200&&e<300}(e)?c.Success:429===e?c.RateLimit:413===e?c.PayloadTooLarge:408===e?c.Timeout:e>=400&&e<500?c.Invalid:e>=500?c.Failed:c.Unknown},e}(),$=function(e){function t(t){void 0===t&&(t={});var n=e.call(this)||this;return n.customHeaders=t,n}return n(t,e),t.prototype.send=function(e,t){return i(this,void 0,void 0,function(){var n,i,o;return r(this,function(r){switch(r.label){case 0:if("undefined"==typeof fetch)throw new Error("FetchTransport is not supported");return n={headers:s({"Content-Type":"application/json",Accept:"*/*"},this.customHeaders),body:JSON.stringify(t),method:"POST"},[4,fetch(e,n)];case 1:return[4,(i=r.sent()).text()];case 2:o=r.sent();try{return[2,this.buildResponse(JSON.parse(o))]}catch(e){return[2,this.buildResponse({code:i.status})]}return[2]}})})},t}(j),F=function(){function e(e,t){this.key="AMP_remote_config_".concat(e.substring(0,10)),this.logger=t}return e.prototype.fetchConfig=function(){var e=null,t={remoteConfig:null,lastFetch:new Date};try{e=localStorage.getItem(this.key)}catch(e){return this.logger.debug("Remote config localstorage failed to access: ",e),Promise.resolve(t)}if(null===e)return this.logger.debug("Remote config localstorage gets null because the key does not exist"),Promise.resolve(t);try{var n=JSON.parse(e);return this.logger.debug("Remote config localstorage parsed successfully: ".concat(JSON.stringify(n))),Promise.resolve({remoteConfig:n.remoteConfig,lastFetch:new Date(n.lastFetch)})}catch(e){return this.logger.debug("Remote config localstorage failed to parse: ",e),localStorage.removeItem(this.key),Promise.resolve(t)}},e.prototype.setConfig=function(e){try{return localStorage.setItem(this.key,JSON.stringify(e)),this.logger.debug("Remote config localstorage set successfully."),Promise.resolve(!0)}catch(e){this.logger.debug("Remote config localstorage failed to set: ",e)}return Promise.resolve(!1)},e}(),U=function(){function e(e,t,n,i){void 0===n&&(n="US"),this.callbackInfos=[],this.lastSuccessfulFetch=null,this.fetchPromise=null,this.apiKey=e,this.serverUrl=i||("US"===n?"https://sr-client-cfg.amplitude.com/config":"https://sr-client-cfg.eu.amplitude.com/config"),this.logger=t,this.storage=new F(e,t)}return e.prototype.subscribe=function(e,t,n){var i=p(),r={id:i,key:e,deliveryMode:t,callback:n};return this.callbackInfos.push(r),"all"===t?this.subscribeAll(r):this.subscribeWaitForRemote(r,t.timeout),i},e.prototype.unsubscribe=function(e){var t=this.callbackInfos.findIndex(function(t){return t.id===e});return-1===t?(this.logger.debug("Remote config client unsubscribe failed because callback with id ".concat(e," doesn't exist.")),!1):(this.callbackInfos.splice(t,1),this.logger.debug("Remote config client unsubscribe succeeded removing callback with id ".concat(e,".")),!0)},e.prototype.updateConfigs=function(){return i(this,void 0,void 0,function(){var e,t=this;return r(this,function(n){switch(n.label){case 0:return this.lastSuccessfulFetch&&Date.now()-this.lastSuccessfulFetch<3e5?(this.logger.debug("Remote config client skipping updateConfigs: Too recent"),[2]):[4,this.getOrCreateFetchPromise()];case 1:return e=n.sent(),this.storage.setConfig(e),this.callbackInfos.forEach(function(n){t.sendCallback(n,e,"remote")}),[2]}})})},e.prototype.getOrCreateFetchPromise=function(){var e=this;return this.fetchPromise||(this.fetchPromise=this.fetch().then(function(t){return null!==t.remoteConfig&&(e.lastSuccessfulFetch=Date.now()),t}).finally(function(){e.fetchPromise=null})),this.fetchPromise},e.prototype.subscribeAll=function(e){return i(this,void 0,void 0,function(){var t,n,i,s=this;return r(this,function(r){switch(r.label){case 0:return t=this.getOrCreateFetchPromise().then(function(t){s.logger.debug("Remote config client subscription all mode fetched from remote: ".concat(JSON.stringify(t))),s.sendCallback(e,t,"remote"),s.storage.setConfig(t)}),n=this.storage.fetchConfig().then(function(e){return e}),[4,Promise.race([t,n])];case 1:return void 0!==(i=r.sent())&&(this.logger.debug("Remote config client subscription all mode fetched from cache: ".concat(JSON.stringify(i))),null!==i.remoteConfig?this.sendCallback(e,i,"cache"):this.logger.debug("Remote config client skips sending callback because cache is empty (first time user).")),[4,t];case 2:return r.sent(),[2]}})})},e.prototype.subscribeWaitForRemote=function(e,t){return i(this,void 0,void 0,function(){var n,i;return r(this,function(r){switch(r.label){case 0:n=new Promise(function(e,n){setTimeout(function(){n("Timeout exceeded")},t)}),r.label=1;case 1:return r.trys.push([1,3,,5]),[4,Promise.race([this.getOrCreateFetchPromise(),n])];case 2:return i=r.sent(),this.logger.debug("Remote config client subscription wait for remote mode returns from remote."),this.sendCallback(e,i,"remote"),this.storage.setConfig(i),[3,5];case 3:return r.sent(),this.logger.debug("Remote config client subscription wait for remote mode exceeded timeout. Try to fetch from cache."),[4,this.storage.fetchConfig()];case 4:return null!==(i=r.sent()).remoteConfig?(this.logger.debug("Remote config client subscription wait for remote mode returns a cached copy."),this.sendCallback(e,i,"cache")):(this.logger.debug("Remote config client subscription wait for remote mode failed to fetch cache."),this.sendCallback(e,i,"remote")),[3,5];case 5:return[2]}})})},e.prototype.sendCallback=function(e,t,n){var i;e.lastCallback=new Date,i=e.key?e.key.split(".").reduce(function(e,t){return null===e?e:t in e?e[t]:null},t.remoteConfig):t.remoteConfig,e.callback(i,n,t.lastFetch)},e.prototype.fetch=function(e,t){return void 0===e&&(e=3),void 0===t&&(t=1e3),i(this,void 0,void 0,function(){var n,i,s,o,a,l,c=this;return r(this,function(d){switch(d.label){case 0:n=t/e,i={remoteConfig:null,lastFetch:new Date},s=function(i){var s,a,l,d,u;return r(this,function(r){switch(r.label){case 0:s=new AbortController,a=setTimeout(function(){return s.abort()},t),r.label=1;case 1:return r.trys.push([1,7,8,9]),[4,fetch(o.getUrlParams(),{method:"GET",headers:{Accept:"*/*"},signal:s.signal})];case 2:return(l=r.sent()).ok?[3,4]:[4,l.text()];case 3:return d=r.sent(),o.logger.debug("Remote config client fetch with retry time ".concat(e," failed with ").concat(l.status,": ").concat(d)),[3,6];case 4:return[4,l.json()];case 5:return[2,{value:{remoteConfig:r.sent(),lastFetch:new Date}}];case 6:return[3,9];case 7:return(u=r.sent())instanceof Error&&"AbortError"===u.name?o.logger.debug("Remote config client fetch with retry time ".concat(e," timed out after ").concat(t,"ms")):o.logger.debug("Remote config client fetch with retry time ".concat(e," is rejected because: "),u),[3,9];case 8:return clearTimeout(a),[7];case 9:return i<e-1?[4,new Promise(function(e){return setTimeout(e,c.getJitterDelay(n))})]:[3,11];case 10:r.sent(),r.label=11;case 11:return[2]}})},o=this,a=0,d.label=1;case 1:return a<e?[5,s(a)]:[3,4];case 2:if("object"==typeof(l=d.sent()))return[2,l.value];d.label=3;case 3:return a++,[3,1];case 4:return[2,i]}})})},e.prototype.getJitterDelay=function(e){return Math.floor(Math.random()*e)},e.prototype.getUrlParams=function(){var t=encodeURIComponent(this.apiKey),n=new URLSearchParams;return n.append("config_group",e.CONFIG_GROUP),"".concat(this.serverUrl,"/").concat(t,"?").concat(n.toString())},e.CONFIG_GROUP="browser",e}();!function(e){e.US="US",e.EU="EU",e.STAGING="STAGING"}(M||(M={}));const A="[Amplitude]",W=`${A} Session Replay ID`,B=M.US,K={enabled:!0},z=`${A} Session Replay Debug`,H="amp-mask";var J;!function(e){e.GET_SR_PROPS="get-sr-props",e.DEBUG_INFO="debug-info",e.FETCH_REQUEST="fetch-request",e.METADATA="metadata",e.TARGETING_DECISION="targeting-decision"}(J||(J={}));class G{constructor(e){this.logger=e,this.log=this.getSafeMethod("log"),this.warn=this.getSafeMethod("warn"),this.error=this.getSafeMethod("error"),this.debug=this.getSafeMethod("debug")}getSafeMethod(e){var t;if(!this.logger)return()=>{};const n=this.logger[e];if("function"==typeof n){return(null!==(t=n.__rrweb_original__)&&void 0!==t?t:n).bind(this.logger)}return()=>{}}enable(e){this.logger.enable(e)}disable(){this.logger.disable()}}const Q="medium";const X=(e,t,n)=>{switch(t){case"light":{if("input"!==e)return!0;const t=n?function(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?t.toLowerCase():null}(n):"";return!!t&&(!!["password","hidden","email","tel"].includes(t)||!!n.autocomplete.startsWith("cc-"))}case"medium":case"conservative":return!0;default:return X(e,Q,n)}},Z=(e,t)=>(n,i)=>((e,t={defaultMaskLevel:Q},n)=>{var i,r,s;if(n){if(n.closest("."+H))return!0;const e=(null!==(i=t.maskSelector)&&void 0!==i?i:[]).some(e=>n.closest(e));if(e)return!0;if(n.closest(".amp-unmask"))return!1;const s=(null!==(r=t.unmaskSelector)&&void 0!==r?r:[]).some(e=>n.closest(e));if(s)return!1}return X(e,null!==(s=t.defaultMaskLevel)&&void 0!==s?s:Q,n)})(e,t,i)?n.replace(/[^\s]/g,"*"):n,Y=(e,t)=>t||(e===M.STAGING?"https://api-sr.stag2.amplitude.com/sessions/v2/track":e===M.EU?"https://api-sr.eu.amplitude.com/sessions/v2/track":"https://api-sr.amplitude.com/sessions/v2/track"),V=e=>{const t=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)},ee=(e,t)=>{for(const n of t){const t=V(n.selector);if(t.test(e))return e.replace(t,n.replacement)}return e},te=()=>i(void 0,void 0,void 0,function*(){try{const e=v();if(e){const{usage:t,quota:n,usageDetails:i}=yield e.navigator.storage.estimate(),r=t?Math.round(t/1024):0;return{totalStorageSize:r,percentOfQuota:t&&n?Math.round(1e3*(t/n+Number.EPSILON))/1e3:0,usageDetails:JSON.stringify(i)}}}catch(e){}return{totalStorageSize:0,percentOfQuota:0,usageDetails:""}}),ne=e=>{const t=Object.assign({},e),{apiKey:n}=t;return t.apiKey=`****${n.substring(n.length-4)}`,t},ie=()=>({flushMaxRetries:2,logLevel:g.Warn,loggerProvider:new b,transportProvider:new $});class re extends I{constructor(e,t){var n,i,r,s,o,a;const l=ie();if(super(Object.assign(Object.assign({transportProvider:l.transportProvider,loggerProvider:new G(t.loggerProvider||l.loggerProvider)},t),{apiKey:e})),this.flushMaxRetries=void 0!==t.flushMaxRetries&&t.flushMaxRetries<=l.flushMaxRetries?t.flushMaxRetries:l.flushMaxRetries,this.apiKey=e,this.sampleRate=t.sampleRate||0,this.serverZone=t.serverZone||B,this.configServerUrl=t.configServerUrl,this.trackServerUrl=t.trackServerUrl,this.shouldInlineStylesheet=t.shouldInlineStylesheet,this.version=t.version,this.performanceConfig=t.performanceConfig||K,this.storeType=null!==(n=t.storeType)&&void 0!==n?n:"idb",this.applyBackgroundColorToBlockedElements=null!==(i=t.applyBackgroundColorToBlockedElements)&&void 0!==i&&i,this.enableUrlChangePolling=null!==(r=t.enableUrlChangePolling)&&void 0!==r&&r,this.urlChangePollingInterval=null!==(s=t.urlChangePollingInterval)&&void 0!==s?s:1e3,this.captureDocumentTitle=null!==(o=t.captureDocumentTitle)&&void 0!==o&&o,t.privacyConfig&&(this.privacyConfig=t.privacyConfig),t.interactionConfig&&(this.interactionConfig=t.interactionConfig,this.interactionConfig.ugcFilterRules&&(e=>{if(!e.every(e=>"string"==typeof e.selector&&"string"==typeof e.replacement))throw new Error("ugcFilterRules must be an array of objects with selector and replacement properties");if(!e.every(e=>{return"string"==typeof(t=e.selector)&&""!==t.trim()&&!!/^\/|^https?:\/\/[^\s]+$/.test(t);var t}))throw new Error("ugcFilterRules must be an array of objects with valid globs")})(this.interactionConfig.ugcFilterRules)),t.debugMode&&(this.debugMode=t.debugMode),void 0!==t.useWebWorker)this.useWebWorker=t.useWebWorker;else{const e=t;void 0!==(null===(a=e.experimental)||void 0===a?void 0:a.useWebWorker)&&(this.useWebWorker=e.experimental.useWebWorker)}t.omitElementTags&&(this.omitElementTags=t.omitElementTags)}}var se=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(se||{}),oe=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(oe||{});class ae{constructor(e,t){this.localConfig=t,this.remoteConfigClient=e}generateJoinedConfig(){var e,t,n;return i(this,void 0,void 0,function*(){const i=Object.assign({},this.localConfig);let r;i.optOut=this.localConfig.optOut,i.captureEnabled=!0;try{yield new Promise((e,t)=>{this.remoteConfigClient.subscribe("configs.sessionReplay","all",(n,s)=>{var o;if(this.localConfig.loggerProvider.debug(`Session Replay remote configuration received from ${s}:`,JSON.stringify(n,null,2)),!n)return void t(new Error("No remote config received"));const a=n,l=a.sr_sampling_config,c=a.sr_privacy_config,d=a.sr_targeting_config,u=null===(o=i.interactionConfig)||void 0===o?void 0:o.ugcFilterRules;i.interactionConfig=a.sr_interaction_config,i.interactionConfig&&u&&(i.interactionConfig.ugcFilterRules=u),i.loggingConfig=a.sr_logging_config,(l||c||d)&&(r={},l&&(r.sr_sampling_config=l),c&&(r.sr_privacy_config=c),d&&(r.sr_targeting_config=d)),e()})})}catch(e){return this.localConfig.loggerProvider.error("Failed to generate joined config: ",e),i.captureEnabled=!1,{localConfig:this.localConfig,joinedConfig:i,remoteConfig:void 0}}if(!r)return{localConfig:this.localConfig,joinedConfig:i,remoteConfig:r};const{sr_sampling_config:s,sr_privacy_config:o,sr_targeting_config:a}=r;if(s&&Object.keys(s).length>0?(Object.prototype.hasOwnProperty.call(s,"capture_enabled")?i.captureEnabled=s.capture_enabled:i.captureEnabled=!1,Object.prototype.hasOwnProperty.call(s,"sample_rate")&&(i.sampleRate=s.sample_rate)):(i.captureEnabled=!0,this.localConfig.loggerProvider.debug("Remote config successfully fetched, but no values set for project, Session Replay capture enabled.")),o){const r=null!==(e=i.privacyConfig)&&void 0!==e?e:{},s={defaultMaskLevel:null!==(n=null!==(t=o.defaultMaskLevel)&&void 0!==t?t:r.defaultMaskLevel)&&void 0!==n?n:"medium",blockSelector:[],maskSelector:[],unmaskSelector:[]},a=e=>{var t,n,i;const r={};"string"==typeof e.blockSelector&&(e.blockSelector=[e.blockSelector]);for(const n of null!==(t=e.blockSelector)&&void 0!==t?t:[])r[n]="block";for(const t of null!==(n=e.maskSelector)&&void 0!==n?n:[])r[t]="mask";for(const t of null!==(i=e.unmaskSelector)&&void 0!==i?i:[])r[t]="unmask";return r},l=Object.assign(Object.assign({},a(r)),a(o));for(const[e,t]of Object.entries(l))"mask"===t?s.maskSelector.push(e):"block"===t?s.blockSelector.push(e):"unmask"===t&&s.unmaskSelector.push(e);i.privacyConfig=((e,t)=>{const n=document.createDocumentFragment(),i=(e=[])=>{if("string"==typeof e&&(e=[e]),e=e.filter(e=>{try{n.querySelector(e)}catch(n){return t.warn(`[session-replay-browser] omitting selector "${e}" because it is invalid`),!1}return!0}),0!==e.length)return e};return e.blockSelector=i(e.blockSelector),e.maskSelector=i(e.maskSelector),e.unmaskSelector=i(e.unmaskSelector),e})(s,this.localConfig.loggerProvider)}return a&&Object.keys(a).length>0&&(i.targetingConfig=a),this.localConfig.loggerProvider.debug(JSON.stringify({name:"session replay joined config",config:ne(i)},null,2)),{localConfig:this.localConfig,joinedConfig:i,remoteConfig:r}})}}var le=Uint8Array,ce=Uint16Array,de=Uint32Array,ue=new le([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),he=new le([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ge=new le([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ve=function(e,t){for(var n=new ce(31),i=0;i<31;++i)n[i]=t+=1<<e[i-1];var r=new de(n[30]);for(i=1;i<30;++i)for(var s=n[i];s<n[i+1];++s)r[s]=s-n[i]<<5|i;return[n,r]},fe=ve(ue,2),pe=fe[0],me=fe[1];pe[28]=258,me[258]=28;for(var ye=ve(he,0)[1],be=new ce(32768),Se=0;Se<32768;++Se){var Ie=(43690&Se)>>>1|(21845&Se)<<1;Ie=(61680&(Ie=(52428&Ie)>>>2|(13107&Ie)<<2))>>>4|(3855&Ie)<<4,be[Se]=((65280&Ie)>>>8|(255&Ie)<<8)>>>1}var Ce=function(e,t,n){for(var i=e.length,r=0,s=new ce(t);r<i;++r)++s[e[r]-1];var o,a=new ce(t);for(r=0;r<t;++r)a[r]=a[r-1]+s[r-1]<<1;if(n){o=new ce(1<<t);var l=15-t;for(r=0;r<i;++r)if(e[r])for(var c=r<<4|e[r],d=t-e[r],u=a[e[r]-1]++<<d,h=u|(1<<d)-1;u<=h;++u)o[be[u]>>>l]=c}else for(o=new ce(i),r=0;r<i;++r)o[r]=be[a[e[r]-1]++]>>>15-e[r];return o},we=new le(288);for(Se=0;Se<144;++Se)we[Se]=8;for(Se=144;Se<256;++Se)we[Se]=9;for(Se=256;Se<280;++Se)we[Se]=7;for(Se=280;Se<288;++Se)we[Se]=8;var Ee=new le(32);for(Se=0;Se<32;++Se)Ee[Se]=5;var Pe=Ce(we,9,0),ke=Ce(Ee,5,0),Oe=function(e){return(e/8|0)+(7&e&&1)},Re=function(e,t,n){(null==n||n>e.length)&&(n=e.length);var i=new(e instanceof ce?ce:e instanceof de?de:le)(n-t);return i.set(e.subarray(t,n)),i},_e=function(e,t,n){n<<=7&t;var i=t/8|0;e[i]|=n,e[i+1]|=n>>>8},Te=function(e,t,n){n<<=7&t;var i=t/8|0;e[i]|=n,e[i+1]|=n>>>8,e[i+2]|=n>>>16},xe=function(e,t){for(var n=[],i=0;i<e.length;++i)e[i]&&n.push({s:i,f:e[i]});var r=n.length,s=n.slice();if(!r)return[new le(0),0];if(1==r){var o=new le(n[0].s+1);return o[n[0].s]=1,[o,1]}n.sort(function(e,t){return e.f-t.f}),n.push({s:-1,f:25001});var a=n[0],l=n[1],c=0,d=1,u=2;for(n[0]={s:-1,f:a.f+l.f,l:a,r:l};d!=r-1;)a=n[n[c].f<n[u].f?c++:u++],l=n[c!=d&&n[c].f<n[u].f?c++:u++],n[d++]={s:-1,f:a.f+l.f,l:a,r:l};var h=s[0].s;for(i=1;i<r;++i)s[i].s>h&&(h=s[i].s);var g=new ce(h+1),v=Me(n[d-1],g,0);if(v>t){i=0;var f=0,p=v-t,m=1<<p;for(s.sort(function(e,t){return g[t.s]-g[e.s]||e.f-t.f});i<r;++i){var y=s[i].s;if(!(g[y]>t))break;f+=m-(1<<v-g[y]),g[y]=t}for(f>>>=p;f>0;){var b=s[i].s;g[b]<t?f-=1<<t-g[b]++-1:++i}for(;i>=0&&f;--i){var S=s[i].s;g[S]==t&&(--g[S],++f)}v=t}return[new le(g),v]},Me=function(e,t,n){return-1==e.s?Math.max(Me(e.l,t,n+1),Me(e.r,t,n+1)):t[e.s]=n},De=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new ce(++t),i=0,r=e[0],s=1,o=function(e){n[i++]=e},a=1;a<=t;++a)if(e[a]==r&&a!=t)++s;else{if(!r&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(r),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(r);s=1,r=e[a]}return[n.subarray(0,i),t]},Le=function(e,t){for(var n=0,i=0;i<t.length;++i)n+=e[i]*t[i];return n},qe=function(e,t,n){var i=n.length,r=Oe(t+2);e[r]=255&i,e[r+1]=i>>>8,e[r+2]=255^e[r],e[r+3]=255^e[r+1];for(var s=0;s<i;++s)e[r+s+4]=n[s];return 8*(r+4+i)},Ne=function(e,t,n,i,r,s,o,a,l,c,d){_e(t,d++,n),++r[256];for(var u=xe(r,15),h=u[0],g=u[1],v=xe(s,15),f=v[0],p=v[1],m=De(h),y=m[0],b=m[1],S=De(f),I=S[0],C=S[1],w=new ce(19),E=0;E<y.length;++E)w[31&y[E]]++;for(E=0;E<I.length;++E)w[31&I[E]]++;for(var P=xe(w,7),k=P[0],O=P[1],R=19;R>4&&!k[ge[R-1]];--R);var _,T,x,M,D=c+5<<3,L=Le(r,we)+Le(s,Ee)+o,q=Le(r,h)+Le(s,f)+o+14+3*R+Le(w,k)+(2*w[16]+3*w[17]+7*w[18]);if(D<=L&&D<=q)return qe(t,d,e.subarray(l,l+c));if(_e(t,d,1+(q<L)),d+=2,q<L){_=Ce(h,g,0),T=h,x=Ce(f,p,0),M=f;var N=Ce(k,O,0);_e(t,d,b-257),_e(t,d+5,C-1),_e(t,d+10,R-4),d+=14;for(E=0;E<R;++E)_e(t,d+3*E,k[ge[E]]);d+=3*R;for(var j=[y,I],$=0;$<2;++$){var F=j[$];for(E=0;E<F.length;++E){var U=31&F[E];_e(t,d,N[U]),d+=k[U],U>15&&(_e(t,d,F[E]>>>5&127),d+=F[E]>>>12)}}}else _=Pe,T=we,x=ke,M=Ee;for(E=0;E<a;++E)if(i[E]>255){U=i[E]>>>18&31;Te(t,d,_[U+257]),d+=T[U+257],U>7&&(_e(t,d,i[E]>>>23&31),d+=ue[U]);var A=31&i[E];Te(t,d,x[A]),d+=M[A],A>3&&(Te(t,d,i[E]>>>5&8191),d+=he[A])}else Te(t,d,_[i[E]]),d+=T[i[E]];return Te(t,d,_[256]),d+T[256]},je=new de([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),$e=function(e,t,n,i,r){return function(e,t,n,i,r,s){var o=e.length,a=new le(i+o+5*(1+Math.floor(o/7e3))+r),l=a.subarray(i,a.length-r),c=0;if(!t||o<8)for(var d=0;d<=o;d+=65535){var u=d+65535;u<o?c=qe(l,c,e.subarray(d,u)):(l[d]=s,c=qe(l,c,e.subarray(d,o)))}else{for(var h=je[t-1],g=h>>>13,v=8191&h,f=(1<<n)-1,p=new ce(32768),m=new ce(f+1),y=Math.ceil(n/3),b=2*y,S=function(t){return(e[t]^e[t+1]<<y^e[t+2]<<b)&f},I=new de(25e3),C=new ce(288),w=new ce(32),E=0,P=0,k=(d=0,0),O=0,R=0;d<o;++d){var _=S(d),T=32767&d,x=m[_];if(p[T]=x,m[_]=T,O<=d){var M=o-d;if((E>7e3||k>24576)&&M>423){c=Ne(e,l,0,I,C,w,P,k,R,d-R,c),k=E=P=0,R=d;for(var D=0;D<286;++D)C[D]=0;for(D=0;D<30;++D)w[D]=0}var L=2,q=0,N=v,j=T-x&32767;if(M>2&&_==S(d-j))for(var $=Math.min(g,M)-1,F=Math.min(32767,d),U=Math.min(258,M);j<=F&&--N&&T!=x;){if(e[d+L]==e[d+L-j]){for(var A=0;A<U&&e[d+A]==e[d+A-j];++A);if(A>L){if(L=A,q=j,A>$)break;var W=Math.min(j,A-2),B=0;for(D=0;D<W;++D){var K=d-j+D+32768&32767,z=K-p[K]+32768&32767;z>B&&(B=z,x=K)}}}j+=(T=x)-(x=p[T])+32768&32767}if(q){I[k++]=268435456|me[L]<<18|ye[q];var H=31&me[L],J=31&ye[q];P+=ue[H]+he[J],++C[257+H],++w[J],O=d+L,++E}else I[k++]=e[d],++C[e[d]]}}c=Ne(e,l,s,I,C,w,P,k,R,d-R,c)}return Re(a,0,i+Oe(c)+r)}(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,n,i,!0)};function Fe(e,t){void 0===t&&(t={});var n=function(){var e=1,t=0;return{p:function(n){for(var i=e,r=t,s=n.length,o=0;o!=s;){for(var a=Math.min(o+5552,s);o<a;++o)r+=i+=n[o];i%=65521,r%=65521}e=i,t=r},d:function(){return(e>>>8<<16|(255&t)<<8|t>>>8)+2*((255&e)<<23)}}}();n.p(e);var i,r,s,o=$e(e,t,2,4);return i=o,r=t.level,s=0==r?0:r<6?1:9==r?3:2,i[0]=120,i[1]=s<<6|(s?32-2*s:1),function(e,t,n){for(;n;++t)e[t]=n,n>>>=8}(o,o.length-4,n.d()),o}const Ue=e=>{const t={...e,v:"v1"};return function(e,t){var n="";if(!t&&"undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);for(var i=0;i<e.length;){var r=e[i++];r<128||t?n+=String.fromCharCode(r):r<224?n+=String.fromCharCode((31&r)<<6|63&e[i++]):r<240?n+=String.fromCharCode((15&r)<<12|(63&e[i++])<<6|63&e[i++]):(r=((15&r)<<18|(63&e[i++])<<12|(63&e[i++])<<6|63&e[i++])-65536,n+=String.fromCharCode(55296|r>>10,56320|1023&r))}return n}(Fe(function(e,t){var n=e.length;if(!t&&"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);for(var i=new le(e.length+(e.length>>>1)),r=0,s=function(e){i[r++]=e},o=0;o<n;++o){if(r+5>i.length){var a=new le(r+8+(n-o<<1));a.set(i),i=a}var l=e.charCodeAt(o);l<128||t?s(l):l<2048?(s(192|l>>>6),s(128|63&l)):l>55295&&l<57344?(s(240|(l=65536+(1047552&l)|1023&e.charCodeAt(++o))>>>18),s(128|l>>>12&63),s(128|l>>>6&63),s(128|63&l)):(s(224|l>>>12),s(128|l>>>6&63),s(128|63&l))}return Re(i,0,r)}(JSON.stringify(t))),!0)};class Ae{constructor(e,t,n,i){var r;this.taskQueue=[],this.isProcessing=!1,this.compressEvent=e=>{const t=Ue(e);return JSON.stringify(t)},this.addCompressedEventToManager=(e,t)=>{this.eventsManager&&this.deviceId&&this.eventsManager.addEvent({event:{type:"replay",data:e},sessionId:t,deviceId:this.deviceId})},this.addCompressedEvent=(e,t)=>{if(this.worker)try{this.worker.postMessage({event:e,sessionId:t})}catch(n){"DataCloneError"===n.name?this.worker.postMessage(JSON.stringify({event:e,sessionId:t})):this.config.loggerProvider.warn("Unexpected error while posting message to worker:",n)}else{const n=this.compressEvent(e);this.addCompressedEventToManager(n,t)}},this.terminate=()=>{var e;null===(e=this.worker)||void 0===e||e.terminate()};const s=v();if(this.canUseIdleCallback=s&&"requestIdleCallback"in s,this.eventsManager=e,this.config=t,this.deviceId=n,this.timeout=(null===(r=t.performanceConfig)||void 0===r?void 0:r.timeout)||2e3,i){t.loggerProvider.log("Enabling web worker for compression");const e=new Worker(URL.createObjectURL(new Blob([i],{type:"application/javascript"})));e.onerror=e=>{t.loggerProvider.error(e)},e.onmessage=e=>{const{compressedEvent:t,sessionId:n}=e.data;this.addCompressedEventToManager(t,n)},this.worker=e}}scheduleIdleProcessing(){this.isProcessing||(this.isProcessing=!0,requestIdleCallback(e=>{this.processQueue(e)},{timeout:this.timeout}))}enqueueEvent(e,t){var n;this.canUseIdleCallback&&(null===(n=this.config.performanceConfig)||void 0===n?void 0:n.enabled)?(this.config.loggerProvider.debug("Enqueuing event for processing during idle time."),this.taskQueue.push({event:e,sessionId:t}),this.scheduleIdleProcessing()):(this.config.loggerProvider.debug("Processing event without idle callback."),this.addCompressedEvent(e,t))}processQueue(e){for(;this.taskQueue.length>0&&(e.timeRemaining()>0||e.didTimeout);){const e=this.taskQueue.shift();if(e){const{event:t,sessionId:n}=e;this.addCompressedEvent(t,n)}}this.taskQueue.length>0?requestIdleCallback(e=>{this.processQueue(e)},{timeout:this.timeout}):this.isProcessing=!1}}const We="Failed to store session replay events in IndexedDB",Be="1.30.5-feat-zoning-010526.0";class Ke{constructor({trackServerUrl:e,loggerProvider:t,payloadBatcher:n}){this.storageKey="",this.retryTimeout=1e3,this.scheduled=null,this.queue=[],this.loggerProvider=t,this.payloadBatcher=n||(e=>e),this.trackServerUrl=e}sendEventsList(e){this.addToQueue(Object.assign(Object.assign({},e),{attempts:0,timeout:0}))}addToQueue(...e){e.filter(e=>e.attempts<(e.flushMaxRetries||0)?(e.attempts+=1,!0):(this.completeRequest({context:e,err:"Session replay event batch rejected due to exceeded retry count"}),!1)).forEach(e=>{this.queue=this.queue.concat(e),0!==e.timeout?setTimeout(()=>{e.timeout=0,this.schedule(0)},e.timeout):this.schedule(0)})}schedule(e){this.scheduled||(this.scheduled=setTimeout(()=>{this.flush(!0).then(()=>{this.queue.length>0&&this.schedule(e)})},e))}flush(e=!1){return i(this,void 0,void 0,function*(){const t=[],n=[];this.queue.forEach(e=>0===e.timeout?t.push(e):n.push(e)),this.queue=n,this.scheduled&&(clearTimeout(this.scheduled),this.scheduled=null),yield Promise.all(t.map(t=>this.send(t,e)))})}send(e,t=!0){var n,r;return i(this,void 0,void 0,function*(){const i=e.apiKey;if(!i)return this.completeRequest({context:e,err:"Session replay event batch not sent due to missing api key"});const s=e.deviceId;if(!s)return this.completeRequest({context:e,err:"Session replay event batch not sent due to missing device ID"});const o=(()=>{const e=v();return(null==e?void 0:e.location)?e.location.href:""})(),a=Be,l=e.sampleRate,c=new URLSearchParams({device_id:s,session_id:`${e.sessionId}`,type:`${e.type}`}),d=`${(null===(n=e.version)||void 0===n?void 0:n.type)||"standalone"}/${(null===(r=e.version)||void 0===r?void 0:r.version)||a}`,u=this.payloadBatcher({version:1,events:e.events});if(0!==u.events.length)try{const n={headers:{"Content-Type":"application/json",Accept:"*/*",Authorization:`Bearer ${i}`,"X-Client-Version":a,"X-Client-Library":d,"X-Client-Url":o.substring(0,1e3),"X-Client-Sample-Rate":`${l}`},body:JSON.stringify(u),method:"POST"},r=`${Y(e.serverZone,this.trackServerUrl)}?${c.toString()}`,s=yield fetch(r,n);if(null===s)return void this.completeRequest({context:e,err:"Unexpected error occurred"});if(t)this.handleReponse(s.status,e);else{let t="";try{t=JSON.stringify(s.body,null,2)}catch(e){}this.completeRequest({context:e,success:`${s.status}: ${t}`})}}catch(t){this.completeRequest({context:e,err:t})}else this.completeRequest({context:e})})}handleReponse(e,t){switch((new j).buildStatus(e)){case c.Success:this.handleSuccessResponse(t);break;case c.Failed:this.handleOtherResponse(t);break;default:this.completeRequest({context:t,err:"Network error occurred, event batch rejected"})}}handleSuccessResponse(e){const t=Math.round(new Blob(e.events).size/1024);this.completeRequest({context:e,success:`Session replay event batch tracked successfully for session id ${e.sessionId}, size of events: ${t} KB`})}handleOtherResponse(e){this.addToQueue(Object.assign(Object.assign({},e),{timeout:e.attempts*this.retryTimeout}))}completeRequest({context:e,err:t,success:n}){e.onComplete(),t?this.loggerProvider.warn(t):n&&this.loggerProvider.log(n)}}class ze{get timeAtLastSplit(){return this._timeAtLastSplit}constructor(e){var t,n,i;this.minInterval=500,this.maxInterval=1e4,this.maxPersistedEventsSize=1e6,this.interval=this.minInterval,this._timeAtLastSplit=Date.now(),this.shouldSplitEventsList=(e,t)=>{const n=this.getStringSize(t);return this.getEventsArraySize(e)+n>=this.maxPersistedEventsSize||!!(Date.now()-this.timeAtLastSplit>this.interval&&e.length)&&(this.interval=Math.min(this.maxInterval,this.interval+this.minInterval),this._timeAtLastSplit=Date.now(),!0)},this.loggerProvider=e.loggerProvider,this.minInterval=null!==(t=e.minInterval)&&void 0!==t?t:this.minInterval,this.maxInterval=null!==(n=e.maxInterval)&&void 0!==n?n:this.maxInterval,this.maxPersistedEventsSize=null!==(i=e.maxPersistedEventsSize)&&void 0!==i?i:this.maxPersistedEventsSize}getStringSize(e){return e.length}getEventsArraySize(e){let t=0;for(const n of e)t+=this.getStringSize(n);return t+(2+Math.max(0,e.length-1)+2*e.length)}}var He;!function(e){e.RECORDING="recording",e.SENT="sent"}(He||(He={}));const Je="sessionCurrentSequence",Ge="sequencesToSend",Qe=e=>i(void 0,void 0,void 0,function*(){for(;e.length>0;){const t=10,n=e.splice(0,t);yield Promise.all(n)}}),Xe=e=>{let t,n;return e.objectStoreNames.contains(Je)||(n=e.createObjectStore(Je,{keyPath:"sessionId"})),e.objectStoreNames.contains(Ge)||(t=e.createObjectStore(Ge,{keyPath:"sequenceId",autoIncrement:!0}),t.createIndex("sessionId","sessionId")),{sequencesStore:t,currentSequenceStore:n}};class Ze extends ze{constructor(e){super(e),this.getSequencesToSend=()=>i(this,void 0,void 0,function*(){try{const e=[];let t=yield this.db.transaction("sequencesToSend").store.openCursor();for(;t;){const{sessionId:n,events:i}=t.value;e.push({events:i,sequenceId:t.key,sessionId:n}),t=yield t.continue()}return e}catch(e){this.loggerProvider.warn(`${We}: ${e}`)}}),this.storeCurrentSequence=e=>i(this,void 0,void 0,function*(){try{const t=yield this.db.get(Je,e);if(!t)return;const n=yield this.db.put(Ge,{sessionId:e,events:t.events});return yield this.db.put(Je,{sessionId:e,events:[]}),Object.assign(Object.assign({},t),{sessionId:e,sequenceId:n})}catch(e){this.loggerProvider.warn(`${We}: ${e}`)}}),this.addEventToCurrentSequence=(e,t)=>i(this,void 0,void 0,function*(){try{const n=this.db.transaction(Je,"readwrite"),i=yield n.store.get(e);if(!i)return void(yield n.store.put({sessionId:e,events:[t]}));let r;if(this.shouldSplitEventsList(i.events,t))r=i.events,yield n.store.put({sessionId:e,events:[t]});else{const r=i.events.concat(t);yield n.store.put({sessionId:e,events:r})}if(yield n.done,!r)return;const s=yield this.storeSendingEvents(e,r);if(!s)return;return{events:r,sessionId:e,sequenceId:s}}catch(e){this.loggerProvider.warn(`${We}: ${e}`)}}),this.storeSendingEvents=(e,t)=>i(this,void 0,void 0,function*(){try{return yield this.db.put(Ge,{sessionId:e,events:t})}catch(e){this.loggerProvider.warn(`${We}: ${e}`)}}),this.cleanUpSessionEventsStore=(e,t)=>i(this,void 0,void 0,function*(){if(t)try{yield this.db.delete(Ge,t)}catch(e){this.loggerProvider.warn(`${We}: ${e}`)}}),this.transitionFromKeyValStore=e=>i(this,void 0,void 0,function*(){try{const t=yield function(){const e=v();return new Promise((t,n)=>{if(!e)return n(new Error("Global scope not found"));if(!e.indexedDB)return n(new Error("Session Replay: cannot find indexedDB"));try{const i=e.indexedDB.open("keyval-store");let r=!1;i.onupgradeneeded=function(){1===i.result.version&&(r=!0)},i.onsuccess=function(){if(r){try{i.result.close()}catch(e){}try{e.indexedDB.deleteDatabase("keyval-store")}catch(e){}t()}else t(i.result)},i.onerror=function(e){var r;if("AbortError"===(null===(r=i.error)||void 0===r?void 0:r.name))return e.preventDefault(),void t();n(i.error)}}catch(e){n(e)}})}();if(!t)return;const n=(e,t)=>i(this,void 0,void 0,function*(){const n=t.sessionSequences,r=[];Object.keys(n).forEach(s=>{const o=parseInt(s,10),a=n[o];if(o===t.currentSequenceId){const t=a.events.map(t=>i(this,void 0,void 0,function*(){return this.addEventToCurrentSequence(e,t)}));r.push(...t)}else a.status!==He.SENT&&r.push(this.storeSendingEvents(e,a.events))}),yield Qe(r)}),r=`${d}_${this.apiKey.substring(0,10)}`;try{const s=t.transaction("keyval").objectStore("keyval").getAll(r),o=new Promise(t=>{s.onsuccess=r=>i(this,void 0,void 0,function*(){const i=r&&r.target.result,s=i&&i[0];if(s){const t=[];Object.keys(s).forEach(i=>{const r=parseInt(i,10),o=s[r];if(e===r)t.push(n(r,o));else{const e=o.sessionSequences;Object.keys(e).forEach(n=>{const i=parseInt(n,10);e[i].status!==He.SENT&&t.push(this.storeSendingEvents(r,e[i].events))})}}),yield Qe(t)}t()})});yield o;const a=v();a&&a.indexedDB.deleteDatabase("keyval-store")}catch(e){this.loggerProvider.warn(`Failed to transition session replay events from keyval to new store: ${e}`)}}catch(e){this.loggerProvider.warn(`Failed to access keyval store: ${e}. For more information, visit: https://www.docs.developers.amplitude.com/session-replay/sdks/standalone/#indexeddb-best-practices`)}}),this.apiKey=e.apiKey,this.db=e.db}static new(e,t,n){return i(this,void 0,void 0,function*(){try{const r="replay"===e?"":`_${e}`,s=`${t.apiKey.substring(0,10)}_amp_session_replay_events${r}`,a=yield(e=>i(void 0,void 0,void 0,function*(){return yield o(e,1,{upgrade:Xe})}))(s),l=new Ze(Object.assign(Object.assign({},t),{db:a}));return yield l.transitionFromKeyValStore(n),l}catch(e){t.loggerProvider.warn(`${We}: ${e}`)}})}getCurrentSequenceEvents(e){return i(this,void 0,void 0,function*(){if(e){const t=yield this.db.get("sessionCurrentSequence",e);if(!t)return;return[t]}const t=[];for(const e of yield this.db.getAll("sessionCurrentSequence"))t.push(e);return t})}}class Ye extends ze{constructor(){super(...arguments),this.finalizedSequences={},this.sequences={},this.sequenceId=0}resetCurrentSequence(e){this.sequences[e]=[]}addSequence(e){const t=this.sequenceId++,n=[...this.sequences[e]];return this.finalizedSequences[t]={sessionId:e,events:n},this.resetCurrentSequence(e),{sequenceId:t,events:n,sessionId:e}}getSequencesToSend(){return i(this,void 0,void 0,function*(){return Object.entries(this.finalizedSequences).map(([e,{sessionId:t,events:n}])=>({sequenceId:Number(e),sessionId:t,events:n}))})}storeCurrentSequence(e){return i(this,void 0,void 0,function*(){if(this.sequences[e])return this.addSequence(e)})}addEventToCurrentSequence(e,t){return i(this,void 0,void 0,function*(){let n;return this.sequences[e]||this.resetCurrentSequence(e),this.shouldSplitEventsList(this.sequences[e],t)&&(n=this.addSequence(e)),this.sequences[e].push(t),n})}storeSendingEvents(e,t){return i(this,void 0,void 0,function*(){return this.finalizedSequences[this.sequenceId]={sessionId:e,events:t},this.sequenceId++})}cleanUpSessionEventsStore(e,t){return i(this,void 0,void 0,function*(){void 0!==t&&delete this.finalizedSequences[t]})}}const Ve=({config:e,sessionId:t,minInterval:n,maxInterval:r,type:s,payloadBatcher:o,storeType:a})=>i(void 0,void 0,void 0,function*(){const l=new Ke(Object.assign(Object.assign({},e),{loggerProvider:e.loggerProvider,payloadBatcher:o})),c=()=>new Ye({loggerProvider:e.loggerProvider,maxInterval:r,minInterval:n}),d="idb"===a?yield i(void 0,void 0,void 0,function*(){const i=yield Ze.new(s,{loggerProvider:e.loggerProvider,minInterval:n,maxInterval:r,apiKey:e.apiKey},t);return e.loggerProvider.log("Failed to initialize idb store, falling back to memory store."),null!=i?i:c()}):c(),u=({events:t,sessionId:n,deviceId:r,sequenceId:o})=>{e.debugMode&&te().then(({totalStorageSize:t,percentOfQuota:n,usageDetails:i})=>{e.loggerProvider.debug(`Total storage size: ${t} KB, percentage of quota: ${n}%, usage details: ${i}`)}).catch(()=>{}),l.sendEventsList({events:t,sessionId:n,flushMaxRetries:e.flushMaxRetries,apiKey:e.apiKey,deviceId:r,sampleRate:e.sampleRate,serverZone:e.serverZone,version:e.version,type:s,onComplete:()=>i(void 0,void 0,void 0,function*(){yield d.cleanUpSessionEventsStore(n,o)})})};return{sendCurrentSequenceEvents:({sessionId:t,deviceId:n})=>{d.storeCurrentSequence(t).then(e=>{e&&u({sequenceId:e.sequenceId,events:e.events,sessionId:e.sessionId,deviceId:n})}).catch(t=>{e.loggerProvider.warn("Failed to get current sequence of session replay events for session:",t)})},addEvent:({event:t,sessionId:n,deviceId:i})=>{d.addEventToCurrentSequence(n,t.data).then(e=>e&&u({sequenceId:e.sequenceId,events:e.events,sessionId:e.sessionId,deviceId:i})).catch(t=>{e.loggerProvider.warn("Failed to add event to session replay capture:",t)})},sendStoredEvents:({deviceId:e})=>i(void 0,void 0,void 0,function*(){const t=yield d.getSequencesToSend();t&&t.forEach(t=>{u({sequenceId:t.sequenceId,events:t.events,sessionId:t.sessionId,deviceId:e})})}),flush:function(e=!1){return i(this,void 0,void 0,function*(){return l.flush(e)})}}});class et{constructor(...e){const t=new Map;e.forEach(e=>{t.set(e.name,e.manager)}),this.managers=t}sendStoredEvents(e){return i(this,void 0,void 0,function*(){const t=[];this.managers.forEach(n=>{t.push(n.sendStoredEvents(e))}),yield Promise.all(t)})}addEvent({sessionId:e,event:t,deviceId:n}){var i;null===(i=this.managers.get(t.type))||void 0===i||i.addEvent({sessionId:e,event:t,deviceId:n})}sendCurrentSequenceEvents({sessionId:e,deviceId:t}){this.managers.forEach(n=>{n.sendCurrentSequenceEvents({sessionId:e,deviceId:t})})}flush(e){return i(this,void 0,void 0,function*(){const t=[];this.managers.forEach(n=>{t.push(n.flush(e))}),yield Promise.all(t)})}}let tt,nt,it;function rt(e,t){if(it=new Date,e.nodeType!==Node.ELEMENT_NODE)throw new Error("Can't generate CSS selector for non-element node type.");if("html"===e.tagName.toLowerCase())return"html";const n={root:document.body,idName:e=>!0,className:e=>!0,tagName:e=>!0,attr:(e,t)=>!1,seedMinLength:1,optimizedMinLength:2,threshold:1e3,maxNumberOfTries:1e4,timeoutMs:void 0};tt=Object.assign(Object.assign({},n),t),nt=function(e,t){if(e.nodeType===Node.DOCUMENT_NODE)return e;if(e===t.root)return e.ownerDocument;return e}(tt.root,n);let i=st(e,"all",()=>st(e,"two",()=>st(e,"one",()=>st(e,"none"))));if(i){const t=It(Ct(i,e));return t.length>0&&(i=t[0]),at(i)}throw new Error("Selector was not found.")}function st(e,t,n){let i=null,r=[],s=e,o=0;for(;s;){const e=(new Date).getTime()-it.getTime();if(void 0!==tt.timeoutMs&&e>tt.timeoutMs)throw new Error(`Timeout: Can't find a unique selector after ${e}ms`);let a=yt(dt(s))||yt(...ut(s))||yt(...ht(s))||yt(gt(s))||[vt()];const l=ft(s);if("all"==t)l&&(a=a.concat(a.filter(mt).map(e=>pt(e,l))));else if("two"==t)a=a.slice(0,1),l&&(a=a.concat(a.filter(mt).map(e=>pt(e,l))));else if("one"==t){const[e]=a=a.slice(0,1);l&&mt(e)&&(a=[pt(e,l)])}else"none"==t&&(a=[vt()],l&&(a=[pt(a[0],l)]));for(let e of a)e.level=o;if(r.push(a),r.length>=tt.seedMinLength&&(i=ot(r,n),i))break;s=s.parentElement,o++}return i||(i=ot(r,n)),!i&&n?n():i}function ot(e,t){const n=It(St(e));if(n.length>tt.threshold)return t?t():null;for(let e of n)if(ct(e))return e;return null}function at(e){let t=e[0],n=t.name;for(let i=1;i<e.length;i++){const r=e[i].level||0;n=t.level===r-1?`${e[i].name} > ${n}`:`${e[i].name} ${n}`,t=e[i]}return n}function lt(e){return e.map(e=>e.penalty).reduce((e,t)=>e+t,0)}function ct(e){const t=at(e);switch(nt.querySelectorAll(t).length){case 0:throw new Error(`Can't select any node with this selector: ${t}`);case 1:return!0;default:return!1}}function dt(e){const t=e.getAttribute("id");return t&&tt.idName(t)?{name:"#"+CSS.escape(t),penalty:0}:null}function ut(e){const t=Array.from(e.attributes).filter(e=>tt.attr(e.name,e.value));return t.map(e=>({name:`[${CSS.escape(e.name)}="${CSS.escape(e.value)}"]`,penalty:.5}))}function ht(e){return Array.from(e.classList).filter(tt.className).map(e=>({name:"."+CSS.escape(e),penalty:1}))}function gt(e){const t=e.tagName.toLowerCase();return tt.tagName(t)?{name:t,penalty:2}:null}function vt(){return{name:"*",penalty:3}}function ft(e){const t=e.parentNode;if(!t)return null;let n=t.firstChild;if(!n)return null;let i=0;for(;n&&(n.nodeType===Node.ELEMENT_NODE&&i++,n!==e);)n=n.nextSibling;return i}function pt(e,t){return{name:e.name+`:nth-child(${t})`,penalty:e.penalty+1}}function mt(e){return"html"!==e.name&&!e.name.startsWith("#")}function yt(...e){const t=e.filter(bt);return t.length>0?t:null}function bt(e){return null!=e}function*St(e,t=[]){if(e.length>0)for(let n of e[0])yield*St(e.slice(1,e.length),t.concat(n));else yield t}function It(e){return[...e].sort((e,t)=>lt(e)-lt(t))}function*Ct(e,t,n={counter:0,visited:new Map}){if(e.length>2&&e.length>tt.optimizedMinLength)for(let i=1;i<e.length-1;i++){if(n.counter>tt.maxNumberOfTries)return;n.counter+=1;const r=[...e];r.splice(i,1);const s=at(r);if(n.visited.has(s))return;ct(r)&&wt(r,t)&&(yield r,n.visited.set(s,!0),yield*Ct(r,t,n))}}function wt(e,t){return nt.querySelector(at(e))===t}const Et=({version:e,events:t})=>{const n=[];return t.forEach(e=>{const t=JSON.parse(e);t.count=1,"click"===t.type&&n.push(t)}),{version:e,events:n}},Pt=({version:e,events:t})=>{const n=[];t.forEach(e=>{const t=JSON.parse(e);"click"===t.type&&n.push(t)});const i=n.reduce((e,t)=>{const{x:n,y:i,selector:r,timestamp:s}=t,o=s-s%36e5,a=`${n}:${i}:${null!=r?r:""}:${o}`;return e[a]?e[a].count+=1:e[a]=Object.assign(Object.assign({},t),{timestamp:o,count:1}),e},{});return{version:e,events:Object.values(i)}};class kt{constructor(e,t){this.createHook=({eventsManager:e,sessionId:t,deviceIdFn:n,mirror:i,ugcFilterRules:r,performanceOptions:s})=>o=>{if(o.type!==oe.Click)return;const a=v();if(!a)return;const{location:l,innerHeight:c,innerWidth:d}=a;if(!l)return;const{x:u,y:h}=o;if(void 0===u||void 0===h)return;const g=i.getNode(o.id);let f;if(g)try{f=rt(g,s)}catch(e){this.logger.debug("error resolving selector from finder")}const p=ee(l.href,r),m={x:u+this.scrollWatcher.currentScrollX,y:h+this.scrollWatcher.currentScrollY,selector:f,viewportHeight:c,viewportWidth:d,pageUrl:p,timestamp:Date.now(),type:"click"},y=n();y&&e.addEvent({sessionId:t,event:{type:"interaction",data:JSON.stringify(m)},deviceId:y})},this.logger=e,this.scrollWatcher=t}}function Ot(){const e=v();return(null==e?void 0:e.innerHeight)||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight||0}function Rt(){const e=v();return(null==e?void 0:e.innerWidth)||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth||0}class _t{constructor(e,t){const n=v();n&&n.navigator&&"function"==typeof n.navigator.sendBeacon?this.sendBeacon=(e,t)=>{try{if(n.navigator.sendBeacon(e,JSON.stringify(t)))return!0}catch(e){}return!1}:this.sendBeacon=()=>!1,this.sendXhr=(e,t)=>{const n=new XMLHttpRequest;return n.open("POST",e,!0),n.setRequestHeader("Accept","*/*"),n.send(JSON.stringify(t)),!0},this.basePageUrl=Y(t.serverZone,t.trackServerUrl),this.apiKey=t.apiKey,this.context=e}send(e,t){const{sessionId:n,type:i}=this.context,r=new URLSearchParams({device_id:e,session_id:String(n),type:String(i),api_key:this.apiKey}),s=`${this.basePageUrl}?${r.toString()}`;this.sendBeacon(s,t)||this.sendXhr(s,t)}}class Tt{static default(e,t){return new Tt(new _t(e,t),t)}constructor(e,t){this.timestamp=Date.now(),this.hook=e=>{this.update(e)},this.send=e=>t=>{var n,i;const r=e(),s=v();s&&r&&this.transport.send(r,{version:1,events:[{maxScrollX:this._maxScrollX,maxScrollY:this._maxScrollY,maxScrollWidth:this._maxScrollWidth,maxScrollHeight:this._maxScrollHeight,viewportHeight:Ot(),viewportWidth:Rt(),pageUrl:ee(s.location.href,null!==(i=null===(n=this.config.interactionConfig)||void 0===n?void 0:n.ugcFilterRules)&&void 0!==i?i:[]),timestamp:this.timestamp,type:"scroll"}]})},this._maxScrollX=0,this._maxScrollY=0,this._currentScrollX=0,this._currentScrollY=0,this._maxScrollWidth=Rt(),this._maxScrollHeight=Ot(),this.config=t,this.transport=e}get maxScrollX(){return this._maxScrollX}get maxScrollY(){return this._maxScrollY}get maxScrollWidth(){return this._maxScrollWidth}get maxScrollHeight(){return this._maxScrollHeight}get currentScrollX(){return this._currentScrollX}get currentScrollY(){return this._currentScrollY}update(e){const t=Date.now();if(this._currentScrollX=e.x,this._currentScrollY=e.y,e.x>this._maxScrollX){const n=Rt();this._maxScrollX=e.x;const i=e.x+n;i>this._maxScrollWidth&&(this._maxScrollWidth=i),this.timestamp=t}if(e.y>this._maxScrollY){const n=Ot();this._maxScrollY=e.y;const i=e.y+n;i>this._maxScrollHeight&&(this._maxScrollHeight=i),this.timestamp=t}}}class xt{constructor({sessionId:e,deviceId:t}){this.deviceId=t,this.sessionId=e,e&&t&&(this.sessionReplayId=((e,t)=>`${t}/${e}`)(e,t))}}const Mt=new class{constructor(){this.dbs={},this.createStore=e=>i(this,void 0,void 0,function*(){return yield o(e,1,{upgrade:e=>{e.objectStoreNames.contains("sessionTargetingMatch")||e.createObjectStore("sessionTargetingMatch",{keyPath:"sessionId"})}})}),this.openOrCreateDB=e=>i(this,void 0,void 0,function*(){if(this.dbs&&this.dbs[e])return this.dbs[e];const t=`${e.substring(0,10)}_amp_session_replay_targeting`,n=yield this.createStore(t);return this.dbs[e]=n,n}),this.getTargetingMatchForSession=({loggerProvider:e,apiKey:t,sessionId:n})=>i(this,void 0,void 0,function*(){try{const e=yield this.openOrCreateDB(t),i=String(n),r=yield e.get("sessionTargetingMatch",i);return null==r?void 0:r.targetingMatch}catch(t){e.warn(`Failed to get targeting match for session id ${n}: ${t}`)}}),this.storeTargetingMatchForSession=({loggerProvider:e,apiKey:t,sessionId:n,targetingMatch:r})=>i(this,void 0,void 0,function*(){try{const e=yield this.openOrCreateDB(t),i=String(n);return yield e.put("sessionTargetingMatch",{targetingMatch:r,sessionId:i,lastUpdated:Date.now()})}catch(t){e.warn(`Failed to store targeting match for session id ${n}: ${t}`)}}),this.clearStoreOfOldSessions=({loggerProvider:e,apiKey:t,currentSessionId:n})=>i(this,void 0,void 0,function*(){try{const e=yield this.openOrCreateDB(t),i=String(n),r=e.transaction("sessionTargetingMatch","readwrite"),s=yield r.store.getAll();for(let e=0;e<s.length;e++){const t=s[e],n=Date.now()-t.lastUpdated;t.sessionId!==i&&n>1728e5&&(yield r.store.delete(t.sessionId))}yield r.done}catch(t){e.warn(`Failed to clear old targeting matches for sessions: ${t}`)}})}};function Dt(e={}){return{name:"amplitude/url-tracking@1",observer(t,n,i){var r,s,o;const a=Object.assign(Object.assign({},e),i),l=a.ugcFilterRules||[],c=null!==(r=a.enablePolling)&&void 0!==r&&r,d=null!==(s=a.pollingInterval)&&void 0!==s?s:1e3,u=null!==(o=a.captureDocumentTitle)&&void 0!==o&&o;if(!n)return()=>{};let h;const g="__amplitude_url_tracking_patched__",v="__amplitude_url_tracking_reset__",f=()=>n.location&&n.location.href||"",p=()=>{const e=f();if(void 0===h||e!==h){h=e;const i=(()=>{const{innerHeight:e,innerWidth:t,document:i}=n,r=f();let s="";return u&&(s=(null==i?void 0:i.title)||""),{href:l.length>0?ee(r,l):r,title:s,viewportHeight:e,viewportWidth:t,type:"url-change-event"}})();t(i)}},m=e=>{const t=function(...t){const i=e.apply(this,t);return n[v]||p(),i};return t[g]=!0,t},y=()=>{p()};if(c){const e=n.setInterval(()=>{p()},d);return p(),()=>{e&&n.clearInterval(e)}}if(n.history){const e=n.history.pushState.bind(n.history),t=n.history.replaceState.bind(n.history);return(()=>{n.history.pushState[g]||(n.history.pushState=m(e),n.history.replaceState=m(t))})(),n.addEventListener("popstate",p),n.addEventListener("hashchange",y),p(),()=>{n[v]=!0,n.removeEventListener("popstate",p),n.removeEventListener("hashchange",y)}}return n.addEventListener("hashchange",y),p(),()=>{n.removeEventListener("hashchange",y)}},options:e}}class Lt{constructor(){this.name="@amplitude/session-replay-browser",this.recordCancelCallback=null,this.eventCount=0,this.sessionTargetingMatch=!1,this.pageLeaveFns=[],this.recordFunction=null,this.teardownEventListeners=e=>{const t=v();t&&(t.removeEventListener("blur",this.blurListener),t.removeEventListener("focus",this.focusListener),!e&&t.addEventListener("blur",this.blurListener),!e&&t.addEventListener("focus",this.focusListener),t.self&&"onpagehide"in t.self?(t.removeEventListener("pagehide",this.pageLeaveListener),!e&&t.addEventListener("pagehide",this.pageLeaveListener)):(t.removeEventListener("beforeunload",this.pageLeaveListener),!e&&t.addEventListener("beforeunload",this.pageLeaveListener)))},this.blurListener=()=>{this.sendEvents()},this.focusListener=()=>{this.recordEvents(!1)},this.pageLeaveListener=e=>{this.pageLeaveFns.forEach(t=>{t(e)})},this.evaluateTargetingAndCapture=(e,t=!1,n=!1)=>i(this,void 0,void 0,function*(){if(this.identifiers&&this.identifiers.sessionId&&this.config){if(!this.config.targetingConfig){if(!t)return void this.loggerProvider.log("No targeting config set, skipping initialization/recording for event.");this.loggerProvider.log("Targeting config has not been set yet, cannot evaluate targeting.")}if(this.lastTargetingParams=e,this.config.targetingConfig&&!this.sessionTargetingMatch){let t=e.event;t&&Object.values(l).includes(t.event_type)&&(t=void 0),this.sessionTargetingMatch=yield(({sessionId:e,targetingConfig:t,loggerProvider:n,apiKey:r,targetingParams:s})=>i(void 0,void 0,void 0,function*(){if(yield Mt.clearStoreOfOldSessions({loggerProvider:n,apiKey:r,currentSessionId:e}),!0===(yield Mt.getTargetingMatchForSession({loggerProvider:n,apiKey:r,sessionId:e})))return!0;let i=!0;try{const{evaluateTargeting:o}=yield import("./targeting-min.js").then(function(e){return e.i}),a=yield o(Object.assign(Object.assign({},s),{flag:t,sessionId:e,apiKey:r,loggerProvider:n}));a&&a.sr_targeting_config&&(i="on"===a.sr_targeting_config.key),Mt.storeTargetingMatchForSession({loggerProvider:n,apiKey:r,sessionId:e,targetingMatch:i})}catch(e){const t=e;n.warn(t.message)}return i}))({sessionId:this.identifiers.sessionId,targetingConfig:this.config.targetingConfig,loggerProvider:this.loggerProvider,apiKey:this.config.apiKey,targetingParams:{userProperties:e.userProperties,event:t}}),this.loggerProvider.debug(JSON.stringify({name:"targeted replay capture config",sessionTargetingMatch:this.sessionTargetingMatch,event:t,targetingParams:e},null,2))}t?this.initialize(!0):!n&&this.recordCancelCallback||(this.loggerProvider.log("Recording events for session due to forceRestart or no ongoing recording."),yield this.recordEvents())}else this.identifiers&&!this.identifiers.sessionId?this.loggerProvider.log("Session ID has not been set yet, cannot evaluate targeting for Session Replay."):this.loggerProvider.warn("Session replay init has not been called, cannot evaluate targeting.")}),this.addCustomRRWebEvent=(e,t={},n=!0)=>i(this,void 0,void 0,function*(){try{let i;const r=this.config;if(r&&e!==J.METADATA&&(i={config:ne(r),version:Be},n)){const e=yield te();i=Object.assign(Object.assign({},e),i)}this.recordCancelCallback&&this.recordFunction?this.recordFunction.addCustomEvent(e,Object.assign(Object.assign({},t),i)):this.loggerProvider.debug(`Not able to add custom replay capture event ${e} due to no ongoing recording.`)}catch(e){this.loggerProvider.debug("Error while adding custom replay capture event: ",e)}}),this.stopRecordingEvents=()=>{var e;try{this.loggerProvider.log("Session Replay capture stopping."),this.recordCancelCallback&&this.recordCancelCallback(),this.recordCancelCallback=null,null===(e=this.networkObservers)||void 0===e||e.stop()}catch(e){const t=e;this.loggerProvider.warn(`Error occurred while stopping replay capture: ${t.toString()}`)}},this.loggerProvider=new G(new b)}init(e,t){return m(this._init(e,t))}_init(e,t){var n,r,s,o,a,l;return i(this,void 0,void 0,function*(){this.loggerProvider=new G(t.loggerProvider||new b),Object.prototype.hasOwnProperty.call(t,"logLevel")&&this.loggerProvider.enable(t.logLevel),this.identifiers=new xt({sessionId:t.sessionId,deviceId:t.deviceId}),this.joinedConfigGenerator=yield((e,t)=>i(void 0,void 0,void 0,function*(){const n=new re(e,t),i=new U(e,n.loggerProvider,n.serverZone,t.configServerUrl);return new ae(i,n)}))(e,t);const{joinedConfig:c,localConfig:d,remoteConfig:u}=yield this.joinedConfigGenerator.generateJoinedConfig();if(this.config=c,this.setMetadata(t.sessionId,c,d,u,null===(n=t.version)||void 0===n?void 0:n.version,Be,null===(r=t.version)||void 0===r?void 0:r.type),t.sessionId&&(null===(s=this.config.interactionConfig)||void 0===s?void 0:s.enabled)){const e=Tt.default({sessionId:t.sessionId,type:"interaction"},this.config);this.pageLeaveFns=[e.send(this.getDeviceId.bind(this)).bind(e)],this.scrollHook=e.hook.bind(e),this.clickHandler=new kt(this.loggerProvider,e)}const h=[];let g,{storeType:f}=this.config;"idb"!==f||(null===(o=v())||void 0===o?void 0:o.indexedDB)||(f="memory",this.loggerProvider.warn("Could not use preferred indexedDB storage, reverting to in memory option.")),this.loggerProvider.log(`Using ${f} for event storage.`);try{const e=yield Ve({config:this.config,sessionId:this.identifiers.sessionId,type:"replay",storeType:f});h.push({name:"replay",manager:e})}catch(e){const t=e;this.loggerProvider.warn(`Error occurred while creating replay events manager: ${t.toString()}`)}if(null===(a=this.config.interactionConfig)||void 0===a?void 0:a.enabled){const e=this.config.interactionConfig.batch?Pt:Et;try{const t=yield Ve({config:this.config,sessionId:this.identifiers.sessionId,type:"interaction",minInterval:null!==(l=this.config.interactionConfig.trackEveryNms)&&void 0!==l?l:3e4,maxInterval:6e4,payloadBatcher:e,storeType:f});h.push({name:"interaction",manager:t})}catch(e){const t=e;this.loggerProvider.warn(`Error occurred while creating interaction events manager: ${t.toString()}`)}}this.eventsManager=new et(...h),this.eventCompressor&&this.eventCompressor.terminate();const p=v();if(this.config.useWebWorker&&p&&p.Worker){const{compressionScript:e}=yield import("./worker-min.js");g=e}this.eventCompressor=new Ae(this.eventsManager,this.config,this.getDeviceId(),g),yield this.initializeNetworkObservers(),this.loggerProvider.log("Installing @amplitude/session-replay-browser."),this.teardownEventListeners(!1),yield this.evaluateTargetingAndCapture({userProperties:t.userProperties},!0)})}setSessionId(e,t){return m(this.asyncSetSessionId(e,t))}asyncSetSessionId(e,t,n){var r;return i(this,void 0,void 0,function*(){this.sessionTargetingMatch=!1,this.lastShouldRecordDecision=void 0;const i=this.identifiers&&this.identifiers.sessionId;i&&this.sendEvents(i);const s=t||this.getDeviceId();if(this.identifiers=new xt({sessionId:e,deviceId:s}),this.joinedConfigGenerator&&i){const{joinedConfig:e}=yield this.joinedConfigGenerator.generateJoinedConfig();this.config=e}(null===(r=this.config)||void 0===r?void 0:r.targetingConfig)?yield this.evaluateTargetingAndCapture({userProperties:null==n?void 0:n.userProperties},!1,!0):yield this.recordEvents()})}getSessionReplayProperties(){const e=this.config,t=this.identifiers;if(!e||!t)return this.loggerProvider.warn("Session replay init has not been called, cannot get session replay properties."),{};const n=this.getShouldRecord();let i={};return n&&(i={[W]:t.sessionReplayId?t.sessionReplayId:null},e.debugMode&&(i[z]=JSON.stringify({appHash:N(e.apiKey).toString()}))),this.addCustomRRWebEvent(J.GET_SR_PROPS,{shouldRecord:n,eventProperties:i},10===this.eventCount),10===this.eventCount&&(this.eventCount=0),this.eventCount++,i}sendEvents(e){var t;const n=e||(null===(t=this.identifiers)||void 0===t?void 0:t.sessionId),i=this.getDeviceId();this.eventsManager&&n&&i&&this.eventsManager.sendCurrentSequenceEvents({sessionId:n,deviceId:i})}initialize(e=!1){var t;return i(this,void 0,void 0,function*(){if(!(null===(t=this.identifiers)||void 0===t?void 0:t.sessionId))return this.loggerProvider.log("Session is not being recorded due to lack of session id."),Promise.resolve();const n=this.getDeviceId();return n?(this.eventsManager&&e&&this.eventsManager.sendStoredEvents({deviceId:n}),this.recordEvents()):(this.loggerProvider.log("Session is not being recorded due to lack of device id."),Promise.resolve())})}shouldOptOut(){var e,t;let n;if(null===(e=this.config)||void 0===e?void 0:e.instanceName){n=(i=this.config.instanceName,void 0===i&&(i=u),q.getInstance(i)).identityStore.getIdentity().optOut}var i;return void 0!==n?n:null===(t=this.config)||void 0===t?void 0:t.optOut}getShouldRecord(){if(!this.identifiers||!this.config||!this.identifiers.sessionId)return this.loggerProvider.warn("Session is not being recorded due to lack of config, please call sessionReplay.init."),!1;if(!this.config.captureEnabled)return this.loggerProvider.log(`Session ${this.identifiers.sessionId} not being captured due to capture being disabled for project or because the remote config could not be fetched.`),!1;if(this.shouldOptOut())return this.loggerProvider.log(`Opting session ${this.identifiers.sessionId} out of recording due to optOut config.`),!1;let e=!1,t="",n=!1;if(this.config.targetingConfig)this.sessionTargetingMatch?(t=`Capturing replays for session ${this.identifiers.sessionId} due to matching targeting conditions.`,this.loggerProvider.log(t),e=!0,n=!0):(t=`Not capturing replays for session ${this.identifiers.sessionId} due to not matching targeting conditions.`,this.loggerProvider.log(t),e=!1,n=!1);else{(i=this.identifiers.sessionId,r=this.config.sampleRate,s=N(i.toString()),31*Math.abs(s)%1e6/1e6<r)?(e=!0,n=!0):(t=`Opting session ${this.identifiers.sessionId} out of recording due to sample rate.`,this.loggerProvider.log(t),e=!1,n=!1)}var i,r,s;return this.lastShouldRecordDecision!==e&&this.config.targetingConfig&&(this.addCustomRRWebEvent(J.TARGETING_DECISION,{message:t,sessionId:this.identifiers.sessionId,matched:n,targetingParams:this.lastTargetingParams}),this.lastShouldRecordDecision=e),e}getBlockSelectors(){var e,t,n;const i=null!==(n=null===(t=null===(e=this.config)||void 0===e?void 0:e.privacyConfig)||void 0===t?void 0:t.blockSelector)&&void 0!==n?n:[];if(0!==i.length)return i}getMaskTextSelectors(){var e,t,n,i;if("conservative"===(null===(t=null===(e=this.config)||void 0===e?void 0:e.privacyConfig)||void 0===t?void 0:t.defaultMaskLevel))return"*";const r=null===(i=null===(n=this.config)||void 0===n?void 0:n.privacyConfig)||void 0===i?void 0:i.maskSelector;return r||void 0}getRecordingPlugins(e){var t,n,r,s,o,a;return i(this,void 0,void 0,function*(){const i=[];try{const e=Dt({ugcFilterRules:(null===(n=null===(t=this.config)||void 0===t?void 0:t.interactionConfig)||void 0===n?void 0:n.ugcFilterRules)||[],enablePolling:(null===(r=this.config)||void 0===r?void 0:r.enableUrlChangePolling)||!1,pollingInterval:null===(s=this.config)||void 0===s?void 0:s.urlChangePollingInterval,captureDocumentTitle:null===(o=this.config)||void 0===o?void 0:o.captureDocumentTitle});i.push(e)}catch(e){this.loggerProvider.warn("Failed to create URL tracking plugin:",e)}if(null===(a=null==e?void 0:e.console)||void 0===a?void 0:a.enabled)try{const{getRecordConsolePlugin:t}=yield import("./console-plugin-min.js");i.push(t({level:e.console.levels}))}catch(e){this.loggerProvider.warn("Failed to load console plugin:",e)}return i.length>0?i:void 0})}getRecordFunction(){return i(this,void 0,void 0,function*(){if(this.recordFunction)return this.recordFunction;try{const{record:e}=yield import("./rrweb-record-min.js");return this.recordFunction=e,e}catch(e){return this.loggerProvider.warn("Failed to load rrweb-record module:",e),null}})}recordEvents(e=!0){var t,n,r,s,o,a,l;return i(this,void 0,void 0,function*(){const i=this.config,c=this.getShouldRecord(),d=null===(t=this.identifiers)||void 0===t?void 0:t.sessionId;if(!c||!d||!i)return;this.stopRecordingEvents();const u=yield this.getRecordFunction();if(!u)return;yield this.initializeNetworkObservers(),null===(n=this.networkObservers)||void 0===n||n.start(e=>{this.addCustomRRWebEvent(J.FETCH_REQUEST,e)});const{privacyConfig:h,interactionConfig:g,loggingConfig:v}=i,f=(null==g?void 0:g.enabled)?{mouseInteraction:this.eventsManager&&(null===(r=this.clickHandler)||void 0===r?void 0:r.createHook({eventsManager:this.eventsManager,sessionId:d,deviceIdFn:this.getDeviceId.bind(this),mirror:u.mirror,ugcFilterRules:null!==(s=g.ugcFilterRules)&&void 0!==s?s:[],performanceOptions:null===(o=i.performanceConfig)||void 0===o?void 0:o.interaction})),scroll:this.scrollHook}:{},p=(null==g?void 0:g.enabled)&&g.ugcFilterRules?g.ugcFilterRules:[];this.loggerProvider.log(`Session Replay capture beginning for ${d}.`);try{this.recordCancelCallback=u({emit:e=>{if(this.shouldOptOut())return this.loggerProvider.log(`Opting session ${d} out of recording due to optOut config.`),this.stopRecordingEvents(),void this.sendEvents();e.type===se.Meta&&(e.data.href=ee(e.data.href,p)),this.eventCompressor&&this.eventCompressor.enqueueEvent(e,d)},inlineStylesheet:i.shouldInlineStylesheet,hooks:f,maskAllInputs:!0,maskTextClass:H,blockClass:"amp-block",blockSelector:this.getBlockSelectors(),applyBackgroundColorToBlockedElements:i.applyBackgroundColorToBlockedElements,maskInputFn:Z("input",h),maskTextFn:Z("text",h),maskTextSelector:this.getMaskTextSelectors(),recordCanvas:!1,slimDOMOptions:{script:null===(a=i.omitElementTags)||void 0===a?void 0:a.script,comment:null===(l=i.omitElementTags)||void 0===l?void 0:l.comment},errorHandler:e=>{const t=e;if(t.message.includes("insertRule")&&t.message.includes("CSSStyleSheet"))throw t;if(t._external_)throw t;return this.loggerProvider.warn("Error while capturing replay: ",t.toString()),!0},plugins:yield this.getRecordingPlugins(v)}),this.addCustomRRWebEvent(J.DEBUG_INFO),e&&this.addCustomRRWebEvent(J.METADATA,this.metadata)}catch(e){this.loggerProvider.warn("Failed to initialize session replay:",e)}})}getDeviceId(){var e;return null===(e=this.identifiers)||void 0===e?void 0:e.deviceId}getSessionId(){var e;return null===(e=this.identifiers)||void 0===e?void 0:e.sessionId}flush(e=!1){var t;return i(this,void 0,void 0,function*(){return null===(t=this.eventsManager)||void 0===t?void 0:t.flush(e)})}shutdown(){this.teardownEventListeners(!0),this.stopRecordingEvents(),this.sendEvents()}mapSDKType(e){return"plugin"===e?"@amplitude/plugin-session-replay-browser":"segment"===e?"@amplitude/segment-session-replay-plugin":null}setMetadata(e,t,n,i,r,s,o){const a=(null==e?void 0:e.toString())?N(e.toString()):void 0;this.metadata={joinedConfig:t,localConfig:n,remoteConfig:i,sessionId:e,hashValue:a,sampleRate:t.sampleRate,replaySDKType:this.mapSDKType(o),replaySDKVersion:r,standaloneSDKType:"@amplitude/session-replay-browser",standaloneSDKVersion:s}}initializeNetworkObservers(){var e,t,n;return i(this,void 0,void 0,function*(){if((null===(n=null===(t=null===(e=this.config)||void 0===e?void 0:e.loggingConfig)||void 0===t?void 0:t.network)||void 0===n?void 0:n.enabled)&&!this.networkObservers)try{const{NetworkObservers:e}=yield import("./observers-min.js");this.networkObservers=new e}catch(e){this.loggerProvider.warn("Failed to import or instantiate NetworkObservers:",e)}})}}const qt=e=>()=>{const{config:t}=e,{loggerProvider:n,logLevel:i}=t||ie();return{logger:n,logLevel:i}};var Nt=(()=>{const e=new Lt;return{init:E(e.init.bind(e),"init",qt(e)),evaluateTargetingAndCapture:E(e.evaluateTargetingAndCapture.bind(e),"evaluateTargetingAndRecord",qt(e)),setSessionId:E(e.setSessionId.bind(e),"setSessionId",qt(e)),getSessionId:E(e.getSessionId.bind(e),"getSessionId",qt(e)),getSessionReplayProperties:E(e.getSessionReplayProperties.bind(e),"getSessionReplayProperties",qt(e)),flush:E(e.flush.bind(e),"flush",qt(e)),shutdown:E(e.shutdown.bind(e),"shutdown",qt(e))}})();const{init:jt,setSessionId:$t,getSessionId:Ft,getSessionReplayProperties:Ut,flush:At,shutdown:Wt,evaluateTargetingAndCapture:Bt}=Nt;export{G as S,Ft as a,Ut as b,Wt as c,Bt as e,At as f,v as g,jt as i,$t as s};
2
2
  //# sourceMappingURL=index-min.js.map
Binary file