@esri/telemetry-amazon 6.0.0-beta.2 → 6.0.0-beta.4

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,8 +1,12 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.arcgisTelemetry = global.arcgisTelemetry || {}));
5
- })(this, (function (exports) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@analytics/aws-pinpoint')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@analytics/aws-pinpoint'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.arcgisTelemetry = global.arcgisTelemetry || {}, global.analyticsAWSPinpoint));
5
+ })(this, (function (exports, awsPinpointPlugin) { 'use strict';
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var awsPinpointPlugin__default = /*#__PURE__*/_interopDefaultLegacy(awsPinpointPlugin);
6
10
 
7
11
  function formatTelemetryAttributes({ telemetryData, dimensionLookup = {}, excludeKeys = [], }) {
8
12
  return Object.keys(telemetryData)
@@ -109,6 +113,181 @@
109
113
  hostname, path: page || pathname, pageUrl: page || pathname, pageName: title, previousPageUrl: previousPage === null || previousPage === void 0 ? void 0 : previousPage.pageUrl, previousPageName: previousPage === null || previousPage === void 0 ? void 0 : previousPage.pageName }, attributes), metrics);
110
114
  }
111
115
 
116
+ var dlv_umd = {exports: {}};
117
+
118
+ (function (module, exports) {
119
+ !function(t,n){module.exports=function(t,n,e,i,o){for(n=n.split?n.split("."):n,i=0;i<n.length;i++)t=t?t[n[i]]:o;return t===o?e:t};}();
120
+
121
+ }(dlv_umd));
122
+
123
+ var i$6 = dlv_umd.exports;
124
+
125
+ var n$5="function",t$4="string",e$3="undefined",r$5="boolean",o$5="object",c$5="number",i$5="symbol",a$7="null",S$4="form",j$4="input",A$5="button",E$5="select",P$4=typeof process!==e$3?process:{};P$4.env&&P$4.env.NODE_ENV||"";var $$4=typeof document!==e$3;null!=P$4.versions&&null!=P$4.versions.node;typeof Deno!==e$3&&typeof Deno.core!==e$3;$$4&&"nodejs"===window.name||typeof navigator!==e$3&&typeof navigator.userAgent!==e$3&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));function M$4(n,t){return t.charAt(0)[n]()+t.slice(1)}var U$4=M$4.bind(null,"toUpperCase"),H$4=M$4.bind(null,"toLowerCase");function J$5(n){return Y$4(n)?U$4(a$7):typeof n===o$5?yn$3(n):Object.prototype.toString.call(n).slice(8,-1)}function R$4(n,t){void 0===t&&(t=!0);var e=J$5(n);return t?H$4(e):e}function V$4(n,t){return typeof t===n}var W$4=V$4.bind(null,n$5),q$4=V$4.bind(null,t$4);V$4.bind(null,e$3);V$4.bind(null,r$5);V$4.bind(null,i$5);function Y$4(n){return null===n}function nn$3(n){return R$4(n)===c$5&&!isNaN(n)}function yn$3(n){return W$4(n.constructor)?n.constructor.name:null}function hn$3(n){return n instanceof Error||q$4(n.message)&&n.constructor&&nn$3(n.constructor.stackTraceLimit)}function Sn$3(n,t){if("object"!=typeof t||Y$4(t))return !1;if(t instanceof n)return !0;var e=R$4(new n(""));if(hn$3(t))for(;t;){if(R$4(t)===e)return !0;t=Object.getPrototypeOf(t);}return !1}Sn$3.bind(null,TypeError);Sn$3.bind(null,SyntaxError);function $n$3(n,t){var e=n instanceof Element||n instanceof HTMLDocument;return e&&t?Tn$3(n,t):e}function Tn$3(n,t){return void 0===t&&(t=""),n&&n.nodeName===t.toUpperCase()}function _n$3(n){var t=[].slice.call(arguments,1);return function(){return n.apply(void 0,[].slice.call(arguments).concat(t))}}_n$3($n$3,S$4);_n$3($n$3,A$5);_n$3($n$3,j$4);_n$3($n$3,E$5);
126
+
127
+ function n$4(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function o$4(){if($$4){var r=navigator,t=r.languages;return r.userLanguage||(t&&t.length?t[0]:r.language)}}function a$6(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}}function s$1(r){return function(e){for(var r,t=Object.create(null),o=/([^&=]+)=?([^&]*)/g;r=o.exec(e);){var a=n$4(r[1]),i=n$4(r[2]);if(a)if("[]"===a.substring(a.length-2)){var u=t[a=a.substring(0,a.length-2)]||(t[a]=[]);t[a]=Array.isArray(u)?u:[],t[a].push(i);}else t[a]=""===i||i;}for(var c in t){var l=c.split("[");l.length>1&&(m$2(t,l.map(function(e){return e.replace(/[?[\]\\ ]/g,"")}),t[c]),delete t[c]);}return t}(function(r){if(r){var t=r.match(/\?(.*)/);return t&&t[1]?t[1].split("#")[0]:""}return $$4&&window.location.search.substring(1)}(r))}function m$2(e,r,t){for(var n=r.length-1,o=0;o<n;++o){var a=r[o];if("__proto__"===a||"constructor"===a)break;a in e||(e[a]={}),e=e[a];}e[r[n]]=t;}function b$2(){for(var e="",r=0,t=4294967295*Math.random()|0;r++<36;){var n="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[r-1],o=15&t;e+="-"==n||"4"==n?n:("x"==n?o:3&o|8).toString(16),t=r%8==0?4294967295*Math.random()|0:t>>4;}return e}
128
+
129
+ var n$3="function",t$3="string",e$2="undefined",r$4="boolean",o$3="object",c$4="number",i$4="symbol",a$5="null",O$3="__",S$3="form",j$3="input",A$4="button",E$4="select",P$3=typeof process!==e$2?process:{};P$3.env&&P$3.env.NODE_ENV||"";var $$3=typeof document!==e$2;null!=P$3.versions&&null!=P$3.versions.node;typeof Deno!==e$2&&typeof Deno.core!==e$2;$$3&&"nodejs"===window.name||typeof navigator!==e$2&&typeof navigator.userAgent!==e$2&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));function M$3(n,t){return t.charAt(0)[n]()+t.slice(1)}var U$3=M$3.bind(null,"toUpperCase"),H$3=M$3.bind(null,"toLowerCase");function J$4(n){return Y$3(n)?U$3(a$5):typeof n===o$3?yn$2(n):Object.prototype.toString.call(n).slice(8,-1)}function R$3(n,t){void 0===t&&(t=!0);var e=J$4(n);return t?H$3(e):e}function V$3(n,t){return typeof t===n}var W$3=V$3.bind(null,n$3),q$3=V$3.bind(null,t$3);V$3.bind(null,e$2);V$3.bind(null,r$4);V$3.bind(null,i$4);function Y$3(n){return null===n}function nn$2(n){return R$3(n)===c$4&&!isNaN(n)}function yn$2(n){return W$3(n.constructor)?n.constructor.name:null}function hn$2(n){return n instanceof Error||q$3(n.message)&&n.constructor&&nn$2(n.constructor.stackTraceLimit)}function Sn$2(n,t){if("object"!=typeof t||Y$3(t))return !1;if(t instanceof n)return !0;var e=R$3(new n(""));if(hn$2(t))for(;t;){if(R$3(t)===e)return !0;t=Object.getPrototypeOf(t);}return !1}Sn$2.bind(null,TypeError);Sn$2.bind(null,SyntaxError);function $n$2(n,t){var e=n instanceof Element||n instanceof HTMLDocument;return e&&t?Tn$2(n,t):e}function Tn$2(n,t){return void 0===t&&(t=""),n&&n.nodeName===t.toUpperCase()}function _n$2(n){var t=[].slice.call(arguments,1);return function(){return n.apply(void 0,[].slice.call(arguments).concat(t))}}_n$2($n$2,S$3);_n$2($n$2,A$4);_n$2($n$2,j$3);_n$2($n$2,E$4);
130
+
131
+ var n$2="global",o$2=O$3+n$2+O$3,l$1=typeof self===o$3&&self.self===self&&self||typeof global===o$3&&global[n$2]===global&&global||void 0;function f(t){return l$1[o$2][t]}function a$4(t,e){return l$1[o$2][t]=e}function i$3(t){delete l$1[o$2][t];}function u$2(t,e,r){var n;try{if(s(t)){var o=window[t];n=o[e].bind(o);}}catch(t){}return n||r}l$1[o$2]||(l$1[o$2]={});var c$3={};function s(t){if(typeof c$3[t]!==e$2)return c$3[t];try{var e=window[t];e.setItem(e$2,e$2),e.removeItem(e$2);}catch(e){return c$3[t]=!1}return c$3[t]=!0}
132
+
133
+ var n$1="function",t$2="string",e$1="undefined",r$3="boolean",o$1="object",u$1="array",c$2="number",i$2="symbol",a$3="null",O$2="__",S$2="form",j$2="input",A$3="button",E$3="select",P$2=typeof process!==e$1?process:{};P$2.env&&P$2.env.NODE_ENV||"";var $$2=typeof document!==e$1;null!=P$2.versions&&null!=P$2.versions.node;typeof Deno!==e$1&&typeof Deno.core!==e$1;$$2&&"nodejs"===window.name||typeof navigator!==e$1&&typeof navigator.userAgent!==e$1&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));function M$2(n,t){return t.charAt(0)[n]()+t.slice(1)}var U$2=M$2.bind(null,"toUpperCase"),H$2=M$2.bind(null,"toLowerCase");function J$3(n){return Y$2(n)?U$2(a$3):typeof n===o$1?yn$1(n):Object.prototype.toString.call(n).slice(8,-1)}function R$2(n,t){void 0===t&&(t=!0);var e=J$3(n);return t?H$2(e):e}function V$2(n,t){return typeof t===n}var W$2=V$2.bind(null,n$1),q$2=V$2.bind(null,t$2);V$2.bind(null,e$1);var Q$1=V$2.bind(null,r$3);V$2.bind(null,i$2);function Y$2(n){return null===n}function nn$1(n){return R$2(n)===c$2&&!isNaN(n)}function rn(n){return R$2(n)===u$1}function on$1(n){if(!un$1(n))return !1;for(var t=n;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(n)===t}function un$1(n){return n&&(typeof n===o$1||null!==n)}function yn$1(n){return W$2(n.constructor)?n.constructor.name:null}function hn$1(n){return n instanceof Error||q$2(n.message)&&n.constructor&&nn$1(n.constructor.stackTraceLimit)}function Sn$1(n,t){if("object"!=typeof t||Y$2(t))return !1;if(t instanceof n)return !0;var e=R$2(new n(""));if(hn$1(t))for(;t;){if(R$2(t)===e)return !0;t=Object.getPrototypeOf(t);}return !1}Sn$1.bind(null,TypeError);Sn$1.bind(null,SyntaxError);function $n$1(n,t){var e=n instanceof Element||n instanceof HTMLDocument;return e&&t?Tn$1(n,t):e}function Tn$1(n,t){return void 0===t&&(t=""),n&&n.nodeName===t.toUpperCase()}function _n$1(n){var t=[].slice.call(arguments,1);return function(){return n.apply(void 0,[].slice.call(arguments).concat(t))}}_n$1($n$1,S$2);_n$1($n$1,A$3);_n$1($n$1,j$2);_n$1($n$1,E$3);
134
+
135
+ function h$1(){return h$1=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r]);}return e},h$1.apply(null,arguments)}var y="function",b$1="undefined",I$2="reducer",w="@@redux/",E$2=w+"INIT",P$1=w+Math.random().toString(36),S$1=/* #__PURE__ */function(){return typeof Symbol===y&&Symbol.observable||"@@observable"}(),N$1=" != "+y;function O$1(e,n,t){var r;if(typeof n===y&&typeof t===b$1&&(t=n,n=void 0),typeof t!==b$1){if(typeof t!==y)throw new Error("enhancer"+N$1);return t(O$1)(e,n)}if(typeof e!==y)throw new Error(I$2+N$1);var i=e,a=n,o=[],u=o,c=!1;function s(){u===o&&(u=o.slice());}function f(){return a}function d(e){if(typeof e!==y)throw new Error("Listener"+N$1);var n=!0;return s(),u.push(e),function(){if(n){n=!1,s();var t=u.indexOf(e);u.splice(t,1);}}}function p(e){if(!on$1(e))throw new Error("Act != obj");if(typeof e.type===b$1)throw new Error("ActType "+b$1);if(c)throw new Error("Dispatch in "+I$2);try{c=!0,a=i(a,e);}finally{c=!1;}for(var n=o=u,t=0;t<n.length;t++)(0, n[t])();return e}return p({type:E$2}),(r={dispatch:p,subscribe:d,getState:f,replaceReducer:function(e){if(typeof e!==y)throw new Error("next "+I$2+N$1);i=e,p({type:E$2});}})[S$1]=function(){var e,n=d;return (e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Observer != obj");function t(){e.next&&e.next(f());}return t(),{unsubscribe:n(t)}}})[S$1]=function(){return this},e},r}function A$2(e,n){var t=n&&n.type;return "action "+(t&&t.toString()||"?")+I$2+" "+e+" returns "+b$1}function _(){var e=[].slice.call(arguments);return 0===e.length?function(e){return e}:1===e.length?e[0]:e.reduce(function(e,n){return function(){return e(n.apply(void 0,[].slice.call(arguments)))}})}function k$1(){var e=arguments;return function(n){return function(t,r,i){var a,o=n(t,r,i),u=o.dispatch,c={getState:o.getState,dispatch:function(e){return u(e)}};return a=[].slice.call(e).map(function(e){return e(c)}),h$1({},o,{dispatch:u=_.apply(void 0,a)(o.dispatch)})}}}var x$1=O$2+"anon_id",j$1=O$2+"user_id",T=O$2+"user_traits",M$1="analytics",q$1="userId",U$1="anonymousId",V$1=["bootstrap","params","campaign","initializeStart","initialize","initializeEnd","ready","resetStart","reset","resetEnd","pageStart","page","pageEnd","pageAborted","trackStart","track","trackEnd","trackAborted","identifyStart","identify","identifyEnd","identifyAborted","userIdChanged","registerPlugins","enablePlugin","disablePlugin","online","offline","setItemStart","setItem","setItemEnd","setItemAborted","removeItemStart","removeItem","removeItemEnd","removeItemAborted"],L$1=["name","EVENTS","config","loaded"],C$1=V$1.reduce(function(e,n){return e[n]=n,e},{registerPluginType:function(e){return "registerPlugin:"+e},pluginReadyType:function(e){return "ready:"+e}}),R$1=/^utm_/,$$1=/^an_prop_/,D=/^an_trait_/;function B(e){var n=e.storage.setItem;return function(t){return function(r){return function(i){if(i.type===C$1.bootstrap){var a=i.params,o=i.user,u=i.persistedUser,c=i.initialUser,s=u.userId===o.userId;u.anonymousId!==o.anonymousId&&n(x$1,o.anonymousId),s||n(j$1,o.userId),c.traits&&n(T,h$1({},s&&u.traits?u.traits:{},c.traits));var l=Object.keys(i.params);if(l.length){var f=a.an_uid,d=a.an_event,p=l.reduce(function(e,n){if(n.match(R$1)||n.match(/^(d|g)clid/)){var t=n.replace(R$1,"");e.campaign["campaign"===t?"name":t]=a[n];}return n.match($$1)&&(e.props[n.replace($$1,"")]=a[n]),n.match(D)&&(e.traits[n.replace(D,"")]=a[n]),e},{campaign:{},props:{},traits:{}});t.dispatch(h$1({type:C$1.params,raw:a},p,f?{userId:f}:{})),f&&setTimeout(function(){return e.identify(f,p.traits)},0),d&&setTimeout(function(){return e.track(d,p.props)},0),Object.keys(p.campaign).length&&t.dispatch({type:C$1.campaign,campaign:p.campaign});}}return r(i)}}}}function X(e){return function(n,t){if(void 0===n&&(n={}),void 0===t&&(t={}),t.type===C$1.setItemEnd){if(t.key===x$1)return h$1({},n,{anonymousId:t.value});if(t.key===j$1)return h$1({},n,{userId:t.value})}switch(t.type){case C$1.identify:return Object.assign({},n,{userId:t.userId,traits:h$1({},n.traits,t.traits)});case C$1.reset:return [j$1,x$1,T].forEach(function(n){e.removeItem(n);}),Object.assign({},n,{userId:null,anonymousId:null,traits:{}});default:return n}}}function J$2(e){return {userId:e.getItem(j$1),anonymousId:e.getItem(x$1),traits:e.getItem(T)}}var W$1=function(e){return O$2+"TEMP"+O$2+e};function H$1(n){var t=n.storage,r=t.setItem,i=t.removeItem,a=t.getItem;return function(n){return function(t){return function(u){var c=u.userId,s=u.traits,l=u.options;if(u.type===C$1.reset&&([j$1,T,x$1].forEach(function(e){i(e);}),[q$1,U$1,"traits"].forEach(function(e){i$3(W$1(e));})),u.type===C$1.identify){a(x$1)||r(x$1,b$2());var f=a(j$1),d=a(T)||{};f&&f!==c&&n.dispatch({type:C$1.userIdChanged,old:{userId:f,traits:d},new:{userId:c,traits:s},options:l}),c&&r(j$1,c),s&&r(T,h$1({},d,s));}return t(u)}}}}var F$1={};function G$1(e,n){F$1[e]&&W$2(F$1[e])&&(F$1[e](n),delete F$1[e]);}function K(e,n,t){return new Promise(function(r,i){return n()?r(e):t<1?i(h$1({},e,{queue:!0})):new Promise(function(e){return setTimeout(e,10)}).then(function(a){return K(e,n,t-10).then(r,i)})})}function Q(e){return {abort:e}}function Y$1(e,n,t){var r={},i=n(),a=e.getState(),o=a.plugins,u=a.queue,c=a.user;if(!a.context.offline&&u&&u.actions&&u.actions.length){var s=u.actions.reduce(function(e,n,t){return o[n.plugin].loaded?(e.process.push(n),e.processIndex.push(t)):(e.requeue.push(n),e.requeueIndex.push(t)),e},{processIndex:[],process:[],requeue:[],requeueIndex:[]});if(s.processIndex&&s.processIndex.length){s.processIndex.forEach(function(n){var a=u.actions[n],s=a.plugin,f=a.payload.type,p=i[s][f];if(p&&W$2(p)){var m,g=function(e,n){return void 0===e&&(e={}),void 0===n&&(n={}),[q$1,U$1].reduce(function(t,r){return e.hasOwnProperty(r)&&n[r]&&n[r]!==e[r]&&(t[r]=n[r]),t},e)}(a.payload,c),v=r[g.meta.rid];if(!v&&(m=p({payload:g,config:o[s].config,instance:t,abort:Q}))&&on$1(m)&&m.abort)return void(r[g.meta.rid]=!0);if(!v){var y=f+":"+s;e.dispatch(h$1({},g,{type:y,_:{called:y,from:"queueDrain"}}));}}});var f=u.actions.filter(function(e,n){return !~s.processIndex.indexOf(n)});u.actions=f;}}}var Z=function(e){var n=e.data,t=e.action,r=e.instance,i=e.state,a=e.allPlugins,o=e.allMatches,u=e.store,c=e.EVENTS;try{var s=i.plugins,f=i.context,p=t.type,m=p.match(ee),g=n.exact.map(function(e){return e.pluginName});m&&(g=o.during.map(function(e){return e.pluginName}));var v=function(e,n){return function(t,r,i){var a=r.config,o=r.name,u=o+"."+t.type;i&&(u=i.event);var c=t.type.match(ee)?function(e,n,t,r,i){return function(a,o){var u=r?r.name:e,c=o&&se(o)?o:t;if(r&&(!(c=o&&se(o)?o:[e]).includes(e)||1!==c.length))throw new Error("Method "+n+" can only abort "+e+" plugin. "+JSON.stringify(c)+" input valid");return h$1({},i,{abort:{reason:a,plugins:c,caller:n,_:u}})}}(o,u,n,i,t):function(e,n){return function(){throw new Error(e.type+" action not cancellable. Remove abort in "+n)}}(t,u);return {payload:de(t),instance:e,config:a||{},abort:c}}}(r,g),y=n.exact.reduce(function(e,n){var t=n.pluginName,r=n.methodName,i=!1;return r.match(/^initialize/)||r.match(/^reset/)||(i=!s[t].loaded),f.offline&&r.match(/^(page|track|identify)/)&&(i=!0),e[""+t]=i,e},{});return Promise.resolve(n.exact.reduce(function(e,i,o){var u=i.pluginName;return Promise.resolve(e).then(function(e){function i(){return Promise.resolve(e)}var o=function(){if(n.namespaced&&n.namespaced[u])return Promise.resolve(n.namespaced[u].reduce(function(e,n,t){return Promise.resolve(e).then(function(e){return n.method&&W$2(n.method)?(function(e,n){var t=fe(e);if(t&&t.name===n){var r=fe(t.method);throw new Error([n+" plugin is calling method "+e,"Plugins cant call self","Use "+t.method+" "+(r?"or "+r.method:"")+" in "+n+" plugin insteadof "+e].join("\n"))}}(n.methodName,n.pluginName),Promise.resolve(n.method({payload:e,instance:r,abort:(t=e,i=u,o=n.pluginName,function(e,n){return h$1({},t,{abort:{reason:e,plugins:n||[i],caller:p,from:o||i}})}),config:ie(n.pluginName,s,a),plugins:s})).then(function(n){var t=on$1(n)?n:{};return Promise.resolve(h$1({},e,t))})):e;var t,i,o;})},Promise.resolve(t))).then(function(n){e[u]=n;});e[u]=t;}();return o&&o.then?o.then(i):i()})},Promise.resolve({}))).then(function(e){return Promise.resolve(n.exact.reduce(function(t,i,o){try{var c=n.exact.length===o+1,f=i.pluginName,d=a[f];return Promise.resolve(t).then(function(n){var t=e[f]?e[f]:{};if(m&&(t=n),ue(t,f))return re({data:t,method:p,instance:r,pluginName:f,store:u}),Promise.resolve(n);if(ue(n,f))return c&&re({data:n,method:p,instance:r,store:u}),Promise.resolve(n);if(y.hasOwnProperty(f)&&!0===y[f])return u.dispatch({type:"queue",plugin:f,payload:t,_:{called:"queue",from:"queueMechanism"}}),Promise.resolve(n);var i=v(e[f],a[f]);return Promise.resolve(d[p]({abort:i.abort,payload:t,instance:r,config:ie(f,s,a),plugins:s})).then(function(i){var a=on$1(i)?i:{},o=h$1({},n,a),c=e[f];if(ue(c,f))re({data:c,method:p,instance:r,pluginName:f,store:u});else {var s=p+":"+f;(s.match(/:/g)||[]).length<2&&!p.match(ne)&&!p.match(te)&&r.dispatch(h$1({},m?o:t,{type:s,_:{called:s,from:"submethod"}}));}return Promise.resolve(o)})})}catch(e){return Promise.reject(e)}},Promise.resolve(t))).then(function(e){if(!(p.match(ee)||p.match(/^registerPlugin/)||p.match(te)||p.match(ne)||p.match(/^params/)||p.match(/^userIdChanged/))){if(c.plugins.includes(p),e._&&e._.originalAction===p)return e;var t=h$1({},e,{_:{originalAction:e.type,called:e.type,from:"engineEnd"}});ce(e,n.exact.length)&&!p.match(/End$/)&&(t=h$1({},t,{type:e.type+"Aborted"})),u.dispatch(t);}return e})})}catch(e){return Promise.reject(e)}},ee=/Start$/,ne=/^bootstrap/,te=/^ready/;function re(e){var n=e.pluginName,t=e.method+"Aborted"+(n?":"+n:"");e.store.dispatch(h$1({},e.data,{type:t,_:{called:t,from:"abort"}}));}function ie(e,n,t){var r=n[e]||t[e];return r&&r.config?r.config:{}}function ae(e,n){return n.reduce(function(n,t){return t[e]?n.concat({methodName:e,pluginName:t.name,method:t[e]}):n},[])}function oe(e,n){var t=e.replace(ee,""),r=n?":"+n:"";return [""+e+r,""+t+r,t+"End"+r]}function ue(e,n){var t=e.abort;return !!t&&(!0===t||le(t,n)||t&&le(t.plugins,n))}function ce(e,n){var t=e.abort;if(!t)return !1;if(!0===t||q$2(t))return !0;var r=t.plugins;return se(t)&&t.length===n||se(r)&&r.length===n}function se(e){return Array.isArray(e)}function le(e,n){return !(!e||!se(e))&&e.includes(n)}function fe(e){var n=e.match(/(.*):(.*)/);return !!n&&{method:n[1],name:n[2]}}function de(e){return Object.keys(e).reduce(function(n,t){return "type"===t||(n[t]=on$1(e[t])?Object.assign({},e[t]):e[t]),n},{})}function pe(e,n,t){var r={};return function(i){return function(a){return function(o){try{var u,c=function(e){return u?e:a(f)},s=o.type,l=o.plugins,f=o;if(o.abort)return Promise.resolve(a(o));if(s===C$1.enablePlugin&&i.dispatch({type:C$1.initializeStart,plugins:l,disabled:[],fromEnable:!0,meta:o.meta}),s===C$1.disablePlugin&&setTimeout(function(){return G$1(o.meta.rid,{payload:o})},0),s===C$1.initializeEnd){var m=n(),g=Object.keys(m),v=g.filter(function(e){return l.includes(e)}).map(function(e){return m[e]}),y=[],b=[],I=o.disabled,w=v.map(function(e){var n=e.loaded,t=e.name,a=e.config;return K(e,function(){return n({config:a})},1e4).then(function(n){return r[t]||(i.dispatch({type:C$1.pluginReadyType(t),name:t,events:Object.keys(e).filter(function(e){return !L$1.includes(e)})}),r[t]=!0),y=y.concat(t),e}).catch(function(e){if(e instanceof Error)throw new Error(e);return b=b.concat(e.name),e})});Promise.all(w).then(function(e){var n={plugins:y,failed:b,disabled:I};setTimeout(function(){g.length===w.length+I.length&&i.dispatch(h$1({},{type:C$1.ready},n));},0);});}var E=function(){if(s!==C$1.bootstrap)return /^ready:([^:]*)$/.test(s)&&setTimeout(function(){return Y$1(i,n,e)},0),Promise.resolve(function(e,n,t,r,i){try{var a=W$2(n)?n():n,o=e.type,u=o.replace(ee,"");if(e._&&e._.called)return Promise.resolve(e);var c=t.getState(),s=(m=a,void 0===(g=c.plugins)&&(g={}),void 0===(v=e.options)&&(v={}),Object.keys(m).filter(function(e){var n=v.plugins||{};return Q$1(n[e])?n[e]:!1!==n.all&&(!g[e]||!1!==g[e].enabled)}).map(function(e){return m[e]}));o===C$1.initializeStart&&e.fromEnable&&(s=Object.keys(c.plugins).filter(function(n){var t=c.plugins[n];return e.plugins.includes(n)&&!t.initialized}).map(function(e){return a[e]}));var l=s.map(function(e){return e.name}),f=function(e,n){var t=oe(e).map(function(e){return ae(e,n)});return n.reduce(function(t,r){var i=r.name,a=oe(e,i).map(function(e){return ae(e,n)}),o=a[0],u=a[1],c=a[2];return o.length&&(t.beforeNS[i]=o),u.length&&(t.duringNS[i]=u),c.length&&(t.afterNS[i]=c),t},{before:t[0],beforeNS:{},during:t[1],duringNS:{},after:t[2],afterNS:{}})}(o,s);return Promise.resolve(Z({action:e,data:{exact:f.before,namespaced:f.beforeNS},state:c,allPlugins:a,allMatches:f,instance:t,store:r,EVENTS:i})).then(function(e){function n(){var n=function(){if(o.match(ee))return Promise.resolve(Z({action:h$1({},s,{type:u+"End"}),data:{exact:f.after,namespaced:f.afterNS},state:c,allPlugins:a,allMatches:f,instance:t,store:r,EVENTS:i})).then(function(e){e.meta&&e.meta.hasCallback&&G$1(e.meta.rid,{payload:e});})}();return n&&n.then?n.then(function(){return e}):e}if(ce(e,l.length))return e;var s,d=function(){if(o!==u)return Promise.resolve(Z({action:h$1({},e,{type:u}),data:{exact:f.during,namespaced:f.duringNS},state:c,allPlugins:a,allMatches:f,instance:t,store:r,EVENTS:i})).then(function(e){s=e;});s=e;}();return d&&d.then?d.then(n):n()})}catch(e){return Promise.reject(e)}var m,g,v;}(o,n,e,i,t)).then(function(e){var n=a(e);return u=1,n})}();return Promise.resolve(E&&E.then?E.then(c):c(E))}catch(e){return Promise.reject(e)}}}}}function me(e){return function(n){return function(n){return function(t){var r=t.type,i=t.key,a=t.value,o=t.options;if(r===C$1.setItem||r===C$1.removeItem){if(t.abort)return n(t);r===C$1.setItem?e.setItem(i,a,o):e.removeItem(i,o);}return n(t)}}}}var ge=function(){var e=this;this.before=[],this.after=[],this.addMiddleware=function(n,t){e[t]=e[t].concat(n);},this.removeMiddleware=function(n,t){var r=e[t].findIndex(function(e){return e===n});-1!==r&&(e[t]=[].concat(e[t].slice(0,r),e[t].slice(r+1)));},this.dynamicMiddlewares=function(n){return function(t){return function(r){return function(i){var a={getState:t.getState,dispatch:function(e){return t.dispatch(e)}},o=e[n].map(function(e){return e(a)});return _.apply(void 0,o)(r)(i)}}}};};function ve(e){return function(n,t){void 0===n&&(n={});var r={};if("initialize:aborted"===t.type)return n;if(/^registerPlugin:([^:]*)$/.test(t.type)){var i=he(t.type,"registerPlugin"),a=e()[i];if(!a||!i)return n;var o=t.enabled,u=a.config;return r[i]={enabled:o,initialized:!!o&&Boolean(!a.initialize),loaded:!!o&&Boolean(a.loaded({config:u})),config:u},h$1({},n,r)}if(/^initialize:([^:]*)$/.test(t.type)){var c=he(t.type,C$1.initialize),s=e()[c];return s&&c?(r[c]=h$1({},n[c],{initialized:!0,loaded:Boolean(s.loaded({config:s.config}))}),h$1({},n,r)):n}if(/^ready:([^:]*)$/.test(t.type))return r[t.name]=h$1({},n[t.name],{loaded:!0}),h$1({},n,r);switch(t.type){case C$1.disablePlugin:return h$1({},n,ye(t.plugins,!1,n));case C$1.enablePlugin:return h$1({},n,ye(t.plugins,!0,n));default:return n}}}function he(e,n){return e.substring(n.length+1,e.length)}function ye(e,n,t){return e.reduce(function(e,r){return e[r]=h$1({},t[r],{enabled:n}),e},t)}function be(e){try{return JSON.parse(JSON.stringify(e))}catch(e){}return e}var Ie={last:{},history:[]};function we(e,n){void 0===e&&(e=Ie);var t=n.options,r=n.meta;if(n.type===C$1.track){var i=be(h$1({event:n.event,properties:n.properties},Object.keys(t).length&&{options:t},{meta:r}));return h$1({},e,{last:i,history:e.history.concat(i)})}return e}var Ee={actions:[]};function Pe(e,n){void 0===e&&(e=Ee);var t=n.payload;switch(n.type){case"queue":var r;return r=t&&t.type&&t.type===C$1.identify?[n].concat(e.actions):e.actions.concat(n),h$1({},e,{actions:r});case"dequeue":return [];default:return e}}var Se=/#.*$/;function Ne(e){var n=/(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g.exec(e);return "/"+(n&&n[3]?n[3].split("?")[0].replace(Se,""):"")}var Oe,Ae,_e,ke,xe=function(e){if(void 0===e&&(e={}),!$$2)return e;var n=document,t=n.title,r=n.referrer,i=window,a=i.location,o=i.innerWidth,u=i.innerHeight,c=a.hash,s=a.search,l=function(e){var n=function(){if($$2)for(var e,n=document.getElementsByTagName("link"),t=0;e=n[t];t++)if("canonical"===e.getAttribute("rel"))return e.getAttribute("href")}();return n?n.match(/\?/)?n:n+e:window.location.href.replace(Se,"")}(s),f={title:t,url:l,path:Ne(l),hash:c,search:s,width:o,height:u};return r&&""!==r&&(f.referrer=r),h$1({},f,e)},je={last:{},history:[]};function Te(e,n){void 0===e&&(e=je);var t=n.options;if(n.type===C$1.page){var r=be(h$1({properties:n.properties,meta:n.meta},Object.keys(t).length&&{options:t}));return h$1({},e,{last:r,history:e.history.concat(r)})}return e}Oe=function(){if(!$$2)return !1;var e=navigator.appVersion;return ~e.indexOf("Win")?"Windows":~e.indexOf("Mac")?"MacOS":~e.indexOf("X11")?"UNIX":~e.indexOf("Linux")?"Linux":"Unknown OS"}(),Ae=$$2?document.referrer:null,_e=o$4(),ke=a$6();var ze={initialized:!1,sessionId:b$2(),app:null,version:null,debug:!1,offline:!!$$2&&!navigator.onLine,os:{name:Oe},userAgent:$$2?navigator.userAgent:"node",library:{name:M$1,version:"0.13.1"},timezone:ke,locale:_e,campaign:{},referrer:Ae};function Me(e,n){void 0===e&&(e=ze);var t=e.initialized,r=n.campaign;switch(n.type){case C$1.campaign:return h$1({},e,{campaign:r});case C$1.offline:return h$1({},e,{offline:!0});case C$1.online:return h$1({},e,{offline:!1});default:return t?e:h$1({},ze,e,{initialized:!0})}}var qe=["plugins","reducers","storage"];function Ue(e,n,t){if($$2){var r=window[(t?"add":"remove")+"EventListener"];e.split(" ").forEach(function(e){r(e,n);});}}function Ve(e){var n=Ue.bind(null,"online offline",function(n){return Promise.resolve(!navigator.onLine).then(e)});return n(!0),function(e){return n(!1)}}function Le(){return a$4(M$1,[]),function(e){return function(n,t,r){var i=e(n,t,r),a=i.dispatch;return Object.assign(i,{dispatch:function(e){return l$1[o$2][M$1].push(e.action||e),a(e)}})}}}function Ce(e){return function(){return _(_.apply(null,arguments),Le())}}function Re(e){return e?rn(e)?e:[e]:[]}function $e(n,t,r){void 0===n&&(n={});var i,a,o=b$2();return t&&(F$1[o]=(i=t,a=function(e){for(var n,t=e||Array.prototype.slice.call(arguments),r=0;r<t.length;r++)if(W$2(t[r])){n=t[r];break}return n}(r),function(e){a&&a(e),i(e);})),h$1({},n,{rid:o,ts:(new Date).getTime()},t?{hasCallback:!0}:{})}function De(n){void 0===n&&(n={});var t=n.reducers||{},c=n.initialUser||{},s=(n.plugins||[]).reduce(function(e,n){if(W$2(n))return e.middlewares=e.middlewares.concat(n),e;if(n.NAMESPACE&&(n.name=n.NAMESPACE),!n.name)throw new Error("https://lytics.dev/errors/1");n.config||(n.config={});var t=n.EVENTS?Object.keys(n.EVENTS).map(function(e){return n.EVENTS[e]}):[];e.pluginEnabled[n.name]=!(!1===n.enabled||!1===n.config.enabled),delete n.enabled,n.methods&&(e.methods[n.name]=Object.keys(n.methods).reduce(function(e,t){var r;return e[t]=(r=n.methods[t],function(){for(var e=Array.prototype.slice.call(arguments),n=new Array(r.length),t=0;t<e.length;t++)n[t]=e[t];return n[n.length]=Z,r.apply({instance:Z},n)}),e},{}),delete n.methods);var r=Object.keys(n).concat(t),i=new Set(e.events.concat(r));if(e.events=Array.from(i),e.pluginsArray=e.pluginsArray.concat(n),e.plugins[n.name])throw new Error(n.name+"AlreadyLoaded");return e.plugins[n.name]=n,e.plugins[n.name].loaded||(e.plugins[n.name].loaded=function(){return !0}),e},{plugins:{},pluginEnabled:{},methods:{},pluginsArray:[],middlewares:[],events:[]}),f$1=n.storage?n.storage:{getItem:f,setItem:a$4,removeItem:i$3},p=function(e){return function(n,t,r){return t.getState("user")[n]||(r&&on$1(r)&&r[n]?r[n]:J$2(e)[n]||f(W$1(n))||null)}}(f$1),v=s.plugins,w=s.events.filter(function(e){return !L$1.includes(e)}).sort(),S=new Set(w.concat(V$1).filter(function(e){return !L$1.includes(e)})),N=Array.from(S).sort(),j=function(){return v},T=new ge,z=T.addMiddleware,M=T.removeMiddleware,R=T.dynamicMiddlewares,$=function(){throw new Error("Abort disabled inListener")},D=s$1(),F=J$2(f$1),G=h$1({},F,c,D.an_uid?{userId:D.an_uid}:{},D.an_aid?{anonymousId:D.an_aid}:{});G.anonymousId||(G.anonymousId=b$2());var K=h$1({enable:function(e,n){return new Promise(function(t){se.dispatch({type:C$1.enablePlugin,plugins:Re(e),_:{originalAction:C$1.enablePlugin}},t,[n]);})},disable:function(e,n){return new Promise(function(t){se.dispatch({type:C$1.disablePlugin,plugins:Re(e),_:{originalAction:C$1.disablePlugin}},t,[n]);})}},s.methods),Q=!1,Z={identify:function(e,n,t,r){try{var i=q$2(e)?e:null,a=on$1(e)?e:n,o=t||{},c=Z.user();a$4(W$1(q$1),i);var s=i||a.userId||p(q$1,Z,a);return Promise.resolve(new Promise(function(e){se.dispatch(h$1({type:C$1.identifyStart,userId:s,traits:a||{},options:o,anonymousId:c.anonymousId},c.id&&c.id!==i&&{previousId:c.id}),e,[n,t,r]);}))}catch(e){return Promise.reject(e)}},track:function(e,n,t,r){try{var i=on$1(e)?e.event:e;if(!i||!q$2(i))throw new Error("EventMissing");var a=on$1(e)?e:n||{},o=on$1(t)?t:{};return Promise.resolve(new Promise(function(e){se.dispatch({type:C$1.trackStart,event:i,properties:a,options:o,userId:p(q$1,Z,n),anonymousId:p(U$1,Z,n)},e,[n,t,r]);}))}catch(e){return Promise.reject(e)}},page:function(e,n,t){try{var r=on$1(e)?e:{},i=on$1(n)?n:{};return Promise.resolve(new Promise(function(a){se.dispatch({type:C$1.pageStart,properties:xe(r),options:i,userId:p(q$1,Z,r),anonymousId:p(U$1,Z,r)},a,[e,n,t]);}))}catch(e){return Promise.reject(e)}},user:function(e){if(e===q$1||"id"===e)return p(q$1,Z);if(e===U$1||"anonId"===e)return p(U$1,Z);var n=Z.getState("user");return e?i$6(n,e):n},reset:function(e){return new Promise(function(n){se.dispatch({type:C$1.resetStart},n,e);})},ready:function(e){return Q&&e({plugins:K,instance:Z}),Z.on(C$1.ready,function(n){e&&e(n),Q=!0;})},on:function(e,n){if(!e||!W$2(n))return !1;if(e===C$1.bootstrap)throw new Error(".on disabled for "+e);var t=/Start$|Start:/;if("*"===e){var r=function(e){return function(e){return function(r){return r.type.match(t)&&n({payload:r,instance:Z,plugins:v}),e(r)}}},i=function(e){return function(e){return function(r){return r.type.match(t)||n({payload:r,instance:Z,plugins:v}),e(r)}}};return z(r,Be),z(i,Xe),function(){M(r,Be),M(i,Xe);}}var a=e.match(t)?Be:Xe,o=function(t){return function(t){return function(r){return r.type===e&&n({payload:r,instance:Z,plugins:v,abort:$}),t(r)}}};return z(o,a),function(){return M(o,a)}},once:function(e,n){if(!e||!W$2(n))return !1;if(e===C$1.bootstrap)throw new Error(".once disabled for "+e);var t=Z.on(e,function(e){n({payload:e.payload,instance:Z,plugins:v,abort:$}),t();});return t},getState:function(e){var n=se.getState();return e?i$6(n,e):Object.assign({},n)},dispatch:function(e){var n=q$2(e)?{type:e}:e;if(V$1.includes(n.type))throw new Error("reserved action "+n.type);var t=h$1({},n,{_:h$1({originalAction:n.type},e._||{})});se.dispatch(t);},enablePlugin:K.enable,disablePlugin:K.disable,plugins:K,storage:{getItem:f$1.getItem,setItem:function(e,n,t){se.dispatch({type:C$1.setItemStart,key:e,value:n,options:t});},removeItem:function(e,n){se.dispatch({type:C$1.removeItemStart,key:e,options:n});}},setAnonymousId:function(e,n){Z.storage.setItem(x$1,e,n);},events:{core:V$1,plugins:w}},ee=s.middlewares.concat([function(e){return function(e){return function(n){return n.meta||(n.meta=$e()),e(n)}}},R(Be),pe(Z,j,{all:N,plugins:w}),me(f$1),B(Z),H$1(Z),R(Xe)]),ne={context:Me,user:X(f$1),page:Te,track:we,plugins:ve(j),queue:Pe},te=_,re=_;if($$2&&n.debug){var ie=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;ie&&(te=ie({trace:!0,traceLimit:25})),re=function(){return 0===arguments.length?Le():on$1(typeof arguments[0])?Ce():Ce().apply(null,arguments)};}var ae,oe=function(e){return Object.keys(e).reduce(function(n,t){return qe.includes(t)||(n[t]=e[t]),n},{})}(n),ue=s.pluginsArray.reduce(function(e,n){var t=n.name,r=n.config,i=n.loaded,a=s.pluginEnabled[t];return e[t]={enabled:a,initialized:!!a&&Boolean(!n.initialize),loaded:Boolean(i({config:r})),config:r},e},{}),ce={context:oe,user:G,plugins:ue},se=O$1(function(e){for(var n=Object.keys(e),t={},r=0;r<n.length;r++){var i=n[r];typeof e[i]===y&&(t[i]=e[i]);}var a,o=Object.keys(t);try{!function(e){Object.keys(e).forEach(function(n){var t=e[n];if(typeof t(void 0,{type:E$2})===b$1||typeof t(void 0,{type:P$1})===b$1)throw new Error(I$2+" "+n+" "+b$1)});}(t);}catch(e){a=e;}return function(e,n){if(void 0===e&&(e={}),a)throw a;for(var r=!1,i={},u=0;u<o.length;u++){var c=o[u],s=e[c],l=(0, t[c])(s,n);if(typeof l===b$1){var f=A$2(c,n);throw new Error(f)}i[c]=l,r=r||l!==s;}return r?i:e}}(h$1({},ne,t)),ce,re(te(k$1.apply(void 0,ee))));se.dispatch=(ae=se.dispatch,function(e,n,t){var r=h$1({},e,{meta:$e(e.meta,n,Re(t))});return ae.apply(null,[r])});var le=Object.keys(v);se.dispatch({type:C$1.bootstrap,plugins:le,config:oe,params:D,user:G,initialUser:c,persistedUser:F});var fe=le.filter(function(e){return s.pluginEnabled[e]}),de=le.filter(function(e){return !s.pluginEnabled[e]});return se.dispatch({type:C$1.registerPlugins,plugins:le,enabled:s.pluginEnabled}),s.pluginsArray.map(function(e,n){var t=e.bootstrap,r=e.config,i=e.name;t&&W$2(t)&&t({instance:Z,config:r,payload:e}),se.dispatch({type:C$1.registerPluginType(i),name:i,enabled:s.pluginEnabled[i],plugin:e}),s.pluginsArray.length===n+1&&se.dispatch({type:C$1.initializeStart,plugins:fe,disabled:de});}),Ve(function(e){se.dispatch({type:e?C$1.offline:C$1.online});}),function(e,n,t){setInterval(function(){return Y$1(e,n,t)},3e3);}(se,j,Z),Z}var Be="before",Xe="after";
136
+
137
+ var t$1="cookie",i$1=a$2(),r$2=d$1,c$1=d$1;function u(e){return i$1?d$1(e,"",-1):i$3(e)}function a$2(){if(void 0!==i$1)return i$1;var e=t$1+t$1;try{d$1(e,e),i$1=-1!==document.cookie.indexOf(e),u(e);}catch(e){i$1=!1;}return i$1}function d$1(n,t,r,c,u,a){if("undefined"!=typeof window){var d=arguments.length>1;return !1===i$1&&(d?a$4(n,t):f(n)),d?document.cookie=n+"="+encodeURIComponent(t)+(r?"; expires="+new Date(+new Date+1e3*r).toUTCString()+(c?"; path="+c:"")+(u?"; domain="+u:"")+(a?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+n+"=")[1]||"").split(";")[0])}}
138
+
139
+ var r$1="localStorage",m$1=s.bind(null,r$1);u$2(r$1,"getItem",f);u$2(r$1,"setItem",a$4);u$2(r$1,"removeItem",i$3);
140
+
141
+ var a$1="sessionStorage",l=s.bind(null,a$1);u$2(a$1,"getItem",f);u$2(a$1,"setItem",a$4);u$2(a$1,"removeItem",i$3);
142
+
143
+ var n="function",t="string",e="undefined",r="boolean",o="object",c="number",i="symbol",a="null",m="any",v="*",S="form",j="input",A$1="button",E$1="select",P=typeof process!==e?process:{};P.env&&P.env.NODE_ENV||"";var $=typeof document!==e;null!=P.versions&&null!=P.versions.node;typeof Deno!==e&&typeof Deno.core!==e;$&&"nodejs"===window.name||typeof navigator!==e&&typeof navigator.userAgent!==e&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));function M(n,t){return t.charAt(0)[n]()+t.slice(1)}var U=M.bind(null,"toUpperCase"),H=M.bind(null,"toLowerCase");function J$1(n){return Y(n)?U(a):typeof n===o?yn(n):Object.prototype.toString.call(n).slice(8,-1)}function R(n,t){void 0===t&&(t=!0);var e=J$1(n);return t?H(e):e}function V(n,t){return typeof t===n}var W=V.bind(null,n),q=V.bind(null,t),I$1=V.bind(null,e);V.bind(null,r);V.bind(null,i);function Y(n){return null===n}function nn(n){return R(n)===c&&!isNaN(n)}function on(n){if(!un(n))return !1;for(var t=n;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(n)===t}function un(n){return n&&(typeof n===o||null!==n)}function yn(n){return W(n.constructor)?n.constructor.name:null}function hn(n){return n instanceof Error||q(n.message)&&n.constructor&&nn(n.constructor.stackTraceLimit)}function Sn(n,t){if("object"!=typeof t||Y(t))return !1;if(t instanceof n)return !0;var e=R(new n(""));if(hn(t))for(;t;){if(R(t)===e)return !0;t=Object.getPrototypeOf(t);}return !1}Sn.bind(null,TypeError);Sn.bind(null,SyntaxError);function $n(n,t){var e=n instanceof Element||n instanceof HTMLDocument;return e&&t?Tn(n,t):e}function Tn(n,t){return void 0===t&&(t=""),n&&n.nodeName===t.toUpperCase()}function _n(n){var t=[].slice.call(arguments,1);return function(){return n.apply(void 0,[].slice.call(arguments).concat(t))}}_n($n,S);_n($n,A$1);_n($n,j);_n($n,E$1);
144
+
145
+ function I(t){var o=t;try{if("true"===(o=JSON.parse(t)))return !0;if("false"===o)return !1;if(on(o))return o;parseFloat(o)===o&&(o=parseFloat(o));}catch(t){}if(null!==o&&""!==o)return o}var k=m$1(),O=l(),x=a$2();function C(o,e){if(o){var r=A(e),a=!N(r),s=d(r)?I(localStorage.getItem(o)):void 0;if(a&&!I$1(s))return s;var n=h(r)?I(r$2(o)):void 0;if(a&&n)return n;var l=E(r)?I(sessionStorage.getItem(o)):void 0;if(a&&l)return l;var u=f(o);return a?u:{localStorage:s,sessionStorage:l,cookie:n,global:u}}}function L(r,a,l){if(r&&!I$1(a)){var u={},g=A(l),m=JSON.stringify(a),p=!N(g);return d(g)&&(u[r$1]=F(r$1,a,I(localStorage.getItem(r))),localStorage.setItem(r,m),p)?u[r$1]:h(g)&&(u[t$1]=F(t$1,a,I(r$2(r))),c$1(r,m),p)?u[t$1]:E(g)&&(u[a$1]=F(a$1,a,I(sessionStorage.getItem(r))),sessionStorage.setItem(r,m),p)?u[a$1]:(u[n$2]=F(n$2,a,f(r)),a$4(r,a),p?u[n$2]:u)}}function b(t,e){if(t){var a=A(e),i=C(t,v),n={};return !I$1(i.localStorage)&&d(a)&&(localStorage.removeItem(t),n[r$1]=i.localStorage),!I$1(i.cookie)&&h(a)&&(u(t),n[t$1]=i.cookie),!I$1(i.sessionStorage)&&E(a)&&(sessionStorage.removeItem(t),n[a$1]=i.sessionStorage),!I$1(i.global)&&G(a,n$2)&&(i$3(t),n[n$2]=i.global),n}}function A(t){return t?q(t)?t:t.storage:m}function d(t){return k&&G(t,r$1)}function h(t){return x&&G(t,t$1)}function E(t){return O&&G(t,a$1)}function N(t){return t===v||"all"===t}function G(t,o){return t===m||t===o||N(t)}function F(t,o,e){return {location:t,current:o,previous:e}}var J={setItem:L,getItem:C,removeItem:b};
146
+
147
+ function _defineProperty(obj, key, value) {
148
+ if (key in obj) {
149
+ Object.defineProperty(obj, key, {
150
+ value: value,
151
+ enumerable: true,
152
+ configurable: true,
153
+ writable: true
154
+ });
155
+ } else {
156
+ obj[key] = value;
157
+ }
158
+ return obj;
159
+ }
160
+
161
+ function ownKeys(object, enumerableOnly) {
162
+ var keys = Object.keys(object);
163
+ if (Object.getOwnPropertySymbols) {
164
+ var symbols = Object.getOwnPropertySymbols(object);
165
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
166
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
167
+ })), keys.push.apply(keys, symbols);
168
+ }
169
+ return keys;
170
+ }
171
+ function _objectSpread2(target) {
172
+ for (var i = 1; i < arguments.length; i++) {
173
+ var source = null != arguments[i] ? arguments[i] : {};
174
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
175
+ _defineProperty(target, key, source[key]);
176
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
177
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
178
+ });
179
+ }
180
+ return target;
181
+ }
182
+
183
+ // See ../packages/analytics-core for source code
184
+ function analyticsLib() {
185
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
186
+ var defaultSettings = {
187
+ storage: J
188
+ };
189
+ return De(_objectSpread2(_objectSpread2({}, defaultSettings), opts));
190
+ }
191
+
192
+ const storage = {
193
+ storage: {},
194
+ memory: true,
195
+ get(key) {
196
+ let stored;
197
+ try {
198
+ stored =
199
+ (window.localStorage && window.localStorage.getItem(key)) ||
200
+ this.storage[key];
201
+ }
202
+ catch (e) {
203
+ stored = this.storage[key];
204
+ }
205
+ if (stored) {
206
+ try {
207
+ return JSON.parse(stored);
208
+ }
209
+ catch (e) {
210
+ return undefined;
211
+ }
212
+ }
213
+ else {
214
+ return undefined;
215
+ }
216
+ },
217
+ set(key, value) {
218
+ // handle Safari private mode (setItem is not allowed)
219
+ const valueToString = JSON.stringify(value);
220
+ try {
221
+ window.localStorage.setItem(key, valueToString);
222
+ }
223
+ catch (e) {
224
+ if (!this.memory) {
225
+ console.error('setting local storage failed, falling back to in-memory storage');
226
+ this.memory = true;
227
+ }
228
+ this.storage[key] = value;
229
+ }
230
+ },
231
+ delete(key) {
232
+ try {
233
+ window.localStorage.removeItem(key);
234
+ }
235
+ catch (e) {
236
+ if (!this.memory) {
237
+ console.error('setting local storage failed, falling back to in-memory storage');
238
+ this.memory = true;
239
+ }
240
+ delete this.storage[key];
241
+ }
242
+ },
243
+ };
244
+
245
+ const COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS';
246
+ function getCredentials(IdentityPoolId, options = {}) {
247
+ const fipsSubdomainSuffix = options.fips === true ? '-fips' : '';
248
+ const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`;
249
+ let cached = storage.get(COGNITO_KEY);
250
+ if (cached && Date.now() / 1000 < cached.Expiration)
251
+ return Promise.resolve(cached);
252
+ const fetchOptions = {
253
+ method: 'POST',
254
+ headers: {
255
+ 'Content-type': 'application/x-amz-json-1.1',
256
+ 'X-Amz-Target': 'AWSCognitoIdentityService.GetId',
257
+ },
258
+ body: JSON.stringify({ IdentityPoolId }),
259
+ };
260
+ return fetch(COGNITO_URL, fetchOptions)
261
+ .then((response) => {
262
+ if (!response.ok) {
263
+ throw new Error(response.statusText);
264
+ }
265
+ return response.json();
266
+ })
267
+ .then((response) => {
268
+ const { IdentityId } = response;
269
+ const options = {
270
+ method: 'POST',
271
+ headers: {
272
+ 'Content-type': 'application/x-amz-json-1.1',
273
+ 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity',
274
+ },
275
+ body: JSON.stringify({ IdentityId }),
276
+ };
277
+ return fetch(COGNITO_URL, options);
278
+ })
279
+ .then((response) => {
280
+ if (!response.ok) {
281
+ throw new Error(response.statusText);
282
+ }
283
+ return response.json();
284
+ })
285
+ .then(({ Credentials }) => {
286
+ storage.set(COGNITO_KEY, Credentials);
287
+ return Credentials;
288
+ });
289
+ }
290
+
112
291
  /******************************************************************************
113
292
  Copyright (c) Microsoft Corporation.
114
293
 
@@ -1488,154 +1667,9 @@
1488
1667
  return [HOST_SERVICES[service] || service, region || '']
1489
1668
  }
1490
1669
 
1491
- const storage = {
1492
- storage: {},
1493
- memory: true,
1494
- get(key) {
1495
- let stored;
1496
- try {
1497
- stored =
1498
- (window.localStorage && window.localStorage.getItem(key)) ||
1499
- this.storage[key];
1500
- }
1501
- catch (e) {
1502
- stored = this.storage[key];
1503
- }
1504
- if (stored) {
1505
- try {
1506
- return JSON.parse(stored);
1507
- }
1508
- catch (e) {
1509
- return undefined;
1510
- }
1511
- }
1512
- else {
1513
- return undefined;
1514
- }
1515
- },
1516
- set(key, value) {
1517
- // handle Safari private mode (setItem is not allowed)
1518
- const valueToString = JSON.stringify(value);
1519
- try {
1520
- window.localStorage.setItem(key, valueToString);
1521
- }
1522
- catch (e) {
1523
- if (!this.memory) {
1524
- console.error('setting local storage failed, falling back to in-memory storage');
1525
- this.memory = true;
1526
- }
1527
- this.storage[key] = value;
1528
- }
1529
- },
1530
- delete(key) {
1531
- try {
1532
- window.localStorage.removeItem(key);
1533
- }
1534
- catch (e) {
1535
- if (!this.memory) {
1536
- console.error('setting local storage failed, falling back to in-memory storage');
1537
- this.memory = true;
1538
- }
1539
- delete this.storage[key];
1540
- }
1541
- },
1542
- };
1543
-
1544
- const COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS';
1545
- function getCredentials(IdentityPoolId, options = {}) {
1546
- const fipsSubdomainSuffix = options.fips === true ? '-fips' : '';
1547
- const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`;
1548
- let cached = storage.get(COGNITO_KEY);
1549
- if (cached && Date.now() / 1000 < cached.Expiration)
1550
- return Promise.resolve(cached);
1551
- const fetchOptions = {
1552
- method: 'POST',
1553
- headers: {
1554
- 'Content-type': 'application/x-amz-json-1.1',
1555
- 'X-Amz-Target': 'AWSCognitoIdentityService.GetId',
1556
- },
1557
- body: JSON.stringify({ IdentityPoolId }),
1558
- };
1559
- return fetch(COGNITO_URL, fetchOptions)
1560
- .then((response) => {
1561
- if (!response.ok) {
1562
- throw new Error(response.statusText);
1563
- }
1564
- return response.json();
1565
- })
1566
- .then((response) => {
1567
- const { IdentityId } = response;
1568
- const options = {
1569
- method: 'POST',
1570
- headers: {
1571
- 'Content-type': 'application/x-amz-json-1.1',
1572
- 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity',
1573
- },
1574
- body: JSON.stringify({ IdentityId }),
1575
- };
1576
- return fetch(COGNITO_URL, options);
1577
- })
1578
- .then((response) => {
1579
- if (!response.ok) {
1580
- throw new Error(response.statusText);
1581
- }
1582
- return response.json();
1583
- })
1584
- .then(({ Credentials }) => {
1585
- storage.set(COGNITO_KEY, Credentials);
1586
- return Credentials;
1587
- });
1588
- }
1589
-
1590
1670
  // Shared utilities for plugins
1591
1671
  const PINPOINT_ENDPOINT_KEY = 'TELEMETRY_PINPOINT_ENDPOINT_ID';
1592
- const DEFAULT_PINPOINT_REGION = 'us-east-1';
1593
1672
  const LOG_PREFIX = '[telemetry-amazon]';
1594
- function isDebugEnabled$1() {
1595
- var _a;
1596
- const processEnv = typeof globalThis !== 'undefined'
1597
- ? (_a = globalThis.process) === null || _a === void 0 ? void 0 : _a.env
1598
- : undefined;
1599
- return ((processEnv === null || processEnv === void 0 ? void 0 : processEnv.TELEMETRY_AMAZON_DEBUG) === 'true' ||
1600
- (processEnv === null || processEnv === void 0 ? void 0 : processEnv.NODE_ENV) === 'development');
1601
- }
1602
- function debugLog$1(message, details) {
1603
- if (!isDebugEnabled$1() || typeof console === 'undefined') {
1604
- return;
1605
- }
1606
- if (details && typeof console.debug === 'function') {
1607
- console.debug(`${LOG_PREFIX} ${message}`, details);
1608
- return;
1609
- }
1610
- if (typeof console.debug === 'function') {
1611
- console.debug(`${LOG_PREFIX} ${message}`);
1612
- }
1613
- }
1614
- function warnLog$1(message, details) {
1615
- if (typeof console === 'undefined' || typeof console.warn !== 'function') {
1616
- return;
1617
- }
1618
- if (details) {
1619
- console.warn(`${LOG_PREFIX} ${message}`, details);
1620
- return;
1621
- }
1622
- console.warn(`${LOG_PREFIX} ${message}`);
1623
- }
1624
- function getEndpointId$1() {
1625
- const cached = storage.get(PINPOINT_ENDPOINT_KEY);
1626
- if (cached && typeof cached === 'object' && cached.endpointId) {
1627
- return cached.endpointId;
1628
- }
1629
- if (typeof cached === 'string') {
1630
- return cached;
1631
- }
1632
- const generated = `telemetry-${Date.now()}-${Math.random()
1633
- .toString(16)
1634
- .slice(2)}`;
1635
- storage.set(PINPOINT_ENDPOINT_KEY, { endpointId: generated });
1636
- return generated;
1637
- }
1638
-
1639
1673
  function isDebugEnabled() {
1640
1674
  var _a;
1641
1675
  const processEnv = typeof globalThis !== 'undefined'
@@ -1680,124 +1714,13 @@
1680
1714
  storage.set(PINPOINT_ENDPOINT_KEY, { endpointId: generated });
1681
1715
  return generated;
1682
1716
  }
1683
- function buildEventData(payload) {
1684
- const Attributes = {};
1685
- const Metrics = {};
1686
- Object.entries(payload || {}).forEach(([key, value]) => {
1687
- if (value === undefined || value === null || key === 'name') {
1688
- return;
1689
- }
1690
- if (typeof value === 'number' && Number.isFinite(value)) {
1691
- Metrics[key] = value;
1692
- return;
1693
- }
1694
- if (typeof value === 'string' || typeof value === 'boolean') {
1695
- Attributes[key] = [String(value)];
1696
- return;
1697
- }
1698
- if (Array.isArray(value)) {
1699
- Attributes[key] = value.map((item) => String(item));
1700
- }
1701
- });
1702
- return {
1703
- Attributes: Object.keys(Attributes).length ? Attributes : undefined,
1704
- Metrics: Object.keys(Metrics).length ? Metrics : undefined,
1705
- };
1706
- }
1707
- function createPinpointPlugin({ appName, appVersion, appId, userPoolID, fips, region = DEFAULT_PINPOINT_REGION, }) {
1708
- debugLog('createPinpointPlugin initialized', {
1709
- appId,
1710
- region,
1711
- fips: Boolean(fips),
1712
- hasAppName: Boolean(appName),
1713
- hasAppVersion: Boolean(appVersion),
1714
- });
1715
- return {
1716
- track: (eventName, payload) => {
1717
- if (!appId || typeof fetch !== 'function') {
1718
- debugLog('Skipping Pinpoint track call', {
1719
- eventName,
1720
- reason: !appId ? 'missing-app-id' : 'fetch-unavailable',
1721
- });
1722
- return false;
1723
- }
1724
- const endpointId = getEndpointId();
1725
- const eventId = `${Date.now()}-${Math.random().toString(16).slice(2)}`;
1726
- const eventData = buildEventData(payload);
1727
- const host = fips
1728
- ? `pinpoint-fips.${region}.amazonaws.com`
1729
- : `pinpoint.${region}.amazonaws.com`;
1730
- const url = `https://${host}/v1/apps/${appId}/events`;
1731
- debugLog('Sending Pinpoint event', {
1732
- eventName,
1733
- endpointId,
1734
- appId,
1735
- region,
1736
- host,
1737
- });
1738
- void getCredentials(userPoolID, { fips })
1739
- .then((credentials) => {
1740
- const accessKeyId = (credentials === null || credentials === void 0 ? void 0 : credentials.AccessKeyId) || (credentials === null || credentials === void 0 ? void 0 : credentials.accessKeyId);
1741
- const secretAccessKey = (credentials === null || credentials === void 0 ? void 0 : credentials.SecretKey) || (credentials === null || credentials === void 0 ? void 0 : credentials.secretAccessKey);
1742
- const sessionToken = (credentials === null || credentials === void 0 ? void 0 : credentials.SessionToken) || (credentials === null || credentials === void 0 ? void 0 : credentials.sessionToken);
1743
- if (!accessKeyId || !secretAccessKey) {
1744
- warnLog('Pinpoint credentials missing required key fields', {
1745
- hasAccessKeyId: Boolean(accessKeyId),
1746
- hasSecretAccessKey: Boolean(secretAccessKey),
1747
- });
1748
- throw new Error('Pinpoint credentials are missing required key fields.');
1749
- }
1750
- const client = new AwsClient({
1751
- accessKeyId,
1752
- secretAccessKey,
1753
- sessionToken,
1754
- service: 'mobiletargeting',
1755
- region,
1756
- });
1757
- return client.fetch(url, {
1758
- method: 'POST',
1759
- headers: {
1760
- 'Content-Type': 'application/json',
1761
- },
1762
- body: JSON.stringify({
1763
- BatchItem: {
1764
- [endpointId]: {
1765
- Endpoint: {
1766
- Address: endpointId,
1767
- ChannelType: 'CUSTOM',
1768
- Demographic: {
1769
- AppVersion: appVersion,
1770
- Make: appName,
1771
- },
1772
- },
1773
- Events: {
1774
- [eventId]: Object.assign({ EventType: eventName, Timestamp: new Date().toISOString() }, eventData),
1775
- },
1776
- },
1777
- },
1778
- }),
1779
- });
1780
- })
1781
- .then(() => {
1782
- debugLog('Pinpoint event sent', {
1783
- eventName,
1784
- endpointId,
1785
- });
1786
- })
1787
- .catch((error) => {
1788
- warnLog('Pinpoint track failed', {
1789
- eventName,
1790
- message: (error === null || error === void 0 ? void 0 : error.message) || String(error),
1791
- });
1792
- });
1793
- return true;
1794
- },
1795
- };
1796
- }
1797
1717
 
1798
1718
  const ESRI_SIGNING_SERVICE = 'execute-api';
1799
1719
  const ESRI_SIGNING_REGION = 'us-east-1';
1800
1720
  const ESRI_ENDPOINT_URL = (appId) => `https://tedev.arcgis.com/v1/apps/${appId}/events`;
1721
+ const SESSION_START_EVENT = '_session.start';
1722
+ const SESSION_STOP_EVENT = '_session.stop';
1723
+ const DEFAULT_IDLE_TIMEOUT_MS = 30 * 60 * 1000;
1801
1724
  /** Converts a string to a number, guarded against invalid values */
1802
1725
  function getNumber(value, fallback = 0) {
1803
1726
  const numeric = Number(value);
@@ -1839,11 +1762,17 @@
1839
1762
  metrics,
1840
1763
  };
1841
1764
  }
1842
- function buildBatchEventPayload({ eventName, payload, trackerName, appName, appVersion, }) {
1765
+ function buildBatchEventPayload({ eventName, payload, trackerName, appName, appVersion, session, }) {
1843
1766
  var _a, _b, _c, _d;
1844
- const endpointId = getEndpointId$1();
1845
- const sessionId = `${Date.now()}-${Math.random().toString(16).slice(2)}`;
1767
+ const endpointId = getEndpointId();
1846
1768
  const timestamp = new Date().toISOString();
1769
+ const sessionContext = session ||
1770
+ {
1771
+ id: `${Date.now()}-${Math.random().toString(16).slice(2)}`,
1772
+ startTimestamp: timestamp,
1773
+ startUnixMs: Date.now(),
1774
+ };
1775
+ const isStopEvent = eventName === SESSION_STOP_EVENT;
1847
1776
  const { attributes, metrics } = splitEventData(payload);
1848
1777
  return {
1849
1778
  BatchEvent: {
@@ -1870,10 +1799,12 @@
1870
1799
  EventType: eventName,
1871
1800
  Timestamp: timestamp,
1872
1801
  Session: {
1873
- Id: sessionId,
1874
- StartTimestamp: timestamp,
1802
+ Id: sessionContext.id,
1803
+ StartTimestamp: sessionContext.startTimestamp,
1875
1804
  EndTimestamp: timestamp,
1876
- Duration: 0,
1805
+ Duration: isStopEvent
1806
+ ? Math.max(0, Date.now() - sessionContext.startUnixMs)
1807
+ : 0,
1877
1808
  },
1878
1809
  Attributes: attributes,
1879
1810
  Metrics: metrics,
@@ -1886,14 +1817,21 @@
1886
1817
  const url = ESRI_ENDPOINT_URL(appId);
1887
1818
  let isDisabled = false;
1888
1819
  let hasWarned = false;
1820
+ let hasSessionStarted = false;
1821
+ let sessionStopSent = false;
1822
+ let activeSession;
1823
+ let idleTimerId;
1824
+ let lifecycleListenersAttached = false;
1825
+ const removeLifecycleListeners = [];
1826
+ const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
1889
1827
  const warnOnce = (message, details) => {
1890
1828
  if (hasWarned) {
1891
1829
  return;
1892
1830
  }
1893
1831
  hasWarned = true;
1894
- warnLog$1(message, details);
1832
+ warnLog(message, details);
1895
1833
  };
1896
- debugLog$1('createEsriPlugin initialized', {
1834
+ debugLog('createEsriPlugin initialized', {
1897
1835
  trackerName,
1898
1836
  hasUrl: Boolean(url),
1899
1837
  });
@@ -1915,64 +1853,191 @@
1915
1853
  trackerName,
1916
1854
  });
1917
1855
  }
1918
- return {
1919
- track: (eventName, payload) => {
1920
- if (isDisabled || !url || !userPoolID) {
1921
- debugLog$1('Skipping esri track call', {
1922
- eventName,
1923
- reason: 'plugin-disabled',
1924
- });
1925
- return false;
1926
- }
1927
- debugLog$1('Sending esri endpoint event', {
1856
+ const clearIdleTimer = () => {
1857
+ if (!idleTimerId) {
1858
+ return;
1859
+ }
1860
+ clearTimeout(idleTimerId);
1861
+ idleTimerId = undefined;
1862
+ };
1863
+ const removeAllLifecycleListeners = () => {
1864
+ removeLifecycleListeners.splice(0).forEach((removeListener) => {
1865
+ removeListener();
1866
+ });
1867
+ lifecycleListenersAttached = false;
1868
+ };
1869
+ const createSession = () => {
1870
+ const now = Date.now();
1871
+ return {
1872
+ id: `${now}-${Math.random().toString(16).slice(2)}`,
1873
+ startTimestamp: new Date(now).toISOString(),
1874
+ startUnixMs: now,
1875
+ };
1876
+ };
1877
+ const sendEvent = (eventName, payload, sessionOverride) => {
1878
+ if (isDisabled || !url || !userPoolID) {
1879
+ debugLog('Skipping esri track call', {
1928
1880
  eventName,
1929
- trackerName,
1930
- url,
1881
+ reason: 'plugin-disabled',
1931
1882
  });
1932
- void getCredentials(userPoolID, { fips })
1933
- .then((credentials) => {
1934
- const accessKeyId = (credentials === null || credentials === void 0 ? void 0 : credentials.AccessKeyId) || (credentials === null || credentials === void 0 ? void 0 : credentials.accessKeyId);
1935
- const secretAccessKey = (credentials === null || credentials === void 0 ? void 0 : credentials.SecretKey) || (credentials === null || credentials === void 0 ? void 0 : credentials.secretAccessKey);
1936
- const sessionToken = (credentials === null || credentials === void 0 ? void 0 : credentials.SessionToken) || (credentials === null || credentials === void 0 ? void 0 : credentials.sessionToken);
1937
- if (!accessKeyId || !secretAccessKey) {
1938
- throw new Error('Signed endpoint credentials are missing required key fields.');
1939
- }
1940
- const client = new AwsClient({
1941
- accessKeyId,
1942
- secretAccessKey,
1943
- sessionToken,
1944
- service: ESRI_SIGNING_SERVICE,
1945
- region: ESRI_SIGNING_REGION,
1946
- });
1947
- return client.fetch(url, {
1948
- method: 'POST',
1949
- headers: {
1950
- 'Content-Type': 'application/json',
1951
- },
1952
- body: JSON.stringify(buildBatchEventPayload({
1953
- eventName,
1954
- payload: payload,
1955
- trackerName,
1956
- appName,
1957
- appVersion,
1958
- })),
1959
- });
1960
- })
1961
- .then(() => {
1962
- debugLog$1('Endpoint event sent', {
1963
- eventName,
1964
- trackerName,
1965
- });
1966
- })
1967
- .catch((error) => {
1968
- isDisabled = true;
1969
- warnOnce('Esri telemetry disabled after endpoint track failure', {
1883
+ return false;
1884
+ }
1885
+ debugLog('Sending esri endpoint event', {
1886
+ eventName,
1887
+ trackerName,
1888
+ url,
1889
+ });
1890
+ void getCredentials(userPoolID, { fips })
1891
+ .then((credentials) => {
1892
+ const accessKeyId = (credentials === null || credentials === void 0 ? void 0 : credentials.AccessKeyId) || (credentials === null || credentials === void 0 ? void 0 : credentials.accessKeyId);
1893
+ const secretAccessKey = (credentials === null || credentials === void 0 ? void 0 : credentials.SecretKey) || (credentials === null || credentials === void 0 ? void 0 : credentials.secretAccessKey);
1894
+ const sessionToken = (credentials === null || credentials === void 0 ? void 0 : credentials.SessionToken) || (credentials === null || credentials === void 0 ? void 0 : credentials.sessionToken);
1895
+ if (!accessKeyId || !secretAccessKey) {
1896
+ throw new Error('Signed endpoint credentials are missing required key fields.');
1897
+ }
1898
+ const client = new AwsClient({
1899
+ accessKeyId,
1900
+ secretAccessKey,
1901
+ sessionToken,
1902
+ service: ESRI_SIGNING_SERVICE,
1903
+ region: ESRI_SIGNING_REGION,
1904
+ });
1905
+ return client.fetch(url, {
1906
+ method: 'POST',
1907
+ headers: {
1908
+ 'Content-Type': 'application/json',
1909
+ },
1910
+ body: JSON.stringify(buildBatchEventPayload({
1970
1911
  eventName,
1912
+ payload: payload,
1971
1913
  trackerName,
1972
- message: (error === null || error === void 0 ? void 0 : error.message) || String(error),
1973
- });
1914
+ appName,
1915
+ appVersion,
1916
+ session: sessionOverride || activeSession,
1917
+ })),
1918
+ });
1919
+ })
1920
+ .then(() => {
1921
+ debugLog('Endpoint event sent', {
1922
+ eventName,
1923
+ trackerName,
1924
+ });
1925
+ })
1926
+ .catch((error) => {
1927
+ isDisabled = true;
1928
+ clearIdleTimer();
1929
+ removeAllLifecycleListeners();
1930
+ warnOnce('Esri telemetry disabled after endpoint track failure', {
1931
+ eventName,
1932
+ trackerName,
1933
+ message: (error === null || error === void 0 ? void 0 : error.message) || String(error),
1974
1934
  });
1975
- return true;
1935
+ });
1936
+ return true;
1937
+ };
1938
+ const sendSessionLifecycleEvent = (eventName, reason, sessionOverride) => {
1939
+ return sendEvent(eventName, {
1940
+ reason,
1941
+ }, sessionOverride);
1942
+ };
1943
+ const stopSession = (reason) => {
1944
+ if (!hasSessionStarted || sessionStopSent) {
1945
+ return false;
1946
+ }
1947
+ const sessionToStop = activeSession;
1948
+ const didStop = sendSessionLifecycleEvent(SESSION_STOP_EVENT, reason, sessionToStop);
1949
+ if (didStop) {
1950
+ sessionStopSent = true;
1951
+ hasSessionStarted = false;
1952
+ clearIdleTimer();
1953
+ activeSession = undefined;
1954
+ }
1955
+ return didStop;
1956
+ };
1957
+ const startSession = (reason) => {
1958
+ if (hasSessionStarted) {
1959
+ return false;
1960
+ }
1961
+ activeSession = activeSession || createSession();
1962
+ const sessionToStart = activeSession;
1963
+ const didStart = sendSessionLifecycleEvent(SESSION_START_EVENT, reason, sessionToStart);
1964
+ if (didStart) {
1965
+ hasSessionStarted = true;
1966
+ sessionStopSent = false;
1967
+ }
1968
+ else {
1969
+ activeSession = undefined;
1970
+ }
1971
+ return didStart;
1972
+ };
1973
+ const resetIdleTimer = () => {
1974
+ if (!isBrowser || isDisabled || !hasSessionStarted) {
1975
+ return;
1976
+ }
1977
+ clearIdleTimer();
1978
+ idleTimerId = setTimeout(() => {
1979
+ stopSession('idle');
1980
+ }, DEFAULT_IDLE_TIMEOUT_MS);
1981
+ };
1982
+ const handleActivity = () => {
1983
+ if (isDisabled) {
1984
+ return;
1985
+ }
1986
+ if (!hasSessionStarted) {
1987
+ startSession('wakeup');
1988
+ }
1989
+ resetIdleTimer();
1990
+ };
1991
+ const addLifecycleListener = (target, eventName, listener) => {
1992
+ target.addEventListener(eventName, listener);
1993
+ removeLifecycleListeners.push(() => {
1994
+ target.removeEventListener(eventName, listener);
1995
+ });
1996
+ };
1997
+ const attachLifecycleListeners = () => {
1998
+ if (!isBrowser || lifecycleListenersAttached || isDisabled) {
1999
+ return;
2000
+ }
2001
+ const activityEvents = ['pointerdown', 'keydown', 'scroll', 'focus'];
2002
+ activityEvents.forEach((eventName) => {
2003
+ addLifecycleListener(window, eventName, handleActivity);
2004
+ });
2005
+ addLifecycleListener(window, 'beforeunload', () => {
2006
+ stopSession('beforeunload');
2007
+ });
2008
+ lifecycleListenersAttached = true;
2009
+ };
2010
+ return {
2011
+ track: (eventName, payload) => {
2012
+ attachLifecycleListeners();
2013
+ const isSessionStopEvent = eventName === SESSION_STOP_EVENT;
2014
+ if (!hasSessionStarted &&
2015
+ eventName !== SESSION_START_EVENT &&
2016
+ !isSessionStopEvent) {
2017
+ startSession('init');
2018
+ }
2019
+ if (eventName === SESSION_START_EVENT) {
2020
+ activeSession = activeSession || createSession();
2021
+ hasSessionStarted = true;
2022
+ sessionStopSent = false;
2023
+ }
2024
+ if (isSessionStopEvent) {
2025
+ sessionStopSent = true;
2026
+ hasSessionStarted = false;
2027
+ clearIdleTimer();
2028
+ }
2029
+ if (hasSessionStarted && !activeSession && !isSessionStopEvent) {
2030
+ activeSession = createSession();
2031
+ }
2032
+ if (hasSessionStarted && !isSessionStopEvent) {
2033
+ resetIdleTimer();
2034
+ }
2035
+ const sessionForEvent = activeSession;
2036
+ const didSend = sendEvent(eventName, payload, sessionForEvent);
2037
+ if (isSessionStopEvent && didSend) {
2038
+ activeSession = undefined;
2039
+ }
2040
+ return didSend;
1976
2041
  },
1977
2042
  };
1978
2043
  }
@@ -1990,12 +2055,16 @@
1990
2055
  const { app = {}, fips, userPoolID, mode = 'esri' } = options;
1991
2056
  this.mode = mode;
1992
2057
  if (this.mode === 'pinpoint') {
1993
- this.analytics = createPinpointPlugin({
1994
- appName: app.name,
1995
- appVersion: app.version,
1996
- appId: app.id,
1997
- userPoolID,
1998
- fips,
2058
+ this.analytics = analyticsLib({
2059
+ app: app.name,
2060
+ version: app.version,
2061
+ plugins: [
2062
+ awsPinpointPlugin__default["default"]({
2063
+ fips,
2064
+ pinpointAppId: app.id,
2065
+ getCredentials: () => getCredentials(userPoolID, { fips }),
2066
+ }),
2067
+ ],
1999
2068
  });
2000
2069
  }
2001
2070
  else {
@@ -2039,7 +2108,8 @@
2039
2108
  });
2040
2109
  const { pageUrl, pageName } = telemetryPayload;
2041
2110
  this.previousPage = { pageUrl, pageName };
2042
- return this.analytics.track('pageView', telemetryPayload);
2111
+ const result = this.analytics.track('pageView', telemetryPayload);
2112
+ return typeof result === 'boolean' ? result : true;
2043
2113
  }
2044
2114
  logEvent(event = {}) {
2045
2115
  const telemetryPayload = createEventLog({
@@ -2048,7 +2118,8 @@
2048
2118
  metricLookup: this.metrics,
2049
2119
  });
2050
2120
  const { name } = telemetryPayload;
2051
- return this.analytics.track(name, telemetryPayload);
2121
+ const result = this.analytics.track(name, telemetryPayload);
2122
+ return typeof result === 'boolean' ? result : true;
2052
2123
  }
2053
2124
  }
2054
2125