@paydock/client-sdk 1.107.1 → 1.108.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +29 -1
  2. package/bundles/index.cjs +28418 -7292
  3. package/bundles/index.cjs.d.ts +71 -5
  4. package/bundles/index.cjs.map +1 -1
  5. package/bundles/index.mjs +28418 -7292
  6. package/bundles/index.mjs.d.ts +71 -5
  7. package/bundles/index.mjs.map +1 -1
  8. package/bundles/types/api/api-base.d.ts +14 -6
  9. package/bundles/types/api/api-base.d.ts.map +1 -1
  10. package/bundles/types/canvas-3ds/services/gpayments-service.d.ts +3 -3
  11. package/bundles/types/canvas-3ds/services/gpayments-service.d.ts.map +1 -1
  12. package/bundles/types/checkout-button/afterpay/afterpay.runner.d.ts +2 -0
  13. package/bundles/types/checkout-button/afterpay/afterpay.runner.d.ts.map +1 -1
  14. package/bundles/types/checkout-button/checkout-contextual-handler.d.ts +4 -0
  15. package/bundles/types/checkout-button/checkout-contextual-handler.d.ts.map +1 -1
  16. package/bundles/types/checkout-button/runner/contextual.runner.d.ts +2 -1
  17. package/bundles/types/checkout-button/runner/contextual.runner.d.ts.map +1 -1
  18. package/bundles/types/checkout-button/runner/popup.runner.d.ts +3 -3
  19. package/bundles/types/checkout-button/runner/popup.runner.d.ts.map +1 -1
  20. package/bundles/types/components/http-core.d.ts.map +1 -1
  21. package/bundles/types/components/param.d.ts +1 -0
  22. package/bundles/types/components/param.d.ts.map +1 -1
  23. package/bundles/types/configs/env/environment.cba.d.ts +1 -1
  24. package/bundles/types/configs/env/environment.cba.d.ts.map +1 -1
  25. package/bundles/types/configs/env/environment.paydock.d.ts +1 -1
  26. package/bundles/types/configs/env/environment.paydock.d.ts.map +1 -1
  27. package/bundles/types/shared/http/http-request.d.ts +14 -0
  28. package/bundles/types/shared/http/http-request.d.ts.map +1 -0
  29. package/bundles/types/shared/http/index.d.ts +2 -0
  30. package/bundles/types/shared/http/index.d.ts.map +1 -0
  31. package/bundles/types/shared/services/instrumentation/instrumentation.agent.d.ts +15 -0
  32. package/bundles/types/shared/services/instrumentation/instrumentation.agent.d.ts.map +1 -0
  33. package/bundles/types/shared/services/instrumentation/instrumentation.config.d.ts +66 -0
  34. package/bundles/types/shared/services/instrumentation/instrumentation.config.d.ts.map +1 -0
  35. package/bundles/types/shared/services/instrumentation/instrumentation.types.d.ts +14 -0
  36. package/bundles/types/shared/services/instrumentation/instrumentation.types.d.ts.map +1 -0
  37. package/bundles/types/shared/services/instrumentation/repositories/action.repository.d.ts +15 -0
  38. package/bundles/types/shared/services/instrumentation/repositories/action.repository.d.ts.map +1 -0
  39. package/bundles/types/shared/services/instrumentation/repositories/error.repository.d.ts +23 -0
  40. package/bundles/types/shared/services/instrumentation/repositories/error.repository.d.ts.map +1 -0
  41. package/bundles/types/shared/services/instrumentation/repositories/event.repository.d.ts +15 -0
  42. package/bundles/types/shared/services/instrumentation/repositories/event.repository.d.ts.map +1 -0
  43. package/bundles/types/shared/services/instrumentation/repositories/index.d.ts +4 -0
  44. package/bundles/types/shared/services/instrumentation/repositories/index.d.ts.map +1 -0
  45. package/bundles/types/wallet-buttons/flypay-v2.wallet-service.d.ts.map +1 -1
  46. package/bundles/types/wallet-buttons/google.wallet-service.d.ts +4 -4
  47. package/bundles/types/wallet-buttons/google.wallet-service.d.ts.map +1 -1
  48. package/bundles/types/wallet-buttons/index.d.ts +1 -0
  49. package/bundles/types/wallet-buttons/index.d.ts.map +1 -1
  50. package/bundles/types/widget/configuration.d.ts.map +1 -1
  51. package/bundles/types/widget/html-multi-widget.d.ts +3 -3
  52. package/bundles/types/widget/html-multi-widget.d.ts.map +1 -1
  53. package/bundles/widget.umd.js +28418 -7292
  54. package/bundles/widget.umd.js.d.ts +71 -5
  55. package/bundles/widget.umd.js.map +1 -1
  56. package/bundles/widget.umd.js.min.d.ts +71 -5
  57. package/bundles/widget.umd.min.js +61 -1
  58. package/bundles/widget.umd.min.js.map +1 -1
  59. package/docs/wallet-buttons-examples.md +28 -1
  60. package/docs/wallet-buttons.md +1 -0
  61. package/examples/multi-html-widget/simple.html +2 -1
  62. package/package.json +20 -16
  63. package/slate.md +28 -1
@@ -1 +1 @@
1
- {"version":3,"file":"widget.umd.min.js","sources":["../src/helper/browser.ts","../src/api/api-base.ts","../src/api/api-charge.ts","../src/helper/access-token.ts","../src/configs/env/environment.paydock.ts","../src/configs/sdk.ts","../src/canvas-3ds/services/gpayments-service.ts","../src/api/api.ts","../src/helper/url.ts","../src/helper/uuid.ts","../src/components/link.ts","../src/helper/event.ts","../src/components/container.ts","../src/components/iframe.ts","../src/components/iframe-event.ts","../src/api/api-service-internal.ts","../src/api/api-charge-internal.ts","../src/api/api-internal.ts","../src/canvas-3ds/canvas-3ds.ts","../src/canvas-3ds/services/standalone3ds-service.ts","../src/helper/event-emitter.ts","../src/checkout-button/checkout-button.interface.ts","../src/components/param.ts","../src/components/http-core.ts","../src/checkout-button/runner/contextual.runner.ts","../src/external-checkout/builder.ts","../src/external-checkout/checker.ts","../src/components/loader.ts","../src/components/background.ts","../src/checkout-button/runner/base.runner.ts","../src/components/dispatcher.ts","../src/components/popup.ts","../src/checkout-button/runner/popup.runner.ts","../src/checkout-button/runner/index.ts","../vendors/zipmoney.js","../src/checkout-button/zipmoney/zipmoney.runner.ts","../src/components/storage-dispatcher.ts","../src/checkout-button/zipmoney/zipmoney-contextual.runner.ts","../src/checkout-button/zipmoney/zipmoney.config.ts","../src/secure-remote-commerce/interfaces.ts","../src/checkout-button/zipmoney/zipmoney-redirect.runner.ts","../src/checkout-button/runner/redirect.runner.ts","../src/checkout-button/paypal/paypal.runner.ts","../src/checkout-button/afterpay/afterpay.runner.ts","../src/payment-source/builder.ts","../src/checkout-button/checkout-contextual-handler.ts","../src/checkout-button/checkout-button.ts","../src/checkout-button/zipmoney/zipmoney-checkout-button.ts","../src/checkout-button/afterpay/afterpay-checkout-button.ts","../src/checkout-button/paypal/paypal-checkout-button.ts","../src/helper/object.ts","../src/payment-source-widget/payment-source-widget.ts","../src/payment-source-widget/html-payment-source-widget.ts","../src/components/vault-display-iframe-event.ts","../src/secure-remote-commerce/providers/mastercard-src/mastercard-src.ts","../src/secure-remote-commerce/click-to-pay-secure-remote-commerce.ts","../src/secure-remote-commerce/secure-remote-commerce.ts","../src/components/trigger.ts","../src/components/flypay-iframe-event.ts","../src/vault-display-widget/vault-display-widget.ts","../src/components/wallet-trigger.ts","../src/components/wallet-background.ts","../src/wallet-buttons/wallet-service.ts","../src/wallet-buttons/flypay.wallet-service.ts","../src/wallet-buttons/paypal.wallet-service.ts","../node_modules/@stripe/stripe-js/dist/pure.js","../node_modules/@stripe/stripe-js/pure.js","../src/wallet-buttons/stripe.wallet-service.ts","../src/wallet-buttons/apple.wallet-service.ts","../src/wallet-buttons/google.wallet-service.ts","../src/wallet-buttons/mastercard.wallet-service.ts","../src/wallet-buttons/afterpay.wallet-service.ts","../node_modules/@auspayplus/open-payments-checkout/dist/open-payments-checkout.mjs","../src/wallet-buttons/helpers/flypay-v2.helper.ts","../src/wallet-buttons/flypay-v2.wallet-service.ts","../src/helper/element-id.ts","../src/wallet-buttons/wallet-buttons.ts","../src/widget/configuration.ts","../src/widget/style.ts","../src/components/element-style.ts","../src/widget/multi-widget.ts","../src/components/form-interceptor.ts","../src/widget/html-multi-widget.ts","../src/widget/html-widget.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"!function t(e,n,r){function o(u,a){if(!n[u]){if(!e[u]){var c=\"function\"==typeof require&&require;if(!a&&c)return c(u,!0);if(i)return i(u,!0);var s=Error(\"Cannot find module '\"+u+\"'\");throw s.code=\"MODULE_NOT_FOUND\",s}var f=n[u]={exports:{}};e[u][0].call(f.exports,function(t){return o(e[u][1][t]||t)},f,f.exports,t,e,n,r)}return n[u].exports}for(var i=\"function\"==typeof require&&require,u=0;u<r.length;u++)o(r[u]);return o}({1:[function(t,e,n){function r(){throw Error(\"setTimeout has not been defined\")}function o(){throw Error(\"clearTimeout has not been defined\")}function i(t){if(f===setTimeout)return setTimeout(t,0);if((f===r||!f)&&setTimeout)return f=setTimeout,setTimeout(t,0);try{return f(t,0)}catch(e){try{return f.call(null,t,0)}catch(n){return f.call(this,t,0)}}}function u(){v&&d&&(v=!1,d.length?h=d.concat(h):y=-1,h.length&&a())}function a(){if(!v){var t=i(u);v=!0;for(var e=h.length;e;){for(d=h,h=[];++y<e;)d&&d[y].run();y=-1,e=h.length}d=null,v=!1,function t(e){if(l===clearTimeout)return clearTimeout(e);if((l===o||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{return l(e)}catch(n){try{return l.call(null,e)}catch(r){return l.call(this,e)}}}(t)}}function c(t,e){this.fun=t,this.array=e}function s(){}var f,l,p=e.exports={};!function(){try{f=\"function\"==typeof setTimeout?setTimeout:r}catch(t){f=r}try{l=\"function\"==typeof clearTimeout?clearTimeout:o}catch(e){l=o}}();var d,h=[],v=!1,y=-1;p.nextTick=function(t){var e=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];h.push(new c(t,e)),1!==h.length||v||i(a)},c.prototype.run=function(){this.fun.apply(null,this.array)},p.title=\"browser\",p.browser=!0,p.env={},p.argv=[],p.version=\"\",p.versions={},p.on=s,p.addListener=s,p.once=s,p.off=s,p.removeListener=s,p.removeAllListeners=s,p.emit=s,p.prependListener=s,p.prependOnceListener=s,p.listeners=function(t){return[]},p.binding=function(t){throw Error(\"process.binding is not supported\")},p.cwd=function(){return\"/\"},p.chdir=function(t){throw Error(\"process.chdir is not supported\")},p.umask=function(){return 0}},{},],2:[function(t,e,n){(function(t){!function(t){\"use strict\";if(\"function\"==typeof bootstrap)bootstrap(\"promise\",t);else if(\"object\"==typeof n&&\"object\"==typeof e)e.exports=t();else if(\"function\"==typeof define&&define.amd)define(t);else if(\"undefined\"!=typeof ses){if(!ses.ok())return;ses.makeQ=t}else{if(\"undefined\"==typeof window&&\"undefined\"==typeof self)throw Error(\"This environment was not anticipated by Q. Please file a bug.\");var r=\"undefined\"!=typeof window?window:self,o=r.Q;r.Q=t(),r.Q.noConflict=function(){return r.Q=o,this}}}(function(){\"use strict\";function e(t){return function(){return M.apply(t,arguments)}}function n(t,e){if(x&&e.stack&&\"object\"==typeof t&&null!==t&&t.stack){for(var n=[],o=e;o;o=o.source)o.stack&&(!t.__minimumStackCounter__||t.__minimumStackCounter__>o.stackCounter)&&(U(t,\"__minimumStackCounter__\",{value:o.stackCounter,configurable:!0}),n.unshift(o.stack));n.unshift(t.stack),U(t,\"stack\",{value:function t(e){for(var n=e.split(\"\\n\"),o=[],u=0;u<n.length;++u){var a=n[u];i(a)||r(a)||!a||o.push(a)}return o.join(\"\\n\")}(n.join(\"\\n\"+I+\"\\n\")),configurable:!0})}}function r(t){return -1!==t.indexOf(\"(module.js:\")||-1!==t.indexOf(\"(node.js:\")}function o(t){var e=/at .+ \\((.+):(\\d+):(?:\\d+)\\)$/.exec(t);if(e)return[e[1],Number(e[2])];var n=/at ([^ ]+):(\\d+):(?:\\d+)$/.exec(t);if(n)return[n[1],Number(n[2])];var r=/.*@(.+):(\\d+)$/.exec(t);return r?[r[1],Number(r[2])]:void 0}function i(t){var e=o(t);if(!e)return!1;var n=e[0],r=e[1];return n===j&&r>=C&&r<=Z}function u(){if(x)try{throw Error()}catch(t){var e=t.stack.split(\"\\n\"),n=o(e[0].indexOf(\"@\")>0?e[1]:e[2]);if(!n)return;return j=n[0],n[1]}}function a(t){var e,n;return t instanceof l?t:v(t)?(e=t,n=c(),a.nextTick(function(){try{e.then(n.resolve,n.reject,n.notify)}catch(t){n.reject(t)}}),n.promise):$(t)}function c(){function t(t){e=t,a.longStackSupport&&x&&(i.source=t),L(n,function(e,n){a.nextTick(function(){t.promiseDispatch.apply(t,n)})},void 0),n=void 0,r=void 0}var e,n=[],r=[],o=H(c.prototype),i=H(l.prototype);if(i.promiseDispatch=function(t,o,i){var u=P(arguments);n?(n.push(u),\"when\"===o&&i[1]&&r.push(i[1])):a.nextTick(function(){e.promiseDispatch.apply(e,u)})},i.valueOf=function(){if(n)return i;var t=d(e);return h(t)&&(e=t),t},i.inspect=function(){return e?e.inspect():{state:\"pending\"}},a.longStackSupport&&x)try{throw Error()}catch(u){i.stack=u.stack.substring(u.stack.indexOf(\"\\n\")+1),i.stackCounter=N++}return o.promise=i,o.resolve=function(n){e||t(a(n))},o.fulfill=function(n){e||t($(n))},o.reject=function(n){e||t(m(n))},o.notify=function(t){e||L(r,function(e,n){a.nextTick(function(){n(t)})},void 0)},o}function s(t){if(\"function\"!=typeof t)throw TypeError(\"resolver must be a function.\");var e=c();try{t(e.resolve,e.reject,e.notify)}catch(n){e.reject(n)}return e.promise}function f(t){return s(function(e,n){for(var r=0,o=t.length;r<o;r++)a(t[r]).then(e,n)})}function l(t,e,n){void 0===e&&(e=function(t){return m(Error(\"Promise does not support operation: \"+t))}),void 0===n&&(n=function(){return{state:\"unknown\"}});var r=H(l.prototype);if(r.promiseDispatch=function(n,o,i){var u;try{u=t[o]?t[o].apply(r,i):e.call(r,o,i)}catch(a){u=m(a)}n&&n(u)},r.inspect=n,n){var o=n();\"rejected\"===o.state&&(r.exception=o.reason),r.valueOf=function(){var t=n();return\"pending\"===t.state||\"rejected\"===t.state?r:t.value}}return r}function p(t,e,n,r){return a(t).then(e,n,r)}function d(t){if(h(t)){var e=t.inspect();if(\"fulfilled\"===e.state)return e.value}return t}function h(t){return t instanceof l}function v(t){var e;return(e=t)===Object(e)&&\"function\"==typeof t.then}function y(){Q.length=0,F.length=0,G||(G=!0)}function m(e){var n,r,o=l({when:function(n){return n&&function e(n){if(G){var r=z(F,n);-1!==r&&(\"object\"==typeof t&&\"function\"==typeof t.emit&&a.nextTick.runAfter(function(){var e=z(B,n);-1!==e&&(t.emit(\"rejectionHandled\",Q[r],n),B.splice(e,1))}),F.splice(r,1),Q.splice(r,1))}}(this),n?n(e):this}},function(){return this},function(){return{state:\"rejected\",reason:e}});return n=o,r=e,G&&(\"object\"==typeof t&&\"function\"==typeof t.emit&&a.nextTick.runAfter(function(){-1!==z(F,n)&&(t.emit(\"unhandledRejection\",r,n),B.push(n))}),F.push(n),r&&void 0!==r.stack?Q.push(r.stack):Q.push(\"(no stack) \"+r)),o}function $(t){return l({when:function(){return t},get:function(e){return t[e]},set:function(e,n){t[e]=n},delete:function(e){delete t[e]},post:function(e,n){return null==e?t.apply(void 0,n):t[e].apply(t,n)},apply:function(e,n){return t.apply(e,n)},keys:function(){return q(t)}},void 0,function(){return{state:\"fulfilled\",value:t}})}function g(t,e,n){return a(t).spread(e,n)}function b(t,e,n){return a(t).dispatch(e,n)}function k(t){return p(t,function(t){var e=0,n=c();return L(t,function(r,o,i){var u;h(o)&&\"fulfilled\"===(u=o.inspect()).state?t[i]=u.value:(++e,p(o,function(r){t[i]=r,0==--e&&n.resolve(t)},n.reject,function(t){n.notify({index:i,value:t})}))},void 0),0===e&&n.resolve(t),n.promise})}function _(t){if(0===t.length)return a.resolve();var e=a.defer(),n=0;return L(t,function(r,o,i){var u=t[i];n++,p(u,function t(n){e.resolve(n)},function t(r){0==--n&&(r.message=\"Q can't get fulfillment value from any promise, all promises were rejected. Last error message: \"+r.message,e.reject(r))},function t(n){e.notify({index:i,value:n})})},void 0),e.promise}function w(t){return p(t,function(t){return t=S(t,a),p(k(S(t,function(t){return p(t,R,R)})),function(){return t})})}var x=!1;try{throw Error()}catch(E){x=!!E.stack}var j,T,C=u(),R=function(){},O=function(){function e(){for(var t,e;r.next;)t=(r=r.next).task,r.task=void 0,(e=r.domain)&&(r.domain=void 0,e.enter()),n(t,e);for(;c.length;)n(t=c.pop());i=!1}function n(t,n){try{t()}catch(r){if(a)throw n&&n.exit(),setTimeout(e,0),n&&n.enter(),r;setTimeout(function(){throw r},0)}n&&n.exit()}var r={task:void 0,next:null},o=r,i=!1,u=void 0,a=!1,c=[];if(O=function(e){o=o.next={task:e,domain:a&&t.domain,next:null},i||(i=!0,u())},\"object\"==typeof t&&\"[object process]\"===t.toString()&&t.nextTick)a=!0,u=function(){t.nextTick(e)};else if(\"function\"==typeof setImmediate)u=\"undefined\"!=typeof window?setImmediate.bind(window,e):function(){setImmediate(e)};else if(\"undefined\"!=typeof MessageChannel){var s=new MessageChannel;s.port1.onmessage=function(){u=f,s.port1.onmessage=e,e()};var f=function(){s.port2.postMessage(0)};u=function(){setTimeout(e,0),f()}}else u=function(){setTimeout(e,0)};return O.runAfter=function(t){c.push(t),i||(i=!0,u())},O}(),M=Function.call,P=e(Array.prototype.slice),L=e(Array.prototype.reduce||function(t,e){var n=0,r=this.length;if(1===arguments.length)for(;;){if(n in this){e=this[n++];break}if(++n>=r)throw TypeError()}for(;n<r;n++)n in this&&(e=t(e,this[n],n));return e}),z=e(Array.prototype.indexOf||function(t){for(var e=0;e<this.length;e++)if(this[e]===t)return e;return -1}),S=e(Array.prototype.map||function(t,e){var n=this,r=[];return L(n,function(o,i,u){r.push(t.call(e,i,u,n))},void 0),r}),H=Object.create||function(t){function e(){}return e.prototype=t,new e},U=Object.defineProperty||function(t,e,n){return t[e]=n.value,t},A=e(Object.prototype.hasOwnProperty),q=Object.keys||function(t){var e=[];for(var n in t)A(t,n)&&e.push(n);return e},D=e(Object.prototype.toString);T=\"undefined\"!=typeof ReturnValue?ReturnValue:function(t){this.value=t};var I=\"From previous event:\";a.resolve=a,a.nextTick=O,a.longStackSupport=!1;var N=1;\"object\"==typeof t&&t&&t.env&&t.env.Q_DEBUG&&(a.longStackSupport=!0),a.defer=c,c.prototype.makeNodeResolver=function(){var t=this;return function(e,n){e?t.reject(e):arguments.length>2?t.resolve(P(arguments,1)):t.resolve(n)}},a.Promise=s,a.promise=s,s.race=f,s.all=k,s.reject=m,s.resolve=a,a.passByCopy=function(t){return t},l.prototype.passByCopy=function(){return this},a.join=function(t,e){return a(t).join(e)},l.prototype.join=function(t){return a([this,t]).spread(function(t,e){if(t===e)return t;throw Error(\"Q can't join: not the same: \"+t+\" \"+e)})},a.race=f,l.prototype.race=function(){return this.then(a.race)},a.makePromise=l,l.prototype.toString=function(){return\"[object Promise]\"},l.prototype.then=function(t,e,r){var o=this,i=c(),u=!1;return a.nextTick(function(){o.promiseDispatch(function(e){u||(u=!0,i.resolve(function e(n){try{return\"function\"==typeof t?t(n):n}catch(r){return m(r)}}(e)))},\"when\",[function(t){u||(u=!0,i.resolve(function t(r){if(\"function\"==typeof e){n(r,o);try{return e(r)}catch(i){return m(i)}}return m(r)}(t)))},])}),o.promiseDispatch(void 0,\"when\",[void 0,function(t){var e,n,o=!1;try{n=(e=t,\"function\"==typeof r?r(e):e)}catch(u){if(o=!0,!a.onerror)throw u;a.onerror(u)}o||i.notify(n)},]),i.promise},a.tap=function(t,e){return a(t).tap(e)},l.prototype.tap=function(t){return t=a(t),this.then(function(e){return t.fcall(e).thenResolve(e)})},a.when=p,l.prototype.thenResolve=function(t){return this.then(function(){return t})},a.thenResolve=function(t,e){return a(t).thenResolve(e)},l.prototype.thenReject=function(t){return this.then(function(){throw t})},a.thenReject=function(t,e){return a(t).thenReject(e)},a.nearer=d,a.isPromise=h,a.isPromiseAlike=v,a.isPending=function t(e){return h(e)&&\"pending\"===e.inspect().state},l.prototype.isPending=function(){return\"pending\"===this.inspect().state},a.isFulfilled=function t(e){return!h(e)||\"fulfilled\"===e.inspect().state},l.prototype.isFulfilled=function(){return\"fulfilled\"===this.inspect().state},a.isRejected=function t(e){return h(e)&&\"rejected\"===e.inspect().state},l.prototype.isRejected=function(){return\"rejected\"===this.inspect().state};var W,Q=[],F=[],B=[],G=!0;a.resetUnhandledRejections=y,a.getUnhandledReasons=function(){return Q.slice()},a.stopUnhandledRejectionTracking=function(){y(),G=!1},y(),a.reject=m,a.fulfill=$,a.master=function t(e){return l({isDef:function(){}},function(t,n){return b(e,t,n)},function(){return a(e).inspect()})},a.spread=g,l.prototype.spread=function(t,e){return this.all().then(function(e){return t.apply(void 0,e)},e)},a.async=function t(e){return function(){function t(t,e){var i,u;if(\"undefined\"==typeof StopIteration){try{i=n[t](e)}catch(c){return m(c)}return i.done?a(i.value):p(i.value,r,o)}try{i=n[t](e)}catch(s){return\"[object StopIteration]\"===D(u=s)||u instanceof T?a(s.value):m(s)}return p(i,r,o)}var n=e.apply(this,arguments),r=t.bind(t,\"next\"),o=t.bind(t,\"throw\");return r()}},a.spawn=function t(e){a.done(a.async(e)())},a.return=function t(e){throw new T(e)},a.promised=function t(e){return function(){return g([this,k(arguments)],function(t,n){return e.apply(t,n)})}},a.dispatch=b,l.prototype.dispatch=function(t,e){var n=this,r=c();return a.nextTick(function(){n.promiseDispatch(r.resolve,t,e)}),r.promise},a.get=function(t,e){return a(t).dispatch(\"get\",[e])},l.prototype.get=function(t){return this.dispatch(\"get\",[t])},a.set=function(t,e,n){return a(t).dispatch(\"set\",[e,n])},l.prototype.set=function(t,e){return this.dispatch(\"set\",[t,e])},a.del=a.delete=function(t,e){return a(t).dispatch(\"delete\",[e])},l.prototype.del=l.prototype.delete=function(t){return this.dispatch(\"delete\",[t])},a.mapply=a.post=function(t,e,n){return a(t).dispatch(\"post\",[e,n])},l.prototype.mapply=l.prototype.post=function(t,e){return this.dispatch(\"post\",[t,e])},a.send=a.mcall=a.invoke=function(t,e){return a(t).dispatch(\"post\",[e,P(arguments,2)])},l.prototype.send=l.prototype.mcall=l.prototype.invoke=function(t){return this.dispatch(\"post\",[t,P(arguments,1)])},a.fapply=function(t,e){return a(t).dispatch(\"apply\",[void 0,e])},l.prototype.fapply=function(t){return this.dispatch(\"apply\",[void 0,t])},a.try=a.fcall=function(t){return a(t).dispatch(\"apply\",[void 0,P(arguments,1)])},l.prototype.fcall=function(){return this.dispatch(\"apply\",[void 0,P(arguments)])},a.fbind=function(t){var e=a(t),n=P(arguments,1);return function(){return e.dispatch(\"apply\",[this,n.concat(P(arguments))])}},l.prototype.fbind=function(){var t=this,e=P(arguments);return function(){return t.dispatch(\"apply\",[this,e.concat(P(arguments))])}},a.keys=function(t){return a(t).dispatch(\"keys\",[])},l.prototype.keys=function(){return this.dispatch(\"keys\",[])},a.all=k,l.prototype.all=function(){return k(this)},a.any=_,l.prototype.any=function(){return _(this)},a.allResolved=(W=w,function(){return\"undefined\"!=typeof console&&\"function\"==typeof console.warn&&console.warn(\"allResolved is deprecated, use allSettled instead.\",Error(\"\").stack),W.apply(W,arguments)}),l.prototype.allResolved=function(){return w(this)},a.allSettled=function t(e){return a(e).allSettled()},l.prototype.allSettled=function(){return this.then(function(t){return k(S(t,function(t){function e(){return t.inspect()}return(t=a(t)).then(e,e)}))})},a.fail=a.catch=function(t,e){return a(t).then(void 0,e)},l.prototype.fail=l.prototype.catch=function(t){return this.then(void 0,t)},a.progress=function t(e,n){return a(e).then(void 0,void 0,n)},l.prototype.progress=function(t){return this.then(void 0,void 0,t)},a.fin=a.finally=function(t,e){return a(t).finally(e)},l.prototype.fin=l.prototype.finally=function(t){if(!t||\"function\"!=typeof t.apply)throw Error(\"Q can't apply finally callback\");return t=a(t),this.then(function(e){return t.fcall().then(function(){return e})},function(e){return t.fcall().then(function(){throw e})})},a.done=function(t,e,n,r){return a(t).done(e,n,r)},l.prototype.done=function(e,r,o){var i=function(t){a.nextTick(function(){if(n(t,u),!a.onerror)throw t;a.onerror(t)})},u=e||r||o?this.then(e,r,o):this;\"object\"==typeof t&&t&&t.domain&&(i=t.domain.bind(i)),u.then(void 0,i)},a.timeout=function(t,e,n){return a(t).timeout(e,n)},l.prototype.timeout=function(t,e){var n=c(),r=setTimeout(function(){e&&\"string\"!=typeof e||((e=Error(e||\"Timed out after \"+t+\" ms\")).code=\"ETIMEDOUT\"),n.reject(e)},t);return this.then(function(t){clearTimeout(r),n.resolve(t)},function(t){clearTimeout(r),n.reject(t)},n.notify),n.promise},a.delay=function(t,e){return void 0===e&&(e=t,t=void 0),a(t).delay(e)},l.prototype.delay=function(t){return this.then(function(e){var n=c();return setTimeout(function(){n.resolve(e)},t),n.promise})},a.nfapply=function(t,e){return a(t).nfapply(e)},l.prototype.nfapply=function(t){var e=c(),n=P(t);return n.push(e.makeNodeResolver()),this.fapply(n).fail(e.reject),e.promise},a.nfcall=function(t){var e=P(arguments,1);return a(t).nfapply(e)},l.prototype.nfcall=function(){var t=P(arguments),e=c();return t.push(e.makeNodeResolver()),this.fapply(t).fail(e.reject),e.promise},a.nfbind=a.denodeify=function(t){if(void 0===t)throw Error(\"Q can't wrap an undefined function\");var e=P(arguments,1);return function(){var n=e.concat(P(arguments)),r=c();return n.push(r.makeNodeResolver()),a(t).fapply(n).fail(r.reject),r.promise}},l.prototype.nfbind=l.prototype.denodeify=function(){var t=P(arguments);return t.unshift(this),a.denodeify.apply(void 0,t)},a.nbind=function(t,e){var n=P(arguments,2);return function(){var r=n.concat(P(arguments)),o=c();return r.push(o.makeNodeResolver()),a(function n(){return t.apply(e,arguments)}).fapply(r).fail(o.reject),o.promise}},l.prototype.nbind=function(){var t=P(arguments,0);return t.unshift(this),a.nbind.apply(void 0,t)},a.nmapply=a.npost=function(t,e,n){return a(t).npost(e,n)},l.prototype.nmapply=l.prototype.npost=function(t,e){var n=P(e||[]),r=c();return n.push(r.makeNodeResolver()),this.dispatch(\"post\",[t,n]).fail(r.reject),r.promise},a.nsend=a.nmcall=a.ninvoke=function(t,e){var n=P(arguments,2),r=c();return n.push(r.makeNodeResolver()),a(t).dispatch(\"post\",[e,n]).fail(r.reject),r.promise},l.prototype.nsend=l.prototype.nmcall=l.prototype.ninvoke=function(t){var e=P(arguments,1),n=c();return e.push(n.makeNodeResolver()),this.dispatch(\"post\",[t,e]).fail(n.reject),n.promise},a.nodeify=function t(e,n){return a(e).nodeify(n)},l.prototype.nodeify=function(t){if(!t)return this;this.then(function(e){a.nextTick(function(){t(null,e)})},function(e){a.nextTick(function(){t(e)})})},a.noConflict=function(){throw Error(\"Q.noConflict only works when Q is used as a global\")};var Z=u();return a})}).call(this,t(\"_process\"))},{_process:1},],3:[function(t,e,n){\"use strict\";var r=function(t){switch(typeof t){case\"string\":return t;case\"boolean\":return t?\"true\":\"false\";case\"number\":return isFinite(t)?t:\"\";default:return\"\"}};e.exports=function(t,e,n,o){return e=e||\"&\",n=n||\"=\",null===t&&(t=void 0),\"object\"==typeof t?Object.keys(t).map(function(o){var i=encodeURIComponent(r(o))+n;return Array.isArray(t[o])?t[o].map(function(t){return i+encodeURIComponent(r(t))}).join(e):i+encodeURIComponent(r(t[o]))}).join(e):o?encodeURIComponent(r(o))+n+encodeURIComponent(r(t)):\"\"}},{},],4:[function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return d.default.information(\"zip:checkout:init\"),v.default.Promise(function(e,n){return t.onCheckout(e,n,{})}).then(function(r){var o=r.redirect_uri||r.redirectUri||r.data&&(r.data.redirect_uri||r.data.redirectUri);if(!o)return d.default.debug(\"zip:checkout:error\",\"Response does not contain redirectUri property\"),n(r),void t.onError({code:\"checkout_error\",message:\"The response does not contain the redirectUri property\",detail:r});d.default.debug(\"zip:checkout:success\",r),e({redirectUri:o})}).catch(function(e){d.default.debug(\"zip:checkout:error\",e),n(e),t.onError({code:\"checkout_error\",message:\"Checkout response error\",detail:e})})}Object.defineProperty(n,\"__esModule\",{value:!0}),n.Checkout=void 0;var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=t(\"./modal\"),a=r(u),c=t(\"./options\"),s=r(c),f=t(\"./utility\"),l=r(f),p=t(\"./console\"),d=r(p),h=(t(\"./events\"),t(\"q\")),v=r(h),y=function(){function t(){!function t(e,n){if(!(e instanceof n))throw TypeError(\"Cannot call a class as a function\")}(this,t)}return i(t,null,[{key:\"init\",value:function(t){if(\"function\"!=typeof Object.assign&&(Object.assign=function(t){if(null==t)throw TypeError(\"Cannot convert undefined or null to object\");t=Object(t);for(var e=1;e<arguments.length;e++){var n=arguments[e];if(null!=n)for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}),t=Object.assign({},s.default,t),!this._validate(t)){var e,n;return d.default.setLevel(t.logLevel),t.redirect?o(t,function(e){return t.redirectFn(e.redirectUri)}):(e=t,void((n=new a.default).onClose=e.onComplete.bind(e),n.build(),o(e,function(t){return n.setUri(t.redirectUri)},function(t){return n.close(!1)})))}}},{key:\"attachButton\",value:function(t,e){var n=document.querySelectorAll(t);if(!n.length)return config.onError({code:\"attach_error\",message:\"Cannot find button to attach zipMoney checkout\"});for(var r=0;r<n.length;r++)l.default.addEventHandler(n[r],\"click\",function(){return Zip.Checkout.init(e)})}},{key:\"_validate\",value:function(t){return 0>[\"error\",\"information\",\"debug\"].indexOf(t.logLevel.toLowerCase())&&(t.logLevel=\"error\"),0>[\"standard\",\"express\"].indexOf(t.request.toLowerCase())&&(t.request=\"standard\"),t.onComplete=t.onComplete||function(){},t.onError=t.onError||function(){},t.checkoutUri||t.onCheckout!==s.default.onCheckout?\"express\"===t.request?t.onError({code:\"not_implemented\",message:\"This feature is not yet implemented\"}):t.redirect?void 0:t.onComplete!==s.default.onComplete||t.redirectUri?void 0:t.onError({code:\"validation\",message:\"if onComplete function is not specified then redirectUri must be specified\"}):t.onError({code:\"validation\",message:\"if onCheckout function is not specified then checkoutUri must be specified\"})}},]),t}();n.Checkout=y},{\"./console\":5,\"./events\":6,\"./modal\":8,\"./options\":9,\"./utility\":10,q:2},],5:[function(t,e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var r=\"error\";n.default={error:function(){var t;(t=window.console).log.apply(t,arguments)},information:function(){if(\"error\"!==r){var t;(t=window.console).log.apply(t,arguments)}},debug:function(){if(\"debug\"===r){var t;(t=window.console).log.apply(t,arguments)}},setLevel:function(t){r=t}}},{},],6:[function(t,e,n){(function(e){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.EventListener=void 0;var r,o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}();if(((r=t(\"./utility\"))&&r.__esModule?r:{default:r}).default.isIe){var i=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n};i.prototype=e.Event.prototype,e.CustomEvent=i}var u={},a=n.EventListener=function(){function t(){!function t(e,n){if(!(e instanceof n))throw TypeError(\"Cannot call a class as a function\")}(this,t)}return o(t,null,[{key:\"constructor\",value:function(){u={}}},{key:\"on\",value:function(t,e){u[t]=e}},{key:\"off\",value:function(t){u[t]=null}},]),t}();a.Event=function(t,e){this.eventType=t,this.data=e||{}},a.Event.eventTypes={resize:\"resize\",transition:\"transition\",close:\"close\",complete:\"complete\",clear:\"clear\"};var c=window.addEventListener?\"addEventListener\":\"attachEvent\",s=window[c];s(\"attachEvent\"==c?\"onmessage\":\"message\",function(t){var n,r;t.data.zipmoney&&(n=t.data.msg,r=new e.CustomEvent(\"zipmoney\",{detail:n}),e.dispatchEvent(r))},!1),s(\"zipmoney\",function(t){var e,n=u[t.detail.eventType];n?n(t.detail.data||{}):(e=t,console.log(\"Unexpected Event\",e))},!1)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./utility\":10},],7:[function(t,e,n){(function(e){\"use strict\";var n=t(\"./checkout\"),r=t(\"./events\");e.Zip=e.Zip||{},e.Zip.Checkout=n.Checkout,e.zipMoneyEvent=r.EventListener.ZipEvent}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./checkout\":4,\"./events\":6},],8:[function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(){return Math.max(document.documentElement.clientHeight,window.innerHeight||0)}function i(){var t=document.body,e=document.documentElement;return Math.max(t.scrollHeight,t.offsetHeight,e.clientHeight,e.scrollHeight,e.offsetHeight)}function u(t){for(var e=document.querySelectorAll(\"html, body\"),n=0;n<e.length;n++)e[n].style.overflowY=t}function a(t){var e=document.body.currentStyle||window.getComputedStyle(document.body),n=document.body.offsetHeight,r=parseInt(e.marginTop,10)+parseInt(e.marginBottom,10),o=n+r-parseInt(e.height,10);document.body.style.height=t-o+\"px\"}Object.defineProperty(n,\"__esModule\",{value:!0});var c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=t(\"./utility\"),f=r(s),l=t(\"./events\"),p=t(\"./console\"),d=(r(p),{iframeWidth:400,iframeMinWidth:320,iframeInitialHeight:704,iframeMinHeight:600,verticalMargin:35}),h=[\"resize\",\"transition\",\"close\",\"complete\",\"clear\"],v=\"https://d3k1w8lx8mqizo.cloudfront.net/zm/\",y=function(){function t(){var e=this;(function t(e,n){if(!(e instanceof n))throw TypeError(\"Cannot call a class as a function\")})(this,t),this._events=[],this._isMobile=f.default.isMobileDevice(),h.forEach(function(t){return l.EventListener.on(l.EventListener.Event.eventTypes[t],e[t].bind(e))})}return c(t,[{key:\"build\",value:function(){this._initialHtmlHeight=i(),window.scrollTo(0,0);var t=this._frame=(e=this._frameUri,n=this._isMobile,(r=document.createElement(\"iframe\")).id=\"zipmoney-iframe\",r.frameborder=0,Object.assign(r.style,{padding:\"0\",border:\"none\",zIndex:\"999999\",backgroundColor:\"#FFF\",backgroundImage:\"url(\"+v+\"spinner.gif)\",backgroundRepeat:\"no-repeat\",backgroundPosition:\"50% 50%\"}),n?Object.assign(r.style,{overflow:\"scroll\",width:\"100%\",height:\"100%\",position:\"absolute\",top:\"0\",bottom:\"0\",left:\"0\",right:\"0\",margin:\"0\"}):Object.assign(r.style,{width:d.iframeWidth+\"px\",minWidth:d.iframeMinWidth+\"px\",height:d.iframeInitialHeight+\"px\",margin:d.verticalMargin+\"px auto 0 auto\",display:\"table-row\",backgroundSize:\"25%\",textAlign:\"center\",boxShadow:\"0px 0px 70px 0px rgb(0, 0, 0)\"}),r.src=e||\"\",r);if(!this._isMobile){var e,n,r,o,c,s=((o=document.createElement(\"img\")).src=v+\"icon-close.png\",Object.assign(o.style,{width:\"50px\",height:\"50px\",position:\"absolute\",top:\"20px\",right:\"20px\",cursor:\"pointer\"}),o);s.onclick=this.close.bind(this),this._overlay=((c=document.createElement(\"div\")).className=\"zipmoney-overlay\",Object.assign(c.style,{position:\"absolute\",left:\"0\",top:\"0\",display:\"table-cell\",textAlign:\"center\",verticalAlign:\"middle\",background:\"rgba(0, 0, 0, 0.75)\",zIndex:\"10000\",height:\"100%\",width:\"100%\"}),c),this._overlay.appendChild(s),this._overlay.appendChild(this._frame),t=this._overlay}document.body.appendChild(t),this._isMobile&&a(this._frame.offsetHeight),u(\"auto\"),this._startMonitoringWindowResize()}},{key:\"setUri\",value:function(t){this._frameUri=t,this._frame&&(this._frame.src=t)}},{key:\"resize\",value:function(t){var e=this._isMobile?16:0,t=t>=d.iframeMinHeight?t:d.iframeMinHeight,n=(t+=e)+2*d.verticalMargin,r=o();this._frame.style.height=t+\"px\",this._overlay&&(this._overlay.style.height=Math.max(r,this._initialHtmlHeight,n)+\"px\"),this._isMobile&&a(t)}},{key:\"transition\",value:function(){window.scroll(0,0)}},{key:\"close\",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e={state:\"cancelled\"};this._events.length&&(e=this._events.pop()),this._destroy(),this.onClose&&t&&this.onClose(e)}},{key:\"complete\",value:function(t){this._events.push(t)}},{key:\"clear\",value:function(t){this._events=[]}},{key:\"_startMonitoringWindowResize\",value:function(){var t=this;this._resizeHandler=f.default.debounce(function(){var e,n,r,u;return e=t,n=o(),r=i(),u=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,void(e._overlay&&(e._overlay.style.height=Math.max(n,r)+\"px\"),e._isMobile||u<d.iframeWidth?e._frame.style.width=\"100%\":e._frame.style.width=d.iframeWidth+\"px\")},250),f.default.addEventHandler(window,\"resize\",this._resizeHandler)}},{key:\"_stopMonitoringWindowResize\",value:function(){f.default.removeEventHandler(window,\"resize\",this._resizeHandler)}},{key:\"_destroy\",value:function(){this._stopMonitoringWindowResize(),this._overlay?document.body.removeChild(this._overlay):document.body.removeChild(this._frame),this._isMobile&&(document.body.style.height=\"initial\"),u(\"initial\"),this._overlay=this._frame=null,h.forEach(function(t){return l.EventListener.off(l.EventListener.Event.eventTypes[t])})}},]),t}();n.default=y},{\"./console\":5,\"./events\":6,\"./utility\":10},],9:[function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(n,\"__esModule\",{value:!0});var o=t(\"./xr\"),i=r(o),u=t(\"./console\"),a=r(u);i.default.configure({headers:{\"X-Requested-With\":\"XMLHttpRequest\"}}),n.default={request:\"standard\",redirect:!1,logLevel:\"Error\",onCheckout:function(t,e,n){i.default.post(this.checkoutUri).then(function(e){return t(e.data)}).catch(e)},onShippingAddressChanged:function(t,e,n){i.default.post(this.shippingUri).then(t).catch(e)},onComplete:function(t){if(a.default.information(\"zip:completed\",t),\"cancelled\"!==t.state){var e=t.checkoutId?\"&checkoutId=\"+t.checkoutId:\"\";this.redirectFn(this.redirectUri+\"?result=\"+t.state+e)}},onError:function(t){a.default.error(t)},redirectFn:function(t){window.location.href=t}}},{\"./console\":5,\"./xr\":11},],10:[function(t,e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=function(){function t(){!function t(e,n){if(!(e instanceof n))throw TypeError(\"Cannot call a class as a function\")}(this,t)}return r(t,null,[{key:\"isIe\",value:function(){var t=-1,e=window.navigator.userAgent,n=e.indexOf(\"MSIE \"),r=e.indexOf(\"Trident/\");if(n>0)t=parseInt(e.substring(n+5,e.indexOf(\".\",n)),10);else if(r>0){var o=e.indexOf(\"rv:\");t=parseInt(e.substring(o+3,e.indexOf(\".\",o)),10)}return t>-1?t:void 0}},{key:\"isMobileDevice\",value:function(){var t=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(t.substr(0,4))}},{key:\"debounce\",value:function(t,e){var n;return function(){var r=this,o=arguments,i=function(){n=null,t.apply(r,o)},u=!n;clearTimeout(n),n=setTimeout(i,e),u&&t.apply(r,o)}}},{key:\"addEventHandler\",value:function(t,e,n){t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent&&t.attachEvent(\"on\"+e,n)}},{key:\"removeEventHandler\",value:function(t,e,n){t.removeEventListener?t.removeEventListener(e,n,!1):t.detachEvent&&t.detachEvent(\"on\"+e,n)}},]),t}();n.default=o},{},],11:[function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){return{status:t.status,response:t.response,data:e,xhr:t}}function i(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];for(var o in n)if(({}).hasOwnProperty.call(n,o)){var i=n[o];if(\"object\"===(void 0===i?\"undefined\":a(i)))for(var u in i)({}).hasOwnProperty.call(i,u)&&(t[u]=i[u])}return t}function u(t){var e,n;return e=t,n=function(e,n){var r=i({},h,v,t),u=r.xmlHttpRequest();for(var c in r.abort&&t.abort(function(){n(o(u)),u.abort()}),u.open(r.method,r.params?r.url.split(\"?\")[0]+\"?\"+(0,s.default)(r.params):r.url,!0),u.withCredentials=r.withCredentials,u.addEventListener(d.LOAD,function(){if(u.status>=200&&u.status<300){var t=null;u.responseText&&(t=!0===r.raw?u.responseText:r.load(u.responseText)),e(o(u,t))}else n(o(u))}),u.addEventListener(d.ABORT,function(){return n(o(u))}),u.addEventListener(d.ERROR,function(){return n(o(u))}),u.addEventListener(d.TIMEOUT,function(){return n(o(u))}),r.headers)({}).hasOwnProperty.call(r.headers,c)&&u.setRequestHeader(c,r.headers[c]);for(var f in r.events)({}).hasOwnProperty.call(r.events,f)&&u.addEventListener(f,r.events[f].bind(null,u),!1);var l=\"object\"!==a(r.data)||r.raw?r.data:r.dump(r.data);void 0!==l?u.send(l):u.send()},(e&&e.promise?e.promise:v.promise||h.promise)(n)}Object.defineProperty(n,\"__esModule\",{value:!0});var a=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},c=t(\"querystring/encode\"),s=r(c),f=t(\"q\"),l=r(f),p={GET:\"GET\",POST:\"POST\",PUT:\"PUT\",DELETE:\"DELETE\",PATCH:\"PATCH\",OPTIONS:\"OPTIONS\"},d={READY_STATE_CHANGE:\"readystatechange\",LOAD_START:\"loadstart\",PROGRESS:\"progress\",ABORT:\"abort\",ERROR:\"error\",LOAD:\"load\",TIMEOUT:\"timeout\",LOAD_END:\"loadend\"},h={method:p.GET,data:void 0,headers:{Accept:\"application/json\",\"Content-Type\":\"application/json\"},dump:JSON.stringify,load:JSON.parse,xmlHttpRequest:function(){return new XMLHttpRequest},promise:function(t){return l.default.Promise(t)},withCredentials:!1},v={};u.assign=i,u.encode=s.default,u.configure=function t(e){v=i({},v,e)},u.Methods=p,u.Events=d,u.defaults=h,u.get=function(t,e,n){return u(i({url:t,method:p.GET,params:e},n))},u.put=function(t,e,n){return u(i({url:t,method:p.PUT,data:e},n))},u.post=function(t,e,n){return u(i({url:t,method:p.POST,data:e},n))},u.patch=function(t,e,n){return u(i({url:t,method:p.PATCH,data:e},n))},u.del=function(t,e){return u(i({url:t,method:p.DELETE},e))},u.options=function(t,e){return u(i({url:t,method:p.OPTIONS},e))},n.default=u},{q:2,\"querystring/encode\":3},]},{},[7]);\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.54.2\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar validateLoadParams = function validateLoadParams(params) {\n var errorMessage = \"invalid load parameters; expected object of shape\\n\\n {advancedFraudSignals: boolean}\\n\\nbut received\\n\\n \".concat(JSON.stringify(params), \"\\n\");\n\n if (params === null || _typeof(params) !== 'object') {\n throw new Error(errorMessage);\n }\n\n if (Object.keys(params).length === 1 && typeof params.advancedFraudSignals === 'boolean') {\n return params;\n }\n\n throw new Error(errorMessage);\n};\n\nvar loadParams;\nvar loadStripeCalled = false;\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadStripeCalled = true;\n var startTime = Date.now();\n return loadScript(loadParams).then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nloadStripe.setLoadParameters = function (params) {\n // we won't throw an error if setLoadParameters is called with the same values as before\n if (loadStripeCalled && loadParams) {\n var validatedParams = validateLoadParams(params);\n var parameterKeys = Object.keys(validatedParams);\n var sameParameters = parameterKeys.reduce(function (previousValue, currentValue) {\n var _loadParams;\n\n return previousValue && params[currentValue] === ((_loadParams = loadParams) === null || _loadParams === void 0 ? void 0 : _loadParams[currentValue]);\n }, true);\n\n if (sameParameters) {\n return;\n }\n }\n\n if (loadStripeCalled) {\n throw new Error('You cannot change load parameters after calling loadStripe');\n }\n\n loadParams = validateLoadParams(params);\n};\n\nexports.loadStripe = loadStripe;\n","module.exports = require('./dist/pure.js');\n",null,null,null,null,null,"// src/utils/entries-to-string.ts\nfunction entriesToString(obj, separator = \"=\") {\n return !!Object.keys(obj).length ? Object.entries(obj).reduce((str, [key, value]) => [...str, `${key}${separator}${value}`], []).join(\",\") : \"\";\n}\n\n// src/checkout.ts\nvar Checkout = class {\n DEFAULT_WIDTH = 450;\n DEFAULT_HEIGHT = 750;\n DEFAULT_FEATURES = {\n resizable: \"no\"\n };\n auth;\n callback;\n error;\n frame;\n isCheckoutOpen;\n onMessage;\n url;\n orderId;\n accessToken;\n refreshToken;\n clientId;\n onCheckoutClosed;\n rootUrl;\n targetOrigin;\n title;\n windowFeatures;\n windowObserver;\n constructor({\n auth,\n url,\n clientId,\n mode,\n orderId,\n onCheckoutClosed,\n onError,\n onTokensChanged,\n onPaymentSuccess,\n onPaymentError,\n title,\n windowFeatures\n }) {\n this.callback = {\n [\"ERROR\" /* ERROR */]({ error, orderId: orderId2 }) {\n onError?.({ error, orderId: orderId2 });\n },\n [\"PAYMENT_ERROR\" /* PAYMENT_ERROR */]({ error, orderId: orderId2 }) {\n onPaymentError?.({ error, orderId: orderId2 });\n },\n [\"PAYMENT_SUCCESS\" /* PAYMENT_SUCCESS */]({ orderId: orderId2 }) {\n onPaymentSuccess?.({ orderId: orderId2 });\n },\n [\"TOKENS_CHANGED\" /* TOKENS_CHANGED */]({ accessToken, refreshToken }) {\n onTokensChanged?.({ accessToken, refreshToken });\n }\n };\n this.auth = auth;\n this.isCheckoutOpen = false;\n this.error = void 0;\n this.frame = void 0;\n this.onMessage = (e) => {\n const { data, origin } = e;\n if (origin === url) {\n if (data?.isDomReady === true) {\n this.postMessage();\n }\n if (data?.isPaymentSuccessful) {\n this.callback[\"PAYMENT_SUCCESS\" /* PAYMENT_SUCCESS */]({\n orderId: data.orderId\n });\n }\n if (!data?.isPaymentSuccessful && !!data?.error) {\n this.callback[\"PAYMENT_ERROR\" /* PAYMENT_ERROR */]({\n orderId: data.orderId,\n error: data.error\n });\n }\n if (!data?.paymentFlowState && !!data?.error) {\n this.callback[\"ERROR\" /* ERROR */]({\n orderId: data.orderId,\n error: data.error\n });\n }\n if (data?.accessToken && data?.refreshToken) {\n this.callback[\"TOKENS_CHANGED\" /* TOKENS_CHANGED */]({\n accessToken: data.accessToken,\n refreshToken: data.refreshToken\n });\n }\n }\n };\n const checkoutMode = mode || \"default\" /* DEFAULT */;\n this.rootUrl = url;\n this.targetOrigin = window.location.href.replace(/\\/$/, \"\");\n this.url = `${url}?orderId=${orderId}&merchantUrl=${encodeURIComponent(this.targetOrigin)}&mode=${checkoutMode}`;\n this.orderId = orderId;\n this.clientId = clientId;\n this.onCheckoutClosed = onCheckoutClosed;\n this.title = title;\n this.windowFeatures = windowFeatures;\n this.windowObserver = void 0;\n }\n get isWindowObserverOpen() {\n return !!this.windowObserver;\n }\n open = () => {\n if (this.isCheckoutOpen) {\n this.frame?.focus();\n } else {\n this.frame = window.open(this.url, this.title, this.getFeatures());\n this.isCheckoutOpen = true;\n this.startWindowObserver();\n }\n };\n close = () => {\n this.frame = void 0;\n this.isCheckoutOpen = false;\n this.stopWindowObserver();\n };\n listenMessage = () => {\n if (this.onMessage) {\n window.addEventListener(\"message\", this.onMessage, false);\n }\n };\n postMessage = () => {\n if (!!this.frame && !!this.rootUrl) {\n this.frame.postMessage(\n {\n auth: {\n ...this.auth\n }\n },\n this.rootUrl\n );\n }\n };\n getFeatures() {\n const windowWidth = this.windowFeatures?.width || this.DEFAULT_WIDTH;\n const windowHeight = this.windowFeatures?.height || this.DEFAULT_HEIGHT;\n const features = { ...this.DEFAULT_FEATURES, ...this.windowFeatures };\n const centerPosition = this.getCenteredPosition(windowWidth, windowHeight);\n return entriesToString({\n ...centerPosition,\n ...features,\n width: windowWidth,\n height: windowHeight\n });\n }\n getCenteredPosition(width, height) {\n return {\n left: screen.width / 2 - width / 2,\n top: screen.height / 2 - height / 2\n };\n }\n startWindowObserver() {\n if (!this.isWindowObserverOpen) {\n this.windowObserver = setInterval(() => {\n if (this.frame?.closed) {\n this.close();\n this.onCheckoutClosed?.({ orderId: this.orderId });\n if (this.onMessage) {\n window.removeEventListener(\"message\", this.onMessage);\n }\n }\n }, 300);\n }\n }\n stopWindowObserver() {\n clearInterval(this.windowObserver);\n }\n};\n\n// src/create-checkout-button.ts\nimport DOMPurify from \"isomorphic-dompurify\";\nfunction createCheckoutButton({\n callback,\n containerId = \"opc-container\",\n buttonText = \"Pay Now\"\n}) {\n const checkoutButton = document.querySelector(\"#opc-checkout-btn\");\n const container = document.querySelector(`#${containerId}`);\n if (!checkoutButton && container?.nodeType === Node.ELEMENT_NODE) {\n const fragment = new DocumentFragment();\n const sanitizedText = DOMPurify.sanitize(buttonText);\n const buttonTextContent = document?.createTextNode(sanitizedText);\n const button = document?.createElement(\"button\");\n button.append(buttonTextContent);\n button.setAttribute(\"id\", \"opc-checkout-btn\");\n button.style.boxSizing = \"border-box\";\n button.style.padding = \"1rem 1.5rem\";\n button.style.color = \"#000000\";\n button.style.backgroundColor = \"blue\";\n button.addEventListener(\"click\", () => callback?.());\n fragment.append(button);\n container.append(fragment);\n }\n}\nexport {\n Checkout,\n createCheckoutButton\n};\n",null,null,null,null,null,null,null,null,null,null,null],"names":["API_AUTH_TYPE","Browser","_createClass","_classCallCheck","key","value","navigator","userAgent","indexOf","this","isFacebook","isInstagram","window","language","Date","getTimezoneOffset","sUsrAg","javaEnabled","screen","colorDepth","height","width","tem","ua","M","match","test","name","version","exec","appName","appVersion","splice","PRE_AUTH_CHARGE_LINK","ApiCharge","api","payload","cb","getClient","send","_extends","_3ds","browser_details","getBrowserName","java_enabled","isJavaEnabled","toString","getLanguage","screen_height","getScreenHeight","screen_width","getScreenWidth","time_zone","color_depth","getColorDepth","data","getClientPromise","ACCESS_HEADER_NAME","AccessToken","jwt","_jwt$split2","_slicedToArray","split","rawHead","rawBody","signature","length","head","JSON","parse","atob","body","_a","meta","token","validateJWT","ENV","WIDGET_URL","env","url","API_URL","ADDITIONAL_ENV","DEFAULT_ENV","DEFAULT_ALIAS","Env","configs","defaultEnv","arguments","undefined","setEnv","alias","isValidMode","Error","index","hasOwnProperty","getEnv","SDK","get","_version","trim","type","headerKeys","Object","freeze","PROCESS_STANDALONE_3DS_STATUS","ApiBase","auth","authType","setAuthType","TOKEN","PUBLIC_KEY","method","link","_this","request","XMLHttpRequest","open","getConf","setRequestHeader","setAuthHeader","config","errorCb","onload","parser","text","responseText","status","stringify","_this2","Promise","resolve","reject","then","parserPromise","_ref","res","resource","error","message","e","_ref2","Api","_ApiBase","publicKey","_callSuper","_inherits","Url","uri","val","replace","RegExp","encodeURIComponent","params","keys","map","join","Uuid","crypto","getRandomValues","buf","Uint16Array","hash","random","number","Math","floor","substring","FLYPAY_LINK","FLYPAY_LOGO_LINK","Link","linkResource","widgetId","generate","setParams","widget_id","getNetUrl","getParams","extendSearchParams","Event","selector","dataType","eventData","input","document","querySelector","subject","listener","addEventListener","attachEvent","concat","Container","getElement","allowValue","isExist","styles","getAttribute","containerStyleCollection","convertConfigs","subscribe","container","containerTextCollection","item","currentConfig","push","style","collectionKey","IFrame","options","iFrame","createElement","setAttribute","title","appendChild","content","iFrameDocument","contentDocument","write","close","removeChild","setStyle","saveSize","property","EVENT","AFTER_LOAD","SUBMIT","FINISH","VALIDATION_ERROR","SYSTEM_ERROR","CHECKOUT_SUCCESS","CHECKOUT_READY","CHECKOUT_ERROR","CHECKOUT_COMPLETED","CHECKOUT_POPUP_OPEN","CHECKOUT_POPUP_CLOSE","VALIDATION","SELECT","UNSELECT","NEXT","PREV","META_CHANGE","RESIZE","CHARGE_AUTH_SUCCESS","CHARGE_AUTH_REJECT","CHARGE_AUTH_CANCELLED","ADDITIONAL_DATA_SUCCESS","ADDITIONAL_DATA_REJECT","CHARGE_AUTH","DISPATCH_SUCCESS","DISPATCH_ERROR","IFrameEvent","listeners","event","emit","apply","eventName","hiddenStyle","visibility","border","CARD_SCHEME_SERVICE","GPAYMENTS_EVENT","GPaymentsService","eventEmitter","resultRead","iFrameEvent","initialization_url","secondary_url","charge_3ds_id","setupIFrameEvents","initializeIFrames","err","parseError","initializationUrl","secondaryUrl","hideAuthorization","divAuthorization","browserAndChallengeContainer","iFrameAuthorization","load","divSecondaryURL","monitoringContainer","iFrameSecondaryUrl","hideIframes","prop","on","info","performAuthentication","parseHandleResponse","processResult","charge3dsId","_ref3","result","description","charge","standalone3dsHandle","remove","SUCCESS","parseResultData","_this3","externalAPI","setTimeout","doPolling","_ref4","_this4","standalone3dsProcess","authenticationResult","challenge","challenge_url","_b","decoupled_challenge","ApiChargeInternal","ApiServiceInternal","service_id","ApiInternal","TOKEN_FORMAT","STANDALONE_3DS_GATEWAYS","Standalone3dsService","parsedToken","tokenData","extractData","service_type","EventEmitter","events","forEach","fn","call","handler","filter","storedHandler","Canvas3ds","CHECKOUT_MODE","GATEWAY_TYPE","extractToken","ref_id","standalone3dsService","format","HTML","loadFromHtml","URL","STANDALONE_3DS","console","hide","show","CHECKOUT_BUTTON_EVENT","CLICK","POPUP_REDIRECT","REDIRECT","ERROR","REFERRED","DECLINED","CANCELLED","ACCEPTED","CLOSE","WALLET_GATEWAY","WALLET_TYPE","CHECKOUT_BTN_LOG_PREFIX","PAYMENT_SOURCE_TYPE","CARD","BANK_ACCOUNT","CHECKOUT","FORM_FIELD","CARD_NAME","CARD_NUMBER","EXPIRE_MONTH","EXPIRE_YEAR","CARD_CCV","CARD_PIN","ACCOUNT_NAME","ACCOUNT_BSB","ACCOUNT_NUMBER","ACCOUNT_ROUTING","ACCOUNT_HOLDER_TYPE","ACCOUNT_BANK_NAME","ACCOUNT_TYPE","FIRST_NAME","LAST_NAME","EMAIL","PHONE","PHONE2","ADDRESS_LINE1","ADDRESS_LINE2","ADDRESS_STATE","ADDRESS_COUNTRY","ADDRESS_CITY","ADDRESS_POSTCODE","ADDRESS_COMPANY","STYLE","BACKGROUND_COLOR","BACKGROUND_ACTIVE_COLOR","TEXT_COLOR","BORDER_COLOR","ICON_SIZE","BUTTON_COLOR","ERROR_COLOR","SUCCESS_COLOR","FONT_SIZE","FONT_FAMILY","TEXT","TITLE","TITLE_H1","TITLE_H2","TITLE_H3","TITLE_H4","TITLE_H5","TITLE_H6","TITLE_DESCRIPTION","SUBMIT_BUTTON","SUBMIT_BUTTON_PROCESSING","ELEMENT","TABS","SUPPORTED_CARD_TYPES","AMEX","AUSBC","DINERS","DISCOVER","JAPCB","LASER","MASTERCARD","SOLO","VISA","VISA_WHITE","SUPPORTED_CHECKOUT_META_COLLECTION","RUNNER_EVENT","HttpCore","getLink","accessToken","getUrl","getAccessHeaderNameByToken","Builder","_HttpCore","gatewayID","successRedirectUrl","errorRedirectUrl","gateway_id","success_redirect_url","error_redirect_url","redirect_url","warn","code","create","getConfigs","Checker","TEMPLATE","TRIGGER","Background","overlay","showControl","showLoader","isInit","isSupportPopUp","createLoader","createTemplate","createStyles","eventHandler","closeButton","focusButton","EventHelper","parentNode","getElementsByTagName","classList","add","innerHTML","LOADER_STYLE","LOADER_TEMPLATE","template","String","css","offsetHeight","createTextNode","triggerName","BaseRunner","widgetEnv","callback","ContextualRunner","_Runner","_class","_len","args","Array","_key","background","onTrigger","BACKGROUND_TRIGGER","stop","suspendedRedirectUri","setBackdropTitle","setBackdropDescription","turnOffControl","turnOffLoader","DISPATCHER_ELEMENT_ID","Dispatcher","messageSource","dispatcher","getElementById","id","display","message_source","restartDispatcher","EVENT_CLOSE","Popup","scrollbars","resizable","top","left","closed","timer","setInterval","clearInterval","location","href","focus","getNetConfigs","screenX","screenY","clickCount","LOADER_EXTRA_STYLE","PopupRunner","_ContextualRunner","checkout","popup","isRunning","init","initControl","checkoutData","localStorage","setItem","redirect","onClose","clear","reference_id","getItem","removeItem","_get","_getPrototypeOf","prototype","isContextualRunner","runner","isRedirectRunner","t","n","r","o","u","a","c","require","i","s","f","exports","v","d","h","y","run","l","clearTimeout","fun","array","p","nextTick","browser","argv","versions","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","bootstrap","_typeof","define","amd","ses","ok","makeQ","self","Q","noConflict","x","stack","source","__minimumStackCounter__","stackCounter","U","configurable","unshift","I","Number","j","C","Z","notify","promise","$","longStackSupport","L","promiseDispatch","H","P","valueOf","inspect","state","N","fulfill","m","TypeError","exception","reason","F","G","when","z","runAfter","B","set","delete","post","q","g","spread","b","dispatch","k","_","defer","w","S","R","E","T","O","next","task","domain","enter","pop","exit","setImmediate","bind","MessageChannel","port1","onmessage","port2","postMessage","Function","slice","reduce","defineProperty","A","D","ReturnValue","Q_DEBUG","makeNodeResolver","race","all","passByCopy","makePromise","onerror","tap","fcall","thenResolve","thenReject","nearer","isPromise","isPromiseAlike","isPending","isFulfilled","isRejected","W","resetUnhandledRejections","getUnhandledReasons","stopUnhandledRejectionTracking","master","isDef","async","StopIteration","done","spawn","promised","del","mapply","mcall","invoke","fapply","fbind","any","allResolved","allSettled","fail","progress","fin","timeout","delay","nfapply","nfcall","nfbind","denodeify","nbind","nmapply","npost","nsend","nmcall","ninvoke","nodeify","_process","isFinite","isArray","__esModule","default","information","onCheckout","redirect_uri","redirectUri","debug","onError","detail","Checkout","enumerable","writable","assign","_validate","setLevel","logLevel","redirectFn","onComplete","build","setUri","querySelectorAll","addEventHandler","Zip","toLowerCase","checkoutUri","log","EventListener","isIe","bubbles","cancelable","createEvent","initCustomEvent","CustomEvent","eventType","eventTypes","resize","transition","complete","zipmoney","msg","dispatchEvent","global","zipMoneyEvent","ZipEvent","max","documentElement","clientHeight","innerHeight","scrollHeight","overflowY","currentStyle","getComputedStyle","parseInt","marginTop","marginBottom","iframeWidth","iframeMinWidth","iframeInitialHeight","iframeMinHeight","verticalMargin","_events","_isMobile","isMobileDevice","_initialHtmlHeight","scrollTo","_frame","_frameUri","frameborder","padding","zIndex","backgroundColor","backgroundImage","backgroundRepeat","backgroundPosition","overflow","position","bottom","right","margin","minWidth","backgroundSize","textAlign","boxShadow","src","cursor","onclick","_overlay","className","verticalAlign","_startMonitoringWindowResize","scroll","_destroy","_resizeHandler","debounce","innerWidth","clientWidth","removeEventHandler","_stopMonitoringWindowResize","configure","headers","onShippingAddressChanged","shippingUri","checkoutId","vendor","opera","substr","removeEventListener","detachEvent","response","xhr","xmlHttpRequest","abort","withCredentials","LOAD","raw","ABORT","TIMEOUT","dump","Symbol","iterator","constructor","GET","POST","PUT","DELETE","PATCH","OPTIONS","READY_STATE_CHANGE","LOAD_START","PROGRESS","LOAD_END","Accept","encode","Methods","Events","defaults","put","patch","StorageDataIntent","ZipmoneyRunner","_BaseRunner","apiEnv","serialize","json_body","ZipmoneyContextualRunner","runs","initLoader","getCheckoutUri","getSuccessRedirectUri","element","LOG_PREFIX","EVENT_DATA_TYPE","StorageDispatcher","defaultPayload","destination","iframeEvent","onLoadCallback","dispatcherFrame","destroy","setupIframeEventListeners","pushCallbacks","contentWindow","_event","onSuccess","ZipmoneyRedirectRunner","_RedirectRunner","storageDispatcher","widgetSessionData","merchant_redirect_url","getRedirectUrl","checkout_token","public_key","intent","WIDGET_SESSION","getProxyRedirectUrl","merchantRedirectUrl","RedirectRunner","PaypalRunner","_PopupRunner","AfterpayRunner","btoa","initError","setConfigs","mode","TYPE","EXTERNAL_CHECKOUT_TOKEN","CHECKOUT_TOKEN","CheckoutContextualHandler","onStop","checkToken","createOneTimeToken","checker","ExternalCheckoutChecker","details","paymentSourceToken","PaymentSourceBuilder","gatewayId","TOKEN_TYPE","payment_source_token","checkout_email","checkout_holder","gateway_type","CheckoutButton","gatewayType","PAYPAL","CONTEXTUAL","initCheckout","chooseRunner","Runner","getRunnerByMode","checkoutHandler","externalCheckout","ExternalCheckoutBuilder","getErrorRedirectUri","setMeta","buttonEvent","buildAdditionalParams","assertMethodSupport","insertToInput","setBackgroundDescription","setBackgroundTitle","setSuspendedRedirectUri","setRedirectUrl","turnOffControlBackdrop","turnOffLoaderBackdrop","turnOffBackdrop","AFTERPAY","ZIPMONEY","warnMessage","ZipmoneyCheckoutButton","_CheckoutButton","AfterpayCheckoutButton","showETP","doShow","_Browser$getBrowserIn","getBrowserInfo","show_etp","PaypalCheckoutButton","ObjectHelper","object","PaymentSourceWidget","queryToken","configTokens","query_token","access_token","sdk_version","sdk_type","param","values","_defineProperty","refId","count","limit","ids","gateway_ids","types","_step","supportedTypes","_iterator","_createForOfIteratorHelper","payment_source_types","HtmlPaymentSourceWidget","_PaymentSourceWidget","getIFrameUrl","VAULT_DISPLAY_EVENT","PRIMARY_BUTTON_COLOR","SECONDARY_BUTTON_COLOR","PRIMARY_BUTTON_TEXT_COLOR","SECONDARY_BUTTON_TEXT_COLOR","ENABLE_SRC_POPUP","ClickToPaySRC","iframe_selector","autoResize","iFrameContainer","_ref5","useAutoResize","iframeElement","IFRAME_LOADED","force","_ref6","scrolling","ClickToPay","_SRC","public_key_or_access_token","provider","customizations","SRC","service","getConfig","MASTERCARD_SRC","hideCheckout","showCheckout","reload","SUBMIT_FORM","CHANGE_TAB","HIDE_ELEMENTS","SHOW_ELEMENTS","REFRESH_CHECKOUT","UPDATE_FORM_VALUES","INIT_CHECKOUT","Trigger","trigger","VaultDisplayIframeEvent","FLYPAY_EVENT","_IFrameEvent","VaultDisplayWidget","validationData","triggerElement","vaultDisplayToken","vault_display_token","FlypayIframeEvent","UPDATED","WalletTrigger","_Trigger","WalletBackground","_Background","bgImageUrl","hideCloseButton","hideContinueButton","imageStyle","createImageStyles","WALLET_EVENT","UNAVAILABLE","UPDATE","PAYMENT_METHOD_SELECTED","PAYMENT_SUCCESS","PAYMENT_IN_REVIEW","PAYMENT_ERROR","CALLBACK","AUTH_TOKENS_CHANGED","BUTTON_CLICK","CHECKOUT_OPEN","CHECKOUT_CLOSE","WalletService","initializeChildWallets","childWallets","child","FlypayWalletService","_WalletService","amount","currency","gateway_mode","reference","request_shipping","credentials","initBackground","bg","_data","START_LOADING","END_LOADING","parseUpdateData","PAYMENT_SUCCESSFUL","parsePaymentSuccessfulData","currencyCode","wallet_response_code","responseCode","wallet_session_id","sessionId","paymentMethodDetails","payment_source","wallet_payment_method_id","paymentMethodId","card_number_last4","lastFourDigitsOfPan","card_scheme","paymentScheme","loyaltyAccountSummary","wallet_loyalty_account","loyaltyAccountId","barcode","loyaltyAccountBarcode","deliveryAddressDetails","shipping","address_line1","line1","address_line2","line2","address_postcode","postalCode","address_city","city","address_state","address_country","countryCode","address_company","companyName","wallet_address_id","addressId","post_office_box_number","postOfficeBoxNumber","wallet_address_created_timestamp","createdTimestamp","wallet_address_updated_timestamp","updatedTimestamp","wallet_address_name","PaypalWalletService","standalone","renderPaypalStandaloneComponent","renderPaypalCommonComponent","latestShippingChangePromiseResolve","latestShippingChangePromiseReject","success","request_type","latestShippingData","_res","buttonId","paypalScript","pay_later","capture","paypal","Buttons","paypalSharedProps","render","isPayLater","button","fundingSource","FUNDING","PAYLATER","isEligible","Messages","placement","onClick","actions","responseValue","attachResult","createOrder","onShippingChange","_actions","parsedCallbackData","onApprove","pendingApprovalPromise","payment_method_id","orderID","customer","external_payer_id","payerID","onCancel","wallet_order_id","paymentID","paymentToken","shipping_address","postal_code","country_code","selected_shipping_option","label","currency_code","obj","pure","loadParams","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","stripePromise","loadScript","Stripe","script","scripts","findScript","queryString","advancedFraudSignals","headOrBody","injectScript","validateLoadParams","errorMessage","loadStripeCalled","loadStripe","startTime","now","maybeStripe","stripe","_registerWrapper","registerWrapper","initStripe","setLoadParameters","validatedParams","previousValue","currentValue","_loadParams","pure$1","require$$0","UI_COMPLETION_STATE","StripeWalletService","paymentRequest","country","toUpperCase","total","amount_label","requestPayerName","request_payer_name","requestPayerEmail","request_payer_email","requestPayerPhone","request_payer_phone","elements","initPaymentRequest","checkAvailability","availability","mount","setOnPaymentMethodSelected","canMakePayment","available","gpay_enabled","wallets","includes","GOOGLE","applepay_enabled","APPLE","google_pay","applePay","apple_pay","flypay","createWalletButton","_event$paymentMethod","paymentMethod","card","_event$paymentMethod$","billing_details","address","payer_name","payerName","payer_email","payerEmail","payer_phone","payerPhone","wallet_type","getWalletType","wallet","card_name","brand","last4","expire_month","exp_month","expire_year","exp_year","AppleWalletService","gatewayName","onCancelPayment","onValidateMerchant","handleMerchantOnButtonClickEvent","getMerchantSession","merchantSession","paymentSession","completeMerchantValidation","onPaymentAuthorized","_event$payment","payment","billingContact","shippingContact","shippingOptionMethod","selectedShippingOption","cardNameFromShippingContact","givenName","familyName","network","addressLines","locality","administrativeArea","ref_token","paymentData","hasShippingOptions","shipping_options","contact","first_name","last_name","email","emailAddress","phone","phoneNumber","completePayment","ApplePaySession","STATUS_SUCCESS","STATUS_FAILURE","onShippingContactSelected","rej","onShippingMethodSelected","shippingMethod","update","newTotal","getMetaRawDataInitialization","completeShippingMethodSelection","_c","_d","_e","identifier","_f","_g","_h","formatShippingOptions","merchant","metaStyles","google","apple","raw_data_initialization","metaRawDataInit","isShippingRequired","newAmount","newShippingOptions","newShippingMethods","completeShippingContactSelection","_reject","canMakePaymentsWithActiveCard","getMerchantId","_err","createButtonStyle","onApplePayButtonClicked","createRequest","onvalidatemerchant","onpaymentauthorized","oncancel","onshippingcontactselected","onshippingmethodselected","begin","rawDataInitialization","shippingMethods","merchantCapabilities","supportedNetworks","show_billing_address","requiredBillingContactFields","requiredShippingContactFields","_this5","session_id","hostname","_this6","merchantResult","getMetaStyles","button_type","GoogleWalletService","processingButtonClick","shippingOption","find","shippingOptionData","shippingAddress","option","googlePayJs","paymentsClient","payments","PaymentsClient","merchantInfo","merchant_name","merchantName","merchantId","paymentDataCallbacks","onPaymentDataChanged","intermediatePaymentData","environment","paymentDataRequestUpdate","newTransactionInfo","totalPriceStatus","totalPriceLabel","totalPrice","newShippingOptionParameters","defaultSelectedOptionId","shippingOptions","isReadyToPay","createButton","onGooglePayButtonClicked","buttonType","buttonSizeMode","button_size_mode","buttonColor","button_color","loadPaymentData","createPaymentDataRequest","_this7","billingAddressLine1","paymentMethodData","billingAddress","address1","billingAddressLine2","address2","shippingAddressLine1","shippingAddressLine2","_j","shippingAddressCountry","_k","shippingAddressCity","_l","shippingAddressPostCode","_m","shippingAddressState","_o","shippingContactFirstName","_p","shippingContactEmail","shippingContactPhone","_q","cardNetwork","tokenizationData","transactionState","_this8","parsedUpdateData","returnPromise","isSafariBrowser","apiVersion","apiVersionMinor","allowedPaymentMethods","createCardData","existingPaymentMethodRequired","gatewayMerchantId","tokenizationSpecification","parameters","gateway","transactionInfo","callbackIntents","_toConsumableArray","shippingAddressRequired","shippingOptionRequired","shippingOptionParameters","allowedAuthMethods","allowedCardNetworks","billingAddressRequired","MastercardWalletService","hasAppleCredentials","hasGoogleCredentials","getGatewayName","AfterPayWalletService","customStyles","afterpayButton","getButton","onAfterPayButtonClicked","buttonWalletStyle","getButtonStyle","afterpayJS","AfterPay","initialize","getCheckoutSession","getHeight","styleSheet","generateButtonColor","innerText","color","isNaN","DEFAULT_WIDTH","DEFAULT_HEIGHT","DEFAULT_FEATURES","frame","isCheckoutOpen","onMessage","orderId","refreshToken","clientId","onCheckoutClosed","rootUrl","targetOrigin","windowFeatures","windowObserver","onTokensChanged","onPaymentSuccess","onPaymentError","orderId2","origin","isDomReady","isPaymentSuccessful","paymentFlowState","checkoutMode","isWindowObserverOpen","getFeatures","startWindowObserver","stopWindowObserver","listenMessage","windowWidth","windowHeight","features","separator","entries","str","entriesToString","getCenteredPosition","getFlypayV2Button","getButtonWithClassNames","getWidgetClassName","classNames","containerId","FlypayV2WalletService","onFlypayV2ButtonClick","setLoadingOverlayDisplay","displayStyle","loadingOverlay","disable","processButtonClick","flypayV2Checkout","getOrderId","enable","processFailure","refresh_token","disabled","flypayV2Button","widgetClassName","WalletButtons","chargeToken","hasUpdateHandler","tokenMeta","extractMeta","STRIPE","client_auth","FLYPAY","FLYPAY_V2","setupServiceCallbacks","_this9","setupUnavailableCallback","setupUpdateCallback","setupWalletCallback","setupPaymentCallback","setupPaymentSuccessCallback","setupPaymentInReviewCallback","setupPaymentErrorCallback","setupAuthTokensChangedCallback","setupOnClickCallback","setupOnCheckoutOpenCallback","setupOnCheckoutCloseCallback","_this10","_this11","_this12","_this13","_this14","_this15","walletCallback","_this16","walletCapture","captureResult","_this17","_this18","_this19","_this20","PAYMENT_TYPE","GIFT_CARD","PURPOSE","PAYMENT_SOURCE","CARD_PAYMENT_SOURCE_WITH_CVV","CARD_PAYMENT_SOURCE_WITHOUT_CVV","Configuration","paymentType","purpose","dynamic_fields_position","predefined_fields","card_processing_network","webhook_destination","fields","defined_form_fields","configuration_token","giftCardScheme","processingNetwork","errors","tokens","counter","_loop","createToken","finishCreatingEachToken","STYLABLE_ELEMENT","INPUT","LABEL","STYLABLE_ELEMENT_STATE","FOCUS","HOVER","stylableElements","states","ElementStyle","encodedStyles","encodedStyleBlock","MultiWidget","conf","only_countries","preferred_countries","default_country","use_country_phone_mask","phone_mask_only_countries","phone_mask_preferred_countries","phone_mask_default_country","texts","setText","a2","a3","check","concatParams","element_styles","fieldValues","setFormValue","form_values","fieldLabels","setFormLabel","modifiedLabel","form_labels","fieldPlaceholders","setFormPlaceholder","placeholder","modifiedPlaceholder","form_placeholders","setFormElement","field","icons","setIcon","filteredElements","supportedElements","hidden_elements","fields_validation","validateCardNumberInput","supportedCards","supported_card_types","validate_card_types","configuration_tokens","createEachToken","FormInterceptor","intercepted","preventDefault","submit","HtmlMultiWidget","_MultiWidget","setStyles","getStyles","setTexts","getAttr","loadIFrameUrl","afterLoad","form_valid","invalid_fields","invalid_showed_fields","validator","isValid","validators","subjectFields","updateFormValue","setHiddenElements","formInterceptor","beforeSubmit","continueSubmit","HtmlWidget","_HtmlMultiWidget","setWebHookDestination","setSuccessRedirectUrl","setErrorRedirectUrl","setFormFields","setGiftCardSchemeData"],"mappings":"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","x_google_ignoreList":[65,66,72]}
1
+ {"version":3,"file":"widget.umd.min.js","sources":["../src/helper/browser.ts","../src/api/api-charge.ts","../src/configs/env/environment.paydock.ts","../src/configs/sdk.ts","../src/helper/access-token.ts","../src/shared/http/http-request.ts","../node_modules/tslib/tslib.es6.js","../node_modules/@newrelic/browser-agent/dist/esm/common/timing/now.js","../node_modules/@newrelic/browser-agent/dist/esm/common/constants/runtime.js","../node_modules/@newrelic/browser-agent/dist/esm/common/window/nreum.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/get-or-set.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/console.js","../node_modules/@newrelic/browser-agent/dist/esm/common/config/state/configurable.js","../node_modules/@newrelic/browser-agent/dist/esm/common/config/state/info.js","../node_modules/@newrelic/browser-agent/dist/esm/common/dom/query-selector.js","../node_modules/@newrelic/browser-agent/dist/esm/common/session/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/common/config/state/init.js","../node_modules/@newrelic/browser-agent/dist/esm/common/config/state/loader-config.js","../node_modules/@newrelic/browser-agent/dist/esm/common/config/state/originals.js","../node_modules/@newrelic/browser-agent/dist/esm/common/constants/env.npm.js","../node_modules/@newrelic/browser-agent/dist/esm/common/config/state/runtime.js","../node_modules/@newrelic/browser-agent/dist/esm/common/config/config.js","../node_modules/@newrelic/browser-agent/dist/esm/common/event-emitter/event-context.js","../node_modules/@newrelic/browser-agent/dist/esm/common/ids/unique-id.js","../node_modules/@newrelic/browser-agent/dist/esm/common/ids/bundle-id.js","../node_modules/@newrelic/browser-agent/dist/esm/common/event-emitter/contextual-ee.js","../node_modules/@newrelic/browser-agent/dist/esm/common/event-emitter/handle.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/map-own.js","../node_modules/@newrelic/browser-agent/dist/esm/common/event-emitter/register-handler.js","../node_modules/@newrelic/browser-agent/dist/esm/loaders/features/features.js","../node_modules/@newrelic/browser-agent/dist/esm/common/drain/drain.js","../node_modules/@newrelic/browser-agent/dist/esm/features/utils/feature-base.js","../node_modules/@newrelic/browser-agent/dist/esm/common/event-listener/event-listener-opts.js","../node_modules/@newrelic/browser-agent/dist/esm/common/window/load.js","../node_modules/@newrelic/browser-agent/dist/esm/features/utils/feature-gates.js","../node_modules/@newrelic/browser-agent/dist/esm/features/session_replay/shared/utils.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/invoke.js","../node_modules/@newrelic/browser-agent/dist/esm/features/utils/instrument-base.js","../node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/features/session_replay/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/stringify.js","../node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/shared/uncaught-error.js","../node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/shared/cast-error.js","../node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/instrument/index.js","../node_modules/@newrelic/browser-agent/dist/esm/features/page_view_event/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/features/page_view_event/instrument/index.js","../node_modules/@newrelic/browser-agent/dist/esm/loaders/features/enabled-features.js","../node_modules/@newrelic/browser-agent/dist/esm/features/metrics/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/loaders/api/api-methods.js","../node_modules/@newrelic/browser-agent/dist/esm/loaders/api/api.js","../node_modules/@newrelic/browser-agent/dist/esm/common/dispatch/global-event.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/feature-flags.js","../node_modules/@newrelic/browser-agent/dist/esm/loaders/configure/configure.js","../node_modules/@newrelic/browser-agent/dist/esm/common/context/shared-context.js","../node_modules/@newrelic/browser-agent/dist/esm/common/aggregate/aggregator.js","../node_modules/@newrelic/browser-agent/dist/esm/loaders/agent-base.js","../node_modules/@newrelic/browser-agent/dist/esm/loaders/micro-agent.js","../node_modules/@newrelic/browser-agent/dist/esm/features/page_action/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/features/page_action/instrument/index.js","../src/shared/services/instrumentation/instrumentation.config.ts","../src/shared/services/instrumentation/instrumentation.agent.ts","../src/shared/services/instrumentation/repositories/action.repository.ts","../src/shared/services/instrumentation/repositories/error.repository.ts","../src/api/api-base.ts","../src/shared/services/instrumentation/repositories/event.repository.ts","../src/canvas-3ds/services/gpayments-service.ts","../src/api/api.ts","../src/helper/url.ts","../src/helper/uuid.ts","../src/components/link.ts","../src/helper/event.ts","../src/components/container.ts","../src/components/iframe.ts","../src/components/iframe-event.ts","../src/api/api-service-internal.ts","../src/api/api-charge-internal.ts","../src/api/api-internal.ts","../src/canvas-3ds/canvas-3ds.ts","../src/canvas-3ds/services/standalone3ds-service.ts","../src/helper/event-emitter.ts","../src/checkout-button/checkout-button.interface.ts","../src/components/param.ts","../src/components/http-core.ts","../src/checkout-button/runner/contextual.runner.ts","../src/external-checkout/builder.ts","../src/external-checkout/checker.ts","../src/components/loader.ts","../src/components/background.ts","../src/checkout-button/runner/base.runner.ts","../src/components/dispatcher.ts","../src/components/popup.ts","../src/checkout-button/runner/popup.runner.ts","../src/checkout-button/runner/index.ts","../vendors/zipmoney.js","../src/checkout-button/zipmoney/zipmoney.runner.ts","../src/components/storage-dispatcher.ts","../src/checkout-button/zipmoney/zipmoney-contextual.runner.ts","../src/checkout-button/zipmoney/zipmoney.config.ts","../src/checkout-button/afterpay/afterpay.runner.ts","../src/checkout-button/zipmoney/zipmoney-redirect.runner.ts","../src/checkout-button/runner/redirect.runner.ts","../src/checkout-button/paypal/paypal.runner.ts","../src/secure-remote-commerce/interfaces.ts","../src/payment-source/builder.ts","../src/checkout-button/checkout-contextual-handler.ts","../src/checkout-button/checkout-button.ts","../src/checkout-button/zipmoney/zipmoney-checkout-button.ts","../src/checkout-button/afterpay/afterpay-checkout-button.ts","../src/checkout-button/paypal/paypal-checkout-button.ts","../src/helper/object.ts","../src/payment-source-widget/payment-source-widget.ts","../src/payment-source-widget/html-payment-source-widget.ts","../src/components/vault-display-iframe-event.ts","../src/secure-remote-commerce/providers/mastercard-src/mastercard-src.ts","../src/secure-remote-commerce/secure-remote-commerce.ts","../src/secure-remote-commerce/click-to-pay-secure-remote-commerce.ts","../src/components/trigger.ts","../src/components/flypay-iframe-event.ts","../src/vault-display-widget/vault-display-widget.ts","../src/components/wallet-trigger.ts","../src/components/wallet-background.ts","../src/wallet-buttons/wallet-service.ts","../src/wallet-buttons/flypay.wallet-service.ts","../src/wallet-buttons/paypal.wallet-service.ts","../node_modules/@stripe/stripe-js/dist/pure.js","../node_modules/@stripe/stripe-js/pure.js","../src/wallet-buttons/stripe.wallet-service.ts","../src/wallet-buttons/apple.wallet-service.ts","../src/wallet-buttons/google.wallet-service.ts","../src/wallet-buttons/mastercard.wallet-service.ts","../src/wallet-buttons/afterpay.wallet-service.ts","../node_modules/@auspayplus/open-payments-checkout/dist/open-payments-checkout.mjs","../src/wallet-buttons/helpers/flypay-v2.helper.ts","../src/wallet-buttons/flypay-v2.wallet-service.ts","../src/helper/element-id.ts","../src/wallet-buttons/wallet-buttons.ts","../src/widget/configuration.ts","../src/widget/style.ts","../src/components/element-style.ts","../src/widget/multi-widget.ts","../src/components/form-interceptor.ts","../src/widget/html-multi-widget.ts","../src/widget/html-widget.ts","../node_modules/@newrelic/browser-agent/dist/esm/common/timer/timer.js","../node_modules/@newrelic/browser-agent/dist/esm/common/window/page-visibility.js","../node_modules/@newrelic/browser-agent/dist/esm/common/timer/interaction-timer.js","../node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-function.js","../node_modules/@newrelic/browser-agent/dist/esm/common/wrap/wrap-events.js","../node_modules/@newrelic/browser-agent/dist/esm/common/session/session-entity.js","../node_modules/@newrelic/browser-agent/dist/esm/common/storage/local-storage.js","../node_modules/@newrelic/browser-agent/dist/esm/features/utils/agent-session.js","../node_modules/@newrelic/browser-agent/dist/esm/features/utils/lazy-feature-loader.js","../node_modules/@newrelic/browser-agent/dist/esm/loaders/api/apiAsync.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/submit-data.js","../node_modules/@newrelic/browser-agent/dist/esm/common/url/encode.js","../node_modules/@newrelic/browser-agent/dist/esm/common/url/location.js","../node_modules/@newrelic/browser-agent/dist/esm/common/url/clean-url.js","../node_modules/@newrelic/browser-agent/dist/esm/common/url/protocol.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/obfuscate.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/traverse.js","../node_modules/@newrelic/browser-agent/dist/esm/common/harvest/harvest.js","../node_modules/@newrelic/browser-agent/dist/esm/common/unload/eol.js","../node_modules/@newrelic/browser-agent/dist/esm/common/harvest/harvest-scheduler.js","../node_modules/@newrelic/browser-agent/dist/esm/common/deny-list/deny-list.js","../node_modules/@newrelic/browser-agent/dist/esm/features/ajax/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/features/utils/aggregate-base.js","../node_modules/@newrelic/browser-agent/dist/esm/features/ajax/aggregate/gql.js","../node_modules/@newrelic/browser-agent/dist/esm/common/util/type-check.js","../node_modules/@newrelic/browser-agent/dist/esm/common/serialize/bel-serializer.js","../node_modules/@newrelic/browser-agent/dist/esm/features/ajax/aggregate/chunk.js","../node_modules/@newrelic/browser-agent/dist/esm/features/ajax/aggregate/index.js","../node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/aggregate/canonical-function-name.js","../node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/aggregate/format-stack-trace.js","../node_modules/@newrelic/browser-agent/dist/esm/common/url/canonicalize-url.js","../node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/aggregate/compute-stack-trace.js","../node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/aggregate/string-hash-code.js","../node_modules/@newrelic/browser-agent/dist/esm/features/jserrors/aggregate/index.js","../node_modules/@newrelic/browser-agent/dist/esm/features/metrics/aggregate/framework-detection.js","../node_modules/@newrelic/browser-agent/dist/esm/features/metrics/aggregate/index.js","../node_modules/@newrelic/browser-agent/dist/esm/features/page_action/aggregate/index.js","../node_modules/@newrelic/browser-agent/dist/esm/common/timing/nav-timing.js","../node_modules/@newrelic/browser-agent/dist/esm/features/page_view_event/aggregate/initialized-features.js","../node_modules/web-vitals/dist/web-vitals.attribution.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/vital-metric.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/first-contentful-paint.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/first-paint.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/time-to-first-byte.js","../node_modules/@newrelic/browser-agent/dist/esm/common/timing/time-keeper.js","../node_modules/@newrelic/browser-agent/dist/esm/features/page_view_event/aggregate/index.js","../node_modules/@newrelic/browser-agent/dist/esm/features/page_view_timing/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/cumulative-layout-shift.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/first-input-delay.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/interaction-to-next-paint.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/largest-contentful-paint.js","../node_modules/@newrelic/browser-agent/dist/esm/common/vitals/long-task.js","../node_modules/@newrelic/browser-agent/dist/esm/features/page_view_timing/aggregate/index.js","../node_modules/@newrelic/browser-agent/dist/esm/common/constants/shared-channel.js","../node_modules/@newrelic/browser-agent/dist/esm/features/session_replay/shared/stylesheet-evaluator.js","../node_modules/@newrelic/browser-agent/dist/esm/features/session_replay/aggregate/index.js","../node_modules/@newrelic/browser-agent/dist/esm/features/session_trace/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/common/url/parse-url.js","../node_modules/@newrelic/browser-agent/dist/esm/features/session_trace/aggregate/trace/node.js","../node_modules/@newrelic/browser-agent/dist/esm/features/session_trace/aggregate/trace/storage.js","../node_modules/@newrelic/browser-agent/dist/esm/features/session_trace/aggregate/index.js","../node_modules/@newrelic/browser-agent/dist/esm/features/spa/aggregate/interaction-node.js","../node_modules/@newrelic/browser-agent/dist/esm/features/spa/aggregate/interaction.js","../node_modules/@newrelic/browser-agent/dist/esm/features/spa/aggregate/serializer.js","../node_modules/@newrelic/browser-agent/dist/esm/features/spa/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/features/spa/aggregate/index.js","../node_modules/@newrelic/browser-agent/dist/esm/features/soft_navigations/constants.js","../node_modules/@newrelic/browser-agent/dist/esm/features/soft_navigations/aggregate/bel-node.js","../node_modules/@newrelic/browser-agent/dist/esm/features/soft_navigations/aggregate/ajax-node.js","../node_modules/@newrelic/browser-agent/dist/esm/features/soft_navigations/aggregate/interaction.js","../node_modules/@newrelic/browser-agent/dist/esm/features/soft_navigations/aggregate/initial-page-load-interaction.js","../node_modules/@newrelic/browser-agent/dist/esm/features/soft_navigations/aggregate/index.js","../node_modules/rrweb/lib/rrweb-all.cjs","../node_modules/@newrelic/browser-agent/dist/esm/features/session_replay/shared/recorder-events.js","../node_modules/@newrelic/browser-agent/dist/esm/features/session_replay/shared/recorder.js","../node_modules/fflate/esm/browser.js"],"sourcesContent":[null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// This is our own layer around performance.now. It's not strictly necessary, but we keep it in case of future mod-ing of the value for refactor purpose.\nexport function now() {\n return Math.floor(performance.now());\n}","/**\n * @file Contains constants about the environment the agent is running\n * within. These values are derived at the time the agent is first loaded.\n * @copyright 2023 New Relic Corporation. All rights reserved.\n * @license Apache-2.0\n */\n\nimport { now } from '../timing/now';\n\n/**\n * Indicates if the agent is running within a normal browser window context.\n */\nexport const isBrowserScope = typeof window !== 'undefined' && !!window.document;\n\n/**\n * Indicates if the agent is running within a worker context.\n */\nexport const isWorkerScope = typeof WorkerGlobalScope !== 'undefined' && (typeof self !== 'undefined' && self instanceof WorkerGlobalScope && self.navigator instanceof WorkerNavigator || typeof globalThis !== 'undefined' && globalThis instanceof WorkerGlobalScope && globalThis.navigator instanceof WorkerNavigator);\nexport const globalScope = isBrowserScope ? window : typeof WorkerGlobalScope !== 'undefined' && (typeof self !== 'undefined' && self instanceof WorkerGlobalScope && self || typeof globalThis !== 'undefined' && globalThis instanceof WorkerGlobalScope && globalThis);\nexport const loadedAsDeferredBrowserScript = globalScope?.document?.readyState === 'complete';\nexport const initiallyHidden = Boolean(globalScope?.document?.visibilityState === 'hidden');\nexport const initialLocation = '' + globalScope?.location;\nexport const isiOS = /iPad|iPhone|iPod/.test(globalScope.navigator?.userAgent);\n\n/**\n * Shared Web Workers introduced in iOS 16.0+ and n/a in 15.6-\n *\n * It was discovered in Safari 14 (https://bugs.webkit.org/show_bug.cgi?id=225305) that the buffered flag in PerformanceObserver\n * did not work. This affects our onFCP metric in particular since web-vitals uses that flag to retrieve paint timing entries.\n * This was fixed in v16+.\n */\nexport const iOSBelow16 = isiOS && typeof SharedWorker === 'undefined';\nexport const ffVersion = (() => {\n const match = globalScope.navigator?.userAgent?.match(/Firefox[/\\s](\\d+\\.\\d+)/);\n if (Array.isArray(match) && match.length >= 2) {\n return +match[1];\n }\n return 0;\n})();\nexport const isIE = Boolean(isBrowserScope && window.document.documentMode); // deprecated property that only works in IE\n\nexport const supportsSendBeacon = !!globalScope.navigator?.sendBeacon;\n\n/**\n * Represents the absolute timestamp in milliseconds that the page was loaded\n * according to the browser's local clock.\n * @type {number}\n */\nexport const originTime = Date.now() - now();","import { globalScope } from '../constants/runtime';\nimport { now } from '../timing/now';\nexport const defaults = {\n beacon: 'bam.nr-data.net',\n errorBeacon: 'bam.nr-data.net'\n};\nexport function gosNREUM() {\n if (!globalScope.NREUM) {\n globalScope.NREUM = {};\n }\n if (typeof globalScope.newrelic === 'undefined') globalScope.newrelic = globalScope.NREUM;\n return globalScope.NREUM;\n}\nexport function gosNREUMInfo() {\n let nr = gosNREUM();\n const externallySupplied = nr.info || {};\n nr.info = {\n beacon: defaults.beacon,\n errorBeacon: defaults.errorBeacon,\n ...externallySupplied\n };\n return nr;\n}\nexport function gosNREUMLoaderConfig() {\n let nr = gosNREUM();\n const externallySupplied = nr.loader_config || {};\n nr.loader_config = {\n ...externallySupplied\n };\n return nr;\n}\nexport function gosNREUMInit() {\n let nr = gosNREUM();\n const externallySupplied = nr.init || {};\n nr.init = {\n ...externallySupplied\n };\n return nr;\n}\nexport function gosNREUMOriginals() {\n let nr = gosNREUM();\n if (!nr.o) {\n nr.o = {\n ST: globalScope.setTimeout,\n SI: globalScope.setImmediate,\n CT: globalScope.clearTimeout,\n XHR: globalScope.XMLHttpRequest,\n REQ: globalScope.Request,\n EV: globalScope.Event,\n PR: globalScope.Promise,\n MO: globalScope.MutationObserver,\n // this'll be undefined if not in a web window\n FETCH: globalScope.fetch\n };\n }\n return nr;\n}\nexport function setNREUMInitializedAgent(id, newAgentInstance) {\n let nr = gosNREUM();\n nr.initializedAgents ??= {};\n newAgentInstance.initializedAt = {\n ms: now(),\n date: new Date()\n };\n nr.initializedAgents[id] = newAgentInstance;\n}\n\n/**\n * Get the agent instance under the associated identifier on the global newrelic object.\n * @see setNREUMInitializedAgents\n * @returns Existing agent instance under newrelic.initializedAgent[id], or undefined if it does not exist.\n */\nexport function getNREUMInitializedAgent(id) {\n let nr = gosNREUM();\n return nr.initializedAgents?.[id];\n}\nexport function addToNREUM(fnName, fn) {\n let nr = gosNREUM();\n nr[fnName] = fn;\n}\nexport function NREUMinitialized() {\n const nr = gosNREUM();\n nr.initialized = true;\n}\nexport function gosCDN() {\n gosNREUMInfo();\n gosNREUMInit();\n gosNREUMOriginals();\n gosNREUMLoaderConfig();\n return gosNREUM();\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Always returns the current value of obj[prop], even if it has to set it first. Sets properties as non-enumerable if possible.\n *\n * @param {Object} obj - The object to get or set the property on.\n * @param {string} prop - The name of the property.\n * @param {Function} getVal - A function that returns the value to be set if the property does not exist.\n * @returns {*} The value of the property in the object.\n */\nexport function getOrSet(obj, prop, getVal) {\n // If the value exists return it.\n if (has.call(obj, prop)) return obj[prop];\n var val = getVal();\n\n // Attempt to set the property so it's not enumerable\n if (Object.defineProperty && Object.keys) {\n try {\n Object.defineProperty(obj, prop, {\n value: val,\n // old IE inherits non-write-ability\n writable: true,\n enumerable: false\n });\n return val;\n } catch (e) {\n // Can't report internal errors,\n // because GOS is a dependency of the reporting mechanisms\n }\n }\n\n // fall back to setting normally\n obj[prop] = val;\n return val;\n}","/**\n * A helper method to warn to the console with New Relic: decoration\n * @param {string} message The primary message to warn\n * @param {*} [secondary] Secondary data to include, usually an error or object\n * @returns\n */\nexport function warn(message, secondary) {\n if (typeof console.warn !== 'function') return;\n console.warn(\"New Relic: \".concat(message));\n if (secondary) console.warn(secondary);\n}","import { warn } from '../../util/console';\nexport function getModeledObject(obj, model) {\n try {\n if (!obj || typeof obj !== 'object') return warn('Setting a Configurable requires an object as input');\n if (!model || typeof model !== 'object') return warn('Setting a Configurable requires a model to set its initial properties');\n // allow getters and setters to pass from model to target\n const output = Object.create(Object.getPrototypeOf(model), Object.getOwnPropertyDescriptors(model));\n const target = Object.keys(output).length === 0 ? obj : output;\n for (let key in target) {\n if (obj[key] === undefined) continue;\n try {\n if (obj[key] === null) {\n output[key] = null;\n continue;\n }\n if (Array.isArray(obj[key]) && Array.isArray(model[key])) output[key] = Array.from(new Set([...obj[key], ...model[key]]));else if (typeof obj[key] === 'object' && typeof model[key] === 'object') output[key] = getModeledObject(obj[key], model[key]);else output[key] = obj[key];\n } catch (e) {\n warn('An error occurred while setting a property of a Configurable', e);\n }\n }\n return output;\n } catch (err) {\n warn('An error occured while setting a Configurable', err);\n }\n}","import { defaults as nrDefaults, getNREUMInitializedAgent } from '../../window/nreum';\nimport { getModeledObject } from './configurable';\nconst model = {\n // preset defaults\n beacon: nrDefaults.beacon,\n errorBeacon: nrDefaults.errorBeacon,\n // others must be populated by user\n licenseKey: undefined,\n applicationID: undefined,\n sa: undefined,\n queueTime: undefined,\n applicationTime: undefined,\n ttGuid: undefined,\n user: undefined,\n account: undefined,\n product: undefined,\n extra: undefined,\n jsAttributes: {},\n userAttributes: undefined,\n atts: undefined,\n transactionName: undefined,\n tNamePlain: undefined\n};\nconst _cache = {};\nexport function isValid(id) {\n try {\n const info = getInfo(id);\n return !!info.licenseKey && !!info.errorBeacon && !!info.applicationID;\n } catch (err) {\n return false;\n }\n}\nexport function getInfo(id) {\n if (!id) throw new Error('All info objects require an agent identifier!');\n if (!_cache[id]) throw new Error(\"Info for \".concat(id, \" was never set\"));\n return _cache[id];\n}\nexport function setInfo(id, obj) {\n if (!id) throw new Error('All info objects require an agent identifier!');\n _cache[id] = getModeledObject(obj, model);\n const agentInst = getNREUMInitializedAgent(id);\n if (agentInst) agentInst.info = _cache[id];\n}","export const isValidSelector = selector => {\n if (!selector || typeof selector !== 'string') return false;\n try {\n document.createDocumentFragment().querySelector(selector);\n } catch {\n return false;\n }\n return true;\n};","export const PREFIX = 'NRBA';\nexport const DEFAULT_KEY = 'SESSION';\nexport const DEFAULT_EXPIRES_MS = 14400000;\nexport const DEFAULT_INACTIVE_MS = 1800000;\nexport const SESSION_EVENTS = {\n STARTED: 'session-started',\n PAUSE: 'session-pause',\n RESET: 'session-reset',\n RESUME: 'session-resume',\n UPDATE: 'session-update'\n};\nexport const SESSION_EVENT_TYPES = {\n SAME_TAB: 'same-tab',\n CROSS_TAB: 'cross-tab'\n};\nexport const MODE = {\n OFF: 0,\n FULL: 1,\n ERROR: 2\n};","import { isValidSelector } from '../../dom/query-selector';\nimport { DEFAULT_EXPIRES_MS, DEFAULT_INACTIVE_MS } from '../../session/constants';\nimport { warn } from '../../util/console';\nimport { getNREUMInitializedAgent } from '../../window/nreum';\nimport { getModeledObject } from './configurable';\nconst nrMask = '[data-nr-mask]';\nconst model = () => {\n const hiddenState = {\n mask_selector: '*',\n block_selector: '[data-nr-block]',\n mask_input_options: {\n color: false,\n date: false,\n 'datetime-local': false,\n email: false,\n month: false,\n number: false,\n range: false,\n search: false,\n tel: false,\n text: false,\n time: false,\n url: false,\n week: false,\n // unify textarea and select element with text input\n textarea: false,\n select: false,\n password: true // This will be enforced to always be true in the setter\n }\n };\n return {\n feature_flags: [],\n proxy: {\n assets: undefined,\n // if this value is set, it will be used to overwrite the webpack asset path used to fetch assets\n beacon: undefined // likewise for the url to which we send analytics\n },\n privacy: {\n cookies_enabled: true\n },\n // *cli - per discussion, default should be true\n ajax: {\n deny_list: undefined,\n block_internal: true,\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n },\n distributed_tracing: {\n enabled: undefined,\n exclude_newrelic_header: undefined,\n cors_use_newrelic_header: undefined,\n cors_use_tracecontext_headers: undefined,\n allowed_origins: undefined\n },\n session: {\n expiresMs: DEFAULT_EXPIRES_MS,\n inactiveMs: DEFAULT_INACTIVE_MS\n },\n ssl: undefined,\n obfuscate: undefined,\n jserrors: {\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n },\n metrics: {\n enabled: true,\n autoStart: true\n },\n page_action: {\n enabled: true,\n harvestTimeSeconds: 30,\n autoStart: true\n },\n page_view_event: {\n enabled: true,\n autoStart: true\n },\n page_view_timing: {\n enabled: true,\n harvestTimeSeconds: 30,\n long_task: false,\n autoStart: true\n },\n session_trace: {\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n },\n harvest: {\n tooManyRequestsDelay: 60\n },\n session_replay: {\n // feature settings\n autoStart: true,\n enabled: false,\n harvestTimeSeconds: 60,\n preload: false,\n // if true, enables the agent to load rrweb immediately instead of waiting to do so after the window.load event\n sampling_rate: 10,\n // float from 0 - 100\n error_sampling_rate: 100,\n // float from 0 - 100\n collect_fonts: false,\n // serialize fonts for collection without public asset url, this is currently broken in RRWeb -- https://github.com/rrweb-io/rrweb/issues/1304. When fixed, revisit with test cases\n inline_images: false,\n // serialize images for collection without public asset url -- right now this is only useful for testing as it easily generates payloads too large to be harvested\n inline_stylesheet: true,\n // serialize css for collection without public asset url\n // recording config settings\n mask_all_inputs: true,\n // this has a getter/setter to facilitate validation of the selectors\n get mask_text_selector() {\n return hiddenState.mask_selector;\n },\n set mask_text_selector(val) {\n if (isValidSelector(val)) hiddenState.mask_selector = \"\".concat(val, \",\").concat(nrMask);else if (val === '' || val === null) hiddenState.mask_selector = nrMask;else warn('An invalid session_replay.mask_selector was provided. \\'*\\' will be used.', val);\n },\n // these properties only have getters because they are enforcable constants and should error if someone tries to override them\n get block_class() {\n return 'nr-block';\n },\n get ignore_class() {\n return 'nr-ignore';\n },\n get mask_text_class() {\n return 'nr-mask';\n },\n // props with a getter and setter are used to extend enforcable constants with customer input\n // we must preserve data-nr-block no matter what else the customer sets\n get block_selector() {\n return hiddenState.block_selector;\n },\n set block_selector(val) {\n if (isValidSelector(val)) hiddenState.block_selector += \",\".concat(val);else if (val !== '') warn('An invalid session_replay.block_selector was provided and will not be used', val);\n },\n // password: must always be present and true no matter what customer sets\n get mask_input_options() {\n return hiddenState.mask_input_options;\n },\n set mask_input_options(val) {\n if (val && typeof val === 'object') hiddenState.mask_input_options = {\n ...val,\n password: true\n };else warn('An invalid session_replay.mask_input_option was provided and will not be used', val);\n }\n },\n spa: {\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n },\n soft_navigations: {\n enabled: true,\n harvestTimeSeconds: 10,\n autoStart: true\n }\n };\n};\nconst _cache = {};\nconst missingAgentIdError = 'All configuration objects require an agent identifier!';\nexport function getConfiguration(id) {\n if (!id) throw new Error(missingAgentIdError);\n if (!_cache[id]) throw new Error(\"Configuration for \".concat(id, \" was never set\"));\n return _cache[id];\n}\nexport function setConfiguration(id, obj) {\n if (!id) throw new Error(missingAgentIdError);\n _cache[id] = getModeledObject(obj, model());\n const agentInst = getNREUMInitializedAgent(id);\n if (agentInst) agentInst.init = _cache[id];\n}\nexport function getConfigurationValue(id, path) {\n if (!id) throw new Error(missingAgentIdError);\n var val = getConfiguration(id);\n if (val) {\n var parts = path.split('.');\n for (var i = 0; i < parts.length - 1; i++) {\n val = val[parts[i]];\n if (typeof val !== 'object') return;\n }\n val = val[parts[parts.length - 1]];\n }\n return val;\n}\n\n// TO DO: a setConfigurationValue equivalent may be nice so individual\n// properties can be tuned instead of reseting the whole model per call to `setConfiguration(agentIdentifier, {})`","import { getNREUMInitializedAgent } from '../../window/nreum';\nimport { getModeledObject } from './configurable';\nconst model = {\n accountID: undefined,\n trustKey: undefined,\n agentID: undefined,\n licenseKey: undefined,\n applicationID: undefined,\n xpid: undefined\n};\nconst _cache = {};\nexport function getLoaderConfig(id) {\n if (!id) throw new Error('All loader-config objects require an agent identifier!');\n if (!_cache[id]) throw new Error(\"LoaderConfig for \".concat(id, \" was never set\"));\n return _cache[id];\n}\nexport function setLoaderConfig(id, obj) {\n if (!id) throw new Error('All loader-config objects require an agent identifier!');\n _cache[id] = getModeledObject(obj, model);\n const agentInst = getNREUMInitializedAgent(id);\n if (agentInst) agentInst.loader_config = _cache[id];\n}","import { gosNREUMOriginals } from '../../window/nreum';\nexport const originals = gosNREUMOriginals().o;","/**\n * @file This file exposes NPM build environment variables. These variables will\n * be overridden with babel.\n */\n\n/**\n * Exposes the version of the agent\n */\nexport const VERSION = \"1.260.1\";\n\n/**\n * Exposes the build type of the agent\n * Valid values are LOCAL, PROD, DEV\n */\nexport const BUILD_ENV = 'NPM';\n\n/**\n * Exposes the distribution method of the agent\n * Valid valuse are CDN, NPM\n */\nexport const DIST_METHOD = 'NPM';\n\n/**\n * Exposes the lib version of rrweb\n */\nexport const RRWEB_VERSION = \"2.0.0-alpha.12\";","import { getModeledObject } from './configurable';\nimport { getNREUMInitializedAgent } from '../../window/nreum';\nimport { globalScope, originTime } from '../../constants/runtime';\nimport { BUILD_ENV, DIST_METHOD, VERSION } from \"../../constants/env.npm\";\nconst readonly = {\n buildEnv: BUILD_ENV,\n distMethod: DIST_METHOD,\n version: VERSION,\n originTime\n};\nconst model = {\n customTransaction: undefined,\n disabled: false,\n isolatedBacklog: false,\n loaderType: undefined,\n maxBytes: 30000,\n onerror: undefined,\n origin: '' + globalScope.location,\n ptid: undefined,\n releaseIds: {},\n /** Agent-specific metadata found in the RUM call response. ex. entityGuid */\n appMetadata: {},\n session: undefined,\n denyList: undefined,\n harvestCount: 0,\n timeKeeper: undefined\n};\nconst _cache = {};\nexport function getRuntime(id) {\n if (!id) throw new Error('All runtime objects require an agent identifier!');\n if (!_cache[id]) throw new Error(\"Runtime for \".concat(id, \" was never set\"));\n return _cache[id];\n}\nexport function setRuntime(id, obj) {\n if (!id) throw new Error('All runtime objects require an agent identifier!');\n _cache[id] = {\n ...getModeledObject(obj, model),\n ...readonly\n };\n const agentInst = getNREUMInitializedAgent(id);\n if (agentInst) agentInst.runtime = _cache[id];\n}","import { getInfo, isValid, setInfo } from './state/info';\nimport { getConfiguration, getConfigurationValue, setConfiguration } from './state/init';\nimport { getLoaderConfig, setLoaderConfig } from './state/loader-config';\nimport { originals } from './state/originals';\nimport { getRuntime, setRuntime } from './state/runtime';\nfunction isConfigured(agentIdentifier) {\n return isValid(agentIdentifier);\n}\n\n// This module acts as a hub that bundles the static and dynamic properties used by each agent instance into one single interface\nexport { getInfo, setInfo, getConfiguration, getConfigurationValue, setConfiguration, getLoaderConfig, setLoaderConfig, originals, getRuntime, setRuntime, isConfigured };","export class EventContext {\n constructor(contextId) {\n this.contextId = contextId;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { globalScope } from '../constants/runtime';\nconst uuidv4Template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';\n\n/**\n * Creates a random single hexadecimal value from a provided random value\n * table and corresponding index. If a random value table is not provided,\n * Math.random will be used to generate the value.\n *\n * @param {Uint8Array} valueTable Random value table typically generated using\n * the built-in crypto engine.\n * @param {int} tableIndex The index of the value table to use for generating\n * the hexadecimal value.\n * @returns {int} single hexadecimal value in decimal format\n */\nfunction getRandomValue(valueTable, tableIndex) {\n if (valueTable) {\n /**\n * The value table could have any number value in the given index. Use\n * bitwise AND to ensure the value we generate is a valid hex value.\n * x & 15 will ensure the value converted to hex using `toString(16)`\n * falls within the range of 0 and 15 inclusively.\n */\n return valueTable[tableIndex] & 15;\n } else {\n return Math.random() * 16 | 0;\n }\n}\n\n/**\n * Generates a RFC compliant UUIDv4 using native browser crypto engine. If the browser\n * does not support the crypto engine, the function will fallback to insecure Math.random()\n * @returns {string} uuid version 4 string\n */\nexport function generateUuid() {\n const crypto = globalScope?.crypto || globalScope?.msCrypto;\n let randomValueTable;\n let randomValueIndex = 0;\n if (crypto && crypto.getRandomValues) {\n // For a UUID, we only need 30 characters since two characters are pre-defined\n // eslint-disable-next-line\n randomValueTable = crypto.getRandomValues(new Uint8Array(30));\n }\n return uuidv4Template.split('').map(templateInput => {\n if (templateInput === 'x') {\n return getRandomValue(randomValueTable, randomValueIndex++).toString(16);\n } else if (templateInput === 'y') {\n // this is the uuid variant per spec (8, 9, a, b)\n // % 4, then shift to get values 8-11\n return (getRandomValue() & 0x3 | 0x8).toString(16);\n } else {\n return templateInput;\n }\n }).join('');\n}\n\n/**\n * Generates a string of the given length containing only hexadecimal\n * value 0-9 and a-f.\n * @param {int} length length of the string to generate\n * @returns {string} generated hex string\n */\nexport function generateRandomHexString(length) {\n const crypto = globalScope?.crypto || globalScope?.msCrypto;\n let randomValueTable;\n let randomValueIndex = 0;\n if (crypto && crypto.getRandomValues) {\n // eslint-disable-next-line\n randomValueTable = crypto.getRandomValues(new Uint8Array(length));\n }\n const chars = [];\n for (var i = 0; i < length; i++) {\n chars.push(getRandomValue(randomValueTable, randomValueIndex++).toString(16));\n }\n return chars.join('');\n}\n\n/**\n * Generates a 16 character length hexadecimal string.\n * per DT-spec.\n * @see generateRandomHexString\n * @returns {string} generated hex string\n */\nexport function generateSpanId() {\n return generateRandomHexString(16);\n}\n\n/**\n * Generates a 32 character length hexadecimal string.\n * per DT-spec.\n * @see generateRandomHexString\n * @returns {string} generated hex string\n */\nexport function generateTraceId() {\n return generateRandomHexString(32);\n}","/**\n * @file Contains a unique identifier for the running agent bundle\n * when loaded.\n * @copyright 2023 New Relic Corporation. All rights reserved.\n * @license Apache-2.0\n */\n\nimport { generateUuid } from './unique-id';\n\n/**\n * Provides a unique id for the current agent bundle\n */\nexport const bundleId = generateUuid();","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { gosNREUM } from '../window/nreum';\nimport { getOrSet } from '../util/get-or-set';\nimport { getRuntime } from '../config/config';\nimport { EventContext } from './event-context';\nimport { bundleId } from '../ids/bundle-id';\n\n// create a unique id to store event context data for the current agent bundle\nconst contextId = \"nr@context:\".concat(bundleId);\n// create global emitter instance that can be shared among bundles\nconst globalInstance = ee(undefined, 'globalEE');\n\n// Only override the exposed event emitter if one has not already been exposed\nconst nr = gosNREUM();\nif (!nr.ee) {\n nr.ee = globalInstance;\n}\nexport { globalInstance as ee, contextId };\nfunction ee(old, debugId) {\n var handlers = {};\n var bufferGroupMap = {};\n var emitters = {};\n // In cases where multiple agents can run on a page, the event backlogs of feature event emitters must be isolated\n // to prevent event emitter context and buffers from \"bubbling up\" to other agents operating in the scope.\n // An example of this is our MicroAgent loader package, which sets this property to true to prevent overlap.\n var isolatedBacklog = false;\n try {\n // We only want to check the runtime configuration for `isolatedBacklog` if the event emitter belongs to a feature.\n // For feature event emitters, the debugId will be an agentIdentifier with a length of 16. In contrast, some of our\n // tests do not namespace the event emitter with an agentID and just use the parent (which has no ID).\n isolatedBacklog = debugId.length !== 16 ? false : getRuntime(debugId).isolatedBacklog;\n } catch (err) {\n // Do nothing for now.\n }\n var emitter = {\n on: addEventListener,\n addEventListener,\n removeEventListener,\n emit,\n get: getOrCreate,\n listeners,\n context,\n buffer: bufferEventsByGroup,\n abort,\n isBuffering,\n debugId,\n backlog: isolatedBacklog ? {} : old && typeof old.backlog === 'object' ? old.backlog : {},\n isolatedBacklog\n };\n function abort() {\n emitter._aborted = true;\n Object.keys(emitter.backlog).forEach(key => {\n delete emitter.backlog[key];\n });\n }\n Object.defineProperty(emitter, 'aborted', {\n get: () => {\n let aborted = emitter._aborted || false;\n if (aborted) return aborted;else if (old) {\n aborted = old.aborted;\n }\n return aborted;\n }\n });\n return emitter;\n function context(contextOrStore) {\n if (contextOrStore && contextOrStore instanceof EventContext) {\n return contextOrStore;\n } else if (contextOrStore) {\n return getOrSet(contextOrStore, contextId, () => new EventContext(contextId));\n } else {\n return new EventContext(contextId);\n }\n }\n function emit(type, args, contextOrStore, force, bubble) {\n if (bubble !== false) bubble = true;\n if (globalInstance.aborted && !force) {\n return;\n }\n if (old && bubble) old.emit(type, args, contextOrStore);\n var ctx = context(contextOrStore);\n var handlersArray = listeners(type);\n var len = handlersArray.length;\n\n // Apply each handler function in the order they were added\n // to the context with the arguments\n\n for (var i = 0; i < len; i++) handlersArray[i].apply(ctx, args);\n\n // Buffer after emitting for consistent ordering\n var bufferGroup = getBuffer()[bufferGroupMap[type]];\n if (bufferGroup) {\n bufferGroup.push([emitter, type, args, ctx]);\n }\n\n // Return the context so that the module that emitted can see what was done.\n return ctx;\n }\n function addEventListener(type, fn) {\n // Retrieve type from handlers, if it doesn't exist assign the default and retrieve it.\n handlers[type] = listeners(type).concat(fn);\n }\n function removeEventListener(type, fn) {\n var listeners = handlers[type];\n if (!listeners) return;\n for (var i = 0; i < listeners.length; i++) {\n if (listeners[i] === fn) {\n listeners.splice(i, 1);\n }\n }\n }\n function listeners(type) {\n return handlers[type] || [];\n }\n function getOrCreate(name) {\n return emitters[name] = emitters[name] || ee(emitter, name);\n }\n function bufferEventsByGroup(types, group) {\n const eventBuffer = getBuffer();\n group = group || 'feature';\n\n // do not buffer events if agent has been aborted\n if (emitter.aborted) return;\n Object.entries(types || {}).forEach(_ref => {\n let [_, type] = _ref;\n bufferGroupMap[type] = group;\n if (!(group in eventBuffer)) {\n eventBuffer[group] = [];\n }\n });\n }\n function isBuffering(type) {\n var bufferGroup = getBuffer()[bufferGroupMap[type]];\n return !!bufferGroup;\n }\n\n // buffer is associated with a base emitter, since there are two\n // (global and scoped to the current bundle), it is now part of the emitter\n function getBuffer() {\n return emitter.backlog;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ee as globalInstance } from './contextual-ee';\nexport var handleEE = globalInstance.get('handle');\nexport function handle(type, args, ctx, group, ee) {\n if (ee) {\n ee.buffer([type], group);\n ee.emit(type, args, ctx);\n } else {\n handleEE.buffer([type], group);\n handleEE.emit(type, args, ctx);\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @typedef {function} MapOwnCallback\n * @param {string} key Object key\n * @param {any} value Object value\n * @returns {any}\n */\n\n/**\n * Iterates the own enumerable properties of an object passing the key and value pair to a given\n * callback function.\n * @param {object} obj Input object to iterate over. If null or undefined, an empty array will be returned.\n * @param {MapOwnCallback} fn A callback function called for each property. The callback should take the key\n * and value from the object iteration and return some value.\n * @returns {any[]} An array of values returned by the callback function.\n */\nexport const mapOwn = (obj, fn) => Object.entries(obj || {}).map(_ref => {\n let [key, value] = _ref;\n return fn(key, value);\n});","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { handleEE } from './handle';\nexport { defaultRegister as registerHandler };\ndefaultRegister.on = registerWithSpecificEmitter;\nvar handlers = defaultRegister.handlers = {};\nexport function defaultRegister(type, handler, group, ee) {\n registerWithSpecificEmitter(ee || handleEE, handlers, type, handler, group);\n}\nfunction registerWithSpecificEmitter(ee, handlers, type, handler, group) {\n if (!group) group = 'feature';\n if (!ee) ee = handleEE;\n var groupHandlers = handlers[group] = handlers[group] || {};\n var list = groupHandlers[type] = groupHandlers[type] || [];\n list.push([ee, handler]);\n}","export const FEATURE_NAMES = {\n ajax: 'ajax',\n jserrors: 'jserrors',\n metrics: 'metrics',\n pageAction: 'page_action',\n pageViewEvent: 'page_view_event',\n pageViewTiming: 'page_view_timing',\n sessionReplay: 'session_replay',\n sessionTrace: 'session_trace',\n softNav: 'soft_navigations',\n spa: 'spa'\n};\n\n/**\n * The order in which features will be instrumented. This is the traditional order. It's unclear if the order of\n * wrapping events has any ramifications, so we are enforcing this order intentionally for now.\n */\nexport const featurePriority = {\n [FEATURE_NAMES.pageViewEvent]: 1,\n [FEATURE_NAMES.pageViewTiming]: 2,\n [FEATURE_NAMES.metrics]: 3,\n [FEATURE_NAMES.jserrors]: 4,\n [FEATURE_NAMES.ajax]: 5,\n [FEATURE_NAMES.sessionTrace]: 6,\n [FEATURE_NAMES.pageAction]: 7,\n [FEATURE_NAMES.spa]: 8,\n [FEATURE_NAMES.softNav]: 9,\n [FEATURE_NAMES.sessionReplay]: 10\n};","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ee } from '../event-emitter/contextual-ee';\nimport { mapOwn } from '../util/map-own';\nimport { registerHandler as defaultRegister } from '../event-emitter/register-handler';\nimport { featurePriority } from '../../loaders/features/features';\nconst registry = {};\n\n/**\n * Adds an entry to the centralized drain registry specifying that a particular agent has events of a particular named\n * event-group \"bucket\" that should be drained at the time the agent drains all its buffered events. Buffered events\n * accumulate because instrumentation begins as soon as possible, before the agent has finished lazy-loading the code\n * responsible for aggregating and reporting captured data.\n * @param {string} agentIdentifier - A 16 character string uniquely identifying the agent.\n * @param {string} group - The named \"bucket\" for the events this feature will be bucketing for later collection.\n */\nexport function registerDrain(agentIdentifier, group) {\n // Here `item` captures the registered properties of a feature-group: whether it is ready for its buffered events\n // to be drained (`staged`) and the `priority` order in which it should be drained relative to other feature groups.\n const item = {\n staged: false,\n priority: featurePriority[group] || 0\n };\n curateRegistry(agentIdentifier);\n if (!registry[agentIdentifier].get(group)) registry[agentIdentifier].set(group, item);\n}\n\n/**\n * Removes an item from the registry and immediately re-checks if the registry is ready to \"drain all\"\n * @param {*} agentIdentifier - A 16 character string uniquely identifying the agent.\n * @param {*} group - The named \"bucket\" to be removed from the registry\n */\nexport function deregisterDrain(agentIdentifier, group) {\n curateRegistry(agentIdentifier);\n if (registry[agentIdentifier].get(group)) registry[agentIdentifier].delete(group);\n if (registry[agentIdentifier].size) checkCanDrainAll(agentIdentifier);\n}\n\n/**\n * Registers the specified agent with the centralized event buffer registry if it is not already registered.\n * Agents without an identifier (as in the case of some tests) will be excluded from the registry.\n * @param {string} agentIdentifier - A 16 character string uniquely identifying an agent.\n */\nfunction curateRegistry(agentIdentifier) {\n if (!agentIdentifier) throw new Error('agentIdentifier required');\n if (!registry[agentIdentifier]) registry[agentIdentifier] = new Map();\n}\n\n/**\n * Drain buffered events out of the event emitter. Each feature should have its events bucketed by \"group\" and drain\n * its own named group explicitly, when ready.\n * @param {string} agentIdentifier - A unique 16 character ID corresponding to an instantiated agent.\n * @param {string} featureName - A named group into which the feature's buffered events are bucketed.\n * @param {boolean} force - Whether to force the drain to occur immediately, bypassing the registry and staging logic.\n */\nexport function drain() {\n let agentIdentifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let featureName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'feature';\n let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n curateRegistry(agentIdentifier);\n // If the feature for the specified agent is not in the registry, that means the instrument file was bypassed.\n // This could happen in tests, or loaders that directly import the aggregator. In these cases it is safe to\n // drain the feature group immediately rather than waiting to drain all at once.\n if (!agentIdentifier || !registry[agentIdentifier].get(featureName) || force) return drainGroup(agentIdentifier, featureName);\n\n // When `drain` is called, this feature is ready to drain (staged).\n registry[agentIdentifier].get(featureName).staged = true;\n checkCanDrainAll(agentIdentifier);\n}\n\n/** Checks all items in the registry to see if they have been \"staged\". If ALL items are staged, it will drain all registry items (drainGroup). It not, nothing will happen */\nfunction checkCanDrainAll(agentIdentifier) {\n // Only when the event-groups for all features are ready to drain (staged) do we execute the drain. This has the effect\n // that the last feature to call drain triggers drain for all features.\n const items = Array.from(registry[agentIdentifier]);\n if (items.every(_ref => {\n let [key, values] = _ref;\n return values.staged;\n })) {\n items.sort((a, b) => a[1].priority - b[1].priority);\n items.forEach(_ref2 => {\n let [group] = _ref2;\n registry[agentIdentifier].delete(group);\n drainGroup(agentIdentifier, group);\n });\n }\n}\n\n/**\n * Drains all the buffered (backlog) events for a particular feature's event-group by emitting each event to each of\n * the subscribed handlers for the group.\n * @param {*} group - The name of a particular feature's event \"bucket\".\n */\nfunction drainGroup(agentIdentifier, group) {\n const baseEE = agentIdentifier ? ee.get(agentIdentifier) : ee;\n const handlers = defaultRegister.handlers; // other storage in registerHandler\n if (!baseEE.backlog || !handlers) return;\n var bufferedEventsInGroup = baseEE.backlog[group];\n var groupHandlers = handlers[group]; // each group in the registerHandler storage\n if (groupHandlers) {\n // We don't cache the length of the buffer while looping because events might still be added while processing.\n for (var i = 0; bufferedEventsInGroup && i < bufferedEventsInGroup.length; ++i) {\n // eslint-disable-line no-unmodified-loop-condition\n emitEvent(bufferedEventsInGroup[i], groupHandlers);\n }\n mapOwn(groupHandlers, function (eventType, handlerRegistrationList) {\n mapOwn(handlerRegistrationList, function (i, registration) {\n // registration is an array of: [targetEE, eventHandler]\n registration[0].on(eventType, registration[1]);\n });\n });\n }\n if (!baseEE.isolatedBacklog) delete handlers[group];\n baseEE.backlog[group] = null;\n baseEE.emit('drain-' + group, []);\n}\n\n/**\n * Processes the specified event using all relevant handler functions associated with a particular feature, based on\n * whether the the handler is meant to apply to events of this type. (Event type is a descriptive string set at the\n * time an event is originally created by instrumentation, as with calls to the `handle` method.)\n * @param {*} evt - A single event to be emitted to (processed by) eligible handler functions.\n * @param {*} groupHandlers - A set of handler functions associated with a particular feature's event-group.\n */\nfunction emitEvent(evt, groupHandlers) {\n var type = evt[1];\n mapOwn(groupHandlers[type], function (i, registration) {\n var sourceEE = evt[0];\n var ee = registration[0];\n if (ee === sourceEE) {\n var handler = registration[1];\n var ctx = evt[3];\n var args = evt[2];\n handler.apply(ctx, args);\n }\n });\n}","import { ee } from '../../common/event-emitter/contextual-ee';\nexport class FeatureBase {\n constructor(agentIdentifier, aggregator, featureName) {\n /** @type {string} */\n this.agentIdentifier = agentIdentifier;\n /** @type {import('../../common/aggregate/aggregator').Aggregator} */\n this.aggregator = aggregator;\n /** @type {import('../../common/event-emitter/contextual-ee').ee} */\n this.ee = ee.get(agentIdentifier);\n /** @type {string} */\n this.featureName = featureName;\n /**\n * Blocked can be used to prevent aggregation and harvest after inititalization time of the feature.\n * This can currently happen if RUM response setToken flag is 0, which is tied to ingest account entitlement info.\n * @type {boolean}\n */\n this.blocked = false;\n }\n}","import { globalScope } from '../constants/runtime';\n\n/*\n * See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#safely_detecting_option_support\n */\nlet passiveSupported = false;\nlet signalSupported = false;\ntry {\n const options = {\n get passive() {\n // this function will be called when the browser attempts to access the passive property\n passiveSupported = true;\n return false;\n },\n get signal() {\n signalSupported = true;\n return false;\n }\n };\n globalScope.addEventListener('test', null, options);\n globalScope.removeEventListener('test', null, options);\n} catch (err) {}\nexport function eventListenerOpts(useCapture, abortSignal) {\n return passiveSupported || signalSupported ? {\n capture: !!useCapture,\n passive: passiveSupported,\n // passive defaults to false\n signal: abortSignal\n } : !!useCapture; // mainly just IE11 doesn't support third param options under EventTarget API\n}\n\n/** Do not use this within the worker context. */\nexport function windowAddEventListener(event, listener) {\n let capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let abortSignal = arguments.length > 3 ? arguments[3] : undefined;\n window.addEventListener(event, listener, eventListenerOpts(capture, abortSignal));\n}\n/** Do not use this within the worker context. */\nexport function documentAddEventListener(event, listener) {\n let capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let abortSignal = arguments.length > 3 ? arguments[3] : undefined;\n document.addEventListener(event, listener, eventListenerOpts(capture, abortSignal));\n}","import { windowAddEventListener, documentAddEventListener } from '../event-listener/event-listener-opts';\nexport function checkState() {\n return typeof document === 'undefined' || document.readyState === 'complete';\n}\nexport function onWindowLoad(cb, useCapture) {\n if (checkState()) return cb();\n windowAddEventListener('load', cb, useCapture);\n}\nexport function onDOMContentLoaded(cb) {\n if (checkState()) return cb();\n documentAddEventListener('DOMContentLoaded', cb);\n}","import { getConfigurationValue } from '../../common/config/config';\nimport { isBrowserScope } from '../../common/constants/runtime';\n\n/**\n * Checks if session can be tracked, affects session entity and dependent features\n * @param {string} agentId\n * @returns {boolean}\n */\nexport const canEnableSessionTracking = agentId => {\n return isBrowserScope && getConfigurationValue(agentId, 'privacy.cookies_enabled') === true;\n};","import { getConfigurationValue, originals } from '../../../common/config/config';\nimport { canEnableSessionTracking } from '../../utils/feature-gates';\nimport { originTime } from '../../../common/constants/runtime';\nexport function hasReplayPrerequisite(agentId) {\n return !!originals.MO &&\n // Session Replay cannot work without Mutation Observer\n canEnableSessionTracking(agentId) &&\n // requires session tracking to be running (hence \"session\" replay...)\n getConfigurationValue(agentId, 'session_trace.enabled') === true; // Session Replay as of now is tightly coupled with Session Trace in the UI\n}\nexport function isPreloadAllowed(agentId) {\n return getConfigurationValue(agentId, 'session_replay.preload') === true && hasReplayPrerequisite(agentId);\n}\nexport function canImportReplayAgg(agentId, sessionMgr) {\n if (!hasReplayPrerequisite(agentId)) return false;\n return !!sessionMgr?.isNew || !!sessionMgr?.state.sessionReplayMode; // Session Replay should only try to run if already running from a previous page, or at the beginning of a session\n}\nexport function buildNRMetaNode(timestamp, timeKeeper) {\n const correctedTimestamp = timeKeeper.correctAbsoluteTimestamp(timestamp);\n return {\n originalTimestamp: timestamp,\n correctedTimestamp,\n timestampDiff: timestamp - correctedTimestamp,\n originTime,\n correctedOriginTime: timeKeeper.correctedOriginTime,\n originTimeDiff: Math.floor(originTime - timeKeeper.correctedOriginTime)\n };\n}","/**\n * Reduce the invocation of the supplied function so that it is only invoked\n * once within a given timeout.\n *\n * If `wait` is `0`, the function will be invoked during the next tick.\n * If `options.leading` is false or not provided, the function will be invoked\n * N milliseconds after the last invocation of the returned function where\n * N is the `timeout` value.\n * If `options.leading` is true, the function will be invoked immediately upon\n * the first invocation of the returned function and not again for N milliseconds\n * where N is the `timeout` value.\n * @param {function} func Function whose invocation should be limited so it is only invoked\n * once within a given timeout period.\n * @param {number} timeout Time in milliseconds that the function should only be invoked\n * once within.\n * @param {object} options Debounce options\n * @param {boolean} options.leading Forces the function to be invoked on the first\n * invocation of the returned function instead of N milliseconds after the last\n * invocation.\n * @returns {function} A wrapping function that will ensure the provided function\n * is invoked only once within the given timeout.\n */\nexport function debounce(func) {\n var _this = this;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const leading = options?.leading || false;\n let timer;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (leading && timer === undefined) {\n func.apply(_this, args);\n timer = setTimeout(() => {\n timer = clearTimeout(timer);\n }, timeout);\n }\n if (!leading) {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(_this, args);\n }, timeout);\n }\n };\n}\n\n/**\n * Reduce the invocation of the supplied function so that it is only invoked\n * once.\n * @param {function} func Function whose invocation should be limited so it is only invoked\n * once.\n * @returns {function} A wrapping function that will ensure the provided function\n * is invoked only once.\n */\nexport function single(func) {\n var _this2 = this;\n let called = false;\n return function () {\n if (!called) {\n called = true;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n func.apply(_this2, args);\n }\n };\n}","/**\n * @file Defines `InstrumentBase` to be used as the super of the Instrument classes implemented by each feature.\n * Inherits and executes the `checkConfiguration` method from [FeatureBase]{@link ./feature-base}, which also\n * exposes the `blocked` property.\n */\n\nimport { drain, registerDrain } from '../../common/drain/drain';\nimport { FeatureBase } from './feature-base';\nimport { onWindowLoad } from '../../common/window/load';\nimport { isBrowserScope } from '../../common/constants/runtime';\nimport { warn } from '../../common/util/console';\nimport { FEATURE_NAMES } from '../../loaders/features/features';\nimport { getConfigurationValue } from '../../common/config/config';\nimport { canImportReplayAgg } from '../session_replay/shared/utils';\nimport { canEnableSessionTracking } from './feature-gates';\nimport { single } from '../../common/util/invoke';\n\n/**\n * Base class for instrumenting a feature.\n * @extends FeatureBase\n */\nexport class InstrumentBase extends FeatureBase {\n /**\n * Instantiate InstrumentBase.\n * @param {string} agentIdentifier - The unique ID of the instantiated agent (relative to global scope).\n * @param {import('../../common/aggregate/aggregator').Aggregator} aggregator - The shared Aggregator that will handle batching and reporting of data.\n * @param {string} featureName - The name of the feature module (used to construct file path).\n * @param {boolean} [auto=true] - Determines whether the feature should automatically register to have the draining\n * of its pooled instrumentation data handled by the agent's centralized drain functionality, rather than draining\n * immediately. Primarily useful for fine-grained control in tests.\n */\n constructor(agentIdentifier, aggregator, featureName) {\n let auto = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n super(agentIdentifier, aggregator, featureName);\n this.auto = auto;\n\n /** @type {Function | undefined} This should be set by any derived Instrument class if it has things to do when feature fails or is killed. */\n this.abortHandler = undefined;\n\n /**\n * @type {import('./aggregate-base').AggregateBase} Holds the reference to the feature's aggregate module counterpart, if and after it has been initialized. This may not be assigned until after page loads!\n * The only purpose of this for now is to expose it to the NREUM interface, as the feature's instrument instance is already exposed.\n */\n this.featAggregate = undefined;\n\n /**\n * @type {Promise} Assigned immediately after @see importAggregator runs. Serves as a signal for when the inner async fn finishes execution. Useful for features to await\n * one another if there are inter-features dependencies.\n */\n this.onAggregateImported = undefined;\n\n /** used in conjunction with newrelic.start() to defer harvesting in features */\n if (getConfigurationValue(this.agentIdentifier, \"\".concat(this.featureName, \".autoStart\")) === false) this.auto = false;\n /** if the feature requires opt-in (!auto-start), it will get registered once the api has been called */\n if (this.auto) registerDrain(agentIdentifier, featureName);else {\n this.ee.on('manual-start-all', single(() => {\n // register the feature to drain only once the API has been called, it will drain when importAggregator finishes for all the features\n // called by the api in that cycle\n registerDrain(this.agentIdentifier, this.featureName);\n this.auto = true;\n this.importAggregator();\n }));\n }\n }\n\n /**\n * Lazy-load the latter part of the feature: its aggregator. This method is called by the first part of the feature\n * (the instrumentation) when instrumentation is complete.\n * @param {Object} [argsObjFromInstrument] - any values or references to pass down to aggregate\n * @returns void\n */\n importAggregator() {\n let argsObjFromInstrument = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (this.featAggregate || !this.auto) return;\n let loadedSuccessfully;\n this.onAggregateImported = new Promise(resolve => {\n loadedSuccessfully = resolve;\n });\n const importLater = async () => {\n let session;\n try {\n if (canEnableSessionTracking(this.agentIdentifier)) {\n // would require some setup before certain features start\n const {\n setupAgentSession\n } = await import( /* webpackChunkName: \"session-manager\" */'./agent-session');\n session = setupAgentSession(this.agentIdentifier);\n }\n } catch (e) {\n warn('A problem occurred when starting up session manager. This page will not start or extend any session.', e);\n if (this.featureName === FEATURE_NAMES.sessionReplay) this.abortHandler?.(); // SR should stop recording if session DNE\n }\n\n /**\n * Note this try-catch differs from the one in Agent.run() in that it's placed later in a page's lifecycle and\n * it's only responsible for aborting its one specific feature, rather than all.\n */\n try {\n if (!this.#shouldImportAgg(this.featureName, session)) {\n drain(this.agentIdentifier, this.featureName);\n loadedSuccessfully(false); // aggregate module isn't loaded at all\n return;\n }\n const {\n lazyFeatureLoader\n } = await import( /* webpackChunkName: \"lazy-feature-loader\" */'./lazy-feature-loader');\n const {\n Aggregate\n } = await lazyFeatureLoader(this.featureName, 'aggregate');\n this.featAggregate = new Aggregate(this.agentIdentifier, this.aggregator, argsObjFromInstrument);\n loadedSuccessfully(true);\n } catch (e) {\n warn(\"Downloading and initializing \".concat(this.featureName, \" failed...\"), e);\n this.abortHandler?.(); // undo any important alterations made to the page\n // not supported yet but nice to do: \"abort\" this agent's EE for this feature specifically\n drain(this.agentIdentifier, this.featureName, true);\n loadedSuccessfully(false);\n if (this.ee) this.ee.abort();\n }\n };\n\n // For regular web pages, we want to wait and lazy-load the aggregator only after all page resources are loaded.\n // Non-browser scopes (i.e. workers) have no `window.load` event, so the aggregator can be lazy-loaded immediately.\n if (!isBrowserScope) importLater();else onWindowLoad(() => importLater(), true);\n }\n\n /**\n * Make a determination if an aggregate class should even be imported\n * @param {string} featureName\n * @param {import('../../common/session/session-entity').SessionEntity} session\n * @returns\n */\n #shouldImportAgg(featureName, session) {\n if (featureName === FEATURE_NAMES.sessionReplay) return canImportReplayAgg(this.agentIdentifier, session);\n return true;\n }\n}","import { FEATURE_NAMES } from '../../loaders/features/features';\nexport const FEATURE_NAME = FEATURE_NAMES.jserrors;","import { MODE } from '../../common/session/constants';\nimport { FEATURE_NAMES } from '../../loaders/features/features';\nexport const FEATURE_NAME = FEATURE_NAMES.sessionReplay;\nexport const SR_EVENT_EMITTER_TYPES = {\n RECORD: 'recordReplay',\n PAUSE: 'pauseReplay',\n REPLAY_RUNNING: 'replayRunning',\n ERROR_DURING_REPLAY: 'errorDuringReplay'\n};\nexport const AVG_COMPRESSION = 0.12;\nexport const RRWEB_EVENT_TYPES = {\n DomContentLoaded: 0,\n Load: 1,\n FullSnapshot: 2,\n IncrementalSnapshot: 3,\n Meta: 4,\n Custom: 5\n};\n/** Vortex caps payload sizes at 1MB */\nexport const MAX_PAYLOAD_SIZE = 1000000;\n/** Unloading caps around 64kb */\nexport const IDEAL_PAYLOAD_SIZE = 64000;\n/** Interval between forcing new full snapshots -- 15 seconds in error mode (x2), 5 minutes in full mode */\nexport const CHECKOUT_MS = {\n [MODE.ERROR]: 15000,\n [MODE.FULL]: 300000,\n [MODE.OFF]: 0\n};\nexport const ABORT_REASONS = {\n RESET: {\n message: 'Session was reset',\n sm: 'Reset'\n },\n IMPORT: {\n message: 'Recorder failed to import',\n sm: 'Import'\n },\n TOO_MANY: {\n message: '429: Too Many Requests',\n sm: 'Too-Many'\n },\n TOO_BIG: {\n message: 'Payload was too large',\n sm: 'Too-Big'\n },\n CROSS_TAB: {\n message: 'Session Entity was set to OFF on another tab',\n sm: 'Cross-Tab'\n },\n ENTITLEMENTS: {\n message: 'Session Replay is not allowed and will not be started',\n sm: 'Entitlement'\n }\n};\n/** Reserved room for query param attrs */\nexport const QUERY_PARAM_PADDING = 5000;\nexport const TRIGGERS = {\n API: 'api'\n};","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ee } from '../event-emitter/contextual-ee';\n\n/**\n * Returns a function for use as a replacer parameter in JSON.stringify() to handle circular references.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value MDN - Cyclical object value}\n * @returns {Function} A function that filters out values it has seen before.\n */\nconst getCircularReplacer = () => {\n const seen = new WeakSet();\n return (key, value) => {\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n};\n\n/**\n * The native JSON.stringify method augmented with a replacer function to handle circular references.\n * Circular references will be excluded from the JSON output rather than triggering errors.\n * @param {*} val - A value to be converted to a JSON string.\n * @returns {string} A JSON string representation of the value, with circular references handled.\n */\nexport function stringify(val) {\n try {\n return JSON.stringify(val, getCircularReplacer());\n } catch (e) {\n try {\n ee.emit('internal-error', [e]);\n } catch (err) {\n // do nothing\n }\n }\n}","import { stringify } from '../../../common/util/stringify';\n\n/**\n * Represents an uncaught non Error type error. This class does\n * not extend the Error class to prevent an invalid stack trace\n * from being created. Use this class to cast thrown errors that\n * do not use the Error class (strings, etc) to an object.\n */\nexport class UncaughtError {\n constructor(message, filename, lineno, colno, newrelic) {\n this.name = 'UncaughtError';\n this.message = typeof message === 'string' ? message : stringify(message);\n this.sourceURL = filename;\n this.line = lineno;\n this.column = colno;\n this.__newrelic = newrelic;\n }\n}","import { UncaughtError } from './uncaught-error';\n\n/**\n * Any value can be used with the `throw` keyword. This function ensures that the value is\n * either a proper Error instance or attempts to convert it to an UncaughtError instance.\n * @param {any} error The value thrown\n * @returns {Error|UncaughtError} The converted error instance\n */\nexport function castError(error) {\n /** Sometimes a browser can emit an error object with no stack */\n if (canTrustError(error)) {\n return error;\n }\n\n /**\n * The thrown value may contain a message property. If it does, try to treat the thrown\n * value as an Error-like object.\n */\n return new UncaughtError(error?.message !== undefined ? error.message : error, error?.filename || error?.sourceURL, error?.lineno || error?.line, error?.colno || error?.col, error?.__newrelic);\n}\n\n/**\n * Attempts to convert a PromiseRejectionEvent object to an Error object\n * @param {PromiseRejectionEvent} unhandledRejectionEvent The unhandled promise rejection event\n * @returns {Error} An Error object with the message as the casted reason\n */\nexport function castPromiseRejectionEvent(promiseRejectionEvent) {\n let prefix = 'Unhandled Promise Rejection';\n if (canTrustError(promiseRejectionEvent?.reason)) {\n try {\n promiseRejectionEvent.reason.message = prefix + ': ' + promiseRejectionEvent.reason.message;\n return castError(promiseRejectionEvent.reason);\n } catch (e) {\n return castError(promiseRejectionEvent.reason);\n }\n }\n if (typeof promiseRejectionEvent.reason === 'undefined') return castError(prefix);\n const error = castError(promiseRejectionEvent.reason);\n error.message = prefix + ': ' + error?.message;\n return error;\n}\n\n/**\n * Attempts to convert an ErrorEvent object to an Error object\n * @param {ErrorEvent} errorEvent The error event\n * @returns {Error|UncaughtError} The error event converted to an Error object\n */\nexport function castErrorEvent(errorEvent) {\n if (errorEvent.error instanceof SyntaxError && !/:\\d+$/.test(errorEvent.error.stack?.trim())) {\n const error = new UncaughtError(errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error.__newrelic);\n error.name = SyntaxError.name;\n return error;\n }\n if (canTrustError(errorEvent.error)) return errorEvent.error;\n return castError(errorEvent);\n}\nfunction canTrustError(error) {\n return error instanceof Error && !!error.stack;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { handle } from '../../../common/event-emitter/handle';\nimport { InstrumentBase } from '../../utils/instrument-base';\nimport { FEATURE_NAME } from '../constants';\nimport { globalScope } from '../../../common/constants/runtime';\nimport { eventListenerOpts } from '../../../common/event-listener/event-listener-opts';\nimport { now } from '../../../common/timing/now';\nimport { SR_EVENT_EMITTER_TYPES } from '../../session_replay/constants';\nimport { castError, castErrorEvent, castPromiseRejectionEvent } from '../shared/cast-error';\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n #replayRunning = false;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n try {\n // this try-catch can be removed when IE11 is completely unsupported & gone\n this.removeOnAbort = new AbortController();\n } catch (e) {}\n this.ee.on('internal-error', error => {\n if (!this.abortHandler) return;\n handle('ierr', [castError(error), now(), true, {}, this.#replayRunning], undefined, this.featureName, this.ee);\n });\n this.ee.on(SR_EVENT_EMITTER_TYPES.REPLAY_RUNNING, isRunning => {\n this.#replayRunning = isRunning;\n });\n globalScope.addEventListener('unhandledrejection', promiseRejectionEvent => {\n if (!this.abortHandler) return;\n handle('err', [castPromiseRejectionEvent(promiseRejectionEvent), now(), false, {\n unhandledPromiseRejection: 1\n }, this.#replayRunning], undefined, this.featureName, this.ee);\n }, eventListenerOpts(false, this.removeOnAbort?.signal));\n globalScope.addEventListener('error', errorEvent => {\n if (!this.abortHandler) return;\n handle('err', [castErrorEvent(errorEvent), now(), false, {}, this.#replayRunning], undefined, this.featureName, this.ee);\n }, eventListenerOpts(false, this.removeOnAbort?.signal));\n this.abortHandler = this.#abort; // we also use this as a flag to denote that the feature is active or on and handling errors\n this.importAggregator();\n }\n\n /** Restoration and resource release tasks to be done if JS error loader is being aborted. Unwind changes to globals. */\n #abort() {\n this.removeOnAbort?.abort();\n this.abortHandler = undefined; // weakly allow this abort op to run only once\n }\n}","import { FEATURE_NAMES } from '../../loaders/features/features';\nexport const FEATURE_NAME = FEATURE_NAMES.pageViewEvent;","import { InstrumentBase } from '../../utils/instrument-base';\nimport * as CONSTANTS from '../constants';\nexport class Instrument extends InstrumentBase {\n static featureName = CONSTANTS.FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, CONSTANTS.FEATURE_NAME, auto);\n this.importAggregator();\n }\n}","import { FEATURE_NAMES } from './features';\nimport { getConfigurationValue } from '../../common/config/config';\nconst featureNames = Object.values(FEATURE_NAMES);\nfunction isEnabled(name, agentIdentifier) {\n return getConfigurationValue(agentIdentifier, \"\".concat(name, \".enabled\")) === true;\n}\nexport function getEnabledFeatures(agentIdentifier) {\n const enabledFeatures = {};\n featureNames.forEach(featureName => {\n enabledFeatures[featureName] = isEnabled(featureName, agentIdentifier);\n });\n return enabledFeatures;\n}","import { FEATURE_NAMES } from '../../loaders/features/features';\nexport const FEATURE_NAME = FEATURE_NAMES.metrics;\nexport const SUPPORTABILITY_METRIC = 'sm';\nexport const CUSTOM_METRIC = 'cm';\nexport const SUPPORTABILITY_METRIC_CHANNEL = 'storeSupportabilityMetrics';\nexport const CUSTOM_METRIC_CHANNEL = 'storeEventMetrics';","import { SR_EVENT_EMITTER_TYPES } from '../../features/session_replay/constants';\nexport const apiMethods = ['setErrorHandler', 'finished', 'addToTrace', 'addRelease', 'addPageAction', 'setCurrentRouteName', 'setPageViewName', 'setCustomAttribute', 'interaction', 'noticeError', 'setUserId', 'setApplicationVersion', 'start', SR_EVENT_EMITTER_TYPES.RECORD, SR_EVENT_EMITTER_TYPES.PAUSE];\nexport const asyncApiMethods = ['setErrorHandler', 'finished', 'addToTrace', 'addRelease'];","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { FEATURE_NAMES } from '../features/features';\nimport { getRuntime, setInfo, getInfo } from '../../common/config/config';\nimport { handle } from '../../common/event-emitter/handle';\nimport { ee } from '../../common/event-emitter/contextual-ee';\nimport { drain, registerDrain } from '../../common/drain/drain';\nimport { onWindowLoad } from '../../common/window/load';\nimport { isBrowserScope } from '../../common/constants/runtime';\nimport { warn } from '../../common/util/console';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../features/metrics/constants';\nimport { gosCDN } from '../../common/window/nreum';\nimport { apiMethods, asyncApiMethods } from './api-methods';\nimport { SR_EVENT_EMITTER_TYPES } from '../../features/session_replay/constants';\nimport { now } from '../../common/timing/now';\nimport { MODE } from '../../common/session/constants';\nexport function setTopLevelCallers() {\n const nr = gosCDN();\n apiMethods.forEach(f => {\n nr[f] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return caller(f, ...args);\n };\n });\n function caller(fnName) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n let returnVals = [];\n Object.values(nr.initializedAgents).forEach(val => {\n if (val.exposed && val.api[fnName]) {\n returnVals.push(val.api[fnName](...args));\n }\n });\n return returnVals.length > 1 ? returnVals : returnVals[0];\n }\n}\nconst replayRunning = {};\nexport function setAPI(agentIdentifier, forceDrain) {\n let runSoftNavOverSpa = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!forceDrain) registerDrain(agentIdentifier, 'api');\n const apiInterface = {};\n var instanceEE = ee.get(agentIdentifier);\n var tracerEE = instanceEE.get('tracer');\n replayRunning[agentIdentifier] = MODE.OFF;\n instanceEE.on(SR_EVENT_EMITTER_TYPES.REPLAY_RUNNING, isRunning => {\n replayRunning[agentIdentifier] = isRunning;\n });\n var prefix = 'api-';\n var spaPrefix = prefix + 'ixn-';\n\n // Setup stub functions that queue calls for later processing.\n asyncApiMethods.forEach(fnName => {\n apiInterface[fnName] = apiCall(prefix, fnName, true, 'api');\n });\n apiInterface.addPageAction = apiCall(prefix, 'addPageAction', true, FEATURE_NAMES.pageAction);\n apiInterface.setPageViewName = function (name, host) {\n if (typeof name !== 'string') return;\n if (name.charAt(0) !== '/') name = '/' + name;\n getRuntime(agentIdentifier).customTransaction = (host || 'http://custom.transaction') + name;\n return apiCall(prefix, 'setPageViewName', true)();\n };\n\n /**\n * Attach the key-value attribute onto agent payloads. All browser events in NR will be affected.\n * @param {string} key\n * @param {string|number|null} value - null indicates the key should be removed or erased\n * @param {string} apiName\n * @param {boolean} addToBrowserStorage - whether this attribute should be stored in browser storage API and retrieved by the next agent context or initialization\n * @returns @see apiCall\n */\n function appendJsAttribute(key, value, apiName, addToBrowserStorage) {\n const currentInfo = getInfo(agentIdentifier);\n if (value === null) {\n delete currentInfo.jsAttributes[key];\n } else {\n setInfo(agentIdentifier, {\n ...currentInfo,\n jsAttributes: {\n ...currentInfo.jsAttributes,\n [key]: value\n }\n });\n }\n return apiCall(prefix, apiName, true, !!addToBrowserStorage || value === null ? 'session' : undefined)(key, value);\n }\n apiInterface.setCustomAttribute = function (name, value) {\n let persistAttribute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (typeof name !== 'string') {\n warn(\"Failed to execute setCustomAttribute.\\nName must be a string type, but a type of <\".concat(typeof name, \"> was provided.\"));\n return;\n }\n if (!(['string', 'number', 'boolean'].includes(typeof value) || value === null)) {\n warn(\"Failed to execute setCustomAttribute.\\nNon-null value must be a string, number or boolean type, but a type of <\".concat(typeof value, \"> was provided.\"));\n return;\n }\n return appendJsAttribute(name, value, 'setCustomAttribute', persistAttribute);\n };\n /**\n * Attach the 'enduser.id' attribute onto agent payloads. This may be used in NR queries to group all browser events by specific users.\n * @param {string} value - unique user identifier; a null user id suggests none should exist\n * @returns @see apiCall\n */\n apiInterface.setUserId = function (value) {\n if (!(typeof value === 'string' || value === null)) {\n warn(\"Failed to execute setUserId.\\nNon-null value must be a string type, but a type of <\".concat(typeof value, \"> was provided.\"));\n return;\n }\n return appendJsAttribute('enduser.id', value, 'setUserId', true);\n };\n\n /**\n * Attach the 'applcation.version' attribute onto agent payloads. This may be used in NR queries to group all browser events by a specific customer-defined release.\n * @param {string|null} value - Application version -- if null, will \"unset\" the value\n * @returns @see apiCall\n */\n apiInterface.setApplicationVersion = function (value) {\n if (!(typeof value === 'string' || value === null)) {\n warn(\"Failed to execute setApplicationVersion. Expected <String | null>, but got <\".concat(typeof value, \">.\"));\n return;\n }\n return appendJsAttribute('application.version', value, 'setApplicationVersion', false);\n };\n apiInterface.start = () => {\n try {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/start/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n instanceEE.emit('manual-start-all');\n } catch (err) {\n warn('An unexpected issue occurred', err);\n }\n };\n apiInterface[SR_EVENT_EMITTER_TYPES.RECORD] = function () {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/recordReplay/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n handle(SR_EVENT_EMITTER_TYPES.RECORD, [], undefined, FEATURE_NAMES.sessionReplay, instanceEE);\n };\n apiInterface[SR_EVENT_EMITTER_TYPES.PAUSE] = function () {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/pauseReplay/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n handle(SR_EVENT_EMITTER_TYPES.PAUSE, [], undefined, FEATURE_NAMES.sessionReplay, instanceEE);\n };\n apiInterface.interaction = function (options) {\n return new InteractionHandle().get(typeof options === 'object' ? options : {});\n };\n function InteractionHandle() {}\n const InteractionApiProto = InteractionHandle.prototype = {\n createTracer: function (name, cb) {\n var contextStore = {};\n var ixn = this;\n var hasCb = typeof cb === 'function';\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/createTracer/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n // Soft navigations won't support Tracer nodes, but this fn should still work the same otherwise (e.g., run the orig cb).\n if (!runSoftNavOverSpa) handle(spaPrefix + 'tracer', [now(), name, contextStore], ixn, FEATURE_NAMES.spa, instanceEE);\n return function () {\n tracerEE.emit((hasCb ? '' : 'no-') + 'fn-start', [now(), ixn, hasCb], contextStore);\n if (hasCb) {\n try {\n return cb.apply(this, arguments);\n } catch (err) {\n const error = typeof err === 'string' ? new Error(err) : err;\n tracerEE.emit('fn-err', [arguments, this, error], contextStore);\n // the error came from outside the agent, so don't swallow\n throw error;\n } finally {\n tracerEE.emit('fn-end', [now()], contextStore);\n }\n }\n };\n }\n };\n ['actionText', 'setName', 'setAttribute', 'save', 'ignore', 'onEnd', 'getContext', 'end', 'get'].forEach(name => {\n InteractionApiProto[name] = apiCall(spaPrefix, name, undefined, runSoftNavOverSpa ? FEATURE_NAMES.softNav : FEATURE_NAMES.spa);\n });\n apiInterface.setCurrentRouteName = runSoftNavOverSpa ? apiCall(spaPrefix, 'routeName', undefined, FEATURE_NAMES.softNav) : apiCall(prefix, 'routeName', true, FEATURE_NAMES.spa);\n function apiCall(prefix, name, notSpa, bufferGroup) {\n return function () {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/' + name + '/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n if (bufferGroup) handle(prefix + name, [now(), ...arguments], notSpa ? null : this, bufferGroup, instanceEE); // no bufferGroup means only the SM is emitted\n return notSpa ? undefined : this; // returns the InteractionHandle which allows these methods to be chained\n };\n }\n apiInterface.noticeError = function (err, customAttributes) {\n if (typeof err === 'string') err = new Error(err);\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['API/noticeError/called'], undefined, FEATURE_NAMES.metrics, instanceEE);\n handle('err', [err, now(), false, customAttributes, !!replayRunning[agentIdentifier]], undefined, FEATURE_NAMES.jserrors, instanceEE);\n };\n\n // theres no window.load event on non-browser scopes, lazy load immediately\n if (!isBrowserScope) lazyLoad();\n // try to stay out of the way of the window.load event, lazy load once that has finished.\n else onWindowLoad(() => lazyLoad(), true);\n function lazyLoad() {\n import( /* webpackChunkName: \"async-api\" */'./apiAsync').then(_ref => {\n let {\n setAPI\n } = _ref;\n setAPI(agentIdentifier);\n drain(agentIdentifier, 'api');\n }).catch(err => {\n warn('Downloading runtime APIs failed...', err);\n instanceEE.abort();\n });\n }\n return apiInterface;\n}","import { globalScope } from '../constants/runtime';\nconst GLOBAL_EVENT_NAMESPACE = 'newrelic';\nexport function dispatchGlobalEvent() {\n let detail = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n try {\n globalScope.dispatchEvent(new CustomEvent(GLOBAL_EVENT_NAMESPACE, {\n detail\n }));\n } catch (err) {\n // something happened... dispatchEvent or CustomEvent might not be supported\n // decide what to do about it here\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { ee } from '../event-emitter/contextual-ee';\nimport { dispatchGlobalEvent } from '../dispatch/global-event';\nconst sentIds = new Set();\n\n/** A map of feature flags and their values as provided by the rum call -- scoped by agent ID */\nexport const activatedFeatures = {};\n\n/**\n * Sets the activatedFeatures object, dispatches the global loaded event,\n * and emits the rumresp flag to features\n * @param {{[key:string]:number}} flags key-val pair of flag names and numeric\n * @param {string} agentIdentifier agent instance identifier\n * @returns {void}\n */\nexport function activateFeatures(flags, agentIdentifier) {\n const sharedEE = ee.get(agentIdentifier);\n activatedFeatures[agentIdentifier] ??= {};\n if (!(flags && typeof flags === 'object')) return;\n if (sentIds.has(agentIdentifier)) return;\n sharedEE.emit('rumresp', [flags]);\n activatedFeatures[agentIdentifier] = flags;\n sentIds.add(agentIdentifier);\n\n // let any window level subscribers know that the agent is running\n dispatchGlobalEvent({\n loaded: true\n });\n}","import { setAPI, setTopLevelCallers } from '../api/api';\nimport { addToNREUM, gosCDN } from '../../common/window/nreum';\nimport { getConfiguration, setConfiguration, setInfo, setLoaderConfig, setRuntime } from '../../common/config/config';\nimport { activatedFeatures } from '../../common/util/feature-flags';\nimport { isWorkerScope } from '../../common/constants/runtime';\nimport { redefinePublicPath } from './public-path';\nlet alreadySetOnce = false; // the configure() function can run multiple times in agent lifecycle\n\n/**\n * Sets or re-sets the agent's configuration values from global settings. This also attach those as properties to the agent instance.\n */\nexport function configure(agent) {\n let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let loaderType = arguments.length > 2 ? arguments[2] : undefined;\n let forceDrain = arguments.length > 3 ? arguments[3] : undefined;\n // eslint-disable-next-line camelcase\n let {\n init,\n info,\n loader_config,\n runtime = {\n loaderType\n },\n exposed = true\n } = opts;\n const nr = gosCDN();\n if (!info) {\n init = nr.init;\n info = nr.info;\n // eslint-disable-next-line camelcase\n loader_config = nr.loader_config;\n }\n setConfiguration(agent.agentIdentifier, init || {});\n // eslint-disable-next-line camelcase\n setLoaderConfig(agent.agentIdentifier, loader_config || {});\n info.jsAttributes ??= {};\n if (isWorkerScope) {\n // add a default attr to all worker payloads\n info.jsAttributes.isWorker = true;\n }\n setInfo(agent.agentIdentifier, info);\n const updatedInit = getConfiguration(agent.agentIdentifier);\n const internalTrafficList = [info.beacon, info.errorBeacon];\n if (!alreadySetOnce) {\n if (updatedInit.proxy.assets) {\n redefinePublicPath(updatedInit.proxy.assets);\n internalTrafficList.push(updatedInit.proxy.assets);\n }\n if (updatedInit.proxy.beacon) internalTrafficList.push(updatedInit.proxy.beacon);\n setTopLevelCallers(); // no need to set global APIs on newrelic obj more than once\n addToNREUM('activatedFeatures', activatedFeatures);\n\n // Update if soft_navigations is allowed to run AND part of this agent build, used to override old spa functions.\n agent.runSoftNavOverSpa &&= updatedInit.soft_navigations.enabled === true && updatedInit.feature_flags.includes('soft_nav');\n }\n runtime.denyList = [...(updatedInit.ajax.deny_list || []), ...(updatedInit.ajax.block_internal ? internalTrafficList : [])];\n runtime.ptid = agent.agentIdentifier;\n setRuntime(agent.agentIdentifier, runtime);\n if (agent.api === undefined) agent.api = setAPI(agent.agentIdentifier, forceDrain, agent.runSoftNavOverSpa);\n if (agent.exposed === undefined) agent.exposed = exposed;\n alreadySetOnce = true;\n}","import { warn } from '../util/console';\nconst model = {\n agentIdentifier: '',\n ee: undefined\n};\nexport class SharedContext {\n constructor(context) {\n try {\n if (typeof context !== 'object') return warn('shared context requires an object as input');\n this.sharedContext = {};\n Object.assign(this.sharedContext, model);\n Object.entries(context).forEach(_ref => {\n let [key, value] = _ref;\n if (Object.keys(model).includes(key)) this.sharedContext[key] = value;\n });\n } catch (err) {\n warn('An error occurred while setting SharedContext', err);\n }\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SharedContext } from '../context/shared-context';\nimport { mapOwn } from '../util/map-own';\nexport class Aggregator extends SharedContext {\n constructor(parent) {\n super(parent);\n this.aggregatedData = {};\n }\n\n // Items with the same type and name get aggregated together\n // params are example data from the aggregated items\n // metrics are the numeric values to be aggregated\n\n store(type, name, params, newMetrics, customParams) {\n var bucket = this.getBucket(type, name, params, customParams);\n bucket.metrics = aggregateMetrics(newMetrics, bucket.metrics);\n return bucket;\n }\n merge(type, name, metrics, params, customParams) {\n var bucket = this.getBucket(type, name, params, customParams);\n if (!bucket.metrics) {\n bucket.metrics = metrics;\n return;\n }\n var oldMetrics = bucket.metrics;\n oldMetrics.count += metrics.count;\n\n // iterate through each new metric and merge\n mapOwn(metrics, function (key, value) {\n // count is a special case handled above\n if (key === 'count') return;\n var oldMetric = oldMetrics[key];\n var newMetric = metrics[key];\n\n // handling the case where newMetric is a single-value first\n if (newMetric && !newMetric.c) {\n oldMetrics[key] = updateMetric(newMetric.t, oldMetric);\n } else {\n // newMetric is a metric object\n oldMetrics[key] = mergeMetric(newMetric, oldMetrics[key]);\n }\n });\n }\n storeMetric(type, name, params, value) {\n var bucket = this.getBucket(type, name, params);\n bucket.stats = updateMetric(value, bucket.stats);\n return bucket;\n }\n getBucket(type, name, params, customParams) {\n if (!this.aggregatedData[type]) this.aggregatedData[type] = {};\n var bucket = this.aggregatedData[type][name];\n if (!bucket) {\n bucket = this.aggregatedData[type][name] = {\n params: params || {}\n };\n if (customParams) {\n bucket.custom = customParams;\n }\n }\n return bucket;\n }\n get(type, name) {\n // if name is passed, get a single bucket\n if (name) return this.aggregatedData[type] && this.aggregatedData[type][name];\n // else, get all buckets of that type\n return this.aggregatedData[type];\n }\n\n // Like get, but for many types and it deletes the retrieved content from the aggregatedData\n take(types) {\n var results = {};\n var type = '';\n var hasData = false;\n for (var i = 0; i < types.length; i++) {\n type = types[i];\n results[type] = Object.values(this.aggregatedData[type] || {});\n if (results[type].length) hasData = true;\n delete this.aggregatedData[type];\n }\n return hasData ? results : null;\n }\n}\nfunction aggregateMetrics(newMetrics, oldMetrics) {\n if (!oldMetrics) oldMetrics = {\n count: 0\n };\n oldMetrics.count += 1;\n mapOwn(newMetrics, function (key, value) {\n oldMetrics[key] = updateMetric(value, oldMetrics[key]);\n });\n return oldMetrics;\n}\nfunction updateMetric(value, metric) {\n // when there is no value, then send only count\n if (value == null) {\n return updateCounterMetric(metric);\n }\n\n // When there is only one data point, the c (count), min, max, and sos (sum of squares) params are superfluous.\n if (!metric) return {\n t: value\n };\n\n // but on the second data point, we need to calculate the other values before aggregating in new values\n if (!metric.c) {\n metric = createMetricObject(metric.t);\n }\n\n // at this point, metric is always uncondensed\n metric.c += 1;\n metric.t += value;\n metric.sos += value * value;\n if (value > metric.max) metric.max = value;\n if (value < metric.min) metric.min = value;\n return metric;\n}\nfunction updateCounterMetric(metric) {\n if (!metric) {\n metric = {\n c: 1\n };\n } else {\n metric.c++;\n }\n return metric;\n}\nfunction mergeMetric(newMetric, oldMetric) {\n if (!oldMetric) return newMetric;\n if (!oldMetric.c) {\n // oldMetric is a single-value\n oldMetric = createMetricObject(oldMetric.t);\n }\n oldMetric.min = Math.min(newMetric.min, oldMetric.min);\n oldMetric.max = Math.max(newMetric.max, oldMetric.max);\n oldMetric.t += newMetric.t;\n oldMetric.sos += newMetric.sos;\n oldMetric.c += newMetric.c;\n return oldMetric;\n}\n\n// take a value and create a metric object\nfunction createMetricObject(value) {\n return {\n t: value,\n min: value,\n max: value,\n sos: value * value,\n c: 1\n };\n}","/* eslint-disable n/handle-callback-err */\n\nimport { warn } from '../common/util/console';\nimport { SR_EVENT_EMITTER_TYPES } from '../features/session_replay/constants';\nimport { generateRandomHexString } from '../common/ids/unique-id';\nimport { ee } from '../common/event-emitter/contextual-ee';\n\n/**\n * @typedef {import('./api/interaction-types').InteractionInstance} InteractionInstance\n */\n\nexport class AgentBase {\n agentIdentifier;\n constructor() {\n let agentIdentifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : generateRandomHexString(16);\n this.agentIdentifier = agentIdentifier;\n\n // Assign the observation context to the event emitter, so it knows how to create observation contexts\n this.ee = ee.get(agentIdentifier);\n }\n\n /**\n * Tries to execute the api and generates a generic warning message with the api name injected if unsuccessful\n * @param {string} methodName\n * @param {...any} args\n */\n #callMethod(methodName) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (typeof this.api?.[methodName] !== 'function') warn(\"Call to agent api \".concat(methodName, \" failed. The API is not currently initialized.\"));else return this.api[methodName](...args);\n }\n\n /**\n * Reports a browser PageAction event along with a name and optional attributes.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/addpageaction/}\n * @param {string} name Name or category of the action. Reported as the actionName attribute.\n * @param {object} [attributes] JSON object with one or more key/value pairs. For example: {key:\"value\"}. The key is reported as its own PageAction attribute with the specified values.\n */\n addPageAction(name, attributes) {\n return this.#callMethod('addPageAction', name, attributes);\n }\n\n /**\n * Groups page views to help URL structure or to capture the URL's routing information.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/setpageviewname/}\n * @param {string} name The page name you want to use. Use alphanumeric characters.\n * @param {string} [host] Default is http://custom.transaction. Typically set host to your site's domain URI.\n */\n setPageViewName(name, host) {\n return this.#callMethod('setPageViewName', name, host);\n }\n\n /**\n * Adds a user-defined attribute name and value to subsequent events on the page.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/setcustomattribute/}\n * @param {string} name Name of the attribute. Appears as column in the PageView event. It will also appear as a column in the PageAction event if you are using it.\n * @param {string|number|null} value Value of the attribute. Appears as the value in the named attribute column in the PageView event. It will appear as a column in the PageAction event if you are using it. Custom attribute values cannot be complex objects, only simple types such as Strings and Integers.\n * @param {boolean} [persist] Default false. f set to true, the name-value pair will also be set into the browser's storage API. Then on the following instrumented pages that load within the same session, the pair will be re-applied as a custom attribute.\n */\n setCustomAttribute(name, value, persist) {\n return this.#callMethod('setCustomAttribute', name, value, persist);\n }\n\n /**\n * Identifies a browser error without disrupting your app's operations.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/noticeerror/}\n * @param {Error|string} error Provide a meaningful error message that you can use when analyzing data on browser's JavaScript errors page.\n * @param {object} [customAttributes] An object containing name/value pairs representing custom attributes.\n */\n noticeError(error, customAttributes) {\n return this.#callMethod('noticeError', error, customAttributes);\n }\n\n /**\n * Adds a user-defined identifier string to subsequent events on the page.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/setuserid/}\n * @param {string|null} value A string identifier for the end-user, useful for tying all browser events to specific users. The value parameter does not have to be unique. If IDs should be unique, the caller is responsible for that validation. Passing a null value unsets any existing user ID.\n */\n setUserId(value) {\n return this.#callMethod('setUserId', value);\n }\n\n /**\n * Adds a user-defined application version string to subsequent events on the page.\n * This decorates all payloads with an attribute of `application.version` which is queryable in NR1.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/setapplicationversion/}\n * @param {string|null} value A string identifier for the application version, useful for\n * tying all browser events to a specific release tag. The value parameter does not\n * have to be unique. Passing a null value unsets any existing value.\n */\n setApplicationVersion(value) {\n return this.#callMethod('setApplicationVersion', value);\n }\n\n /**\n * Allows selective ignoring and grouping of known errors that the browser agent captures.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/seterrorhandler/}\n * @param {(error: Error|string) => boolean | { group: string }} callback When an error occurs, the callback is called with the error object as a parameter. The callback will be called with each error, so it is not specific to one error.\n */\n setErrorHandler(callback) {\n return this.#callMethod('setErrorHandler', callback);\n }\n\n /**\n * Records an additional time point as \"finished\" in a session trace and adds a page action.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/finished/}\n * @param {number} [timeStamp] Defaults to the current time of the call. If used, this marks the time that the page is \"finished\" according to your own criteria.\n */\n finished(timeStamp) {\n return this.#callMethod('finished', timeStamp);\n }\n\n /**\n * Adds a unique name and ID to identify releases with multiple JavaScript bundles on the same page.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/addrelease/}\n * @param {string} name A short description of the component; for example, the name of a project, application, file, or library.\n * @param {string} id The ID or version of this release; for example, a version number, build number from your CI environment, GitHub SHA, GUID, or a hash of the contents.\n */\n addRelease(name, id) {\n return this.#callMethod('addRelease', name, id);\n }\n\n /**\n * Starts a set of agent features if not running in \"autoStart\" mode\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/start/}\n * @param {string|string[]} [featureNames] The name(s) of the features to start. If no name(s) are passed, all features will be started\n */\n start(featureNames) {\n return this.#callMethod('start', featureNames);\n }\n\n /**\n * Forces a replay to record. If a replay is already actively recording, this call will be ignored.\n * If a recording has not been started, a new one will be created. If a recording has been started, but is currently not recording, it will resume recording.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/recordReplay/}\n */\n recordReplay() {\n return this.#callMethod(SR_EVENT_EMITTER_TYPES.RECORD);\n }\n\n /**\n * Forces an active replay to pause recording. If a replay is already actively recording, this call will cause the recording to pause.\n * If a recording is not currently recording, this call will be ignored. This API will pause both manual and automatic replays that are in progress.\n * The only way to resume recording after manually pausing a replay is to manually record again using the recordReplay() API.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/pauseReplay/}\n */\n pauseReplay() {\n return this.#callMethod(SR_EVENT_EMITTER_TYPES.PAUSE);\n }\n\n /**\n * Adds a JavaScript object with a custom name, start time, etc. to an in-progress session trace.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/addtotrace/}\n * @param {{name: string, start: number, end?: number, origin?: string, type?: string}} customAttributes Supply a JavaScript object with these required and optional name/value pairs:\n *\n * - Required name/value pairs: name, start\n * - Optional name/value pairs: end, origin, type\n * - Note: Does not apply to MicroAgent\n *\n * If you are sending the same event object to New Relic as a PageAction, omit the TYPE attribute. (type is a string to describe what type of event you are marking inside of a session trace.) If included, it will override the event type and cause the PageAction event to be sent incorrectly. Instead, use the name attribute for event information.\n */\n addToTrace(customAttributes) {\n return this.#callMethod('addToTrace', customAttributes);\n }\n\n /**\n * Gives SPA routes more accurate names than default names. Monitors specific routes rather than by default grouping.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/setcurrentroutename/}\n * @param {string} name Current route name for the page.\n * - Note: Does not apply to MicroAgent\n */\n setCurrentRouteName(name) {\n return this.#callMethod('setCurrentRouteName', name);\n }\n\n /**\n * Returns a new API object that is bound to the current SPA interaction.\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/interaction/}\n * @returns {InteractionInstance} An API object that is bound to a specific BrowserInteraction event. Each time this method is called for the same BrowserInteraction, a new object is created, but it still references the same interaction.\n * - Note: Does not apply to MicroAgent\n */\n interaction() {\n return this.#callMethod('interaction');\n }\n}","// loader files\nimport { Instrument as PVE } from '../features/page_view_event/instrument';\nimport { getEnabledFeatures } from './features/enabled-features';\nimport { configure } from './configure/configure';\n// core files\nimport { Aggregator } from '../common/aggregate/aggregator';\nimport { setNREUMInitializedAgent } from '../common/window/nreum';\nimport { getConfiguration, getConfigurationValue, getInfo, getLoaderConfig, getRuntime } from '../common/config/config';\nimport { FEATURE_NAMES } from './features/features';\nimport { warn } from '../common/util/console';\nimport { onWindowLoad } from '../common/window/load';\nimport { AgentBase } from './agent-base';\nconst nonAutoFeatures = [FEATURE_NAMES.jserrors, FEATURE_NAMES.pageAction, FEATURE_NAMES.metrics];\n\n/**\n * A minimal agent class designed to only respond to manual user input. As such, this class does not\n * automatically instrument. Instead, each MicroAgent instance will lazy load the required features and can support loading multiple instances on one page.\n * Out of the box, it can manually handle and report Page View, Page Action, and Error events.\n */\nexport class MicroAgent extends AgentBase {\n /**\n * @param {Object} options - Specifies features and runtime configuration,\n * @param {string=} agentIdentifier - The optional unique ID of the agent.\n */\n constructor(options, agentIdentifier) {\n super(agentIdentifier);\n this.sharedAggregator = new Aggregator({\n agentIdentifier: this.agentIdentifier\n });\n this.features = {};\n setNREUMInitializedAgent(this.agentIdentifier, this);\n configure(this, {\n ...options,\n runtime: {\n isolatedBacklog: true\n }\n }, options.loaderType || 'micro-agent');\n Object.assign(this, this.api); // the APIs should be available at the class level for micro-agent\n\n /**\n * Starts a set of agent features if not running in \"autoStart\" mode\n * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/start/}\n * @param {string|string[]|undefined} name The feature name(s) to start. If no name(s) are passed, all features will be started\n */\n this.start = features => this.run(features);\n this.run(nonAutoFeatures.filter(featureName => getConfigurationValue(this.agentIdentifier, \"\".concat(featureName, \".autoStart\"))));\n }\n get config() {\n return {\n info: getInfo(this.agentIdentifier),\n init: getConfiguration(this.agentIdentifier),\n loader_config: getLoaderConfig(this.agentIdentifier),\n runtime: getRuntime(this.agentIdentifier)\n };\n }\n run(features) {\n try {\n const featNames = nonAutoFeatures;\n if (features === undefined) features = featNames;else {\n features = Array.isArray(features) && features.length ? features : [features];\n if (features.some(f => !featNames.includes(f))) return warn(\"Invalid feature name supplied. Acceptable feature names are: \".concat(featNames));\n if (!features.includes(FEATURE_NAMES.pageViewEvent)) features.push(FEATURE_NAMES.pageViewEvent);\n }\n } catch (err) {\n warn('An unexpected issue occurred', err);\n }\n try {\n const enabledFeatures = getEnabledFeatures(this.agentIdentifier);\n try {\n // a biproduct of doing this is that the \"session manager\" is automatically handled through importing this feature\n this.features.page_view_event = new PVE(this.agentIdentifier, this.sharedAggregator);\n } catch (err) {\n warn('Something prevented the agent from instrumenting.', err);\n }\n onWindowLoad(() => {\n // these features do not import an \"instrument\" file, meaning they are only hooked up to the API.\n nonAutoFeatures.forEach(f => {\n if (enabledFeatures[f] && features.includes(f)) {\n import( /* webpackChunkName: \"lazy-feature-loader\" */'../features/utils/lazy-feature-loader').then(_ref => {\n let {\n lazyFeatureLoader\n } = _ref;\n return lazyFeatureLoader(f, 'aggregate');\n }).then(_ref2 => {\n let {\n Aggregate\n } = _ref2;\n this.features[f] = new Aggregate(this.agentIdentifier, this.sharedAggregator);\n }).catch(err => warn('Something prevented the agent from being downloaded.', err));\n }\n });\n });\n return true;\n } catch (err) {\n warn('Failed to initialize instrument classes.', err);\n return false;\n }\n }\n}","import { FEATURE_NAMES } from '../../loaders/features/features';\nexport const FEATURE_NAME = FEATURE_NAMES.pageAction;","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InstrumentBase } from '../../utils/instrument-base';\nimport { FEATURE_NAME } from '../constants';\nexport class Instrument extends InstrumentBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n let auto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n super(agentIdentifier, aggregator, FEATURE_NAME, auto);\n this.importAggregator();\n }\n}",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"!function t(e,n,r){function o(u,a){if(!n[u]){if(!e[u]){var c=\"function\"==typeof require&&require;if(!a&&c)return c(u,!0);if(i)return i(u,!0);var s=Error(\"Cannot find module '\"+u+\"'\");throw s.code=\"MODULE_NOT_FOUND\",s}var f=n[u]={exports:{}};e[u][0].call(f.exports,function(t){return o(e[u][1][t]||t)},f,f.exports,t,e,n,r)}return n[u].exports}for(var i=\"function\"==typeof require&&require,u=0;u<r.length;u++)o(r[u]);return o}({1:[function(t,e,n){function r(){throw Error(\"setTimeout has not been defined\")}function o(){throw Error(\"clearTimeout has not been defined\")}function i(t){if(f===setTimeout)return setTimeout(t,0);if((f===r||!f)&&setTimeout)return f=setTimeout,setTimeout(t,0);try{return f(t,0)}catch(e){try{return f.call(null,t,0)}catch(n){return f.call(this,t,0)}}}function u(){v&&d&&(v=!1,d.length?h=d.concat(h):y=-1,h.length&&a())}function a(){if(!v){var t=i(u);v=!0;for(var e=h.length;e;){for(d=h,h=[];++y<e;)d&&d[y].run();y=-1,e=h.length}d=null,v=!1,function t(e){if(l===clearTimeout)return clearTimeout(e);if((l===o||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{return l(e)}catch(n){try{return l.call(null,e)}catch(r){return l.call(this,e)}}}(t)}}function c(t,e){this.fun=t,this.array=e}function s(){}var f,l,p=e.exports={};!function(){try{f=\"function\"==typeof setTimeout?setTimeout:r}catch(t){f=r}try{l=\"function\"==typeof clearTimeout?clearTimeout:o}catch(e){l=o}}();var d,h=[],v=!1,y=-1;p.nextTick=function(t){var e=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];h.push(new c(t,e)),1!==h.length||v||i(a)},c.prototype.run=function(){this.fun.apply(null,this.array)},p.title=\"browser\",p.browser=!0,p.env={},p.argv=[],p.version=\"\",p.versions={},p.on=s,p.addListener=s,p.once=s,p.off=s,p.removeListener=s,p.removeAllListeners=s,p.emit=s,p.prependListener=s,p.prependOnceListener=s,p.listeners=function(t){return[]},p.binding=function(t){throw Error(\"process.binding is not supported\")},p.cwd=function(){return\"/\"},p.chdir=function(t){throw Error(\"process.chdir is not supported\")},p.umask=function(){return 0}},{},],2:[function(t,e,n){(function(t){!function(t){\"use strict\";if(\"function\"==typeof bootstrap)bootstrap(\"promise\",t);else if(\"object\"==typeof n&&\"object\"==typeof e)e.exports=t();else if(\"function\"==typeof define&&define.amd)define(t);else if(\"undefined\"!=typeof ses){if(!ses.ok())return;ses.makeQ=t}else{if(\"undefined\"==typeof window&&\"undefined\"==typeof self)throw Error(\"This environment was not anticipated by Q. Please file a bug.\");var r=\"undefined\"!=typeof window?window:self,o=r.Q;r.Q=t(),r.Q.noConflict=function(){return r.Q=o,this}}}(function(){\"use strict\";function e(t){return function(){return M.apply(t,arguments)}}function n(t,e){if(x&&e.stack&&\"object\"==typeof t&&null!==t&&t.stack){for(var n=[],o=e;o;o=o.source)o.stack&&(!t.__minimumStackCounter__||t.__minimumStackCounter__>o.stackCounter)&&(U(t,\"__minimumStackCounter__\",{value:o.stackCounter,configurable:!0}),n.unshift(o.stack));n.unshift(t.stack),U(t,\"stack\",{value:function t(e){for(var n=e.split(\"\\n\"),o=[],u=0;u<n.length;++u){var a=n[u];i(a)||r(a)||!a||o.push(a)}return o.join(\"\\n\")}(n.join(\"\\n\"+I+\"\\n\")),configurable:!0})}}function r(t){return -1!==t.indexOf(\"(module.js:\")||-1!==t.indexOf(\"(node.js:\")}function o(t){var e=/at .+ \\((.+):(\\d+):(?:\\d+)\\)$/.exec(t);if(e)return[e[1],Number(e[2])];var n=/at ([^ ]+):(\\d+):(?:\\d+)$/.exec(t);if(n)return[n[1],Number(n[2])];var r=/.*@(.+):(\\d+)$/.exec(t);return r?[r[1],Number(r[2])]:void 0}function i(t){var e=o(t);if(!e)return!1;var n=e[0],r=e[1];return n===j&&r>=C&&r<=Z}function u(){if(x)try{throw Error()}catch(t){var e=t.stack.split(\"\\n\"),n=o(e[0].indexOf(\"@\")>0?e[1]:e[2]);if(!n)return;return j=n[0],n[1]}}function a(t){var e,n;return t instanceof l?t:v(t)?(e=t,n=c(),a.nextTick(function(){try{e.then(n.resolve,n.reject,n.notify)}catch(t){n.reject(t)}}),n.promise):$(t)}function c(){function t(t){e=t,a.longStackSupport&&x&&(i.source=t),L(n,function(e,n){a.nextTick(function(){t.promiseDispatch.apply(t,n)})},void 0),n=void 0,r=void 0}var e,n=[],r=[],o=H(c.prototype),i=H(l.prototype);if(i.promiseDispatch=function(t,o,i){var u=P(arguments);n?(n.push(u),\"when\"===o&&i[1]&&r.push(i[1])):a.nextTick(function(){e.promiseDispatch.apply(e,u)})},i.valueOf=function(){if(n)return i;var t=d(e);return h(t)&&(e=t),t},i.inspect=function(){return e?e.inspect():{state:\"pending\"}},a.longStackSupport&&x)try{throw Error()}catch(u){i.stack=u.stack.substring(u.stack.indexOf(\"\\n\")+1),i.stackCounter=N++}return o.promise=i,o.resolve=function(n){e||t(a(n))},o.fulfill=function(n){e||t($(n))},o.reject=function(n){e||t(m(n))},o.notify=function(t){e||L(r,function(e,n){a.nextTick(function(){n(t)})},void 0)},o}function s(t){if(\"function\"!=typeof t)throw TypeError(\"resolver must be a function.\");var e=c();try{t(e.resolve,e.reject,e.notify)}catch(n){e.reject(n)}return e.promise}function f(t){return s(function(e,n){for(var r=0,o=t.length;r<o;r++)a(t[r]).then(e,n)})}function l(t,e,n){void 0===e&&(e=function(t){return m(Error(\"Promise does not support operation: \"+t))}),void 0===n&&(n=function(){return{state:\"unknown\"}});var r=H(l.prototype);if(r.promiseDispatch=function(n,o,i){var u;try{u=t[o]?t[o].apply(r,i):e.call(r,o,i)}catch(a){u=m(a)}n&&n(u)},r.inspect=n,n){var o=n();\"rejected\"===o.state&&(r.exception=o.reason),r.valueOf=function(){var t=n();return\"pending\"===t.state||\"rejected\"===t.state?r:t.value}}return r}function p(t,e,n,r){return a(t).then(e,n,r)}function d(t){if(h(t)){var e=t.inspect();if(\"fulfilled\"===e.state)return e.value}return t}function h(t){return t instanceof l}function v(t){var e;return(e=t)===Object(e)&&\"function\"==typeof t.then}function y(){Q.length=0,F.length=0,G||(G=!0)}function m(e){var n,r,o=l({when:function(n){return n&&function e(n){if(G){var r=z(F,n);-1!==r&&(\"object\"==typeof t&&\"function\"==typeof t.emit&&a.nextTick.runAfter(function(){var e=z(B,n);-1!==e&&(t.emit(\"rejectionHandled\",Q[r],n),B.splice(e,1))}),F.splice(r,1),Q.splice(r,1))}}(this),n?n(e):this}},function(){return this},function(){return{state:\"rejected\",reason:e}});return n=o,r=e,G&&(\"object\"==typeof t&&\"function\"==typeof t.emit&&a.nextTick.runAfter(function(){-1!==z(F,n)&&(t.emit(\"unhandledRejection\",r,n),B.push(n))}),F.push(n),r&&void 0!==r.stack?Q.push(r.stack):Q.push(\"(no stack) \"+r)),o}function $(t){return l({when:function(){return t},get:function(e){return t[e]},set:function(e,n){t[e]=n},delete:function(e){delete t[e]},post:function(e,n){return null==e?t.apply(void 0,n):t[e].apply(t,n)},apply:function(e,n){return t.apply(e,n)},keys:function(){return q(t)}},void 0,function(){return{state:\"fulfilled\",value:t}})}function g(t,e,n){return a(t).spread(e,n)}function b(t,e,n){return a(t).dispatch(e,n)}function k(t){return p(t,function(t){var e=0,n=c();return L(t,function(r,o,i){var u;h(o)&&\"fulfilled\"===(u=o.inspect()).state?t[i]=u.value:(++e,p(o,function(r){t[i]=r,0==--e&&n.resolve(t)},n.reject,function(t){n.notify({index:i,value:t})}))},void 0),0===e&&n.resolve(t),n.promise})}function _(t){if(0===t.length)return a.resolve();var e=a.defer(),n=0;return L(t,function(r,o,i){var u=t[i];n++,p(u,function t(n){e.resolve(n)},function t(r){0==--n&&(r.message=\"Q can't get fulfillment value from any promise, all promises were rejected. Last error message: \"+r.message,e.reject(r))},function t(n){e.notify({index:i,value:n})})},void 0),e.promise}function w(t){return p(t,function(t){return t=S(t,a),p(k(S(t,function(t){return p(t,R,R)})),function(){return t})})}var x=!1;try{throw Error()}catch(E){x=!!E.stack}var j,T,C=u(),R=function(){},O=function(){function e(){for(var t,e;r.next;)t=(r=r.next).task,r.task=void 0,(e=r.domain)&&(r.domain=void 0,e.enter()),n(t,e);for(;c.length;)n(t=c.pop());i=!1}function n(t,n){try{t()}catch(r){if(a)throw n&&n.exit(),setTimeout(e,0),n&&n.enter(),r;setTimeout(function(){throw r},0)}n&&n.exit()}var r={task:void 0,next:null},o=r,i=!1,u=void 0,a=!1,c=[];if(O=function(e){o=o.next={task:e,domain:a&&t.domain,next:null},i||(i=!0,u())},\"object\"==typeof t&&\"[object process]\"===t.toString()&&t.nextTick)a=!0,u=function(){t.nextTick(e)};else if(\"function\"==typeof setImmediate)u=\"undefined\"!=typeof window?setImmediate.bind(window,e):function(){setImmediate(e)};else if(\"undefined\"!=typeof MessageChannel){var s=new MessageChannel;s.port1.onmessage=function(){u=f,s.port1.onmessage=e,e()};var f=function(){s.port2.postMessage(0)};u=function(){setTimeout(e,0),f()}}else u=function(){setTimeout(e,0)};return O.runAfter=function(t){c.push(t),i||(i=!0,u())},O}(),M=Function.call,P=e(Array.prototype.slice),L=e(Array.prototype.reduce||function(t,e){var n=0,r=this.length;if(1===arguments.length)for(;;){if(n in this){e=this[n++];break}if(++n>=r)throw TypeError()}for(;n<r;n++)n in this&&(e=t(e,this[n],n));return e}),z=e(Array.prototype.indexOf||function(t){for(var e=0;e<this.length;e++)if(this[e]===t)return e;return -1}),S=e(Array.prototype.map||function(t,e){var n=this,r=[];return L(n,function(o,i,u){r.push(t.call(e,i,u,n))},void 0),r}),H=Object.create||function(t){function e(){}return e.prototype=t,new e},U=Object.defineProperty||function(t,e,n){return t[e]=n.value,t},A=e(Object.prototype.hasOwnProperty),q=Object.keys||function(t){var e=[];for(var n in t)A(t,n)&&e.push(n);return e},D=e(Object.prototype.toString);T=\"undefined\"!=typeof ReturnValue?ReturnValue:function(t){this.value=t};var I=\"From previous event:\";a.resolve=a,a.nextTick=O,a.longStackSupport=!1;var N=1;\"object\"==typeof t&&t&&t.env&&t.env.Q_DEBUG&&(a.longStackSupport=!0),a.defer=c,c.prototype.makeNodeResolver=function(){var t=this;return function(e,n){e?t.reject(e):arguments.length>2?t.resolve(P(arguments,1)):t.resolve(n)}},a.Promise=s,a.promise=s,s.race=f,s.all=k,s.reject=m,s.resolve=a,a.passByCopy=function(t){return t},l.prototype.passByCopy=function(){return this},a.join=function(t,e){return a(t).join(e)},l.prototype.join=function(t){return a([this,t]).spread(function(t,e){if(t===e)return t;throw Error(\"Q can't join: not the same: \"+t+\" \"+e)})},a.race=f,l.prototype.race=function(){return this.then(a.race)},a.makePromise=l,l.prototype.toString=function(){return\"[object Promise]\"},l.prototype.then=function(t,e,r){var o=this,i=c(),u=!1;return a.nextTick(function(){o.promiseDispatch(function(e){u||(u=!0,i.resolve(function e(n){try{return\"function\"==typeof t?t(n):n}catch(r){return m(r)}}(e)))},\"when\",[function(t){u||(u=!0,i.resolve(function t(r){if(\"function\"==typeof e){n(r,o);try{return e(r)}catch(i){return m(i)}}return m(r)}(t)))},])}),o.promiseDispatch(void 0,\"when\",[void 0,function(t){var e,n,o=!1;try{n=(e=t,\"function\"==typeof r?r(e):e)}catch(u){if(o=!0,!a.onerror)throw u;a.onerror(u)}o||i.notify(n)},]),i.promise},a.tap=function(t,e){return a(t).tap(e)},l.prototype.tap=function(t){return t=a(t),this.then(function(e){return t.fcall(e).thenResolve(e)})},a.when=p,l.prototype.thenResolve=function(t){return this.then(function(){return t})},a.thenResolve=function(t,e){return a(t).thenResolve(e)},l.prototype.thenReject=function(t){return this.then(function(){throw t})},a.thenReject=function(t,e){return a(t).thenReject(e)},a.nearer=d,a.isPromise=h,a.isPromiseAlike=v,a.isPending=function t(e){return h(e)&&\"pending\"===e.inspect().state},l.prototype.isPending=function(){return\"pending\"===this.inspect().state},a.isFulfilled=function t(e){return!h(e)||\"fulfilled\"===e.inspect().state},l.prototype.isFulfilled=function(){return\"fulfilled\"===this.inspect().state},a.isRejected=function t(e){return h(e)&&\"rejected\"===e.inspect().state},l.prototype.isRejected=function(){return\"rejected\"===this.inspect().state};var W,Q=[],F=[],B=[],G=!0;a.resetUnhandledRejections=y,a.getUnhandledReasons=function(){return Q.slice()},a.stopUnhandledRejectionTracking=function(){y(),G=!1},y(),a.reject=m,a.fulfill=$,a.master=function t(e){return l({isDef:function(){}},function(t,n){return b(e,t,n)},function(){return a(e).inspect()})},a.spread=g,l.prototype.spread=function(t,e){return this.all().then(function(e){return t.apply(void 0,e)},e)},a.async=function t(e){return function(){function t(t,e){var i,u;if(\"undefined\"==typeof StopIteration){try{i=n[t](e)}catch(c){return m(c)}return i.done?a(i.value):p(i.value,r,o)}try{i=n[t](e)}catch(s){return\"[object StopIteration]\"===D(u=s)||u instanceof T?a(s.value):m(s)}return p(i,r,o)}var n=e.apply(this,arguments),r=t.bind(t,\"next\"),o=t.bind(t,\"throw\");return r()}},a.spawn=function t(e){a.done(a.async(e)())},a.return=function t(e){throw new T(e)},a.promised=function t(e){return function(){return g([this,k(arguments)],function(t,n){return e.apply(t,n)})}},a.dispatch=b,l.prototype.dispatch=function(t,e){var n=this,r=c();return a.nextTick(function(){n.promiseDispatch(r.resolve,t,e)}),r.promise},a.get=function(t,e){return a(t).dispatch(\"get\",[e])},l.prototype.get=function(t){return this.dispatch(\"get\",[t])},a.set=function(t,e,n){return a(t).dispatch(\"set\",[e,n])},l.prototype.set=function(t,e){return this.dispatch(\"set\",[t,e])},a.del=a.delete=function(t,e){return a(t).dispatch(\"delete\",[e])},l.prototype.del=l.prototype.delete=function(t){return this.dispatch(\"delete\",[t])},a.mapply=a.post=function(t,e,n){return a(t).dispatch(\"post\",[e,n])},l.prototype.mapply=l.prototype.post=function(t,e){return this.dispatch(\"post\",[t,e])},a.send=a.mcall=a.invoke=function(t,e){return a(t).dispatch(\"post\",[e,P(arguments,2)])},l.prototype.send=l.prototype.mcall=l.prototype.invoke=function(t){return this.dispatch(\"post\",[t,P(arguments,1)])},a.fapply=function(t,e){return a(t).dispatch(\"apply\",[void 0,e])},l.prototype.fapply=function(t){return this.dispatch(\"apply\",[void 0,t])},a.try=a.fcall=function(t){return a(t).dispatch(\"apply\",[void 0,P(arguments,1)])},l.prototype.fcall=function(){return this.dispatch(\"apply\",[void 0,P(arguments)])},a.fbind=function(t){var e=a(t),n=P(arguments,1);return function(){return e.dispatch(\"apply\",[this,n.concat(P(arguments))])}},l.prototype.fbind=function(){var t=this,e=P(arguments);return function(){return t.dispatch(\"apply\",[this,e.concat(P(arguments))])}},a.keys=function(t){return a(t).dispatch(\"keys\",[])},l.prototype.keys=function(){return this.dispatch(\"keys\",[])},a.all=k,l.prototype.all=function(){return k(this)},a.any=_,l.prototype.any=function(){return _(this)},a.allResolved=(W=w,function(){return\"undefined\"!=typeof console&&\"function\"==typeof console.warn&&console.warn(\"allResolved is deprecated, use allSettled instead.\",Error(\"\").stack),W.apply(W,arguments)}),l.prototype.allResolved=function(){return w(this)},a.allSettled=function t(e){return a(e).allSettled()},l.prototype.allSettled=function(){return this.then(function(t){return k(S(t,function(t){function e(){return t.inspect()}return(t=a(t)).then(e,e)}))})},a.fail=a.catch=function(t,e){return a(t).then(void 0,e)},l.prototype.fail=l.prototype.catch=function(t){return this.then(void 0,t)},a.progress=function t(e,n){return a(e).then(void 0,void 0,n)},l.prototype.progress=function(t){return this.then(void 0,void 0,t)},a.fin=a.finally=function(t,e){return a(t).finally(e)},l.prototype.fin=l.prototype.finally=function(t){if(!t||\"function\"!=typeof t.apply)throw Error(\"Q can't apply finally callback\");return t=a(t),this.then(function(e){return t.fcall().then(function(){return e})},function(e){return t.fcall().then(function(){throw e})})},a.done=function(t,e,n,r){return a(t).done(e,n,r)},l.prototype.done=function(e,r,o){var i=function(t){a.nextTick(function(){if(n(t,u),!a.onerror)throw t;a.onerror(t)})},u=e||r||o?this.then(e,r,o):this;\"object\"==typeof t&&t&&t.domain&&(i=t.domain.bind(i)),u.then(void 0,i)},a.timeout=function(t,e,n){return a(t).timeout(e,n)},l.prototype.timeout=function(t,e){var n=c(),r=setTimeout(function(){e&&\"string\"!=typeof e||((e=Error(e||\"Timed out after \"+t+\" ms\")).code=\"ETIMEDOUT\"),n.reject(e)},t);return this.then(function(t){clearTimeout(r),n.resolve(t)},function(t){clearTimeout(r),n.reject(t)},n.notify),n.promise},a.delay=function(t,e){return void 0===e&&(e=t,t=void 0),a(t).delay(e)},l.prototype.delay=function(t){return this.then(function(e){var n=c();return setTimeout(function(){n.resolve(e)},t),n.promise})},a.nfapply=function(t,e){return a(t).nfapply(e)},l.prototype.nfapply=function(t){var e=c(),n=P(t);return n.push(e.makeNodeResolver()),this.fapply(n).fail(e.reject),e.promise},a.nfcall=function(t){var e=P(arguments,1);return a(t).nfapply(e)},l.prototype.nfcall=function(){var t=P(arguments),e=c();return t.push(e.makeNodeResolver()),this.fapply(t).fail(e.reject),e.promise},a.nfbind=a.denodeify=function(t){if(void 0===t)throw Error(\"Q can't wrap an undefined function\");var e=P(arguments,1);return function(){var n=e.concat(P(arguments)),r=c();return n.push(r.makeNodeResolver()),a(t).fapply(n).fail(r.reject),r.promise}},l.prototype.nfbind=l.prototype.denodeify=function(){var t=P(arguments);return t.unshift(this),a.denodeify.apply(void 0,t)},a.nbind=function(t,e){var n=P(arguments,2);return function(){var r=n.concat(P(arguments)),o=c();return r.push(o.makeNodeResolver()),a(function n(){return t.apply(e,arguments)}).fapply(r).fail(o.reject),o.promise}},l.prototype.nbind=function(){var t=P(arguments,0);return t.unshift(this),a.nbind.apply(void 0,t)},a.nmapply=a.npost=function(t,e,n){return a(t).npost(e,n)},l.prototype.nmapply=l.prototype.npost=function(t,e){var n=P(e||[]),r=c();return n.push(r.makeNodeResolver()),this.dispatch(\"post\",[t,n]).fail(r.reject),r.promise},a.nsend=a.nmcall=a.ninvoke=function(t,e){var n=P(arguments,2),r=c();return n.push(r.makeNodeResolver()),a(t).dispatch(\"post\",[e,n]).fail(r.reject),r.promise},l.prototype.nsend=l.prototype.nmcall=l.prototype.ninvoke=function(t){var e=P(arguments,1),n=c();return e.push(n.makeNodeResolver()),this.dispatch(\"post\",[t,e]).fail(n.reject),n.promise},a.nodeify=function t(e,n){return a(e).nodeify(n)},l.prototype.nodeify=function(t){if(!t)return this;this.then(function(e){a.nextTick(function(){t(null,e)})},function(e){a.nextTick(function(){t(e)})})},a.noConflict=function(){throw Error(\"Q.noConflict only works when Q is used as a global\")};var Z=u();return a})}).call(this,t(\"_process\"))},{_process:1},],3:[function(t,e,n){\"use strict\";var r=function(t){switch(typeof t){case\"string\":return t;case\"boolean\":return t?\"true\":\"false\";case\"number\":return isFinite(t)?t:\"\";default:return\"\"}};e.exports=function(t,e,n,o){return e=e||\"&\",n=n||\"=\",null===t&&(t=void 0),\"object\"==typeof t?Object.keys(t).map(function(o){var i=encodeURIComponent(r(o))+n;return Array.isArray(t[o])?t[o].map(function(t){return i+encodeURIComponent(r(t))}).join(e):i+encodeURIComponent(r(t[o]))}).join(e):o?encodeURIComponent(r(o))+n+encodeURIComponent(r(t)):\"\"}},{},],4:[function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return d.default.information(\"zip:checkout:init\"),v.default.Promise(function(e,n){return t.onCheckout(e,n,{})}).then(function(r){var o=r.redirect_uri||r.redirectUri||r.data&&(r.data.redirect_uri||r.data.redirectUri);if(!o)return d.default.debug(\"zip:checkout:error\",\"Response does not contain redirectUri property\"),n(r),void t.onError({code:\"checkout_error\",message:\"The response does not contain the redirectUri property\",detail:r});d.default.debug(\"zip:checkout:success\",r),e({redirectUri:o})}).catch(function(e){d.default.debug(\"zip:checkout:error\",e),n(e),t.onError({code:\"checkout_error\",message:\"Checkout response error\",detail:e})})}Object.defineProperty(n,\"__esModule\",{value:!0}),n.Checkout=void 0;var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=t(\"./modal\"),a=r(u),c=t(\"./options\"),s=r(c),f=t(\"./utility\"),l=r(f),p=t(\"./console\"),d=r(p),h=(t(\"./events\"),t(\"q\")),v=r(h),y=function(){function t(){!function t(e,n){if(!(e instanceof n))throw TypeError(\"Cannot call a class as a function\")}(this,t)}return i(t,null,[{key:\"init\",value:function(t){if(\"function\"!=typeof Object.assign&&(Object.assign=function(t){if(null==t)throw TypeError(\"Cannot convert undefined or null to object\");t=Object(t);for(var e=1;e<arguments.length;e++){var n=arguments[e];if(null!=n)for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}),t=Object.assign({},s.default,t),!this._validate(t)){var e,n;return d.default.setLevel(t.logLevel),t.redirect?o(t,function(e){return t.redirectFn(e.redirectUri)}):(e=t,void((n=new a.default).onClose=e.onComplete.bind(e),n.build(),o(e,function(t){return n.setUri(t.redirectUri)},function(t){return n.close(!1)})))}}},{key:\"attachButton\",value:function(t,e){var n=document.querySelectorAll(t);if(!n.length)return config.onError({code:\"attach_error\",message:\"Cannot find button to attach zipMoney checkout\"});for(var r=0;r<n.length;r++)l.default.addEventHandler(n[r],\"click\",function(){return Zip.Checkout.init(e)})}},{key:\"_validate\",value:function(t){return 0>[\"error\",\"information\",\"debug\"].indexOf(t.logLevel.toLowerCase())&&(t.logLevel=\"error\"),0>[\"standard\",\"express\"].indexOf(t.request.toLowerCase())&&(t.request=\"standard\"),t.onComplete=t.onComplete||function(){},t.onError=t.onError||function(){},t.checkoutUri||t.onCheckout!==s.default.onCheckout?\"express\"===t.request?t.onError({code:\"not_implemented\",message:\"This feature is not yet implemented\"}):t.redirect?void 0:t.onComplete!==s.default.onComplete||t.redirectUri?void 0:t.onError({code:\"validation\",message:\"if onComplete function is not specified then redirectUri must be specified\"}):t.onError({code:\"validation\",message:\"if onCheckout function is not specified then checkoutUri must be specified\"})}},]),t}();n.Checkout=y},{\"./console\":5,\"./events\":6,\"./modal\":8,\"./options\":9,\"./utility\":10,q:2},],5:[function(t,e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var r=\"error\";n.default={error:function(){var t;(t=window.console).log.apply(t,arguments)},information:function(){if(\"error\"!==r){var t;(t=window.console).log.apply(t,arguments)}},debug:function(){if(\"debug\"===r){var t;(t=window.console).log.apply(t,arguments)}},setLevel:function(t){r=t}}},{},],6:[function(t,e,n){(function(e){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.EventListener=void 0;var r,o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}();if(((r=t(\"./utility\"))&&r.__esModule?r:{default:r}).default.isIe){var i=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n};i.prototype=e.Event.prototype,e.CustomEvent=i}var u={},a=n.EventListener=function(){function t(){!function t(e,n){if(!(e instanceof n))throw TypeError(\"Cannot call a class as a function\")}(this,t)}return o(t,null,[{key:\"constructor\",value:function(){u={}}},{key:\"on\",value:function(t,e){u[t]=e}},{key:\"off\",value:function(t){u[t]=null}},]),t}();a.Event=function(t,e){this.eventType=t,this.data=e||{}},a.Event.eventTypes={resize:\"resize\",transition:\"transition\",close:\"close\",complete:\"complete\",clear:\"clear\"};var c=window.addEventListener?\"addEventListener\":\"attachEvent\",s=window[c];s(\"attachEvent\"==c?\"onmessage\":\"message\",function(t){var n,r;t.data.zipmoney&&(n=t.data.msg,r=new e.CustomEvent(\"zipmoney\",{detail:n}),e.dispatchEvent(r))},!1),s(\"zipmoney\",function(t){var e,n=u[t.detail.eventType];n?n(t.detail.data||{}):(e=t,console.log(\"Unexpected Event\",e))},!1)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./utility\":10},],7:[function(t,e,n){(function(e){\"use strict\";var n=t(\"./checkout\"),r=t(\"./events\");e.Zip=e.Zip||{},e.Zip.Checkout=n.Checkout,e.zipMoneyEvent=r.EventListener.ZipEvent}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./checkout\":4,\"./events\":6},],8:[function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(){return Math.max(document.documentElement.clientHeight,window.innerHeight||0)}function i(){var t=document.body,e=document.documentElement;return Math.max(t.scrollHeight,t.offsetHeight,e.clientHeight,e.scrollHeight,e.offsetHeight)}function u(t){for(var e=document.querySelectorAll(\"html, body\"),n=0;n<e.length;n++)e[n].style.overflowY=t}function a(t){var e=document.body.currentStyle||window.getComputedStyle(document.body),n=document.body.offsetHeight,r=parseInt(e.marginTop,10)+parseInt(e.marginBottom,10),o=n+r-parseInt(e.height,10);document.body.style.height=t-o+\"px\"}Object.defineProperty(n,\"__esModule\",{value:!0});var c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=t(\"./utility\"),f=r(s),l=t(\"./events\"),p=t(\"./console\"),d=(r(p),{iframeWidth:400,iframeMinWidth:320,iframeInitialHeight:704,iframeMinHeight:600,verticalMargin:35}),h=[\"resize\",\"transition\",\"close\",\"complete\",\"clear\"],v=\"https://d3k1w8lx8mqizo.cloudfront.net/zm/\",y=function(){function t(){var e=this;(function t(e,n){if(!(e instanceof n))throw TypeError(\"Cannot call a class as a function\")})(this,t),this._events=[],this._isMobile=f.default.isMobileDevice(),h.forEach(function(t){return l.EventListener.on(l.EventListener.Event.eventTypes[t],e[t].bind(e))})}return c(t,[{key:\"build\",value:function(){this._initialHtmlHeight=i(),window.scrollTo(0,0);var t=this._frame=(e=this._frameUri,n=this._isMobile,(r=document.createElement(\"iframe\")).id=\"zipmoney-iframe\",r.frameborder=0,Object.assign(r.style,{padding:\"0\",border:\"none\",zIndex:\"999999\",backgroundColor:\"#FFF\",backgroundImage:\"url(\"+v+\"spinner.gif)\",backgroundRepeat:\"no-repeat\",backgroundPosition:\"50% 50%\"}),n?Object.assign(r.style,{overflow:\"scroll\",width:\"100%\",height:\"100%\",position:\"absolute\",top:\"0\",bottom:\"0\",left:\"0\",right:\"0\",margin:\"0\"}):Object.assign(r.style,{width:d.iframeWidth+\"px\",minWidth:d.iframeMinWidth+\"px\",height:d.iframeInitialHeight+\"px\",margin:d.verticalMargin+\"px auto 0 auto\",display:\"table-row\",backgroundSize:\"25%\",textAlign:\"center\",boxShadow:\"0px 0px 70px 0px rgb(0, 0, 0)\"}),r.src=e||\"\",r);if(!this._isMobile){var e,n,r,o,c,s=((o=document.createElement(\"img\")).src=v+\"icon-close.png\",Object.assign(o.style,{width:\"50px\",height:\"50px\",position:\"absolute\",top:\"20px\",right:\"20px\",cursor:\"pointer\"}),o);s.onclick=this.close.bind(this),this._overlay=((c=document.createElement(\"div\")).className=\"zipmoney-overlay\",Object.assign(c.style,{position:\"absolute\",left:\"0\",top:\"0\",display:\"table-cell\",textAlign:\"center\",verticalAlign:\"middle\",background:\"rgba(0, 0, 0, 0.75)\",zIndex:\"10000\",height:\"100%\",width:\"100%\"}),c),this._overlay.appendChild(s),this._overlay.appendChild(this._frame),t=this._overlay}document.body.appendChild(t),this._isMobile&&a(this._frame.offsetHeight),u(\"auto\"),this._startMonitoringWindowResize()}},{key:\"setUri\",value:function(t){this._frameUri=t,this._frame&&(this._frame.src=t)}},{key:\"resize\",value:function(t){var e=this._isMobile?16:0,t=t>=d.iframeMinHeight?t:d.iframeMinHeight,n=(t+=e)+2*d.verticalMargin,r=o();this._frame.style.height=t+\"px\",this._overlay&&(this._overlay.style.height=Math.max(r,this._initialHtmlHeight,n)+\"px\"),this._isMobile&&a(t)}},{key:\"transition\",value:function(){window.scroll(0,0)}},{key:\"close\",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e={state:\"cancelled\"};this._events.length&&(e=this._events.pop()),this._destroy(),this.onClose&&t&&this.onClose(e)}},{key:\"complete\",value:function(t){this._events.push(t)}},{key:\"clear\",value:function(t){this._events=[]}},{key:\"_startMonitoringWindowResize\",value:function(){var t=this;this._resizeHandler=f.default.debounce(function(){var e,n,r,u;return e=t,n=o(),r=i(),u=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,void(e._overlay&&(e._overlay.style.height=Math.max(n,r)+\"px\"),e._isMobile||u<d.iframeWidth?e._frame.style.width=\"100%\":e._frame.style.width=d.iframeWidth+\"px\")},250),f.default.addEventHandler(window,\"resize\",this._resizeHandler)}},{key:\"_stopMonitoringWindowResize\",value:function(){f.default.removeEventHandler(window,\"resize\",this._resizeHandler)}},{key:\"_destroy\",value:function(){this._stopMonitoringWindowResize(),this._overlay?document.body.removeChild(this._overlay):document.body.removeChild(this._frame),this._isMobile&&(document.body.style.height=\"initial\"),u(\"initial\"),this._overlay=this._frame=null,h.forEach(function(t){return l.EventListener.off(l.EventListener.Event.eventTypes[t])})}},]),t}();n.default=y},{\"./console\":5,\"./events\":6,\"./utility\":10},],9:[function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(n,\"__esModule\",{value:!0});var o=t(\"./xr\"),i=r(o),u=t(\"./console\"),a=r(u);i.default.configure({headers:{\"X-Requested-With\":\"XMLHttpRequest\"}}),n.default={request:\"standard\",redirect:!1,logLevel:\"Error\",onCheckout:function(t,e,n){i.default.post(this.checkoutUri).then(function(e){return t(e.data)}).catch(e)},onShippingAddressChanged:function(t,e,n){i.default.post(this.shippingUri).then(t).catch(e)},onComplete:function(t){if(a.default.information(\"zip:completed\",t),\"cancelled\"!==t.state){var e=t.checkoutId?\"&checkoutId=\"+t.checkoutId:\"\";this.redirectFn(this.redirectUri+\"?result=\"+t.state+e)}},onError:function(t){a.default.error(t)},redirectFn:function(t){window.location.href=t}}},{\"./console\":5,\"./xr\":11},],10:[function(t,e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=function(){function t(){!function t(e,n){if(!(e instanceof n))throw TypeError(\"Cannot call a class as a function\")}(this,t)}return r(t,null,[{key:\"isIe\",value:function(){var t=-1,e=window.navigator.userAgent,n=e.indexOf(\"MSIE \"),r=e.indexOf(\"Trident/\");if(n>0)t=parseInt(e.substring(n+5,e.indexOf(\".\",n)),10);else if(r>0){var o=e.indexOf(\"rv:\");t=parseInt(e.substring(o+3,e.indexOf(\".\",o)),10)}return t>-1?t:void 0}},{key:\"isMobileDevice\",value:function(){var t=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(t.substr(0,4))}},{key:\"debounce\",value:function(t,e){var n;return function(){var r=this,o=arguments,i=function(){n=null,t.apply(r,o)},u=!n;clearTimeout(n),n=setTimeout(i,e),u&&t.apply(r,o)}}},{key:\"addEventHandler\",value:function(t,e,n){t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent&&t.attachEvent(\"on\"+e,n)}},{key:\"removeEventHandler\",value:function(t,e,n){t.removeEventListener?t.removeEventListener(e,n,!1):t.detachEvent&&t.detachEvent(\"on\"+e,n)}},]),t}();n.default=o},{},],11:[function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){return{status:t.status,response:t.response,data:e,xhr:t}}function i(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];for(var o in n)if(({}).hasOwnProperty.call(n,o)){var i=n[o];if(\"object\"===(void 0===i?\"undefined\":a(i)))for(var u in i)({}).hasOwnProperty.call(i,u)&&(t[u]=i[u])}return t}function u(t){var e,n;return e=t,n=function(e,n){var r=i({},h,v,t),u=r.xmlHttpRequest();for(var c in r.abort&&t.abort(function(){n(o(u)),u.abort()}),u.open(r.method,r.params?r.url.split(\"?\")[0]+\"?\"+(0,s.default)(r.params):r.url,!0),u.withCredentials=r.withCredentials,u.addEventListener(d.LOAD,function(){if(u.status>=200&&u.status<300){var t=null;u.responseText&&(t=!0===r.raw?u.responseText:r.load(u.responseText)),e(o(u,t))}else n(o(u))}),u.addEventListener(d.ABORT,function(){return n(o(u))}),u.addEventListener(d.ERROR,function(){return n(o(u))}),u.addEventListener(d.TIMEOUT,function(){return n(o(u))}),r.headers)({}).hasOwnProperty.call(r.headers,c)&&u.setRequestHeader(c,r.headers[c]);for(var f in r.events)({}).hasOwnProperty.call(r.events,f)&&u.addEventListener(f,r.events[f].bind(null,u),!1);var l=\"object\"!==a(r.data)||r.raw?r.data:r.dump(r.data);void 0!==l?u.send(l):u.send()},(e&&e.promise?e.promise:v.promise||h.promise)(n)}Object.defineProperty(n,\"__esModule\",{value:!0});var a=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},c=t(\"querystring/encode\"),s=r(c),f=t(\"q\"),l=r(f),p={GET:\"GET\",POST:\"POST\",PUT:\"PUT\",DELETE:\"DELETE\",PATCH:\"PATCH\",OPTIONS:\"OPTIONS\"},d={READY_STATE_CHANGE:\"readystatechange\",LOAD_START:\"loadstart\",PROGRESS:\"progress\",ABORT:\"abort\",ERROR:\"error\",LOAD:\"load\",TIMEOUT:\"timeout\",LOAD_END:\"loadend\"},h={method:p.GET,data:void 0,headers:{Accept:\"application/json\",\"Content-Type\":\"application/json\"},dump:JSON.stringify,load:JSON.parse,xmlHttpRequest:function(){return new XMLHttpRequest},promise:function(t){return l.default.Promise(t)},withCredentials:!1},v={};u.assign=i,u.encode=s.default,u.configure=function t(e){v=i({},v,e)},u.Methods=p,u.Events=d,u.defaults=h,u.get=function(t,e,n){return u(i({url:t,method:p.GET,params:e},n))},u.put=function(t,e,n){return u(i({url:t,method:p.PUT,data:e},n))},u.post=function(t,e,n){return u(i({url:t,method:p.POST,data:e},n))},u.patch=function(t,e,n){return u(i({url:t,method:p.PATCH,data:e},n))},u.del=function(t,e){return u(i({url:t,method:p.DELETE},e))},u.options=function(t,e){return u(i({url:t,method:p.OPTIONS},e))},n.default=u},{q:2,\"querystring/encode\":3},]},{},[7]);\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.54.2\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar validateLoadParams = function validateLoadParams(params) {\n var errorMessage = \"invalid load parameters; expected object of shape\\n\\n {advancedFraudSignals: boolean}\\n\\nbut received\\n\\n \".concat(JSON.stringify(params), \"\\n\");\n\n if (params === null || _typeof(params) !== 'object') {\n throw new Error(errorMessage);\n }\n\n if (Object.keys(params).length === 1 && typeof params.advancedFraudSignals === 'boolean') {\n return params;\n }\n\n throw new Error(errorMessage);\n};\n\nvar loadParams;\nvar loadStripeCalled = false;\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadStripeCalled = true;\n var startTime = Date.now();\n return loadScript(loadParams).then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nloadStripe.setLoadParameters = function (params) {\n // we won't throw an error if setLoadParameters is called with the same values as before\n if (loadStripeCalled && loadParams) {\n var validatedParams = validateLoadParams(params);\n var parameterKeys = Object.keys(validatedParams);\n var sameParameters = parameterKeys.reduce(function (previousValue, currentValue) {\n var _loadParams;\n\n return previousValue && params[currentValue] === ((_loadParams = loadParams) === null || _loadParams === void 0 ? void 0 : _loadParams[currentValue]);\n }, true);\n\n if (sameParameters) {\n return;\n }\n }\n\n if (loadStripeCalled) {\n throw new Error('You cannot change load parameters after calling loadStripe');\n }\n\n loadParams = validateLoadParams(params);\n};\n\nexports.loadStripe = loadStripe;\n","module.exports = require('./dist/pure.js');\n",null,null,null,null,null,"// src/utils/entries-to-string.ts\nfunction entriesToString(obj, separator = \"=\") {\n return !!Object.keys(obj).length ? Object.entries(obj).reduce((str, [key, value]) => [...str, `${key}${separator}${value}`], []).join(\",\") : \"\";\n}\n\n// src/checkout.ts\nvar Checkout = class {\n DEFAULT_WIDTH = 450;\n DEFAULT_HEIGHT = 750;\n DEFAULT_FEATURES = {\n resizable: \"no\"\n };\n auth;\n callback;\n error;\n frame;\n isCheckoutOpen;\n onMessage;\n url;\n orderId;\n accessToken;\n refreshToken;\n clientId;\n onCheckoutClosed;\n rootUrl;\n targetOrigin;\n title;\n windowFeatures;\n windowObserver;\n constructor({\n auth,\n url,\n clientId,\n mode,\n orderId,\n onCheckoutClosed,\n onError,\n onTokensChanged,\n onPaymentSuccess,\n onPaymentError,\n title,\n windowFeatures\n }) {\n this.callback = {\n [\"ERROR\" /* ERROR */]({ error, orderId: orderId2 }) {\n onError?.({ error, orderId: orderId2 });\n },\n [\"PAYMENT_ERROR\" /* PAYMENT_ERROR */]({ error, orderId: orderId2 }) {\n onPaymentError?.({ error, orderId: orderId2 });\n },\n [\"PAYMENT_SUCCESS\" /* PAYMENT_SUCCESS */]({ orderId: orderId2 }) {\n onPaymentSuccess?.({ orderId: orderId2 });\n },\n [\"TOKENS_CHANGED\" /* TOKENS_CHANGED */]({ accessToken, refreshToken }) {\n onTokensChanged?.({ accessToken, refreshToken });\n }\n };\n this.auth = auth;\n this.isCheckoutOpen = false;\n this.error = void 0;\n this.frame = void 0;\n this.onMessage = (e) => {\n const { data, origin } = e;\n if (origin === url) {\n if (data?.isDomReady === true) {\n this.postMessage();\n }\n if (data?.isPaymentSuccessful) {\n this.callback[\"PAYMENT_SUCCESS\" /* PAYMENT_SUCCESS */]({\n orderId: data.orderId\n });\n }\n if (!data?.isPaymentSuccessful && !!data?.error) {\n this.callback[\"PAYMENT_ERROR\" /* PAYMENT_ERROR */]({\n orderId: data.orderId,\n error: data.error\n });\n }\n if (!data?.paymentFlowState && !!data?.error) {\n this.callback[\"ERROR\" /* ERROR */]({\n orderId: data.orderId,\n error: data.error\n });\n }\n if (data?.accessToken && data?.refreshToken) {\n this.callback[\"TOKENS_CHANGED\" /* TOKENS_CHANGED */]({\n accessToken: data.accessToken,\n refreshToken: data.refreshToken\n });\n }\n }\n };\n const checkoutMode = mode || \"default\" /* DEFAULT */;\n this.rootUrl = url;\n this.targetOrigin = window.location.href.replace(/\\/$/, \"\");\n this.url = `${url}?orderId=${orderId}&merchantUrl=${encodeURIComponent(this.targetOrigin)}&mode=${checkoutMode}`;\n this.orderId = orderId;\n this.clientId = clientId;\n this.onCheckoutClosed = onCheckoutClosed;\n this.title = title;\n this.windowFeatures = windowFeatures;\n this.windowObserver = void 0;\n }\n get isWindowObserverOpen() {\n return !!this.windowObserver;\n }\n open = () => {\n if (this.isCheckoutOpen) {\n this.frame?.focus();\n } else {\n this.frame = window.open(this.url, this.title, this.getFeatures());\n this.isCheckoutOpen = true;\n this.startWindowObserver();\n }\n };\n close = () => {\n this.frame = void 0;\n this.isCheckoutOpen = false;\n this.stopWindowObserver();\n };\n listenMessage = () => {\n if (this.onMessage) {\n window.addEventListener(\"message\", this.onMessage, false);\n }\n };\n postMessage = () => {\n if (!!this.frame && !!this.rootUrl) {\n this.frame.postMessage(\n {\n auth: {\n ...this.auth\n }\n },\n this.rootUrl\n );\n }\n };\n getFeatures() {\n const windowWidth = this.windowFeatures?.width || this.DEFAULT_WIDTH;\n const windowHeight = this.windowFeatures?.height || this.DEFAULT_HEIGHT;\n const features = { ...this.DEFAULT_FEATURES, ...this.windowFeatures };\n const centerPosition = this.getCenteredPosition(windowWidth, windowHeight);\n return entriesToString({\n ...centerPosition,\n ...features,\n width: windowWidth,\n height: windowHeight\n });\n }\n getCenteredPosition(width, height) {\n return {\n left: screen.width / 2 - width / 2,\n top: screen.height / 2 - height / 2\n };\n }\n startWindowObserver() {\n if (!this.isWindowObserverOpen) {\n this.windowObserver = setInterval(() => {\n if (this.frame?.closed) {\n this.close();\n this.onCheckoutClosed?.({ orderId: this.orderId });\n if (this.onMessage) {\n window.removeEventListener(\"message\", this.onMessage);\n }\n }\n }, 300);\n }\n }\n stopWindowObserver() {\n clearInterval(this.windowObserver);\n }\n};\n\n// src/create-checkout-button.ts\nimport DOMPurify from \"isomorphic-dompurify\";\nfunction createCheckoutButton({\n callback,\n containerId = \"opc-container\",\n buttonText = \"Pay Now\"\n}) {\n const checkoutButton = document.querySelector(\"#opc-checkout-btn\");\n const container = document.querySelector(`#${containerId}`);\n if (!checkoutButton && container?.nodeType === Node.ELEMENT_NODE) {\n const fragment = new DocumentFragment();\n const sanitizedText = DOMPurify.sanitize(buttonText);\n const buttonTextContent = document?.createTextNode(sanitizedText);\n const button = document?.createElement(\"button\");\n button.append(buttonTextContent);\n button.setAttribute(\"id\", \"opc-checkout-btn\");\n button.style.boxSizing = \"border-box\";\n button.style.padding = \"1rem 1.5rem\";\n button.style.color = \"#000000\";\n button.style.backgroundColor = \"blue\";\n button.addEventListener(\"click\", () => callback?.());\n fragment.append(button);\n container.append(fragment);\n }\n}\nexport {\n Checkout,\n createCheckoutButton\n};\n",null,null,null,null,null,null,null,null,null,null,null,"export class Timer {\n constructor(opts, ms) {\n if (!opts.onEnd) throw new Error('onEnd handler is required');\n if (!ms) throw new Error('ms duration is required');\n this.onEnd = opts.onEnd;\n this.initialMs = ms;\n this.startTimestamp = Date.now();\n this.timer = this.create(this.onEnd, ms);\n }\n create(cb, ms) {\n if (this.timer) this.clear();\n return setTimeout(() => cb ? cb() : this.onEnd(), ms || this.initialMs);\n }\n clear() {\n clearTimeout(this.timer);\n this.timer = null;\n }\n end() {\n this.clear();\n this.onEnd();\n }\n isValid() {\n return this.initialMs - (Date.now() - this.startTimestamp) > 0;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { documentAddEventListener } from '../event-listener/event-listener-opts';\n\n/**\n * @param {function} cb - called when a visibility change occurs with the vis state at that time\n * @param {boolean} [toHiddenOnly=false] - only execute the 'cb' when the vis is changing to the hidden state; no arg is passed to 'cb' if used\n * @returns void\n */\nexport function subscribeToVisibilityChange(cb) {\n let toHiddenOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let capture = arguments.length > 2 ? arguments[2] : undefined;\n let abortSignal = arguments.length > 3 ? arguments[3] : undefined;\n documentAddEventListener('visibilitychange', handleVisibilityChange, capture, abortSignal);\n function handleVisibilityChange() {\n if (toHiddenOnly) {\n // trigger cb on change to hidden state only\n if (document.visibilityState === 'hidden') cb();\n return;\n }\n cb(document.visibilityState);\n }\n}","import { Timer } from './timer';\nimport { subscribeToVisibilityChange } from '../window/page-visibility';\nimport { debounce } from '../util/invoke';\nimport { isBrowserScope } from '../constants/runtime';\nexport class InteractionTimer extends Timer {\n constructor(opts, ms) {\n super(opts, ms);\n this.onPause = typeof opts.onPause === 'function' ? opts.onPause : () => {/* noop */};\n this.onRefresh = typeof opts.onRefresh === 'function' ? opts.onRefresh : () => {/* noop */};\n this.onResume = typeof opts.onResume === 'function' ? opts.onResume : () => {/* noop */};\n\n /** used to double-check LS state at resume time */\n this.readStorage = opts.readStorage;\n\n // used by pause/resume\n this.remainingMs = undefined;\n if (!opts.refreshEvents) opts.refreshEvents = ['click', 'keydown', 'scroll'];\n\n // the abort controller is used to \"reset\" the event listeners and prevent them from duplicating when new sessions are created\n try {\n this.abortController = new AbortController();\n } catch (e) {\n // this try-catch can be removed when IE11 is completely unsupported & gone\n }\n if (isBrowserScope && opts.ee) {\n if (opts.ee) {\n this.ee = opts.ee;\n const debouncedRefresh = debounce(this.refresh.bind(this), 500, {\n leading: true\n });\n this.refreshHandler = evts => {\n if (opts.refreshEvents.includes(evts?.[0]?.type)) {\n debouncedRefresh();\n }\n };\n opts.ee.on('fn-end', this.refreshHandler);\n }\n\n // watch for the vis state changing. If the page is hidden, the local inactivity timer should be paused\n // if the page is brought BACK to visibility and the timer hasnt \"naturally\" expired, refresh the timer...\n // this is to support the concept that other tabs could be experiencing activity. The thought would be that\n // \"backgrounded\" tabs would pause, while \"closed\" tabs that \"reopen\" will just instantiate a new SessionEntity class if restored\n // which will do a \"hard\" check of the timestamps.\n\n // NOTE -- this does not account for 2 browser windows open side by side, blurring/focusing between them\n // IF DEEMED necessary, more event handling would be needed to account for this.\n subscribeToVisibilityChange(state => {\n if (state === 'hidden') this.pause();\n // vis change --> visible is treated like a new interaction with the page\n else this.resume();\n }, false, false, this.abortController?.signal);\n }\n }\n abort() {\n this.clear();\n this.abortController?.abort();\n if (this.refreshHandler) {\n this.ee.removeEventListener('fn-end', this.refreshHandler);\n this.refreshHandler = this.ee = null;\n }\n }\n pause() {\n this.onPause();\n clearTimeout(this.timer);\n this.remainingMs = this.initialMs - (Date.now() - this.startTimestamp);\n }\n resume() {\n try {\n const lsData = this.readStorage();\n const obj = typeof lsData === 'string' ? JSON.parse(lsData) : lsData;\n if (isExpired(obj.expiresAt) || isExpired(obj.inactiveAt)) this.end();else {\n this.refresh();\n this.onResume(); // emit resume event after state updated\n }\n } catch (err) {\n this.end();\n }\n function isExpired(timestamp) {\n return Date.now() > timestamp;\n }\n }\n refresh(cb, ms) {\n this.clear();\n this.timer = this.create(cb, ms);\n this.startTimestamp = Date.now();\n this.remainingMs = undefined;\n this.onRefresh();\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Provides helper functions for wrapping functions in various scenarios.\n */\n\nimport { ee } from '../event-emitter/contextual-ee';\nimport { bundleId } from '../ids/bundle-id';\nexport const flag = \"nr@original:\".concat(bundleId);\n\n/**\n * A convenience alias of `hasOwnProperty`.\n * @type {function}\n */\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * For tracking whether an event is already being emitted inside the wrapper.\n * @type {boolean}\n */\nvar inWrapper = false;\n\n// eslint-disable-next-line\nexport default createWrapperWithEmitter;\n\n/**\n * Wraps a function in order to emit events on start, end, and error.\n * @param {Object} [emitter] - The desired emitter for events emitted by the wrapper. Defaults to the global emitter.\n * @param {boolean} always - If `true`, emit events even if already emitting an event.\n * @returns {function} The wrapped function.\n */\nexport function createWrapperWithEmitter(emitter, always) {\n emitter || (emitter = ee);\n wrapFn.inPlace = inPlace;\n\n /**\n * A flag used to determine if a native function has already been wrapped.\n * As a property on a wrapped function, contains the original function.\n * @type {string}\n */\n wrapFn.flag = flag;\n return wrapFn;\n\n /**\n * Wraps a function with event emitting functionality.\n * @param {function} fn - The function to wrap.\n * @param {string} prefix - A prefix for the names of emitted events.\n * @param {function|object} getContext - The function or object that will serve as the 'this' context for handlers of events emitted by this wrapper.\n * @param {string} methodName - The name of the method being wrapped.\n * @param {boolean} bubble - If true, emitted events should also bubble up to the old emitter upon which the `emitter` in the current scope was based (if it defines one).\n * @returns {function} The wrapped function.\n */\n function wrapFn(fn, prefix, getContext, methodName, bubble) {\n // Unless fn is both wrappable and unwrapped, return it unchanged.\n if (notWrappable(fn)) return fn;\n if (!prefix) prefix = '';\n nrWrapper[flag] = fn;\n copy(fn, nrWrapper, emitter);\n return nrWrapper;\n\n /**\n * A wrapper function that emits events before and after calling the wrapped function.\n * Any arguments will be passed along to the original function.\n * @returns {any} The return value of the wrapped function.\n */\n function nrWrapper() {\n var args;\n var originalThis;\n var ctx;\n var result;\n try {\n originalThis = this;\n args = [...arguments];\n if (typeof getContext === 'function') {\n ctx = getContext(args, originalThis);\n } else {\n ctx = getContext || {};\n }\n } catch (e) {\n report([e, '', [args, originalThis, methodName], ctx], emitter);\n }\n\n // Warning: start events may mutate args!\n safeEmit(prefix + 'start', [args, originalThis, methodName], ctx, bubble);\n try {\n result = fn.apply(originalThis, args);\n return result;\n } catch (err) {\n safeEmit(prefix + 'err', [args, originalThis, err], ctx, bubble);\n\n // rethrow error so we don't effect execution by observing.\n throw err;\n } finally {\n // happens no matter what.\n safeEmit(prefix + 'end', [args, originalThis, result], ctx, bubble);\n }\n }\n }\n\n /**\n * Creates wrapper functions around each of an array of methods on a specified object.\n * @param {Object} obj The object to which the specified methods belong.\n * @param {string[]} methods An array of method names to be wrapped.\n * @param {string} [prefix=''] A prefix to add to the names of emitted events. If `-` is the first character, also\n * adds the method name before the prefix.\n * @param {function|object} [getContext] The function or object that will serve as the 'this' context for handlers\n * of events emitted by this wrapper.\n * @param {boolean} [bubble=false] If `true`, emitted events should also bubble up to the old emitter upon which\n * the `emitter` in the current scope was based (if it defines one).\n */\n function inPlace(obj, methods, prefix, getContext, bubble) {\n if (!prefix) prefix = '';\n\n // If prefix starts with '-' set this boolean to add the method name to the prefix before passing each one to wrap.\n const prependMethodPrefix = prefix.charAt(0) === '-';\n for (let i = 0; i < methods.length; i++) {\n const method = methods[i];\n const fn = obj[method];\n\n // Unless fn is both wrappable and unwrapped, bail so we don't add extra properties with undefined values.\n if (notWrappable(fn)) continue;\n obj[method] = wrapFn(fn, prependMethodPrefix ? method + prefix : prefix, getContext, method, bubble);\n }\n }\n\n /**\n * Emits an event using the `emit` method of the `emitter` object in the executing scope, but only if an event is not\n * already being emitted (except when the executing scope defines `always` as `true`).\n * @param {string} evt - The name of the event to be emitted.\n * @param {array} arr - An array of arguments to pass with the event.\n * @param {Object} store - The function or object that will serve as the 'this'\n * context when applying handler functions for this event.\n * @param {boolean} bubble - If `true`, emitted events should also\n * bubble up to the old emitter upon which the `emitter` in the\n * executing scope was based (if it defines one).\n */\n function safeEmit(evt, arr, store, bubble) {\n if (inWrapper && !always) return;\n var prev = inWrapper;\n inWrapper = true;\n try {\n emitter.emit(evt, arr, store, always, bubble);\n } catch (e) {\n report([e, evt, arr, store], emitter);\n }\n inWrapper = prev;\n }\n}\n\n/**\n * Emits an \"internal-error\" event. Used to report errors encountered when emitting events using `safeEmit`.\n * @param {array} args - Arguments to be passed to the \"internal-error\" event.\n * @param {Object} [emitter] - The (optional) desired event emitter. Defaults to the global event emitter.\n */\nfunction report(args, emitter) {\n emitter || (emitter = ee);\n try {\n emitter.emit('internal-error', args);\n } catch (err) {\n // do nothing\n }\n}\n\n/**\n * Copies properties from one object to another. Used for creating a wrapper function from an original function and for\n * copying an original function to a property of a wrapper function named by `flag` in the executing context.\n * @param {Object} from - The source function or object.\n * @param {Object} to - The destination function or object.\n * @param {Object} [emitter] - The (optional) desired event emitter if errors are encountered while copying.\n * Defaults to the global event emitter.\n * @returns {object} - The destination founction or object with copied properties.\n */\nfunction copy(from, to, emitter) {\n if (Object.defineProperty && Object.keys) {\n // Create accessors that proxy to actual function\n try {\n var keys = Object.keys(from);\n // eslint-disable-next-line\n keys.forEach(function (key) {\n Object.defineProperty(to, key, {\n get: function () {\n return from[key];\n },\n // eslint-disable-next-line\n set: function (val) {\n from[key] = val;\n return val;\n }\n });\n });\n return to;\n } catch (e) {\n report([e], emitter);\n }\n }\n // fall back to copying properties\n for (var i in from) {\n if (has.call(from, i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\n/**\n * Determines whether a function is eligible to be wrapped in part based on whether it has already been wrapped.\n * @param {function} fn - The function in question.\n * @returns {boolean} Whether the passed function is ineligible to be wrapped.\n */\nfunction notWrappable(fn) {\n return !(fn && typeof fn === 'function' && fn.apply && !fn[flag]);\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Wraps `addEventListener` and `removeEventListener` for instrumentation.\n * This module is used directly by: session_trace.\n * It is also called by -> wrapXhr <-, so see \"wrap-xhr.js\" for features that use this indirectly.\n */\nimport { ee as baseEE, contextId } from '../event-emitter/contextual-ee';\nimport { createWrapperWithEmitter as wfn } from './wrap-function';\nimport { getOrSet } from '../util/get-or-set';\nimport { globalScope, isBrowserScope } from '../constants/runtime';\nconst wrapped = {};\nconst XHR = globalScope.XMLHttpRequest;\nconst ADD_EVENT_LISTENER = 'addEventListener';\nconst REMOVE_EVENT_LISTENER = 'removeEventListener';\nconst flag = \"nr@wrapped:\".concat(contextId);\n\n/**\n * Wraps `addEventListener` and `removeEventListener` on: global scope; the prototype of `XMLHttpRequest`, and\n * `document` (if in a browser scope). Adds custom events in context of a new emitter scoped only to these methods.\n * @param {Object} sharedEE - The shared event emitter on which a new scoped\n * event emitter will be based.\n * @returns {Object} Scoped event emitter with a debug ID of `events`.\n */\nexport function wrapEvents(sharedEE) {\n var ee = scopedEE(sharedEE);\n\n // Notice if our wrapping never ran yet, the falsy NaN will not early return; but if it has,\n // then we increment the count to track # of feats using this at runtime.\n if (wrapped[ee.debugId]++) return ee;\n wrapped[ee.debugId] = 1; // otherwise, first feature to wrap events\n var wrapFn = wfn(ee, true);\n\n // Guard against instrumenting environments w/o necessary features\n if ('getPrototypeOf' in Object) {\n if (isBrowserScope) findEventListenerProtoAndCb(document, wrapNode);\n findEventListenerProtoAndCb(globalScope, wrapNode);\n findEventListenerProtoAndCb(XHR.prototype, wrapNode);\n }\n ee.on(ADD_EVENT_LISTENER + '-start', function (args, target) {\n var originalListener = args[1];\n if (originalListener === null || typeof originalListener !== 'function' && typeof originalListener !== 'object') {\n return;\n }\n var wrapped = getOrSet(originalListener, flag, function () {\n var listener = {\n object: wrapHandleEvent,\n function: originalListener\n }[typeof originalListener];\n return listener ? wrapFn(listener, 'fn-', null, listener.name || 'anonymous') : originalListener;\n function wrapHandleEvent() {\n if (typeof originalListener.handleEvent !== 'function') return;\n return originalListener.handleEvent.apply(originalListener, arguments);\n }\n });\n this.wrapped = args[1] = wrapped;\n });\n ee.on(REMOVE_EVENT_LISTENER + '-start', function (args) {\n args[1] = this.wrapped || args[1];\n });\n function wrapNode(node) {\n wrapFn.inPlace(node, [ADD_EVENT_LISTENER, REMOVE_EVENT_LISTENER], '-', uniqueListener);\n }\n function uniqueListener(args, obj) {\n // Context for the listener is stored on itself.\n return args[1];\n }\n return ee;\n}\n/**\n * Find the base prototype of 'object' that has its own \"addEventListener\" property, and run some function on it.\n * @param {Object} object - the initial object to traverse prototype chain on\n * @param {Function} cb - the function to run on the ancestral object once found, accepts an object as a arg\n * @param {Array} rest - [optional] any additional arguments to pass to the cb\n */\nfunction findEventListenerProtoAndCb(object, cb) {\n let step = object;\n while (typeof step === 'object' && !Object.prototype.hasOwnProperty.call(step, ADD_EVENT_LISTENER)) {\n step = Object.getPrototypeOf(step);\n }\n for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n rest[_key - 2] = arguments[_key];\n }\n if (step) cb(step, ...rest);\n}\n\n/**\n * Returns an event emitter scoped specifically for the `events` context. This scoping is a remnant from when all the\n * features shared the same group in the event, to isolate events between features. It will likely be revisited.\n * @param {Object} sharedEE - Optional event emitter on which to base the scoped emitter.\n * Uses `ee` on the global scope if undefined).\n * @returns {Object} Scoped event emitter with a debug ID of 'events'.\n */\nexport function scopedEE(sharedEE) {\n return (sharedEE || baseEE).get('events');\n}","import { generateRandomHexString } from '../ids/unique-id';\nimport { warn } from '../util/console';\nimport { stringify } from '../util/stringify';\nimport { ee } from '../event-emitter/contextual-ee';\nimport { Timer } from '../timer/timer';\nimport { isBrowserScope } from '../constants/runtime';\nimport { DEFAULT_EXPIRES_MS, DEFAULT_INACTIVE_MS, MODE, PREFIX, SESSION_EVENTS, SESSION_EVENT_TYPES } from './constants';\nimport { InteractionTimer } from '../timer/interaction-timer';\nimport { wrapEvents } from '../wrap';\nimport { getModeledObject } from '../config/state/configurable';\nimport { handle } from '../event-emitter/handle';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../features/metrics/constants';\nimport { FEATURE_NAMES } from '../../loaders/features/features';\nimport { windowAddEventListener } from '../event-listener/event-listener-opts';\n\n// this is what can be stored in local storage (not enforced but probably should be)\n// these values should sync between local storage and the parent class props\nconst model = {\n value: '',\n inactiveAt: 0,\n expiresAt: 0,\n updatedAt: Date.now(),\n sessionReplayMode: MODE.OFF,\n sessionReplaySentFirstChunk: false,\n sessionTraceMode: MODE.OFF,\n traceHarvestStarted: false,\n serverTimeDiff: null,\n // set by TimeKeeper; \"undefined\" value will not be stringified and stored but \"null\" will\n custom: {}\n};\nexport class SessionEntity {\n /**\n * Create a self-managing Session Entity. This entity is scoped to the agent identifier which triggered it, allowing for multiple simultaneous session objects to exist.\n * There is one \"namespace\" an agent can store data in LS -- NRBA_{key}. If there are two agents on one page, and they both use the same key, they could overwrite each other since they would both use the same namespace in LS by default.\n * The value can be overridden in the constructor, but will default to a unique 16 character hex string\n * expiresMs and inactiveMs are used to \"expire\" the session, but can be overridden in the constructor. Pass 0 to disable expiration timers.\n */\n constructor(opts) {\n const {\n agentIdentifier,\n key,\n storage\n } = opts;\n if (!agentIdentifier || !key || !storage) {\n throw new Error(\"Missing required field(s):\".concat(!agentIdentifier ? ' agentID' : '').concat(!key ? ' key' : '').concat(!storage ? ' storage' : ''));\n }\n this.agentIdentifier = agentIdentifier;\n this.storage = storage;\n this.state = {};\n\n // key is intended to act as the k=v pair\n this.key = key;\n this.ee = ee.get(agentIdentifier);\n wrapEvents(this.ee);\n this.setup(opts);\n if (isBrowserScope) {\n windowAddEventListener('storage', event => {\n if (event.key === this.lookupKey) {\n const obj = typeof event.newValue === 'string' ? JSON.parse(event.newValue) : event.newValue;\n this.sync(obj);\n this.ee.emit(SESSION_EVENTS.UPDATE, [SESSION_EVENT_TYPES.CROSS_TAB, this.state]);\n }\n });\n }\n }\n setup(_ref) {\n let {\n value = generateRandomHexString(16),\n expiresMs = DEFAULT_EXPIRES_MS,\n inactiveMs = DEFAULT_INACTIVE_MS\n } = _ref;\n /** Ensure that certain properties are preserved across a reset if already set */\n const persistentAttributes = {\n serverTimeDiff: this.state.serverTimeDiff || model.serverTimeDiff\n };\n this.state = {};\n this.sync({\n ...model,\n ...persistentAttributes\n });\n\n // value is intended to act as the primary value of the k=v pair\n this.state.value = value;\n this.expiresMs = expiresMs;\n this.inactiveMs = inactiveMs;\n\n // the first time the session entity class is instantiated, we check the storage API for an existing\n // object. If it exists, the values inside the object are used to inform the timers that run locally.\n // if the initial read is empty, it allows us to set a \"fresh\" \"new\" session immediately.\n // the local timers are used after the session is running to \"expire\" the session, allowing for pausing timers etc.\n // the timestamps stored in the storage API can be checked at initial run, and when the page is restored, otherwise we lean\n // on the local timers to expire the session\n const initialRead = this.read();\n\n // the set-up of the timer used to expire the session \"naturally\" at a certain time\n // this gets ignored if the value is falsy, allowing for session entities that do not expire\n if (expiresMs) {\n this.state.expiresAt = initialRead?.expiresAt || this.getFutureTimestamp(expiresMs);\n this.expiresTimer = new Timer({\n // When the inactive timer ends, collect a SM and reset the session\n onEnd: () => {\n this.collectSM('expired');\n this.collectSM('duration');\n this.reset();\n }\n }, this.state.expiresAt - Date.now());\n } else {\n this.state.expiresAt = Infinity;\n }\n\n // the set-up of the timer used to expire the session due to \"inactivity\" at a certain time\n // this gets ignored if the value is falsy, allowing for session entities that do not expire\n // this gets \"refreshed\" when \"activity\" is observed\n if (inactiveMs) {\n this.state.inactiveAt = initialRead?.inactiveAt || this.getFutureTimestamp(inactiveMs);\n this.inactiveTimer = new InteractionTimer({\n // When the inactive timer ends, collect a SM and reset the session\n onEnd: () => {\n this.collectSM('inactive');\n this.collectSM('duration');\n this.reset();\n },\n // When the inactive timer refreshes, it will update the storage values with an update timestamp\n onRefresh: this.refresh.bind(this),\n onResume: () => {\n this.ee.emit(SESSION_EVENTS.RESUME);\n },\n // When the inactive timer pauses, update the storage values with an update timestamp\n onPause: () => {\n if (this.initialized) this.ee.emit(SESSION_EVENTS.PAUSE);\n this.write(getModeledObject(this.state, model));\n },\n ee: this.ee,\n refreshEvents: ['click', 'keydown', 'scroll'],\n readStorage: () => this.storage.get(this.lookupKey)\n }, this.state.inactiveAt - Date.now());\n } else {\n this.state.inactiveAt = Infinity;\n }\n\n // The fact that the session is \"new\" or pre-existing is used in some places in the agent. Session Replay and Trace\n // can use this info to inform whether to trust a new sampling decision vs continue a previous tracking effort.\n /* [NR-230914] 02/2024 - the logical OR assignment is used so that isNew remains 'true' if it was already set as such. This fixes the expires and inactive timestamps timing out in localStorage\n while no page for a given domain is in-use and the session resetting upon user returning to the page as part of a fresh session. */\n this.isNew ||= !Object.keys(initialRead).length;\n // if its a \"new\" session, we write to storage API with the default values. These values may change over the lifespan of the agent run.\n // we can use a modeled object here to help us know and manage what values are being used. -- see \"model\" above\n if (this.isNew) this.write(getModeledObject(this.state, model), true);else this.sync(initialRead);\n this.initialized = true;\n this.ee.emit(SESSION_EVENTS.STARTED, [this.isNew]);\n }\n\n // This is the actual key appended to the storage API\n get lookupKey() {\n return \"\".concat(PREFIX, \"_\").concat(this.key);\n }\n sync(data) {\n Object.assign(this.state, data);\n }\n\n /**\n * Fetch the stored values from the storage API tied to this entity\n * @returns {Object}\n */\n read() {\n try {\n const val = this.storage.get(this.lookupKey);\n if (!val) return {};\n // TODO - decompression would need to happen here if we decide to do it\n const obj = typeof val === 'string' ? JSON.parse(val) : val;\n if (this.isInvalid(obj)) return {};\n // if the session expires, collect a SM count before resetting\n if (this.isExpired(obj.expiresAt)) {\n this.collectSM('expired');\n this.collectSM('duration', obj, true);\n return this.reset();\n }\n // if \"inactive\" timer is expired at \"read\" time -- esp. initial read -- reset\n // collect a SM count before resetting\n if (this.isExpired(obj.inactiveAt)) {\n this.collectSM('inactive');\n this.collectSM('duration', obj, true);\n return this.reset();\n }\n return obj;\n } catch (e) {\n warn('Failed to read from storage API', e);\n // storage is inaccessible\n return {};\n }\n }\n\n /**\n * Store data to the storage API tied to this entity\n * To preseve existing attributes, the output of ...session.read()\n * should be appended to the data argument\n * @param {Object} data\n * @returns {Object}\n */\n write(data) {\n try {\n if (!data || typeof data !== 'object') return;\n // everytime we update, we can update a timestamp for sanity\n data.updatedAt = Date.now();\n this.sync(data); // update the parent class \"state\" properties with the local storage values\n //\n // TODO - compression would need happen here if we decide to do it\n this.storage.set(this.lookupKey, stringify(this.state));\n this.ee.emit(SESSION_EVENTS.UPDATE, [SESSION_EVENT_TYPES.SAME_TAB, this.state]);\n return data;\n } catch (e) {\n // storage is inaccessible\n warn('Failed to write to the storage API', e);\n return null;\n }\n }\n reset() {\n // this method should set off a chain of actions across the features by emitting 'new-session'\n // * send off pending payloads\n // * stop recording (stn and sr)...\n // * delete the session and start over\n try {\n if (this.initialized) this.ee.emit(SESSION_EVENTS.RESET);\n this.storage.remove(this.lookupKey);\n this.inactiveTimer?.abort?.();\n this.expiresTimer?.clear?.();\n delete this.isNew;\n this.setup({\n agentIdentifier: this.agentIdentifier,\n key: this.key,\n storage: this.storage,\n expiresMs: this.expiresMs,\n inactiveMs: this.inactiveMs\n });\n return this.read();\n } catch (e) {\n return {};\n }\n }\n\n /**\n * Refresh the inactivity timer data\n */\n refresh() {\n // read here & invalidate\n const existingData = this.read();\n this.write({\n ...existingData,\n inactiveAt: this.getFutureTimestamp(this.inactiveMs)\n });\n }\n\n /**\n * @param {number} timestamp\n * @returns {boolean}\n */\n isExpired(timestamp) {\n return Date.now() > timestamp;\n }\n\n /**\n * @param {Object} data\n * @returns {boolean}\n */\n isInvalid(data) {\n const requiredKeys = Object.keys(model);\n return !requiredKeys.every(x => Object.keys(data).includes(x));\n }\n collectSM(type, data, useUpdatedAt) {\n let value, tag;\n if (type === 'duration') {\n value = this.getDuration(data, useUpdatedAt);\n tag = 'Session/Duration/Ms';\n }\n if (type === 'expired') tag = 'Session/Expired/Seen';\n if (type === 'inactive') tag = 'Session/Inactive/Seen';\n if (tag) handle(SUPPORTABILITY_METRIC_CHANNEL, [tag, value], undefined, FEATURE_NAMES.metrics, this.ee);\n }\n getDuration() {\n let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state;\n let useUpdatedAt = arguments.length > 1 ? arguments[1] : undefined;\n const startingTimestamp = data.expiresAt - this.expiresMs;\n const endingTimestamp = !useUpdatedAt ? data.updatedAt : Date.now();\n return endingTimestamp - startingTimestamp;\n }\n\n /**\n * @param {number} futureMs - The number of ms to use to generate a future timestamp\n * @returns {number}\n */\n getFutureTimestamp(futureMs) {\n return Date.now() + futureMs;\n }\n syncCustomAttribute(key, value) {\n if (!isBrowserScope) return;\n if (value === null) {\n const curr = this.read();\n if (curr.custom) {\n delete curr.custom[key];\n this.write({\n ...curr\n });\n }\n } else {\n const curr = this.read();\n this.custom = {\n ...(curr?.custom || {}),\n [key]: value\n };\n this.write({\n ...curr,\n custom: this.custom\n });\n }\n }\n}","export class LocalStorage {\n get(key) {\n try {\n // localStorage strangely type-casts non-existing data to \"null\"...\n // Cast it back to undefined if it doesnt exist\n return localStorage.getItem(key) || undefined;\n } catch (err) {\n // Error is ignored\n return '';\n }\n }\n set(key, value) {\n try {\n if (value === undefined || value === null) return this.remove(key);\n return localStorage.setItem(key, value);\n } catch (err) {\n // Error is ignored\n }\n }\n remove(key) {\n try {\n localStorage.removeItem(key);\n } catch (err) {\n // Error is ignored\n }\n }\n}","import { getConfiguration, getInfo, getRuntime } from '../../common/config/config';\nimport { drain } from '../../common/drain/drain';\nimport { ee } from '../../common/event-emitter/contextual-ee';\nimport { registerHandler } from '../../common/event-emitter/register-handler';\nimport { SessionEntity } from '../../common/session/session-entity';\nimport { LocalStorage } from '../../common/storage/local-storage.js';\nimport { DEFAULT_KEY } from '../../common/session/constants';\nlet ranOnce = 0;\nexport function setupAgentSession(agentIdentifier) {\n const agentRuntime = getRuntime(agentIdentifier);\n if (ranOnce++) return agentRuntime.session;\n const sessionInit = getConfiguration(agentIdentifier).session;\n agentRuntime.session = new SessionEntity({\n agentIdentifier,\n key: DEFAULT_KEY,\n storage: new LocalStorage(),\n expiresMs: sessionInit?.expiresMs,\n inactiveMs: sessionInit?.inactiveMs\n });\n\n // Retrieve & re-add all of the persisted setCustomAttribute|setUserId k-v from previous page load(s), if any was stored.\n const customSessionData = agentRuntime.session.state.custom;\n const agentInfo = getInfo(agentIdentifier);\n if (customSessionData) {\n agentInfo.jsAttributes = {\n ...agentInfo.jsAttributes,\n ...customSessionData\n };\n }\n const sharedEE = ee.get(agentIdentifier);\n\n // any calls to newrelic.setCustomAttribute(<persisted>) will need to be added to:\n // local info.jsAttributes {}\n // the session's storage API\n registerHandler('api-setCustomAttribute', (time, key, value) => {\n agentRuntime.session.syncCustomAttribute(key, value);\n }, 'session', sharedEE);\n\n // any calls to newrelic.setUserId(...) will need to be added to:\n // local info.jsAttributes {}\n // the session's storage API\n registerHandler('api-setUserId', (time, key, value) => {\n agentRuntime.session.syncCustomAttribute(key, value);\n }, 'session', sharedEE);\n drain(agentIdentifier, 'session');\n return agentRuntime.session;\n}","import { FEATURE_NAMES } from '../../loaders/features/features';\n\n/**\n * Centralizes the lazy loading of agent feature aggregate and instrument sources.\n *\n * This function uses two defined switch cases to allow us to easily name our chunks and re-use these\n * chunks for different agent types. We do not use template strings or string concatenation here because\n * doing so makes it much more difficult to name the chunks and forces Webpack to \"guess\" what the chunks\n * should be.\n * @param featureName Name of the feature to import such as ajax or session_trace\n * @param featurePart Name of the feature part to load; should be either instrument or aggregate\n * @returns {Promise<InstrumentBase|FeatureBase|null>}\n */\nexport function lazyFeatureLoader(featureName, featurePart) {\n if (featurePart === 'aggregate') {\n switch (featureName) {\n case FEATURE_NAMES.ajax:\n return import( /* webpackChunkName: \"ajax-aggregate\" */'../ajax/aggregate');\n case FEATURE_NAMES.jserrors:\n return import( /* webpackChunkName: \"jserrors-aggregate\" */'../jserrors/aggregate');\n case FEATURE_NAMES.metrics:\n return import( /* webpackChunkName: \"metrics-aggregate\" */'../metrics/aggregate');\n case FEATURE_NAMES.pageAction:\n return import( /* webpackChunkName: \"page_action-aggregate\" */'../page_action/aggregate');\n case FEATURE_NAMES.pageViewEvent:\n return import( /* webpackChunkName: \"page_view_event-aggregate\" */'../page_view_event/aggregate');\n case FEATURE_NAMES.pageViewTiming:\n return import( /* webpackChunkName: \"page_view_timing-aggregate\" */'../page_view_timing/aggregate');\n case FEATURE_NAMES.sessionReplay:\n return import( /* webpackChunkName: \"session_replay-aggregate\" */'../session_replay/aggregate');\n case FEATURE_NAMES.sessionTrace:\n return import( /* webpackChunkName: \"session_trace-aggregate\" */'../session_trace/aggregate');\n case FEATURE_NAMES.spa:\n return import( /* webpackChunkName: \"spa-aggregate\" */'../spa/aggregate');\n case FEATURE_NAMES.softNav:\n return import( /* webpackChunkName: \"basic-spa-aggregate\" */'../soft_navigations/aggregate');\n default:\n throw new Error(\"Attempted to load unsupported agent feature: \".concat(featureName, \" \").concat(featurePart));\n }\n }\n}","import { FEATURE_NAMES } from '../features/features';\nimport { getRuntime } from '../../common/config/config';\nimport { ee } from '../../common/event-emitter/contextual-ee';\nimport { handle } from '../../common/event-emitter/handle';\nimport { registerHandler } from '../../common/event-emitter/register-handler';\nimport { single } from '../../common/util/invoke';\nimport { CUSTOM_METRIC_CHANNEL } from '../../features/metrics/constants';\nimport { originTime } from '../../common/constants/runtime';\nexport function setAPI(agentIdentifier) {\n var instanceEE = ee.get(agentIdentifier);\n var api = {\n finished: single(finished),\n setErrorHandler,\n addToTrace,\n addRelease\n };\n\n // Hook all of the api functions up to the queues/stubs created in loader/api.js\n Object.entries(api).forEach(_ref => {\n let [fnName, fnCall] = _ref;\n return registerHandler('api-' + fnName, fnCall, 'api', instanceEE);\n });\n\n // All API functions get passed the time they were called as their\n // first parameter. These functions can be called asynchronously.\n\n function finished(t, providedTime) {\n var time = providedTime ? providedTime - originTime : t;\n handle(CUSTOM_METRIC_CHANNEL, ['finished', {\n time\n }], undefined, FEATURE_NAMES.metrics, instanceEE);\n addToTrace(t, {\n name: 'finished',\n start: time + originTime,\n origin: 'nr'\n });\n handle('api-addPageAction', [time, 'finished'], undefined, FEATURE_NAMES.pageAction, instanceEE);\n }\n function addToTrace(t, evt) {\n if (!(evt && typeof evt === 'object' && evt.name && evt.start)) return;\n var report = {\n n: evt.name,\n s: evt.start - originTime,\n e: (evt.end || evt.start) - originTime,\n o: evt.origin || '',\n t: 'api'\n };\n handle('bstApi', [report], undefined, FEATURE_NAMES.sessionTrace, instanceEE);\n }\n function setErrorHandler(t, handler) {\n getRuntime(agentIdentifier).onerror = handler;\n }\n var releaseCount = 0;\n function addRelease(t, name, id) {\n if (++releaseCount > 10) return;\n getRuntime(agentIdentifier).releaseIds[name.slice(-200)] = ('' + id).slice(-200);\n }\n}","/**\n * @file Contains common methods used to transmit harvested data.\n * @copyright 2023 New Relic Corporation. All rights reserved.\n * @license Apache-2.0\n */\n\nimport { isBrowserScope, supportsSendBeacon } from '../constants/runtime';\n\n/**\n * @typedef {xhr|beacon} NetworkMethods\n */\n\n/**\n * Determines the submit method to use based on options.\n * @param {object} opts Options used to determine submit method.\n * @param {boolean} opts.isFinalHarvest Indicates if the data submission is due to\n * a final harvest within the agent.\n */\nexport function getSubmitMethod() {\n let {\n isFinalHarvest = false\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return isFinalHarvest && isBrowserScope && supportsSendBeacon\n // Use sendBeacon for final harvest\n ? beacon\n // Only IE does not support sendBeacon for final harvest\n // If not final harvest, or not browserScope, always use xhr post\n : xhr;\n}\n\n/**\n * Send via XHR\n * @param {Object} args - The args.\n * @param {string} args.url - The URL to send to.\n * @param {string=} args.body - The Stringified body. Default null to prevent IE11 from breaking.\n * @param {boolean=} args.sync - Run XHR synchronously.\n * @param {string=} [args.method=POST] - The XHR method to use.\n * @param {{key: string, value: string}[]} [args.headers] - The headers to attach.\n * @returns {XMLHttpRequest}\n */\nexport function xhr(_ref) {\n let {\n url,\n body = null,\n sync,\n method = 'POST',\n headers = [{\n key: 'content-type',\n value: 'text/plain'\n }]\n } = _ref;\n const request = new XMLHttpRequest();\n request.open(method, url, !sync);\n try {\n // Set cookie\n if ('withCredentials' in request) request.withCredentials = true;\n } catch (e) {\n // do nothing\n }\n headers.forEach(header => {\n request.setRequestHeader(header.key, header.value);\n });\n request.send(body);\n return request;\n}\n\n/**\n * Send via sendBeacon. Do NOT call this function outside of a guaranteed web window environment.\n * @param {Object} args - The args\n * @param {string} args.url - The URL to send to\n * @param {string=} args.body - The Stringified body\n * @returns {boolean}\n */\nexport function beacon(_ref2) {\n let {\n url,\n body\n } = _ref2;\n try {\n // Navigator has to be bound to ensure it does not error in some browsers\n // https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n const send = window.navigator.sendBeacon.bind(window.navigator);\n return send(url, body);\n } catch (err) {\n // if sendBeacon still trys to throw an illegal invocation error,\n // we can catch here and return\n return false;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { mapOwn } from '../util/map-own';\nimport { stringify } from '../util/stringify';\n\n// Characters that are safe in a qs, but get encoded.\nvar charMap = {\n '%2C': ',',\n '%3A': ':',\n '%2F': '/',\n '%40': '@',\n '%24': '$',\n '%3B': ';'\n};\nvar charList = mapOwn(charMap, function (k) {\n return k;\n});\nvar safeEncoded = new RegExp(charList.join('|'), 'g');\nfunction real(c) {\n return charMap[c];\n}\n\n// Encode as URI Component, then unescape anything that is ok in the\n// query string position.\nexport function qs(value) {\n if (value === null || value === undefined) return 'null';\n return encodeURIComponent(value).replace(safeEncoded, real);\n}\nexport function fromArray(qs, maxBytes) {\n var bytes = 0;\n for (var i = 0; i < qs.length; i++) {\n bytes += qs[i].length;\n if (bytes > maxBytes) return qs.slice(0, i).join('');\n }\n return qs.join('');\n}\nexport function obj(payload, maxBytes) {\n var total = 0;\n var result = '';\n mapOwn(payload, function (feature, dataArray) {\n var intermediate = [];\n var next;\n var i;\n if (typeof dataArray === 'string' || !Array.isArray(dataArray) && dataArray !== null && dataArray !== undefined && dataArray.toString().length) {\n next = '&' + feature + '=' + qs(dataArray);\n total += next.length;\n result += next;\n } else if (Array.isArray(dataArray) && dataArray.length) {\n total += 9;\n for (i = 0; i < dataArray.length; i++) {\n next = qs(stringify(dataArray[i]));\n total += next.length;\n if (typeof maxBytes !== 'undefined' && total >= maxBytes) break;\n intermediate.push(next);\n }\n result += '&' + feature + '=%5B' + intermediate.join(',') + '%5D';\n }\n });\n return result;\n}\n\n// Constructs an HTTP parameter to add to the BAM router URL\nexport function param(name, value) {\n let base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (Object.keys(base).includes(name)) return ''; // we assume if feature supplied a matching qp to the base, we should honor what the feature sent over the default\n if (value && typeof value === 'string') {\n return '&' + name + '=' + qs(value);\n }\n return '';\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * This method only exists to support testing in JIL and can be removed once tests are migrated to WDIO.\n * @returns global scope location\n */\nexport function getLocation() {\n return '' + location;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar patternWithHash = /([^?#]*)[^#]*(#[^?]*|$).*/;\nvar patternWithoutHash = /([^?#]*)().*/;\n\n/**\n * Cleans a URL by removing the query string and fragment (hash portion).\n * @param {string} url - The original URL to be cleaned.\n * @param {boolean} [keepHash=false] - Whether to preserve the hash portion of the URL.\n * @returns {string} The cleaned URL.\n */\nexport function cleanURL(url, keepHash) {\n return url.replace(keepHash ? patternWithHash : patternWithoutHash, '$1$2');\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { globalScope } from '../constants/runtime';\nexport function isFileProtocol() {\n return Boolean(globalScope?.location?.protocol === 'file:');\n}","import { getConfigurationValue } from '../config/config';\nimport { SharedContext } from '../context/shared-context';\nimport { isFileProtocol } from '../url/protocol';\nimport { warn } from './console';\nvar fileProtocolRule = {\n regex: /^file:\\/\\/(.*)/,\n replacement: atob('ZmlsZTovL09CRlVTQ0FURUQ=')\n};\nexport class Obfuscator extends SharedContext {\n shouldObfuscate() {\n return getRules(this.sharedContext.agentIdentifier).length > 0;\n }\n\n // applies all regex obfuscation rules to provided URL string and returns the result\n obfuscateString(string) {\n // if string is empty string, null or not a string, return unmodified\n if (!string || typeof string !== 'string') return string;\n var rules = getRules(this.sharedContext.agentIdentifier);\n var obfuscated = string;\n\n // apply every rule to URL string\n for (var i = 0; i < rules.length; i++) {\n var regex = rules[i].regex;\n var replacement = rules[i].replacement || '*';\n obfuscated = obfuscated.replace(regex, replacement);\n }\n return obfuscated;\n }\n}\n\n// TO DO: this function should be inside the Obfuscator class since its context relates to agentID\nexport function getRules(agentIdentifier) {\n var rules = [];\n var configRules = getConfigurationValue(agentIdentifier, 'obfuscate') || [];\n rules = rules.concat(configRules);\n if (isFileProtocol()) rules.push(fileProtocolRule);\n // could add additional runtime/environment-specific rules here\n\n return rules;\n}\n\n// takes array of rule objects, logs warning and returns false if any portion of rule is invalid\nexport function validateRules(rules) {\n var invalidReplacementDetected = false;\n var invalidRegexDetected = false;\n for (var i = 0; i < rules.length; i++) {\n if (!('regex' in rules[i])) {\n warn('An obfuscation replacement rule was detected missing a \"regex\" value.');\n invalidRegexDetected = true;\n } else if (typeof rules[i].regex !== 'string' && !(rules[i].regex instanceof RegExp)) {\n warn('An obfuscation replacement rule contains a \"regex\" value with an invalid type (must be a string or RegExp)');\n invalidRegexDetected = true;\n }\n var replacement = rules[i].replacement;\n if (replacement && typeof replacement !== 'string') {\n warn('An obfuscation replacement rule contains a \"replacement\" value with an invalid type (must be a string)');\n invalidReplacementDetected = true;\n }\n }\n return !invalidReplacementDetected && !invalidRegexDetected;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Applies a function to properties of a specified type in an object, recursively.\n *\n * @param {Object} obj - The object to apply the function to.\n * @param {Function} fn - The function to apply to matching properties.\n * @param {string} [type='string'] - The type of properties to apply the function to.\n * @param {Array<string>} [ignoreKeys=[]] - The keys of properties to ignore and not modify.\n * @returns {Object} - The object with function recursively applied.\n */\nexport function applyFnToProps(obj, fn) {\n let type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'string';\n let ignoreKeys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n if (!obj || typeof obj !== 'object') return obj;\n Object.keys(obj).forEach(property => {\n if (typeof obj[property] === 'object') {\n applyFnToProps(obj[property], fn, type, ignoreKeys);\n } else {\n // eslint-disable-next-line valid-typeof\n if (typeof obj[property] === type && !ignoreKeys.includes(property)) obj[property] = fn(obj[property]);\n }\n });\n return obj;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { obj as encodeObj, param as encodeParam } from '../url/encode';\nimport { stringify } from '../util/stringify';\nimport * as submitData from '../util/submit-data';\nimport { getLocation } from '../url/location';\nimport { getInfo, getConfigurationValue, getRuntime, getConfiguration } from '../config/config';\nimport { cleanURL } from '../url/clean-url';\nimport { eventListenerOpts } from '../event-listener/event-listener-opts';\nimport { Obfuscator } from '../util/obfuscate';\nimport { applyFnToProps } from '../util/traverse';\nimport { SharedContext } from '../context/shared-context';\nimport { VERSION } from \"../constants/env.npm\";\nimport { isWorkerScope, isIE } from '../constants/runtime';\nimport { warn } from '../util/console';\nimport { now } from '../timing/now';\nconst warnings = {};\n\n/**\n * @typedef {import('./types.js').NetworkSendSpec} NetworkSendSpec\n * @typedef {import('./types.js').HarvestEndpointIdentifier} HarvestEndpointIdentifier\n * @typedef {import('./types.js').HarvestPayload} HarvestPayload\n * @typedef {import('./types.js').FeatureHarvestCallback} FeatureHarvestCallback\n * @typedef {import('./types.js').FeatureHarvestCallbackOptions} FeatureHarvestCallbackOptions\n */\nexport class Harvest extends SharedContext {\n constructor(parent) {\n super(parent); // gets any allowed properties from the parent and stores them in `sharedContext`\n\n this.tooManyRequestsDelay = getConfigurationValue(this.sharedContext.agentIdentifier, 'harvest.tooManyRequestsDelay') || 60;\n this.obfuscator = new Obfuscator(this.sharedContext);\n this._events = {};\n }\n\n /**\n * Initiate a harvest from multiple sources. An event that corresponds to the endpoint\n * name is emitted, which gives any listeners the opportunity to provide payload data.\n * Note: Used by page_action\n * @param {NetworkSendSpec} spec Specification for sending data\n */\n sendX() {\n let spec = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const submitMethod = submitData.getSubmitMethod({\n isFinalHarvest: spec.opts?.unload\n });\n const options = {\n retry: !spec.opts?.unload && submitMethod === submitData.xhr,\n isFinalHarvest: spec.opts?.unload === true\n };\n const payload = this.createPayload(spec.endpoint, options);\n const caller = this.obfuscator.shouldObfuscate() ? this.obfuscateAndSend.bind(this) : this._send.bind(this);\n return caller({\n ...spec,\n payload,\n submitMethod\n });\n }\n\n /**\n * Initiate a harvest call.\n * @param {NetworkSendSpec} spec Specification for sending data\n */\n send() {\n let spec = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const caller = this.obfuscator.shouldObfuscate() ? this.obfuscateAndSend.bind(this) : this._send.bind(this);\n return caller(spec);\n }\n\n /**\n * Apply obfuscation rules to the payload and then initial the harvest network call.\n * @param {NetworkSendSpec} spec Specification for sending data\n */\n obfuscateAndSend() {\n var _this = this;\n let spec = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n payload = {}\n } = spec;\n applyFnToProps(payload, function () {\n return _this.obfuscator.obfuscateString(...arguments);\n }, 'string', ['e']);\n return this._send({\n ...spec,\n payload\n });\n }\n\n /**\n * Initiate a harvest call. Typically used by `sendX` and `send` methods or called directly\n * for raw network calls.\n * @param {NetworkSendSpec} param0 Specification for sending data\n * @returns {boolean} True if the network call succeeded. For final harvest calls, the return\n * value should not be relied upon because network calls will be made asynchronously.\n */\n _send(_ref) {\n let {\n endpoint,\n payload = {},\n opts = {},\n submitMethod,\n cbFinished,\n customUrl,\n raw,\n includeBaseParams = true\n } = _ref;\n const info = getInfo(this.sharedContext.agentIdentifier);\n if (!info.errorBeacon) return false;\n const agentRuntime = getRuntime(this.sharedContext.agentIdentifier);\n let {\n body,\n qs\n } = this.cleanPayload(payload);\n if (Object.keys(body).length === 0 && !opts?.sendEmptyBody) {\n // no payload body? nothing to send, just run onfinish stuff and return\n if (cbFinished) {\n cbFinished({\n sent: false\n });\n }\n return false;\n }\n const init = getConfiguration(this.sharedContext.agentIdentifier);\n const protocol = init.ssl === false ? 'http' : 'https';\n const perceviedBeacon = init.proxy.beacon || info.errorBeacon;\n const endpointURLPart = endpoint !== 'rum' ? \"/\".concat(endpoint) : '';\n let url = \"\".concat(protocol, \"://\").concat(perceviedBeacon).concat(endpointURLPart, \"/1/\").concat(info.licenseKey);\n if (customUrl) url = customUrl;\n if (raw) url = \"\".concat(protocol, \"://\").concat(perceviedBeacon, \"/\").concat(endpoint);\n const baseParams = !raw && includeBaseParams ? this.baseQueryString(qs, endpoint) : '';\n let payloadParams = encodeObj(qs, agentRuntime.maxBytes);\n if (!submitMethod) {\n submitMethod = submitData.getSubmitMethod({\n isFinalHarvest: opts.unload\n });\n }\n if (baseParams === '' && payloadParams.startsWith('&')) {\n payloadParams = payloadParams.substring(1);\n }\n const fullUrl = \"\".concat(url, \"?\").concat(baseParams).concat(payloadParams);\n const gzip = !!qs?.attributes?.includes('gzip');\n if (!gzip) {\n if (endpoint === 'events') {\n body = body.e;\n } else {\n body = stringify(body);\n }\n /** Warn --once per endpoint-- if the agent tries to send large payloads */\n if (body.length > 750000 && (warnings[endpoint] = (warnings?.[endpoint] || 0) + 1) === 1) warn(\"The Browser Agent is attempting to send a very large payload to /\".concat(endpoint, \". This is usually tied to large amounts of custom attributes. Please check your configurations.\"));\n }\n if (!body || body.length === 0 || body === '{}' || body === '[]') {\n // If body is null, undefined, or an empty object or array, send an empty string instead\n body = '';\n }\n const headers = [];\n headers.push({\n key: 'content-type',\n value: 'text/plain'\n });\n\n /* Since workers don't support sendBeacon right now, they can only use XHR method.\n Because they still do permit synch XHR, the idea is that at final harvest time (worker is closing),\n we just make a BLOCKING request--trivial impact--with the remaining data as a temp fill-in for sendBeacon.\n Following the removal of img-element method, IE will also use sync XHR on page dismissal to ensure final analytics are sent. */\n let result = submitMethod({\n url: fullUrl,\n body,\n sync: opts.unload && (isWorkerScope || isIE),\n headers\n });\n if (!opts.unload && cbFinished && submitMethod === submitData.xhr) {\n const harvestScope = this;\n result.addEventListener('loadend', function () {\n // `this` refers to the XHR object in this scope, do not change this to a fat arrow\n // status 0 refers to a local error, such as CORS or network failure, or a blocked request by the browser (e.g. adblocker)\n const cbResult = {\n sent: this.status !== 0,\n status: this.status,\n xhr: this,\n fullUrl\n };\n if (this.status === 429) {\n cbResult.retry = true;\n cbResult.delay = harvestScope.tooManyRequestsDelay;\n } else if (this.status === 408 || this.status === 500 || this.status === 503) {\n cbResult.retry = true;\n }\n if (opts.needResponse) {\n cbResult.responseText = this.responseText;\n }\n cbFinished(cbResult);\n }, eventListenerOpts(false));\n }\n const runtime = getRuntime(this.sharedContext.agentIdentifier);\n runtime.harvestCount++;\n return result;\n }\n\n // The stuff that gets sent every time.\n baseQueryString(qs, endpoint) {\n const runtime = getRuntime(this.sharedContext.agentIdentifier);\n const info = getInfo(this.sharedContext.agentIdentifier);\n const location = cleanURL(getLocation());\n const ref = this.obfuscator.shouldObfuscate() ? this.obfuscator.obfuscateString(location) : location;\n const hr = runtime?.session?.state.sessionReplayMode === 1 && endpoint !== 'jserrors';\n const qps = ['a=' + info.applicationID, encodeParam('sa', info.sa ? '' + info.sa : ''), encodeParam('v', VERSION), transactionNameParam(info), encodeParam('ct', runtime.customTransaction), '&rst=' + now(), '&ck=0',\n // ck param DEPRECATED - still expected by backend\n '&s=' + (runtime.session?.state.value || '0'),\n // the 0 id encaps all untrackable and default traffic\n encodeParam('ref', ref), encodeParam('ptid', runtime.ptid ? '' + runtime.ptid : '')];\n if (hr) qps.push(encodeParam('hr', '1', qs));\n return qps.join('');\n }\n\n /**\n * Calls and accumulates data from registered harvesting functions based on\n * the endpoint being harvested.\n * @param {HarvestEndpointIdentifier} endpoint BAM endpoint identifier.\n * @param {FeatureHarvestCallbackOptions} options Options to be passed to the\n * feature harvest listener callback.\n * @returns {HarvestPayload} Payload object to transmit to the bam endpoint.\n */\n createPayload(endpoint, options) {\n const listeners = this._events[endpoint];\n const payload = {\n body: {},\n qs: {}\n };\n if (Array.isArray(listeners) && listeners.length > 0) {\n for (let i = 0; i < listeners.length; i++) {\n const singlePayload = listeners[i](options);\n if (singlePayload) {\n payload.body = {\n ...payload.body,\n ...(singlePayload.body || {})\n };\n payload.qs = {\n ...payload.qs,\n ...(singlePayload.qs || {})\n };\n }\n }\n }\n return payload;\n }\n\n /**\n * Cleans and returns a payload object containing a body and qs\n * object with key/value pairs. KV pairs where the value is null,\n * undefined, or an empty string are removed to save on transmission\n * size.\n * @param {HarvestPayload} payload Payload to be sent to the endpoint.\n * @returns {HarvestPayload} Cleaned payload payload to be sent to the endpoint.\n */\n cleanPayload() {\n let payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const clean = input => {\n if (typeof Uint8Array !== 'undefined' && input instanceof Uint8Array || Array.isArray(input)) return input;\n if (typeof input === 'string') return input.length > 0 ? input : null;\n return Object.entries(input || {}).reduce((accumulator, _ref2) => {\n let [key, value] = _ref2;\n if (typeof value === 'number' || typeof value === 'string' && value.length > 0 || typeof value === 'object' && Object.keys(value || {}).length > 0) {\n accumulator[key] = value;\n }\n return accumulator;\n }, {});\n };\n return {\n body: clean(payload.body),\n qs: clean(payload.qs)\n };\n }\n\n /**\n * Registers a function to be called when harvesting is triggered for a specific\n * endpoint.\n * @param {HarvestEndpointIdentifier} endpoint\n * @param {FeatureHarvestCallback} listener\n */\n on(endpoint, listener) {\n if (!Array.isArray(this._events[endpoint])) {\n this._events[endpoint] = [];\n }\n this._events[endpoint].push(listener);\n }\n}\n\n// Constructs the transaction name param for the beacon URL.\n// Prefers the obfuscated transaction name over the plain text.\n// Falls back to making up a name.\nfunction transactionNameParam(info) {\n if (info.transactionName) return encodeParam('to', info.transactionName);\n return encodeParam('t', info.tNamePlain || 'Unnamed Transaction');\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { windowAddEventListener } from '../event-listener/event-listener-opts';\nimport { globalScope, isWorkerScope, isBrowserScope } from '../constants/runtime';\nimport { subscribeToVisibilityChange } from '../window/page-visibility';\nif (isWorkerScope) {\n globalScope.cleanupTasks = []; // create new list on WorkerGlobalScope to track funcs to run before exiting thread\n\n const origClose = globalScope.close;\n globalScope.close = () => {\n // on worker's EoL signal, execute all \"listeners\", e.g. final harvests\n for (let task of globalScope.cleanupTasks) {\n task();\n }\n origClose();\n };\n}\n\n/**\n * Subscribes a provided callback to the time/event when the agent should treat it as end-of-life.\n * This is used, for example, to submit a final harvest and send all remaining data on best-effort.\n * @param {function} cb - func to run before or during the last reliable event or time of an env's life span\n */\nexport function subscribeToEOL(cb) {\n if (isBrowserScope) {\n subscribeToVisibilityChange(cb, true); // when user switches tab or hides window, esp. mobile scenario\n windowAddEventListener('pagehide', cb); // when user navigates away, and because safari iOS v14.4- doesn't fully support vis change\n // --this ought to be removed once support for version below 14.5 phases out\n } else if (isWorkerScope) {\n globalScope.cleanupTasks.push(cb); // close() should run these tasks before quitting thread\n }\n // By default (for other env), this fn has no effect.\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as submitData from '../util/submit-data';\nimport { SharedContext } from '../context/shared-context';\nimport { Harvest } from './harvest';\nimport { subscribeToEOL } from '../unload/eol';\nimport { SESSION_EVENTS } from '../session/constants';\n\n/**\n * Periodically invokes harvest calls and handles retries\n */\nexport class HarvestScheduler extends SharedContext {\n /**\n * Create a HarvestScheduler\n * @param {string} endpoint - The base BAM endpoint name -- ex. 'events'\n * @param {object} opts - The options used to configure the HarvestScheduler\n * @param {Function} opts.onFinished - The callback to be fired when a harvest has finished\n * @param {Function} opts.getPayload - A callback which can be triggered to return a payload for harvesting\n * @param {number} opts.retryDelay - The number of seconds to wait before retrying after a network failure\n * @param {boolean} opts.raw - Use a prefabricated payload shape as the harvest payload without the need for formatting\n * @param {string} opts.customUrl - A custom url that falls outside of the shape of the standard BAM harvester url pattern. Will use directly instead of concatenating various pieces\n * @param {*} parent - The parent object, whose state can be passed into SharedContext\n */\n constructor(endpoint, opts, parent) {\n super(parent); // gets any allowed properties from the parent and stores them in `sharedContext`\n this.endpoint = endpoint;\n this.opts = opts || {};\n this.started = false;\n this.timeoutHandle = null;\n this.aborted = false; // this controls the per-interval and final harvests for the scheduler (currently per feature specific!)\n this.harvesting = false;\n this.harvest = new Harvest(this.sharedContext);\n\n // unload if EOL mechanism fires\n subscribeToEOL(this.unload.bind(this));\n\n /* Flush all buffered data if session resets and give up retries. This should be synchronous to ensure that the correct `session` value is sent.\n Since session-reset generates a new session ID and the ID is grabbed at send-time, any delays or retries would cause the payload to be sent under\n the wrong session ID. */\n this.sharedContext?.ee.on(SESSION_EVENTS.RESET, () => this.runHarvest({\n forceNoRetry: true\n }));\n }\n\n /**\n * This function is only meant for the last outgoing harvest cycle of a page. It trickles down to using sendBeacon, which should not be used\n * to send payloads while the page is still active, due to limitations on how much data can be buffered in the API at any one time.\n */\n unload() {\n if (this.aborted) return;\n // If opts.onUnload is defined, these are special actions to execute before attempting to send the final payload.\n if (this.opts.onUnload) this.opts.onUnload();\n this.runHarvest({\n unload: true\n });\n }\n startTimer(interval, initialDelay) {\n this.interval = interval;\n this.started = true;\n this.scheduleHarvest(initialDelay != null ? initialDelay : this.interval);\n }\n stopTimer() {\n let permanently = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.aborted = permanently; // stopping permanently is same as aborting, but this function also cleans up the setTimeout loop\n this.started = false;\n if (this.timeoutHandle) {\n clearTimeout(this.timeoutHandle);\n }\n }\n scheduleHarvest(delay, opts) {\n if (this.timeoutHandle) return;\n if (delay == null) {\n delay = this.interval;\n }\n this.timeoutHandle = setTimeout(() => {\n this.timeoutHandle = null;\n this.runHarvest(opts);\n }, delay * 1000);\n }\n runHarvest(opts) {\n if (this.aborted) return;\n this.harvesting = true;\n\n /**\n * This is executed immediately after harvest sends the data via XHR, or if there's nothing to send. Note that this excludes on unloading / sendBeacon.\n * @param {Object} result\n */\n const cbRanAfterSend = result => {\n this.harvesting = false;\n if (opts?.forceNoRetry) result.retry = false; // discard unsent data rather than re-queuing for next harvest attempt\n this.onHarvestFinished(opts, result);\n };\n let harvests = [];\n let submitMethod;\n let payload;\n if (this.opts.getPayload) {\n // Ajax & PVT & SR features provide a callback function to get data for harvesting\n submitMethod = submitData.getSubmitMethod({\n isFinalHarvest: opts?.unload\n });\n if (!submitMethod) return false;\n const retry = !opts?.unload && submitMethod === submitData.xhr;\n payload = this.opts.getPayload({\n retry,\n ...opts\n });\n if (!payload) {\n if (this.started) {\n this.scheduleHarvest();\n }\n return;\n }\n payload = Object.prototype.toString.call(payload) === '[object Array]' ? payload : [payload];\n harvests.push(...payload);\n }\n\n /** sendX is used for features that do not supply a preformatted payload via \"getPayload\" */\n let send = args => this.harvest.sendX(args);\n if (harvests.length) {\n /** _send is the underlying method for sending in the harvest, if sending raw we can bypass the other helpers completely which format the payloads */\n if (this.opts.raw) send = args => this.harvest._send(args);\n /** send is used to formated the payloads from \"getPayload\" and obfuscate before sending */else send = args => this.harvest.send(args);\n } else {\n // force it to run at least once in sendX mode\n harvests.push(undefined);\n }\n harvests.forEach(payload => {\n send({\n endpoint: this.endpoint,\n payload,\n opts,\n submitMethod,\n cbFinished: cbRanAfterSend,\n customUrl: this.opts.customUrl,\n raw: this.opts.raw\n });\n });\n if (this.started) {\n this.scheduleHarvest();\n }\n }\n onHarvestFinished(opts, result) {\n if (this.opts.onFinished) {\n this.opts.onFinished(result);\n }\n if (result.sent && result.retry) {\n const delay = result.delay || this.opts.retryDelay;\n // reschedule next harvest if should be delayed longer\n if (this.started && delay) {\n clearTimeout(this.timeoutHandle);\n this.timeoutHandle = null;\n this.scheduleHarvest(delay, opts);\n } else if (!this.started && delay) {\n // if not running on a timer, schedule a single retry\n this.scheduleHarvest(delay, opts);\n }\n }\n }\n}","/** An array of filter objects {hostname, pathname} for identifying XHR events to be excluded from collection.\n * @see {@link https://docs.newrelic.com/docs/browser/new-relic-browser/configuration/filter-ajax-request-events/ Filter AjaxRequest events}\n * @type {Array.<{hostname: string, pathname: string}>}\n */\nvar denyList = [];\n\n/**\n * Evaluates whether an XHR event should be included for collection based on the {@link denyList|AjaxRequest deny list}.\n * @param {Object} params - object with properties of the XHR event\n * @returns {boolean} `true` if request does not match any entries of {@link denyList|deny list}; else `false`\n */\nexport function shouldCollectEvent(params) {\n if (hasUndefinedHostname(params)) return false;\n if (denyList.length === 0) return true;\n for (var i = 0; i < denyList.length; i++) {\n var parsed = denyList[i];\n if (parsed.hostname === '*') {\n return false;\n }\n if (domainMatchesPattern(parsed.hostname, params.hostname) && comparePath(parsed.pathname, params.pathname)) {\n return false;\n }\n }\n return true;\n}\nexport function hasUndefinedHostname(params) {\n return params.hostname === undefined; // requests with an undefined hostname (e.g., data URLs) should not be collected.\n}\n\n/**\n * Initializes the {@link denyList|XHR deny list} by extracting hostname and pathname from an array of filter strings.\n * @param {string[]} denyListConfig - array of URL filters to identify XHR requests to be excluded from collection\n */\nexport function setDenyList(denyListConfig) {\n denyList = [];\n if (!denyListConfig || !denyListConfig.length) {\n return;\n }\n for (var i = 0; i < denyListConfig.length; i++) {\n let url = denyListConfig[i];\n if (!url) continue; // ignore bad values like undefined or empty strings\n\n if (url.indexOf('http://') === 0) {\n url = url.substring(7);\n } else if (url.indexOf('https://') === 0) {\n url = url.substring(8);\n }\n const firstSlash = url.indexOf('/');\n let host, pathname;\n if (firstSlash > 0) {\n host = url.substring(0, firstSlash);\n pathname = url.substring(firstSlash);\n } else {\n host = url;\n pathname = '';\n }\n let [hostname] = host.split(':');\n denyList.push({\n hostname,\n pathname\n });\n }\n}\n/**\n * Returns true if the right side of `domain` (end of string) matches `pattern`.\n * @param {string} pattern - a string to be matched against the end of `domain` string\n * @param {string} domain - a domain string with no protocol or path (e.g., app1.example.com)\n * @returns {boolean} `true` if domain matches pattern; else `false`\n */\nfunction domainMatchesPattern(pattern, domain) {\n if (pattern.length > domain.length) {\n return false;\n }\n return domain.indexOf(pattern) === domain.length - pattern.length;\n}\n\n/**\n * Returns true if a URL path matches a pattern string, disregarding leading slashes.\n * @param {string} pattern - a string to compare with path (e.g., api/v1)\n * @param {string} path - a string representing a URL path (e.g., /api/v1)\n * @returns {boolean} `true` if path and pattern are an exact string match (except for leading slashes); else `false`\n */\nfunction comparePath(pattern, path) {\n if (pattern.indexOf('/') === 0) {\n pattern = pattern.substring(1);\n }\n if (path.indexOf('/') === 0) {\n path = path.substring(1);\n }\n\n // No path in pattern means match all paths.\n if (pattern === '') {\n return true;\n }\n return pattern === path;\n}","import { FEATURE_NAMES } from '../../loaders/features/features';\nexport const FEATURE_NAME = FEATURE_NAMES.ajax;\nexport const MAX_PAYLOAD_SIZE = 1000000;","import { FeatureBase } from './feature-base';\nimport { getInfo, isConfigured, getRuntime } from '../../common/config/config';\nimport { configure } from '../../loaders/configure/configure';\nimport { gosCDN } from '../../common/window/nreum';\nimport { drain } from '../../common/drain/drain';\nimport { activatedFeatures } from '../../common/util/feature-flags';\nexport class AggregateBase extends FeatureBase {\n constructor() {\n super(...arguments);\n this.checkConfiguration();\n }\n\n /**\n * New handler for waiting for multiple flags. Useful when expecting multiple flags simultaneously (ex. stn vs sr)\n * @param {string[]} flagNames\n * @returns {Promise}\n */\n waitForFlags() {\n let flagNames = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return new Promise((resolve, reject) => {\n if (activatedFeatures[this.agentIdentifier]) {\n resolve(buildOutput(activatedFeatures[this.agentIdentifier]));\n } else {\n this.ee.on('rumresp', function () {\n let resp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n resolve(buildOutput(resp));\n });\n }\n function buildOutput(ref) {\n return flagNames.map(flag => {\n if (!ref[flag]) return 0;\n return ref[flag];\n });\n }\n });\n }\n drain() {\n drain(this.agentIdentifier, this.featureName);\n this.drained = true;\n }\n\n /**\n * Checks for additional `jsAttributes` items to support backward compatibility with implementations of the agent where\n * loader configurations may appear after the loader code is executed.\n */\n checkConfiguration() {\n // NOTE: This check has to happen at aggregator load time\n if (!isConfigured(this.agentIdentifier)) {\n let jsAttributes = {\n ...gosCDN().info?.jsAttributes\n };\n try {\n jsAttributes = {\n ...jsAttributes,\n ...getInfo(this.agentIdentifier)?.jsAttributes\n };\n } catch (err) {\n // do nothing\n }\n configure({\n agentIdentifier: this.agentIdentifier\n }, {\n ...gosCDN(),\n info: {\n ...gosCDN().info,\n jsAttributes\n },\n runtime: getRuntime(this.agentIdentifier)\n });\n }\n }\n}","import { isPureObject } from '../../../common/util/type-check';\n\n/**\n * @typedef {object} GQLMetadata\n * @property {string} operationName Name of the operation\n * @property {string} operationType Type of the operation\n * @property {string} operationFramework Framework responsible for the operation\n */\n\n/**\n * Parses and returns the graphql metadata from a network request. If the network\n * request is not a graphql call, undefined will be returned.\n * @param {object|string} body Ajax request body\n * @param {string} query Ajax request query param string\n * @returns {GQLMetadata | undefined}\n */\nexport function parseGQL() {\n let {\n body,\n query\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!body && !query) return;\n try {\n const gqlBody = parseBatchGQL(parseGQLContents(body));\n if (gqlBody) return gqlBody;\n const gqlQuery = parseSingleGQL(parseGQLQueryString(query));\n if (gqlQuery) return gqlQuery;\n } catch (err) {\n // parsing failed, return undefined\n }\n}\n\n/**\n * @param {string|Object} gql The GraphQL object body sent to a GQL server\n * @returns {GQLMetadata}\n */\nfunction parseSingleGQL(contents) {\n if (typeof contents !== 'object' || !contents.query || typeof contents.query !== 'string') return;\n\n /** parses gql query string and returns [fullmatch, type match, name match] */\n const matches = contents.query.trim().match(/^(query|mutation|subscription)\\s?(\\w*)/);\n const operationType = matches?.[1];\n if (!operationType) return;\n const operationName = contents.operationName || matches?.[2] || 'Anonymous';\n return {\n operationName,\n // the operation name of the indiv query\n operationType,\n // query, mutation, or subscription,\n operationFramework: 'GraphQL'\n };\n}\nfunction parseBatchGQL(contents) {\n if (!contents) return;\n if (!Array.isArray(contents)) contents = [contents];\n const opNames = [];\n const opTypes = [];\n for (let content of contents) {\n const operation = parseSingleGQL(content);\n if (!operation) continue;\n opNames.push(operation.operationName);\n opTypes.push(operation.operationType);\n }\n if (!opTypes.length) return;\n return {\n operationName: opNames.join(','),\n // the operation name of the indiv query -- joined by ',' for batched results\n operationType: opTypes.join(','),\n // query, mutation, or subscription -- joined by ',' for batched results\n operationFramework: 'GraphQL'\n };\n}\nfunction parseGQLContents(gqlContents) {\n let contents;\n if (!gqlContents || typeof gqlContents !== 'string' && typeof gqlContents !== 'object') return;else if (typeof gqlContents === 'string') contents = JSON.parse(gqlContents);else contents = gqlContents;\n if (!isPureObject(contents) && !Array.isArray(contents)) return;\n let isValid = false;\n if (Array.isArray(contents)) isValid = contents.some(x => validateGQLObject(x));else isValid = validateGQLObject(contents);\n if (!isValid) return;\n return contents;\n}\nfunction parseGQLQueryString(gqlQueryString) {\n if (!gqlQueryString || typeof gqlQueryString !== 'string') return;\n const params = new URLSearchParams(gqlQueryString);\n return parseGQLContents(Object.fromEntries(params));\n}\nfunction validateGQLObject(obj) {\n return !(typeof obj !== 'object' || !obj.query || typeof obj.query !== 'string');\n}","/**\n * Tests a passed object to see if it is a pure object or not. All non-primatives in JS\n * are technically objects and would pass a `typeof` check.\n * @param {*} obj Input object to be tested\n**/\nexport function isPureObject(obj) {\n return obj?.constructor === {}.constructor;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { mapOwn } from '../util/map-own';\nimport { stringify } from '../util/stringify';\nimport { Obfuscator } from '../util/obfuscate';\nvar hasOwnProp = Object.prototype.hasOwnProperty;\nvar MAX_ATTRIBUTES = 64;\nexport function nullable(val, fn, comma) {\n return val || val === 0 || val === '' ? fn(val) + (comma ? ',' : '') : '!';\n}\nexport function numeric(n, noDefault) {\n if (noDefault) {\n return Math.floor(n).toString(36);\n }\n return n === undefined || n === 0 ? '' : Math.floor(n).toString(36);\n}\nexport function getAddStringContext(agentIdentifier) {\n // eslint-disable-next-line\n var stringTable = Object.hasOwnProperty('create') ? Object.create(null) : {};\n var stringTableIdx = 0;\n return addString;\n function addString(str) {\n if (typeof str === 'undefined' || str === '') return '';\n var obfuscator = new Obfuscator({\n agentIdentifier\n });\n str = String(str);\n if (obfuscator.shouldObfuscate()) str = obfuscator.obfuscateString(str);\n if (hasOwnProp.call(stringTable, str)) {\n return numeric(stringTable[str], true);\n } else {\n stringTable[str] = stringTableIdx++;\n return quoteString(str);\n }\n }\n}\nexport function addCustomAttributes(attrs, addString) {\n var attrParts = [];\n mapOwn(attrs, function (key, val) {\n if (attrParts.length >= MAX_ATTRIBUTES) return;\n var type = 5;\n var serializedValue;\n // add key to string table first\n key = addString(key);\n switch (typeof val) {\n case 'object':\n if (val) {\n // serialize objects to strings\n serializedValue = addString(stringify(val));\n } else {\n // null attribute type\n type = 9;\n }\n break;\n case 'number':\n type = 6;\n // make sure numbers contain a `.` so they are parsed as doubles\n serializedValue = val % 1 ? val : val + '.';\n break;\n case 'boolean':\n type = val ? 7 : 8;\n break;\n case 'undefined':\n // we treat undefined as a null attribute (since dirac does not have a concept of undefined)\n type = 9;\n break;\n default:\n serializedValue = addString(val);\n }\n attrParts.push([type, key + (serializedValue ? ',' + serializedValue : '')]);\n });\n return attrParts;\n}\nvar escapable = /([,\\\\;])/g;\nfunction quoteString(str) {\n return \"'\" + str.replace(escapable, '\\\\$1');\n}","import { nullable, numeric, getAddStringContext, addCustomAttributes } from '../../../common/serialize/bel-serializer';\nimport { getInfo } from '../../../common/config/config';\nexport default class Chunk {\n constructor(events, aggregateInstance) {\n this.addString = getAddStringContext(aggregateInstance.agentIdentifier); // pass agentIdentifier here\n this.events = events;\n this.payload = 'bel.7;';\n for (let i = 0; i < events.length; i++) {\n const event = events[i];\n const fields = [numeric(event.startTime), numeric(event.endTime - event.startTime), numeric(0),\n // callbackEnd\n numeric(0),\n // no callbackDuration for non-SPA events\n this.addString(event.method), numeric(event.status), this.addString(event.domain), this.addString(event.path), numeric(event.requestSize), numeric(event.responseSize), event.type === 'fetch' ? 1 : '', this.addString(0),\n // nodeId\n nullable(event.spanId, this.addString, true) +\n // guid\n nullable(event.traceId, this.addString, true) +\n // traceId\n nullable(event.spanTimestamp, numeric, false) // timestamp\n ];\n let insert = '2,';\n\n // Since configuration objects (like info) are created new each time they are set, we have to grab the current pointer to the attr object here.\n const jsAttributes = getInfo(aggregateInstance.agentIdentifier).jsAttributes;\n\n // add custom attributes\n // gql decorators are added as custom attributes to alleviate need for new BEL schema\n const attrParts = addCustomAttributes({\n ...(jsAttributes || {}),\n ...(event.gql || {})\n }, this.addString);\n fields.unshift(numeric(attrParts.length));\n insert += fields.join(',');\n if (attrParts && attrParts.length > 0) {\n insert += ';' + attrParts.join(';');\n }\n if (i + 1 < events.length) insert += ';';\n this.payload += insert;\n }\n this.tooBig = this.payload.length * 2 > aggregateInstance.MAX_PAYLOAD_SIZE;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { registerHandler } from '../../../common/event-emitter/register-handler';\nimport { stringify } from '../../../common/util/stringify';\nimport { handle } from '../../../common/event-emitter/handle';\nimport { getConfiguration, getInfo, getRuntime } from '../../../common/config/config';\nimport { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';\nimport { setDenyList, shouldCollectEvent } from '../../../common/deny-list/deny-list';\nimport { FEATURE_NAME } from '../constants';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../metrics/constants';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { parseGQL } from './gql';\nimport { getNREUMInitializedAgent } from '../../../common/window/nreum';\nimport Chunk from './chunk';\nexport class Aggregate extends AggregateBase {\n static featureName = FEATURE_NAME;\n #agentInfo;\n #agentRuntime;\n #agentInit;\n constructor(agentIdentifier, aggregator) {\n super(agentIdentifier, aggregator, FEATURE_NAME);\n this.#agentInfo = getInfo(agentIdentifier);\n this.#agentRuntime = getRuntime(agentIdentifier);\n this.#agentInit = getConfiguration(agentIdentifier);\n const harvestTimeSeconds = this.#agentInit.ajax.harvestTimeSeconds || 10;\n this.MAX_PAYLOAD_SIZE = this.#agentInit.ajax.maxPayloadSize || 1000000;\n setDenyList(this.#agentRuntime.denyList);\n this.ajaxEvents = [];\n this.spaAjaxEvents = {};\n this.sentAjaxEvents = [];\n const classThis = this;\n\n // --- v Used by old spa feature\n this.ee.on('interactionDone', (interaction, wasSaved) => {\n if (!this.spaAjaxEvents[interaction.id]) return;\n if (!wasSaved) {\n // if the ixn was saved, then its ajax reqs are part of the payload whereas if it was discarded, it should still be harvested in the ajax feature itself\n this.spaAjaxEvents[interaction.id].forEach(item => this.ajaxEvents.push(item));\n }\n delete this.spaAjaxEvents[interaction.id];\n });\n // --- ^\n // --- v Used by new soft nav\n registerHandler('returnAjax', event => this.ajaxEvents.push(event), this.featureName, this.ee);\n // --- ^\n registerHandler('xhr', function () {\n // the EE-drain system not only switches \"this\" but also passes a new EventContext with info. Should consider platform refactor to another system which passes a mutable context around separately and predictably to avoid problems like this.\n classThis.storeXhr(...arguments, this); // this switches the context back to the class instance while passing the NR context as an argument -- see \"ctx\" in storeXhr\n }, this.featureName, this.ee);\n this.waitForFlags([]).then(() => {\n const scheduler = new HarvestScheduler('events', {\n onFinished: this.onEventsHarvestFinished.bind(this),\n getPayload: this.prepareHarvest.bind(this)\n }, this);\n scheduler.startTimer(harvestTimeSeconds);\n this.drain();\n });\n }\n storeXhr(params, metrics, startTime, endTime, type, ctx) {\n metrics.time = startTime;\n\n // send to session traces\n let hash;\n if (params.cat) {\n hash = stringify([params.status, params.cat]);\n } else {\n hash = stringify([params.status, params.host, params.pathname]);\n }\n const shouldCollect = shouldCollectEvent(params);\n const shouldOmitAjaxMetrics = this.#agentInit.feature_flags?.includes('ajax_metrics_deny_list');\n\n // store for timeslice metric (harvested by jserrors feature)\n if (shouldCollect || !shouldOmitAjaxMetrics) {\n this.aggregator.store('xhr', hash, params, metrics);\n }\n if (!shouldCollect) {\n if (params.hostname === this.#agentInfo.errorBeacon || this.#agentInit.proxy?.beacon && params.hostname === this.#agentInit.proxy.beacon) {\n // This doesn't make a distinction if the same-domain request is going to a different port or path...\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['Ajax/Events/Excluded/Agent'], undefined, FEATURE_NAMES.metrics, this.ee);\n if (shouldOmitAjaxMetrics) handle(SUPPORTABILITY_METRIC_CHANNEL, ['Ajax/Metrics/Excluded/Agent'], undefined, FEATURE_NAMES.metrics, this.ee);\n } else {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['Ajax/Events/Excluded/App'], undefined, FEATURE_NAMES.metrics, this.ee);\n if (shouldOmitAjaxMetrics) handle(SUPPORTABILITY_METRIC_CHANNEL, ['Ajax/Metrics/Excluded/App'], undefined, FEATURE_NAMES.metrics, this.ee);\n }\n return; // do not send this ajax as an event\n }\n handle('bstXhrAgg', ['xhr', hash, params, metrics], undefined, FEATURE_NAMES.sessionTrace, this.ee); // have trace feature harvest AjaxNode\n\n const event = {\n method: params.method,\n status: params.status,\n domain: params.host,\n path: params.pathname,\n requestSize: metrics.txSize,\n responseSize: metrics.rxSize,\n type,\n startTime,\n endTime,\n callbackDuration: metrics.cbTime\n };\n if (ctx.dt) {\n event.spanId = ctx.dt.spanId;\n event.traceId = ctx.dt.traceId;\n event.spanTimestamp = this.#agentRuntime.timeKeeper.correctAbsoluteTimestamp(ctx.dt.timestamp);\n }\n\n // parsed from the AJAX body, looking for operationName param & parsing query for operationType\n event.gql = params.gql = parseGQL({\n body: ctx.body,\n query: ctx.parsedOrigin?.search\n });\n if (event.gql) handle(SUPPORTABILITY_METRIC_CHANNEL, ['Ajax/Events/GraphQL/Bytes-Added', stringify(event.gql).length], undefined, FEATURE_NAMES.metrics, this.ee);\n const softNavInUse = Boolean(getNREUMInitializedAgent(this.agentIdentifier)?.features?.[FEATURE_NAMES.softNav]);\n if (softNavInUse) {\n // For newer soft nav (when running), pass the event to it for evaluation -- either part of an interaction or is given back\n handle('ajax', [event], undefined, FEATURE_NAMES.softNav, this.ee);\n } else if (ctx.spaNode) {\n // For old spa (when running), if the ajax happened inside an interaction, hold it until the interaction finishes\n const interactionId = ctx.spaNode.interaction.id;\n this.spaAjaxEvents[interactionId] = this.spaAjaxEvents[interactionId] || [];\n this.spaAjaxEvents[interactionId].push(event);\n } else {\n this.ajaxEvents.push(event);\n }\n }\n prepareHarvest(options) {\n options = options || {};\n if (this.ajaxEvents.length === 0) return null;\n const payload = this.#getPayload(this.ajaxEvents);\n const payloadObjs = [];\n for (let i = 0; i < payload.length; i++) payloadObjs.push({\n body: {\n e: payload[i]\n }\n });\n if (options.retry) this.sentAjaxEvents = this.ajaxEvents;\n this.ajaxEvents = [];\n return payloadObjs;\n }\n onEventsHarvestFinished(result) {\n if (result.retry && this.sentAjaxEvents.length > 0) {\n this.ajaxEvents.unshift(...this.sentAjaxEvents);\n this.sentAjaxEvents = [];\n }\n }\n #getPayload(events, numberOfChunks) {\n numberOfChunks = numberOfChunks || 1;\n const payload = [];\n const chunkSize = events.length / numberOfChunks;\n const eventChunks = splitChunks.call(this, events, chunkSize);\n let tooBig = false;\n for (let i = 0; i < eventChunks.length; i++) {\n const currentChunk = eventChunks[i];\n if (currentChunk.tooBig) {\n if (currentChunk.events.length > 1) {\n tooBig = true;\n break; // if the payload is too big BUT is made of more than 1 event, we can split it down again\n }\n // Otherwise, if it consists of one sole event, we do not send it (discarded) since we cannot break it apart any further.\n } else {\n payload.push(currentChunk.payload);\n }\n }\n // Check if the current payload string is too big, if so then run getPayload again with more buckets.\n return tooBig ? this.#getPayload(events, ++numberOfChunks) : payload;\n function splitChunks(arr, chunkSize) {\n chunkSize = chunkSize || arr.length;\n const chunks = [];\n for (let i = 0, len = arr.length; i < len; i += chunkSize) {\n chunks.push(new Chunk(arr.slice(i, i + chunkSize), this));\n }\n return chunks;\n }\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst canonicalFunctionNameRe = /([a-z0-9]+)$/i;\n\n/**\n * Given a function name string, extracts only an alphanumeric segment at the end of the string (if one exists).\n * This is useful for stack traces, where functions might not be named (e.g., anonymous, computed).\n *\n * @param {string} functionNameString - The original function name string.\n * @returns {string|undefined} The canonical function name, or undefined if the input is falsy or no alphanumeric segments are found.\n */\nexport function canonicalFunctionName(functionNameString) {\n if (!functionNameString) return;\n const match = functionNameString.match(canonicalFunctionNameRe);\n if (match) return match[1];\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar stripNewlinesRegex = /^\\n+|\\n+$/g;\nvar MAX_STACK_TRACE_LENGTH = 65530;\nexport function formatStackTrace(stackLines) {\n return truncateStackLines(stackLines).replace(stripNewlinesRegex, '');\n}\n\n// takes array of stack lines and returns string with top 50 and buttom 50 lines\nfunction truncateStackLines(stackLines) {\n var stackString;\n if (stackLines.length > 100) {\n var truncatedLines = stackLines.length - 100;\n stackString = stackLines.slice(0, 50).join('\\n');\n stackString += '\\n< ...truncated ' + truncatedLines + ' lines... >\\n';\n stackString += stackLines.slice(-50).join('\\n');\n } else {\n stackString = stackLines.join('\\n');\n }\n return stackString;\n}\n\n// truncates stack string to limit what is sent to backend\nexport function truncateSize(stackString) {\n return stackString.length > MAX_STACK_TRACE_LENGTH ? stackString.substr(0, MAX_STACK_TRACE_LENGTH) : stackString;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { initialLocation } from '../constants/runtime';\nimport { cleanURL } from './clean-url';\n\n/**\n * Converts a URL to its basic form without a query string or fragment. If the resulting URL is the same as the\n * loader's origin URL, returns '<inline>'.\n * @param {string} url - The URL to be canonicalized.\n * @param {string} loaderOriginUrl - The origin URL of the agent loader, used for inline detection.\n * @returns {string} The canonicalized URL, or '<inline>' if the URL matches the loader origin URL.\n */\nexport function canonicalizeUrl(url) {\n if (typeof url !== 'string') return '';\n const cleanedUrl = cleanURL(url);\n const cleanedGlobalScopeUrl = cleanURL(initialLocation);\n\n // If the URL matches the origin URL of the loader, we assume it originated within an inline script.\n if (cleanedUrl === cleanedGlobalScopeUrl) {\n return '<inline>';\n } else {\n return cleanedUrl;\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable no-useless-escape */\n\n// computeStackTrace: cross-browser stack traces in JavaScript\n//\n// Syntax:\n// s = computeStackTrace(exception) // consider using TraceKit.report instead\n// Returns:\n// s.name - exception name\n// s.message - exception message\n// s.stack[i].url - JavaScript or HTML file URL\n// s.stack[i].func - function name, or empty for anonymous functions\n// s.stack[i].line - line number, if known\n// s.stack[i].column - column number, if known\n// s.stack[i].context - an array of source code lines; the middle element corresponds to the correct line#\n// s.mode - 'stack', 'stacktrace', 'multiline', 'callers', 'onerror', or 'failed' -- method used to collect the stack trace\n//\n// Supports:\n// - Firefox: full stack trace with line numbers and unreliable column\n// number on top frame\n// - Chrome: full stack trace with line and column numbers\n// - Safari: line and column number for the topmost stacktrace element\n// only\n// - IE: no line numbers whatsoever\n\n// Contents of Exception in various browsers.\n//\n// SAFARI:\n// ex.message = Can't find variable: qq\n// ex.line = 59\n// ex.sourceId = 580238192\n// ex.sourceURL = http://...\n// ex.expressionBeginOffset = 96\n// ex.expressionCaretOffset = 98\n// ex.expressionEndOffset = 98\n// ex.name = ReferenceError\n//\n// FIREFOX:\n// ex.message = qq is not defined\n// ex.fileName = http://...\n// ex.lineNumber = 59\n// ex.stack = ...stack trace... (see the example below)\n// ex.name = ReferenceError\n//\n// CHROME:\n// ex.message = qq is not defined\n// ex.name = ReferenceError\n// ex.type = not_defined\n// ex.arguments = ['aa']\n// ex.stack = ...stack trace...\n//\n// INTERNET EXPLORER:\n// ex.message = ...\n// ex.name = ReferenceError\nimport { formatStackTrace } from './format-stack-trace';\nimport { canonicalizeUrl } from '../../../common/url/canonicalize-url';\nvar debug = false;\nvar classNameRegex = /function (.+?)\\s*\\(/;\nvar chrome = /^\\s*at (?:((?:\\[object object\\])?(?:[^(]*\\([^)]*\\))*[^()]*(?: \\[as \\S+\\])?) )?\\(?((?:file|http|https|chrome-extension):.*?)?:(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar gecko = /^\\s*(?:(\\S*|global code)(?:\\(.*?\\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\\d+)(?::(\\d+))?\\s*$/i;\nvar chromeEval = /^\\s*at .+ \\(eval at \\S+ \\((?:(?:file|http|https):[^)]+)?\\)(?:, [^:]*:\\d+:\\d+)?\\)$/i;\nvar ieEval = /^\\s*at Function code \\(Function code:\\d+:\\d+\\)\\s*/i;\n\n/**\n * Represents an error with a stack trace.\n * @typedef {Object} StackInfo\n * @property {string} name - The name of the error (e.g. 'TypeError').\n * @property {string} message - The error message.\n * @property {string} stackString - The stack trace as a string.\n * @property {Array<Object>} frames - An array of frames in the stack trace.\n * @property {string} frames.url - The URL of the file containing the code for the frame.\n * @property {string} frames.func - The name of the function associated with the frame.\n * @property {number} frames.line - The line number of the code in the frame.\n */\n\n/**\n * Attempts to compute a stack trace for the given exception.\n * @param {Error} ex - The exception for which to compute the stack trace.\n * @returns {StackInfo} A stack trace object containing information about the frames on the stack.\n */\nexport function computeStackTrace(ex) {\n var stack = null;\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (debug) {\n throw e;\n }\n }\n try {\n stack = computeStackTraceBySourceAndLine(ex);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (debug) {\n throw e;\n }\n }\n try {\n stack = computeStackTraceWithMessageOnly(ex);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (debug) {\n throw e;\n }\n }\n return {\n mode: 'failed',\n stackString: '',\n frames: []\n };\n}\n\n/**\n * Computes stack trace information from the stack property. Chrome and Gecko use this property.\n *\n * @param {Error} ex - The error object to compute the stack trace for.\n * @return {?Object.<string, *>} Stack trace information.\n */\nfunction computeStackTraceFromStackProp(ex) {\n if (!ex.stack) {\n return null;\n }\n var errorInfo = ex.stack.split('\\n').reduce(parseStackProp, {\n frames: [],\n stackLines: [],\n wrapperSeen: false\n });\n if (!errorInfo.frames.length) return null;\n return {\n mode: 'stack',\n name: ex.name || getClassName(ex),\n message: ex.message,\n stackString: formatStackTrace(errorInfo.stackLines),\n frames: errorInfo.frames\n };\n}\n\n/**\n * Parses a line from a JavaScript error stack trace and adds it to the given `info` object.\n * Ignores all stack entries thrown from one of our wrapper functions.\n *\n * @param {object} info - The `info` object to add the parsed line to.\n * @param {string} line - The line to parse.\n * @returns {object} The `info` object with the parsed line added.\n */\nfunction parseStackProp(info, line) {\n let element = getStackElement(line);\n\n // This catches lines that aren't frames (like the first line stating the error).\n if (!element) {\n info.stackLines.push(line);\n return info;\n }\n\n // Once we've seen a wrapper, ignore all subsequent stack entries.\n if (isNrWrapper(element.func)) info.wrapperSeen = true;\n if (!info.wrapperSeen) {\n // Query strings and fragments should be removed, and URLs matching the loader's origin should be \"<inline>\".\n let canonicalUrl = canonicalizeUrl(element.url);\n if (canonicalUrl !== element.url) {\n line = line.replace(element.url, canonicalUrl);\n element.url = canonicalUrl;\n }\n info.stackLines.push(line);\n info.frames.push(element);\n }\n return info;\n}\n\n/**\n * Parses a line from a JavaScript error stack trace to extract information about a stack trace element, such as the\n * URL, function name, line number, and column number.\n *\n * @param {string} line - A single line from a JavaScript error stack trace.\n * @returns {object} An object containing information about the stack trace element, including the URL, function\n * name, line number, and column number (if available).\n */\nfunction getStackElement(line) {\n var parts = line.match(gecko);\n if (!parts) parts = line.match(chrome);\n if (parts) {\n return {\n url: parts[2],\n func: parts[1] !== 'Anonymous function' && parts[1] !== 'global code' && parts[1] || null,\n line: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n }\n if (line.match(chromeEval) || line.match(ieEval) || line === 'anonymous') {\n return {\n func: 'evaluated code'\n };\n }\n}\n\n/**\n * Computes a stack trace object from an error object, by extracting the source and line number from the error object,\n * and using them to create a single stack frame.\n *\n * @param {Error} ex - The error object to compute the stack trace for.\n * @returns {Object|null} - An object representing the computed stack trace, or null if the\n * input error object does not contain a line number.\n */\nfunction computeStackTraceBySourceAndLine(ex) {\n if (!('line' in ex)) return null;\n var className = ex.name || getClassName(ex);\n\n // Safari does not provide a URL for errors in eval'd code\n if (!ex.sourceURL) {\n return {\n mode: 'sourceline',\n name: className,\n message: ex.message,\n stackString: className + ': ' + ex.message + '\\n in evaluated code',\n frames: [{\n func: 'evaluated code'\n }]\n };\n }\n\n // Remove any query string and fragment\n var canonicalUrl = canonicalizeUrl(ex.sourceURL);\n var stackString = className + ': ' + ex.message + '\\n at ' + canonicalUrl;\n if (ex.line) {\n stackString += ':' + ex.line;\n if (ex.column) {\n stackString += ':' + ex.column;\n }\n }\n return {\n mode: 'sourceline',\n name: className,\n message: ex.message,\n stackString,\n frames: [{\n url: canonicalUrl,\n line: ex.line,\n column: ex.column\n }]\n };\n}\n\n/**\n * For exceptions with no stack and only a message, derives a stack trace by extracting the class name and message.\n *\n * @param {Error} ex - The exception for which to compute the stack trace.\n * @returns {StackTrace} A stack trace object containing the name and message of the exception.\n */\nfunction computeStackTraceWithMessageOnly(ex) {\n var className = ex.name || getClassName(ex);\n if (!className) return null;\n return {\n mode: 'nameonly',\n name: className,\n message: ex.message,\n stackString: className + ': ' + ex.message,\n frames: []\n };\n}\n\n/**\n * Attempts to extract the name of the constructor function (the class) of the given object.\n *\n * @param {Object} obj - The object for which to extract the constructor function name.\n * @returns {string} The name of the constructor function, or 'unknown' if the name cannot be determined.\n */\nfunction getClassName(obj) {\n var results = classNameRegex.exec(String(obj.constructor));\n return results && results.length > 1 ? results[1] : 'unknown';\n}\n\n/**\n * Checks whether the given function name is a New Relic wrapper function.\n *\n * @param {string} functionName - The name of the function to check.\n * @returns {boolean} True if the function name includes the string 'nrWrapper', false otherwise.\n */\nfunction isNrWrapper(functionName) {\n return functionName && functionName.indexOf('nrWrapper') >= 0;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport function stringHashCode(string) {\n var hash = 0;\n var charVal;\n if (!string || !string.length) return hash;\n for (var i = 0; i < string.length; i++) {\n charVal = string.charCodeAt(i);\n hash = (hash << 5) - hash + charVal;\n hash = hash | 0; // Convert to 32bit integer\n }\n return hash;\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { canonicalFunctionName } from './canonical-function-name';\nimport { computeStackTrace } from './compute-stack-trace';\nimport { stringHashCode } from './string-hash-code';\nimport { truncateSize } from './format-stack-trace';\nimport { registerHandler as register } from '../../../common/event-emitter/register-handler';\nimport { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';\nimport { stringify } from '../../../common/util/stringify';\nimport { handle } from '../../../common/event-emitter/handle';\nimport { mapOwn } from '../../../common/util/map-own';\nimport { getInfo, getConfigurationValue, getRuntime } from '../../../common/config/config';\nimport { globalScope } from '../../../common/constants/runtime';\nimport { FEATURE_NAME } from '../constants';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { getNREUMInitializedAgent } from '../../../common/window/nreum';\nimport { deregisterDrain } from '../../../common/drain/drain';\nimport { now } from '../../../common/timing/now';\n\n/**\n * @typedef {import('./compute-stack-trace.js').StackInfo} StackInfo\n */\n\nexport class Aggregate extends AggregateBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n var _this;\n super(agentIdentifier, aggregator, FEATURE_NAME);\n _this = this;\n this.stackReported = {};\n this.observedAt = {};\n this.pageviewReported = {};\n this.bufferedErrorsUnderSpa = {};\n this.currentBody = undefined;\n this.errorOnPage = false;\n\n // this will need to change to match whatever ee we use in the instrument\n this.ee.on('interactionDone', (interaction, wasSaved) => this.onInteractionDone(interaction, wasSaved));\n register('err', function () {\n return _this.storeError(...arguments);\n }, this.featureName, this.ee);\n register('ierr', function () {\n return _this.storeError(...arguments);\n }, this.featureName, this.ee);\n register('softNavFlush', (interactionId, wasFinished, softNavAttrs) => this.onSoftNavNotification(interactionId, wasFinished, softNavAttrs), this.featureName, this.ee); // when an ixn is done or cancelled\n\n const harvestTimeSeconds = getConfigurationValue(this.agentIdentifier, 'jserrors.harvestTimeSeconds') || 10;\n\n // 0 == off, 1 == on\n this.waitForFlags(['err']).then(_ref => {\n let [errFlag] = _ref;\n if (errFlag) {\n const scheduler = new HarvestScheduler('jserrors', {\n onFinished: function () {\n return _this.onHarvestFinished(...arguments);\n }\n }, this);\n scheduler.harvest.on('jserrors', function () {\n return _this.onHarvestStarted(...arguments);\n });\n scheduler.startTimer(harvestTimeSeconds);\n this.drain();\n } else {\n this.blocked = true; // if rum response determines that customer lacks entitlements for spa endpoint, this feature shouldn't harvest\n deregisterDrain(this.agentIdentifier, this.featureName);\n }\n });\n }\n onHarvestStarted(options) {\n // this gets rid of dependency in AJAX module\n var body = this.aggregator.take(['err', 'ierr', 'xhr']);\n if (options.retry) {\n this.currentBody = body;\n }\n var payload = {\n body,\n qs: {}\n };\n var releaseIds = stringify(getRuntime(this.agentIdentifier).releaseIds);\n if (releaseIds !== '{}') {\n payload.qs.ri = releaseIds;\n }\n if (body && body.err && body.err.length) {\n this.#runCrossFeatureChecks(body.err);\n if (!this.errorOnPage) {\n payload.qs.pve = '1';\n this.errorOnPage = true;\n }\n }\n return payload;\n }\n onHarvestFinished(result) {\n if (result.retry && this.currentBody) {\n mapOwn(this.currentBody, (key, value) => {\n for (var i = 0; i < value.length; i++) {\n var bucket = value[i];\n var name = this.getBucketName(key, bucket.params, bucket.custom);\n this.aggregator.merge(key, name, bucket.metrics, bucket.params, bucket.custom);\n }\n });\n this.currentBody = null;\n }\n }\n nameHash(params) {\n return stringHashCode(\"\".concat(params.exceptionClass, \"_\").concat(params.message, \"_\").concat(params.stack_trace || params.browser_stack_hash));\n }\n getBucketName(objType, params, customParams) {\n if (objType === 'xhr') {\n return stringHashCode(stringify(params)) + ':' + stringHashCode(stringify(customParams));\n }\n return this.nameHash(params) + ':' + stringHashCode(stringify(customParams));\n }\n\n /**\n * Builds a standardized stack trace string from the frames in the given `stackInfo` object, with each frame separated\n * by a newline character. Lines take the form `<functionName>@<url>:<lineNumber>`.\n *\n * @param {StackInfo} stackInfo - An object specifying a stack string and individual frames.\n * @returns {string} A canonical stack string built from the URLs and function names in the given `stackInfo` object.\n */\n buildCanonicalStackString(stackInfo) {\n var canonicalStackString = '';\n for (var i = 0; i < stackInfo.frames.length; i++) {\n var frame = stackInfo.frames[i];\n var func = canonicalFunctionName(frame.func);\n if (canonicalStackString) canonicalStackString += '\\n';\n if (func) canonicalStackString += func + '@';\n if (typeof frame.url === 'string') canonicalStackString += frame.url;\n if (frame.line) canonicalStackString += ':' + frame.line;\n }\n return canonicalStackString;\n }\n storeError(err, time, internal, customAttributes, hasReplay) {\n if (!err) return;\n // are we in an interaction\n time = time || now();\n const agentRuntime = getRuntime(this.agentIdentifier);\n let filterOutput;\n if (!internal && agentRuntime.onerror) {\n filterOutput = agentRuntime.onerror(err);\n if (filterOutput && !(typeof filterOutput.group === 'string' && filterOutput.group.length)) {\n // All truthy values mean don't report (store) the error, per backwards-compatible usage,\n // - EXCEPT if a fingerprinting label is returned, via an object with key of 'group' and value of non-empty string\n return;\n }\n // Again as with previous usage, all falsey values would include the error.\n }\n var stackInfo = computeStackTrace(err);\n var canonicalStackString = this.buildCanonicalStackString(stackInfo);\n const params = {\n stackHash: stringHashCode(canonicalStackString),\n exceptionClass: stackInfo.name,\n request_uri: globalScope?.location.pathname\n };\n if (stackInfo.message) params.message = '' + stackInfo.message;\n // Notice if filterOutput isn't false|undefined OR our specified object, this func would've returned already (so it's unnecessary to req-check group).\n // Do not modify the name ('errorGroup') of params without DEM approval!\n if (filterOutput?.group) params.errorGroup = filterOutput.group;\n if (hasReplay) params.hasReplay = hasReplay;\n /**\n * The bucketHash is different from the params.stackHash because the params.stackHash is based on the canonicalized\n * stack trace and is used downstream in NR1 to attempt to group the same errors across different browsers. However,\n * the canonical stack trace excludes items like the column number increasing the hit-rate of different errors potentially\n * bucketing and ultimately resulting in the loss of data in NR1.\n */\n var bucketHash = stringHashCode(\"\".concat(stackInfo.name, \"_\").concat(stackInfo.message, \"_\").concat(stackInfo.stackString, \"_\").concat(params.hasReplay ? 1 : 0));\n if (!this.stackReported[bucketHash]) {\n this.stackReported[bucketHash] = true;\n params.stack_trace = truncateSize(stackInfo.stackString);\n this.observedAt[bucketHash] = agentRuntime.timeKeeper.convertRelativeTimestamp(time);\n } else {\n params.browser_stack_hash = stringHashCode(stackInfo.stackString);\n }\n params.releaseIds = stringify(agentRuntime.releaseIds);\n\n // When debugging stack canonicalization/hashing, uncomment these lines for\n // more output in the test logs\n // params.origStack = err.stack\n // params.canonicalStack = canonicalStack\n\n if (!this.pageviewReported[bucketHash]) {\n params.pageview = 1;\n this.pageviewReported[bucketHash] = true;\n }\n params.firstOccurrenceTimestamp = this.observedAt[bucketHash];\n params.timestamp = agentRuntime.timeKeeper.convertRelativeTimestamp(time);\n var type = internal ? 'ierr' : 'err';\n var newMetrics = {\n time\n };\n\n // Trace sends the error in its payload, and both trace & replay simply listens for any error to occur.\n const jsErrorEvent = [type, bucketHash, params, newMetrics, customAttributes];\n handle('trace-jserror', jsErrorEvent, undefined, FEATURE_NAMES.sessionTrace, this.ee);\n // still send EE events for other features such as above, but stop this one from aggregating internal data\n if (this.blocked) return;\n if (err?.__newrelic?.[this.agentIdentifier]) {\n params._interactionId = err.__newrelic[this.agentIdentifier].interactionId;\n params._interactionNodeId = err.__newrelic[this.agentIdentifier].interactionNodeId;\n }\n const softNavInUse = Boolean(getNREUMInitializedAgent(this.agentIdentifier)?.features[FEATURE_NAMES.softNav]);\n // Note: the following are subject to potential race cond wherein if the other feature aren't fully initialized, it'll be treated as there being no associated interaction.\n // They each will also tack on their respective properties to the params object as part of the decision flow.\n if (softNavInUse) handle('jserror', [params, time], undefined, FEATURE_NAMES.softNav, this.ee);else handle('spa-jserror', jsErrorEvent, undefined, FEATURE_NAMES.spa, this.ee);\n if (params.browserInteractionId && !params._softNavFinished) {\n // hold onto the error until the in-progress interaction is done, eithered saved or discarded\n this.bufferedErrorsUnderSpa[params.browserInteractionId] ??= [];\n this.bufferedErrorsUnderSpa[params.browserInteractionId].push(jsErrorEvent);\n } else if (params._interactionId != null) {\n // same as above, except tailored for the way old spa does it\n this.bufferedErrorsUnderSpa[params._interactionId] = this.bufferedErrorsUnderSpa[params._interactionId] || [];\n this.bufferedErrorsUnderSpa[params._interactionId].push(jsErrorEvent);\n } else {\n // Either there is no interaction (then all these params properties will be undefined) OR there's a related soft navigation that's already completed.\n // The old spa does not look up completed interactions at all, so there's no need to consider it.\n this.#storeJserrorForHarvest(jsErrorEvent, params.browserInteractionId !== undefined, params._softNavAttributes);\n }\n }\n #storeJserrorForHarvest(errorInfoArr, softNavOccurredFinished) {\n let softNavCustomAttrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let [type, bucketHash, params, newMetrics, localAttrs] = errorInfoArr;\n const allCustomAttrs = {};\n if (softNavOccurredFinished) {\n Object.entries(softNavCustomAttrs).forEach(_ref2 => {\n let [k, v] = _ref2;\n return setCustom(k, v);\n }); // when an ixn finishes, it'll include stuff in jsAttributes + attrs specific to the ixn\n bucketHash += params.browserInteractionId;\n delete params._softNavAttributes; // cleanup temp properties from synchronous evaluation; this is harmless when async from soft nav (properties DNE)\n delete params._softNavFinished;\n } else {\n // interaction was cancelled -> error should not be associated OR there was no interaction\n Object.entries(getInfo(this.agentIdentifier).jsAttributes).forEach(_ref3 => {\n let [k, v] = _ref3;\n return setCustom(k, v);\n });\n delete params.browserInteractionId;\n }\n if (localAttrs) Object.entries(localAttrs).forEach(_ref4 => {\n let [k, v] = _ref4;\n return setCustom(k, v);\n }); // local custom attrs are applied in either case with the highest precedence\n\n const jsAttributesHash = stringHashCode(stringify(allCustomAttrs));\n const aggregateHash = bucketHash + ':' + jsAttributesHash;\n this.aggregator.store(type, aggregateHash, params, newMetrics, allCustomAttrs);\n function setCustom(key, val) {\n allCustomAttrs[key] = val && typeof val === 'object' ? stringify(val) : val;\n }\n }\n\n // TO-DO: Remove this function when old spa is taken out. #storeJserrorForHarvest handles the work with the softnav feature.\n onInteractionDone(interaction, wasSaved) {\n if (!this.bufferedErrorsUnderSpa[interaction.id] || this.blocked) return;\n this.bufferedErrorsUnderSpa[interaction.id].forEach(item => {\n var allCustomAttrs = {};\n const localCustomAttrs = item[4];\n mapOwn(interaction.root.attrs.custom, setCustom); // tack on custom attrs from the interaction\n mapOwn(localCustomAttrs, setCustom);\n var params = item[2];\n if (wasSaved) {\n params.browserInteractionId = interaction.root.attrs.id;\n if (params._interactionNodeId) params.parentNodeId = params._interactionNodeId.toString();\n }\n delete params._interactionId;\n delete params._interactionNodeId;\n var hash = wasSaved ? item[1] + interaction.root.attrs.id : item[1];\n var jsAttributesHash = stringHashCode(stringify(allCustomAttrs));\n var aggregateHash = hash + ':' + jsAttributesHash;\n this.aggregator.store(item[0], aggregateHash, params, item[3], allCustomAttrs);\n function setCustom(key, val) {\n allCustomAttrs[key] = val && typeof val === 'object' ? stringify(val) : val;\n }\n });\n delete this.bufferedErrorsUnderSpa[interaction.id];\n }\n onSoftNavNotification(interactionId, wasFinished, softNavAttrs) {\n if (this.blocked) return;\n this.bufferedErrorsUnderSpa[interactionId]?.forEach(jsErrorEvent => this.#storeJserrorForHarvest(jsErrorEvent, wasFinished, softNavAttrs) // this should not modify the re-used softNavAttrs contents\n );\n delete this.bufferedErrorsUnderSpa[interactionId]; // wipe the list of jserrors so they aren't duplicated by another call to the same id\n }\n\n /**\n * Dispatches a cross-feature communication event to allow other\n * features to provide flags and data that can be used to mutation\n * to the payload and to allow features to know about a feature\n * harvest happening.\n * @param {any[]} errors Array of errors from the payload body\n */\n #runCrossFeatureChecks(errors) {\n const errorHashes = errors.map(error => error.params.stackHash);\n const crossFeatureData = {\n errorHashes\n };\n this.ee.emit(\"cfc.\".concat(this.featureName), [crossFeatureData]);\n let hasReplayFlag = errors.find(err => err.params.hasReplay);\n if (hasReplayFlag && !crossFeatureData.hasReplay) {\n // Some errors have `hasReplay` and a replay is not being recorded\n errors.forEach(error => {\n delete error.params.hasReplay;\n });\n }\n }\n}","import { isBrowserScope } from '../../../common/constants/runtime';\nconst FRAMEWORKS = {\n REACT: 'React',\n NEXTJS: 'NextJS',\n VUE: 'Vue',\n NUXTJS: 'NuxtJS',\n ANGULAR: 'Angular',\n ANGULARUNIVERSAL: 'AngularUniversal',\n SVELTE: 'Svelte',\n SVELTEKIT: 'SvelteKit',\n PREACT: 'Preact',\n PREACTSSR: 'PreactSSR',\n ANGULARJS: 'AngularJS',\n BACKBONE: 'Backbone',\n EMBER: 'Ember',\n METEOR: 'Meteor',\n ZEPTO: 'Zepto',\n JQUERY: 'Jquery',\n MOOTOOLS: 'MooTools',\n QWIK: 'Qwik',\n ELECTRON: 'Electron'\n};\nexport function getFrameworks() {\n if (!isBrowserScope) return []; // don't bother detecting frameworks if not in the main window context\n\n const frameworks = [];\n try {\n if (detectReact()) {\n frameworks.push(FRAMEWORKS.REACT);\n if (detectNextJS()) frameworks.push(FRAMEWORKS.NEXTJS);\n }\n if (detectVue()) {\n frameworks.push(FRAMEWORKS.VUE);\n if (detectNuxtJS()) frameworks.push(FRAMEWORKS.NUXTJS);\n }\n if (detectAngular()) {\n frameworks.push(FRAMEWORKS.ANGULAR);\n if (detectAngularUniversal()) frameworks.push(FRAMEWORKS.ANGULARUNIVERSAL);\n }\n if (detectSvelte()) {\n frameworks.push(FRAMEWORKS.SVELTE);\n if (detectSvelteKit()) frameworks.push(FRAMEWORKS.SVELTEKIT);\n }\n if (detectPreact()) {\n frameworks.push(FRAMEWORKS.PREACT);\n if (detectPreactSSR()) frameworks.push(FRAMEWORKS.PREACTSSR);\n }\n if (detectAngularJs()) frameworks.push(FRAMEWORKS.ANGULARJS);\n if (Object.prototype.hasOwnProperty.call(window, 'Backbone')) frameworks.push(FRAMEWORKS.BACKBONE);\n if (Object.prototype.hasOwnProperty.call(window, 'Ember')) frameworks.push(FRAMEWORKS.EMBER);\n if (Object.prototype.hasOwnProperty.call(window, 'Meteor')) frameworks.push(FRAMEWORKS.METEOR);\n if (Object.prototype.hasOwnProperty.call(window, 'Zepto')) frameworks.push(FRAMEWORKS.ZEPTO);\n if (Object.prototype.hasOwnProperty.call(window, 'jQuery')) frameworks.push(FRAMEWORKS.JQUERY);\n if (Object.prototype.hasOwnProperty.call(window, 'MooTools')) frameworks.push(FRAMEWORKS.MOOTOOLS);\n if (Object.prototype.hasOwnProperty.call(window, 'qwikevents')) frameworks.push(FRAMEWORKS.QWIK);\n if (detectElectron()) frameworks.push(FRAMEWORKS.ELECTRON);\n } catch (err) {\n // Possibly not supported\n }\n return frameworks;\n}\nfunction detectReact() {\n try {\n return Object.prototype.hasOwnProperty.call(window, 'React') || Object.prototype.hasOwnProperty.call(window, 'ReactDOM') || Object.prototype.hasOwnProperty.call(window, 'ReactRedux') || document.querySelector('[data-reactroot], [data-reactid]') || (() => {\n const divs = document.querySelectorAll('body > div');\n for (let i = 0; i < divs.length; i++) {\n if (Object.prototype.hasOwnProperty.call(divs[i], '_reactRootContainer')) {\n return true;\n }\n }\n })();\n } catch (err) {\n return false;\n }\n}\nfunction detectNextJS() {\n // React SSR\n try {\n return Object.prototype.hasOwnProperty.call(window, 'next') && Object.prototype.hasOwnProperty.call(window.next, 'version');\n } catch (err) {\n return false;\n }\n}\nfunction detectVue() {\n try {\n return Object.prototype.hasOwnProperty.call(window, 'Vue');\n } catch (err) {\n return false;\n }\n}\nfunction detectNuxtJS() {\n // Vue SSR\n try {\n return Object.prototype.hasOwnProperty.call(window, '$nuxt') && Object.prototype.hasOwnProperty.call(window.$nuxt, 'nuxt');\n } catch (err) {\n return false;\n }\n}\nfunction detectAngular() {\n try {\n return Object.prototype.hasOwnProperty.call(window, 'ng') || document.querySelector('[ng-version]');\n } catch (err) {\n return false;\n }\n}\nfunction detectAngularUniversal() {\n // Anguler SSR\n try {\n return document.querySelector('[ng-server-context]');\n } catch (err) {\n return false;\n }\n}\nfunction detectSvelte() {\n try {\n return Object.prototype.hasOwnProperty.call(window, '__svelte');\n } catch (err) {\n return false;\n }\n}\nfunction detectSvelteKit() {\n // Svelte SSR\n try {\n return !!Object.keys(window).find(prop => prop.startsWith('__sveltekit'));\n } catch (err) {\n return false;\n }\n}\nfunction detectPreact() {\n try {\n return Object.prototype.hasOwnProperty.call(window, 'preact');\n } catch (err) {\n return false;\n }\n}\nfunction detectPreactSSR() {\n // Svelte SSR\n try {\n return document.querySelector('script[type=\"__PREACT_CLI_DATA__\"]');\n } catch (err) {\n return false;\n }\n}\nfunction detectAngularJs() {\n try {\n return Object.prototype.hasOwnProperty.call(window, 'angular') || document.querySelector('.ng-binding, [ng-app], [data-ng-app], [ng-controller], [data-ng-controller], [ng-repeat], [data-ng-repeat]') || document.querySelector('script[src*=\"angular.js\"], script[src*=\"angular.min.js\"]');\n } catch (err) {\n return false;\n }\n}\nfunction detectElectron() {\n try {\n return typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0;\n } catch (err) {\n return false;\n }\n}","import { getRuntime, getConfiguration } from '../../../common/config/config';\nimport { registerHandler } from '../../../common/event-emitter/register-handler';\nimport { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';\nimport { FEATURE_NAME, SUPPORTABILITY_METRIC, CUSTOM_METRIC, SUPPORTABILITY_METRIC_CHANNEL, CUSTOM_METRIC_CHANNEL } from '../constants';\nimport { getFrameworks } from './framework-detection';\nimport { isFileProtocol } from '../../../common/url/protocol';\nimport { getRules, validateRules } from '../../../common/util/obfuscate';\nimport { onDOMContentLoaded } from '../../../common/window/load';\nimport { windowAddEventListener } from '../../../common/event-listener/event-listener-opts';\nimport { isBrowserScope, isWorkerScope } from '../../../common/constants/runtime';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { deregisterDrain } from '../../../common/drain/drain';\nexport class Aggregate extends AggregateBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n super(agentIdentifier, aggregator, FEATURE_NAME);\n this.waitForFlags(['err']).then(_ref => {\n let [errFlag] = _ref;\n if (errFlag) {\n // *cli, Mar 23 - Per NR-94597, this feature should only harvest ONCE at the (potential) EoL time of the page.\n const scheduler = new HarvestScheduler('jserrors', {\n onUnload: () => this.unload()\n }, this);\n // this is needed to ensure EoL is \"on\" and sent\n scheduler.harvest.on('jserrors', () => ({\n body: this.aggregator.take(['cm', 'sm'])\n }));\n this.drain();\n } else {\n this.blocked = true; // if rum response determines that customer lacks entitlements for spa endpoint, this feature shouldn't harvest\n deregisterDrain(this.agentIdentifier, this.featureName);\n }\n });\n\n // Allow features external to the metrics feature to capture SMs and CMs through the event emitter\n registerHandler(SUPPORTABILITY_METRIC_CHANNEL, this.storeSupportabilityMetrics.bind(this), this.featureName, this.ee);\n registerHandler(CUSTOM_METRIC_CHANNEL, this.storeEventMetrics.bind(this), this.featureName, this.ee);\n this.singleChecks(); // checks that are run only one time, at script load\n this.eachSessionChecks(); // the start of every time user engages with page\n }\n storeSupportabilityMetrics(name, value) {\n if (this.blocked) return;\n const type = SUPPORTABILITY_METRIC;\n const params = {\n name\n };\n this.aggregator.storeMetric(type, name, params, value);\n }\n storeEventMetrics(name, metrics) {\n if (this.blocked) return;\n const type = CUSTOM_METRIC;\n const params = {\n name\n };\n this.aggregator.store(type, name, params, metrics);\n }\n singleChecks() {\n // report loaderType\n const {\n distMethod,\n loaderType\n } = getRuntime(this.agentIdentifier);\n const {\n proxy,\n privacy,\n page_view_timing\n } = getConfiguration(this.agentIdentifier);\n if (loaderType) this.storeSupportabilityMetrics(\"Generic/LoaderType/\".concat(loaderType, \"/Detected\"));\n if (distMethod) this.storeSupportabilityMetrics(\"Generic/DistMethod/\".concat(distMethod, \"/Detected\"));\n if (isBrowserScope) {\n this.storeSupportabilityMetrics('Generic/Runtime/Browser/Detected');\n const nonce = document?.currentScript?.nonce;\n if (nonce && nonce !== '') {\n this.storeSupportabilityMetrics('Generic/Runtime/Nonce/Detected');\n }\n\n // These SMs are used by the AppExp team\n onDOMContentLoaded(() => {\n getFrameworks().forEach(framework => {\n this.storeSupportabilityMetrics('Framework/' + framework + '/Detected');\n });\n });\n if (!privacy.cookies_enabled) this.storeSupportabilityMetrics('Config/SessionTracking/Disabled');\n if (page_view_timing.long_task) this.storeSupportabilityMetrics('Config/LongTask/Enabled');\n } else if (isWorkerScope) {\n this.storeSupportabilityMetrics('Generic/Runtime/Worker/Detected');\n } else {\n this.storeSupportabilityMetrics('Generic/Runtime/Unknown/Detected');\n }\n\n // Track if the agent is being loaded using a file protocol such as is the case in some\n // set-top box applications or Electron applications\n if (isFileProtocol()) {\n this.storeSupportabilityMetrics('Generic/FileProtocol/Detected');\n }\n\n // Capture SMs to assess customer engagement with the obfuscation config\n const rules = getRules(this.agentIdentifier);\n if (rules.length > 0) this.storeSupportabilityMetrics('Generic/Obfuscate/Detected');\n if (rules.length > 0 && !validateRules(rules)) this.storeSupportabilityMetrics('Generic/Obfuscate/Invalid');\n\n // Check if proxy for either chunks or beacon is being used\n if (proxy.assets) this.storeSupportabilityMetrics('Config/AssetsUrl/Changed');\n if (proxy.beacon) this.storeSupportabilityMetrics('Config/BeaconUrl/Changed');\n }\n eachSessionChecks() {\n if (!isBrowserScope) return;\n\n // [Temporary] Report restores from BFCache to NR1 while feature flag is in place in lieu of sending pageshow events.\n windowAddEventListener('pageshow', evt => {\n if (evt?.persisted) {\n this.storeSupportabilityMetrics('Generic/BFCache/PageRestored');\n }\n });\n }\n unload() {\n try {\n if (this.resourcesSent) return;\n this.resourcesSent = true; // make sure this only gets sent once\n\n // Capture SMs around network resources using the performance API to assess\n // work to split this out from the ST nodes\n // differentiate between internal+external and ajax+non-ajax\n const ajaxResources = ['beacon', 'fetch', 'xmlhttprequest'];\n const internalUrls = ['nr-data.net', 'newrelic.com', 'nr-local.net', 'localhost'];\n function isInternal(x) {\n return internalUrls.some(y => x.name.indexOf(y) >= 0);\n }\n function isAjax(x) {\n return ajaxResources.includes(x.initiatorType);\n }\n const allResources = performance?.getEntriesByType('resource') || [];\n allResources.forEach(entry => {\n if (isInternal(entry)) {\n if (isAjax(entry)) this.storeSupportabilityMetrics('Generic/Resources/Ajax/Internal');else this.storeSupportabilityMetrics('Generic/Resources/Non-Ajax/Internal');\n } else {\n if (isAjax(entry)) this.storeSupportabilityMetrics('Generic/Resources/Ajax/External');else this.storeSupportabilityMetrics('Generic/Resources/Non-Ajax/External');\n }\n });\n\n // Capture SMs for performance markers and measures to assess the usage and possible inclusion of this\n // data in the agent for use in NR\n if (typeof performance !== 'undefined') {\n const markers = performance.getEntriesByType('mark');\n const measures = performance.getEntriesByType('measure');\n this.storeSupportabilityMetrics('Generic/Performance/Mark/Seen', markers.length);\n this.storeSupportabilityMetrics('Generic/Performance/Measure/Seen', measures.length);\n }\n } catch (e) {\n // do nothing\n }\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { mapOwn } from '../../../common/util/map-own';\nimport { stringify } from '../../../common/util/stringify';\nimport { registerHandler as register } from '../../../common/event-emitter/register-handler';\nimport { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';\nimport { cleanURL } from '../../../common/url/clean-url';\nimport { getConfigurationValue, getInfo, getRuntime } from '../../../common/config/config';\nimport { FEATURE_NAME } from '../constants';\nimport { isBrowserScope } from '../../../common/constants/runtime';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { deregisterDrain } from '../../../common/drain/drain';\nexport class Aggregate extends AggregateBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n var _this;\n super(agentIdentifier, aggregator, FEATURE_NAME);\n _this = this;\n this.eventsPerMinute = 240;\n this.harvestTimeSeconds = getConfigurationValue(this.agentIdentifier, 'page_action.harvestTimeSeconds') || getConfigurationValue(this.agentIdentifier, 'ins.harvestTimeSeconds') || 30;\n this.eventsPerHarvest = this.eventsPerMinute * this.harvestTimeSeconds / 60;\n this.referrerUrl = undefined;\n this.currentEvents = undefined;\n this.events = [];\n this.att = getInfo(this.agentIdentifier).jsAttributes; // per-agent, aggregators-shared info context\n\n if (isBrowserScope && document.referrer) this.referrerUrl = cleanURL(document.referrer);\n register('api-addPageAction', function () {\n return _this.addPageAction(...arguments);\n }, this.featureName, this.ee);\n this.waitForFlags(['ins']).then(_ref => {\n let [insFlag] = _ref;\n if (insFlag) {\n const scheduler = new HarvestScheduler('ins', {\n onFinished: function () {\n return _this.onHarvestFinished(...arguments);\n }\n }, this);\n scheduler.harvest.on('ins', function () {\n return _this.onHarvestStarted(...arguments);\n });\n scheduler.startTimer(this.harvestTimeSeconds, 0);\n this.drain();\n } else {\n this.blocked = true; // if rum response determines that customer lacks entitlements for ins endpoint, this feature shouldn't harvest\n deregisterDrain(this.agentIdentifier, this.featureName);\n }\n });\n }\n onHarvestStarted(options) {\n const {\n userAttributes,\n atts\n } = getInfo(this.agentIdentifier);\n var payload = {\n qs: {\n ua: userAttributes,\n at: atts\n },\n body: {\n ins: this.events\n }\n };\n if (options.retry) {\n this.currentEvents = this.events;\n }\n this.events = [];\n return payload;\n }\n onHarvestFinished(result) {\n if (result && result.sent && result.retry && this.currentEvents) {\n this.events = this.events.concat(this.currentEvents);\n this.currentEvents = null;\n }\n }\n\n // WARNING: Insights times are in seconds. EXCEPT timestamp, which is in ms.\n addPageAction(t, name, attributes) {\n if (this.events.length >= this.eventsPerHarvest || this.blocked) return;\n var width;\n var height;\n var eventAttributes = {};\n if (isBrowserScope && window.document.documentElement) {\n // Doesn't include the nav bar when it disappears in mobile safari\n // https://github.com/jquery/jquery/blob/10399ddcf8a239acc27bdec9231b996b178224d3/src/dimensions.js#L23\n width = window.document.documentElement.clientWidth;\n height = window.document.documentElement.clientHeight;\n }\n const agentRuntime = getRuntime(this.agentIdentifier);\n var defaults = {\n timestamp: agentRuntime.timeKeeper.convertRelativeTimestamp(t),\n timeSinceLoad: t / 1000,\n browserWidth: width,\n browserHeight: height,\n referrerUrl: this.referrerUrl,\n currentUrl: cleanURL('' + location),\n pageUrl: cleanURL(agentRuntime.origin),\n eventType: 'PageAction'\n };\n mapOwn(defaults, set);\n mapOwn(getInfo(this.agentIdentifier).jsAttributes, set);\n if (attributes && typeof attributes === 'object') {\n mapOwn(attributes, set);\n }\n eventAttributes.actionName = name || '';\n this.events.push(eventAttributes);\n function set(key, val) {\n eventAttributes[key] = val && typeof val === 'object' ? stringify(val) : val;\n }\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// We don't use JSON.stringify directly on the performance timing data for these reasons:\n// * Chrome has extra data in the performance object that we don't want to send all the time (wasteful)\n// * Firefox fails to stringify the native object due to - http://code.google.com/p/v8/issues/detail?id=1223\n// * The variable names are long and wasteful to transmit\n\n// Add Performance Timing values to the given object.\n// * Values are written relative to an offset to reduce their length (i.e. number of characters).\n// * The offset is sent with the data\n// * 0's are not included unless the value is a 'relative zero'\n//\n\nvar START = 'Start';\nvar END = 'End';\nvar UNLOAD_EVENT = 'unloadEvent';\nvar REDIRECT = 'redirect';\nvar DOMAIN_LOOKUP = 'domainLookup';\nvar ONNECT = 'onnect';\nvar REQUEST = 'request';\nvar RESPONSE = 'response';\nvar LOAD_EVENT = 'loadEvent';\nvar DOM_CONTENT_LOAD_EVENT = 'domContentLoadedEvent';\nexport const navTimingValues = [];\nfunction getPntType(type) {\n if (typeof type === 'number') return type;\n const types = {\n navigate: undefined,\n reload: 1,\n back_forward: 2,\n prerender: 3\n };\n return types[type];\n}\nexport function addPT(offset, pt) {\n let v = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let isL1Api = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!pt) return;\n v.of = offset;\n handleValue(v.of, v, 'n', true);\n handleValue(pt[UNLOAD_EVENT + START], v, 'u', isL1Api);\n handleValue(pt[REDIRECT + START], v, 'r', isL1Api);\n handleValue(pt[UNLOAD_EVENT + END], v, 'ue', isL1Api);\n handleValue(pt[REDIRECT + END], v, 're', isL1Api);\n handleValue(pt['fetch' + START], v, 'f', isL1Api);\n handleValue(pt[DOMAIN_LOOKUP + START], v, 'dn', isL1Api);\n handleValue(pt[DOMAIN_LOOKUP + END], v, 'dne', isL1Api);\n handleValue(pt['c' + ONNECT + START], v, 'c', isL1Api);\n handleValue(pt['secureC' + ONNECT + 'ion' + START], v, 's', isL1Api);\n handleValue(pt['c' + ONNECT + END], v, 'ce', isL1Api);\n handleValue(pt[REQUEST + START], v, 'rq', isL1Api);\n handleValue(pt[RESPONSE + START], v, 'rp', isL1Api);\n handleValue(pt[RESPONSE + END], v, 'rpe', isL1Api);\n handleValue(pt.domLoading, v, 'dl', isL1Api);\n handleValue(pt.domInteractive, v, 'di', isL1Api);\n handleValue(pt[DOM_CONTENT_LOAD_EVENT + START], v, 'ds', isL1Api);\n handleValue(pt[DOM_CONTENT_LOAD_EVENT + END], v, 'de', isL1Api);\n handleValue(pt.domComplete, v, 'dc', isL1Api);\n handleValue(pt[LOAD_EVENT + START], v, 'l', isL1Api);\n handleValue(pt[LOAD_EVENT + END], v, 'le', isL1Api);\n return v;\n}\n\n// Add Performance Navigation values to the given object\nexport function addPN(pn, v) {\n handleValue(getPntType(pn.type), v, 'ty');\n handleValue(pn.redirectCount, v, 'rc');\n return v;\n}\n\n/**\n * By side effect, this modifies 'obj' with a mapping of the 'prop' provided to a 'value', and invalid values are not added.\n * On the other hand, the local navTimingValues array gets the value appended if valid and 'undefined' appended if invalid, regardless.\n */\nfunction handleValue(value, obj, prop, isOldApi) {\n /*\n For L2 Timing API, the value will already be a relative-to-previous-document DOMHighResTimeStamp.\n For L1 (deprecated) Timing, the value is an UNIX epoch timestamp, which we will convert to a relative time using our offset.\n PNT.type is reported as undefined, 1, 2, etc -- note that zero-value properties will be recorded as 'undefined', however DEM interprets undefined \"types\" as \"navigate\"\n */\n if (typeof value === 'number' && value > 0) {\n // note that zero-value properties will be recorded as 'undefined'\n if (isOldApi) {\n const offset = obj?.of > 0 ? obj.of : 0; // expect an epoch timestamp, if called by addPT\n value = Math.max(value - offset, 0);\n }\n value = Math.round(value);\n obj[prop] = value;\n navTimingValues.push(value);\n } else navTimingValues.push(undefined);\n}","import { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { gosNREUM } from '../../../common/window/nreum';\n\n/**\n * Get an array of flags required by downstream (NR UI) based on the features initialized in this agent\n * (aka what is running on the page).\n * @param {String} agentId - the ID of the initialized agent on the page, mapping to the one under the global 'newrelic' object\n * @returns {String[]} Up to 5 short strings corresponding to ingest mapping of features.\n */\nexport function getActivatedFeaturesFlags(agentId) {\n const flagArr = [];\n const newrelic = gosNREUM();\n try {\n Object.keys(newrelic.initializedAgents[agentId].features).forEach(featName => {\n switch (featName) {\n case FEATURE_NAMES.ajax:\n flagArr.push('xhr');\n break;\n case FEATURE_NAMES.jserrors:\n flagArr.push('err');\n break;\n case FEATURE_NAMES.pageAction:\n flagArr.push('ins');\n break;\n case FEATURE_NAMES.sessionTrace:\n flagArr.push('stn');\n break;\n case FEATURE_NAMES.softNav:\n case FEATURE_NAMES.spa:\n flagArr.push('spa');\n break;\n }\n });\n } catch (e) {}\n return flagArr;\n}\n\n// Note: this module and the \"af\" param in src/features/page_view_event/aggregate/index.js can be removed in the future at such time\n// that it's no longer being used. For the browser agent, this is an unused flag system.","var e,t,n,r,i,a=function(){return window.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0]},o=function(e){if(\"loading\"===document.readyState)return\"loading\";var t=a();if(t){if(e<t.domInteractive)return\"loading\";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return\"dom-interactive\";if(0===t.domComplete||e<t.domComplete)return\"dom-content-loaded\"}return\"complete\"},u=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,\"\")},c=function(e,t){var n=\"\";try{for(;e&&9!==e.nodeType;){var r=e,i=r.id?\"#\"+r.id:u(r)+(r.classList&&r.classList.value&&r.classList.value.trim()&&r.classList.value.trim().length?\".\"+r.classList.value.trim().replace(/\\s+/g,\".\"):\"\");if(n.length+i.length>(t||100)-1)return n||i;if(n=n?i+\">\"+n:i,r.id)break;e=r.parentNode}}catch(e){}return n},s=-1,f=function(){return s},d=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&(s=t.timeStamp,e(t))}),!0)},l=function(){var e=a();return e&&e.activationStart||0},m=function(e,t){var n=a(),r=\"navigate\";f()>=0?r=\"back-forward-cache\":n&&(document.prerendering||l()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":n.type&&(r=n.type.replace(/_/g,\"-\")));return{name:e,value:void 0===t?-1:t,rating:\"good\",delta:0,entries:[],id:\"v3-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},v=function(e,t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){t(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},n||{})),r}}catch(e){}},p=function(e,t,n,r){var i,a;return function(o){t.value>=0&&(o||r)&&((a=t.value-(i||0))||void 0===i)&&(i=t.value,t.delta=a,t.rating=function(e,t){return e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\"}(t.value,n),e(t))}},h=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},g=function(e){var t=function(t){\"pagehide\"!==t.type&&\"hidden\"!==document.visibilityState||e(t)};addEventListener(\"visibilitychange\",t,!0),addEventListener(\"pagehide\",t,!0)},T=function(e){var t=!1;return function(n){t||(e(n),t=!0)}},y=-1,E=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},S=function(e){\"hidden\"===document.visibilityState&&y>-1&&(y=\"visibilitychange\"===e.type?e.timeStamp:0,b())},L=function(){addEventListener(\"visibilitychange\",S,!0),addEventListener(\"prerenderingchange\",S,!0)},b=function(){removeEventListener(\"visibilitychange\",S,!0),removeEventListener(\"prerenderingchange\",S,!0)},C=function(){return y<0&&(y=E(),L(),d((function(){setTimeout((function(){y=E(),L()}),0)}))),{get firstHiddenTime(){return y}}},w=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},M=[1800,3e3],x=function(e,t){t=t||{},w((function(){var n,r=C(),i=m(\"FCP\"),a=v(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(a.disconnect(),e.startTime<r.firstHiddenTime&&(i.value=Math.max(e.startTime-l(),0),i.entries.push(e),n(!0)))}))}));a&&(n=p(e,i,M,t.reportAllChanges),d((function(r){i=m(\"FCP\"),n=p(e,i,M,t.reportAllChanges),h((function(){i.value=performance.now()-r.timeStamp,n(!0)}))})))}))},A=[.1,.25],F=function(e,t){!function(e,t){t=t||{},x(T((function(){var n,r=m(\"CLS\",0),i=0,a=[],o=function(e){e.forEach((function(e){if(!e.hadRecentInput){var t=a[0],n=a[a.length-1];i&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(i+=e.value,a.push(e)):(i=e.value,a=[e])}})),i>r.value&&(r.value=i,r.entries=a,n())},u=v(\"layout-shift\",o);u&&(n=p(e,r,A,t.reportAllChanges),g((function(){o(u.takeRecords()),n(!0)})),d((function(){i=0,r=m(\"CLS\",0),n=p(e,r,A,t.reportAllChanges),h((function(){return n()}))})),setTimeout(n,0))})))}((function(t){!function(e){if(e.entries.length){var t=e.entries.reduce((function(e,t){return e&&e.value>t.value?e:t}));if(t&&t.sources&&t.sources.length){var n=(r=t.sources).find((function(e){return e.node&&1===e.node.nodeType}))||r[0];if(n)return void(e.attribution={largestShiftTarget:c(n.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:n,largestShiftEntry:t,loadState:o(t.startTime)})}}var r;e.attribution={}}(t),e(t)}),t)},I=function(e,t){x((function(t){!function(e){if(e.entries.length){var t=a(),n=e.entries[e.entries.length-1];if(t){var r=t.activationStart||0,i=Math.max(0,t.responseStart-r);return void(e.attribution={timeToFirstByte:i,firstByteToFCP:e.value-i,loadState:o(e.entries[0].startTime),navigationEntry:t,fcpEntry:n})}}e.attribution={timeToFirstByte:0,firstByteToFCP:e.value,loadState:o(f())}}(t),e(t)}),t)},P={passive:!0,capture:!0},B=new Date,D=function(r,i){e||(e=i,t=r,n=new Date,q(removeEventListener),k())},k=function(){if(t>=0&&t<n-B){var i={entryType:\"first-input\",name:e.type,target:e.target,cancelable:e.cancelable,startTime:e.timeStamp,processingStart:e.timeStamp+t};r.forEach((function(e){e(i)})),r=[]}},R=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){D(e,t),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",n,P),removeEventListener(\"pointercancel\",r,P)};addEventListener(\"pointerup\",n,P),addEventListener(\"pointercancel\",r,P)}(t,e):D(t,e)}},q=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,R,P)}))},H=[100,300],N=function(n,i){i=i||{},w((function(){var a,o=C(),u=m(\"FID\"),c=function(e){e.startTime<o.firstHiddenTime&&(u.value=e.processingStart-e.startTime,u.entries.push(e),a(!0))},s=function(e){e.forEach(c)},f=v(\"first-input\",s);a=p(n,u,H,i.reportAllChanges),f&&g(T((function(){s(f.takeRecords()),f.disconnect()}))),f&&d((function(){var o;u=m(\"FID\"),a=p(n,u,H,i.reportAllChanges),r=[],t=-1,e=null,q(addEventListener),o=c,r.push(o),k()}))}))},O=function(e,t){N((function(t){!function(e){var t=e.entries[0];e.attribution={eventTarget:c(t.target),eventType:t.name,eventTime:t.startTime,eventEntry:t,loadState:o(t.startTime)}}(t),e(t)}),t)},j=0,U=1/0,V=0,_=function(e){e.forEach((function(e){e.interactionId&&(U=Math.min(U,e.interactionId),V=Math.max(V,e.interactionId),j=V?(V-U)/7+1:0)}))},z=function(){return i?j:performance.interactionCount||0},G=function(){\"interactionCount\"in performance||i||(i=v(\"event\",_,{type:\"event\",buffered:!0,durationThreshold:0}))},J=[200,500],K=0,Q=function(){return z()-K},W=[],X={},Y=function(e){var t=W[W.length-1],n=X[e.interactionId];if(n||W.length<10||e.duration>t.latency){if(n)n.entries.push(e),n.latency=Math.max(n.latency,e.duration);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};X[r.id]=r,W.push(r)}W.sort((function(e,t){return t.latency-e.latency})),W.splice(10).forEach((function(e){delete X[e.id]}))}},Z=function(e,t){t=t||{},w((function(){var n;G();var r,i=m(\"INP\"),a=function(e){e.forEach((function(e){(e.interactionId&&Y(e),\"first-input\"===e.entryType)&&(!W.some((function(t){return t.entries.some((function(t){return e.duration===t.duration&&e.startTime===t.startTime}))}))&&Y(e))}));var t,n=(t=Math.min(W.length-1,Math.floor(Q()/50)),W[t]);n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())},o=v(\"event\",a,{durationThreshold:null!==(n=t.durationThreshold)&&void 0!==n?n:40});r=p(e,i,J,t.reportAllChanges),o&&(\"PerformanceEventTiming\"in window&&\"interactionId\"in PerformanceEventTiming.prototype&&o.observe({type:\"first-input\",buffered:!0}),g((function(){a(o.takeRecords()),i.value<0&&Q()>0&&(i.value=0,i.entries=[]),r(!0)})),d((function(){W=[],K=z(),i=m(\"INP\"),r=p(e,i,J,t.reportAllChanges)})))}))},$=function(e,t){Z((function(t){!function(e){if(e.entries.length){var t=e.entries.sort((function(e,t){return t.duration-e.duration||t.processingEnd-t.processingStart-(e.processingEnd-e.processingStart)}))[0],n=e.entries.find((function(e){return e.target}));e.attribution={eventTarget:c(n&&n.target),eventType:t.name,eventTime:t.startTime,eventEntry:t,loadState:o(t.startTime)}}else e.attribution={}}(t),e(t)}),t)},ee=[2500,4e3],te={},ne=function(e,t){!function(e,t){t=t||{},w((function(){var n,r=C(),i=m(\"LCP\"),a=function(e){var t=e[e.length-1];t&&t.startTime<r.firstHiddenTime&&(i.value=Math.max(t.startTime-l(),0),i.entries=[t],n())},o=v(\"largest-contentful-paint\",a);if(o){n=p(e,i,ee,t.reportAllChanges);var u=T((function(){te[i.id]||(a(o.takeRecords()),o.disconnect(),te[i.id]=!0,n(!0))}));[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,(function(){return setTimeout(u,0)}),!0)})),g(u),d((function(r){i=m(\"LCP\"),n=p(e,i,ee,t.reportAllChanges),h((function(){i.value=performance.now()-r.timeStamp,te[i.id]=!0,n(!0)}))}))}}))}((function(t){!function(e){if(e.entries.length){var t=a();if(t){var n=t.activationStart||0,r=e.entries[e.entries.length-1],i=r.url&&performance.getEntriesByType(\"resource\").filter((function(e){return e.name===r.url}))[0],o=Math.max(0,t.responseStart-n),u=Math.max(o,i?(i.requestStart||i.startTime)-n:0),s=Math.max(u,i?i.responseEnd-n:0),f=Math.max(s,r?r.startTime-n:0),d={element:c(r.element),timeToFirstByte:o,resourceLoadDelay:u-o,resourceLoadTime:s-u,elementRenderDelay:f-s,navigationEntry:t,lcpEntry:r};return r.url&&(d.url=r.url),i&&(d.lcpResourceEntry=i),void(e.attribution=d)}}e.attribution={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadTime:0,elementRenderDelay:e.value}}(t),e(t)}),t)},re=[800,1800],ie=function e(t){document.prerendering?w((function(){return e(t)})):\"complete\"!==document.readyState?addEventListener(\"load\",(function(){return e(t)}),!0):setTimeout(t,0)},ae=function(e,t){t=t||{};var n=m(\"TTFB\"),r=p(e,n,re,t.reportAllChanges);ie((function(){var i=a();if(i){var o=i.responseStart;if(o<=0||o>performance.now())return;n.value=Math.max(o-l(),0),n.entries=[i],r(!0),d((function(){n=m(\"TTFB\",0),(r=p(e,n,re,t.reportAllChanges))(!0)}))}}))},oe=function(e,t){ae((function(t){!function(e){if(e.entries.length){var t=e.entries[0],n=t.activationStart||0,r=Math.max(t.domainLookupStart-n,0),i=Math.max(t.connectStart-n,0),a=Math.max(t.requestStart-n,0);e.attribution={waitingTime:r,dnsTime:i-r,connectionTime:a-i,requestTime:e.value-a,navigationEntry:t}}else e.attribution={waitingTime:0,dnsTime:0,connectionTime:0,requestTime:0}}(t),e(t)}),t)};export{A as CLSThresholds,M as FCPThresholds,H as FIDThresholds,J as INPThresholds,ee as LCPThresholds,re as TTFBThresholds,F as onCLS,I as onFCP,O as onFID,$ as onINP,ne as onLCP,oe as onTTFB};\n","export const VITAL_NAMES = {\n FIRST_PAINT: 'fp',\n FIRST_CONTENTFUL_PAINT: 'fcp',\n FIRST_INPUT_DELAY: 'fi',\n LARGEST_CONTENTFUL_PAINT: 'lcp',\n CUMULATIVE_LAYOUT_SHIFT: 'cls',\n INTERACTION_TO_NEXT_PAINT: 'inp',\n LONG_TASK: 'lt',\n TIME_TO_FIRST_BYTE: 'ttfb'\n};","export class VitalMetric {\n #subscribers = new Set();\n history = [];\n constructor(name, roundingMethod) {\n this.name = name;\n this.attrs = {};\n this.roundingMethod = typeof roundingMethod === 'function' ? roundingMethod : Math.floor;\n }\n update(_ref) {\n let {\n value,\n attrs = {}\n } = _ref;\n if (value === undefined || value === null || value < 0) return;\n const state = {\n value: this.roundingMethod(value),\n name: this.name,\n attrs\n };\n this.history.push(state);\n this.#subscribers.forEach(cb => {\n try {\n cb(state);\n } catch (e) {\n // ignore errors\n }\n });\n }\n get current() {\n return this.history[this.history.length - 1] || {\n value: undefined,\n name: this.name,\n attrs: {}\n };\n }\n get isValid() {\n return this.current.value >= 0;\n }\n subscribe(callback) {\n let buffered = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (typeof callback !== 'function') return;\n this.#subscribers.add(callback);\n // emit full history on subscription (\"buffered\" behavior)\n if (this.isValid && !!buffered) this.history.forEach(state => {\n callback(state);\n });\n return () => {\n this.#subscribers.delete(callback);\n };\n }\n}","import { onFCP } from 'web-vitals/attribution';\n// eslint-disable-next-line camelcase\nimport { iOSBelow16, initiallyHidden, isBrowserScope } from '../constants/runtime';\nimport { VITAL_NAMES } from './constants';\nimport { VitalMetric } from './vital-metric';\nexport const firstContentfulPaint = new VitalMetric(VITAL_NAMES.FIRST_CONTENTFUL_PAINT);\n\n/* First Contentful Paint - As of WV v3, it still imperfectly tries to detect document vis state asap and isn't supposed to report if page starts hidden. */\nif (isBrowserScope) {\n // eslint-disable-next-line camelcase\n if (iOSBelow16) {\n try {\n if (!initiallyHidden) {\n // see ios-version.js for detail on this following bug case; tldr: buffered flag doesn't work but getEntriesByType does\n const paintEntries = performance.getEntriesByType('paint');\n paintEntries.forEach(entry => {\n if (entry.name === 'first-contentful-paint') {\n firstContentfulPaint.update({\n value: Math.floor(entry.startTime)\n });\n }\n });\n }\n } catch (e) {\n // ignore\n }\n } else {\n onFCP(_ref => {\n let {\n value,\n attribution\n } = _ref;\n if (initiallyHidden || firstContentfulPaint.isValid) return;\n const attrs = {\n timeToFirstByte: attribution.timeToFirstByte,\n firstByteToFCP: attribution.firstByteToFCP,\n loadState: attribution.loadState\n };\n firstContentfulPaint.update({\n value,\n attrs\n });\n });\n }\n}","import { initiallyHidden, isBrowserScope } from '../constants/runtime';\nimport { VITAL_NAMES } from './constants';\nimport { VitalMetric } from './vital-metric';\nexport const firstPaint = new VitalMetric(VITAL_NAMES.FIRST_PAINT);\nif (isBrowserScope) {\n const handleEntries = entries => {\n entries.forEach(entry => {\n if (entry.name === 'first-paint' && !firstPaint.isValid) {\n observer.disconnect();\n\n /* Initial hidden state and pre-rendering not yet considered for first paint. See web-vitals onFCP for example. */\n firstPaint.update({\n value: entry.startTime\n });\n }\n });\n };\n let observer;\n try {\n if (PerformanceObserver.supportedEntryTypes.includes('paint') && !initiallyHidden) {\n observer = new PerformanceObserver(list => {\n // Delay by a microtask to workaround a bug in Safari where the\n // callback is invoked immediately, rather than in a separate task.\n // See: https://github.com/GoogleChrome/web-vitals/issues/277\n Promise.resolve().then(() => {\n handleEntries(list.getEntries());\n });\n });\n observer.observe({\n type: 'paint',\n buffered: true\n });\n }\n } catch (e) {\n // Do nothing.\n }\n}","import { globalScope, isBrowserScope, isiOS, originTime } from '../constants/runtime';\nimport { VITAL_NAMES } from './constants';\nimport { VitalMetric } from './vital-metric';\nimport { onTTFB } from 'web-vitals/attribution';\nexport const timeToFirstByte = new VitalMetric(VITAL_NAMES.TIME_TO_FIRST_BYTE);\n\n/**\n * onTTFB is not supported in the following scenarios:\n * - in a non-browser scope\n * - in browsers that do not support PerformanceNavigationTiming API\n * - in an iOS browser\n * - cross-origin iframes specifically in firefox and safari\n */\nif (isBrowserScope && typeof PerformanceNavigationTiming !== 'undefined' && !isiOS && window === window.parent) {\n onTTFB(_ref => {\n let {\n value,\n attribution\n } = _ref;\n if (timeToFirstByte.isValid) return;\n timeToFirstByte.update({\n value,\n attrs: {\n navigationEntry: attribution.navigationEntry\n }\n });\n });\n} else {\n if (!timeToFirstByte.isValid) {\n const entry = {};\n // convert real timestamps to relative timestamps to match web-vitals behavior\n for (let key in globalScope?.performance?.timing || {}) entry[key] = Math.max(globalScope?.performance?.timing[key] - originTime, 0);\n\n // ttfb is equiv to document's responseStart property in timing API --> https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming/responseStart\n timeToFirstByte.update({\n value: entry.responseStart,\n attrs: {\n navigationEntry: entry\n }\n });\n }\n}","import { originTime } from '../constants/runtime';\nimport { getRuntime } from '../config/config';\n\n/**\n * Class used to adjust the timestamp of harvested data to New Relic server time. This\n * is done by tracking the performance timings of the RUM call and applying a calculation\n * to the harvested data event offset time.\n */\nexport class TimeKeeper {\n /**\n * Pointer to the current agent session if it exists.\n * @type {import('../session/session-entity').SessionEntity}\n */\n #session;\n\n /**\n * Represents the browser origin time corrected to NR server time.\n * @type {number}\n */\n #correctedOriginTime;\n\n /**\n * Represents the difference in milliseconds between the calculated NR server time and\n * the local time.\n * @type {number}\n */\n #localTimeDiff;\n\n /**\n * Represents whether the timekeeper is in a state that it can accurately convert\n * timestamps.\n * @type {number}\n */\n #ready = false;\n constructor(agentIdentifier) {\n this.#session = getRuntime(agentIdentifier)?.session;\n this.processStoredDiff();\n }\n get ready() {\n return this.#ready;\n }\n get correctedOriginTime() {\n return this.#correctedOriginTime;\n }\n\n /**\n * Process a rum request to calculate NR server time.\n * @param rumRequest {XMLHttpRequest} The xhr for the rum request\n * @param startTime {number} The start time of the RUM request\n * @param endTime {number} The end time of the RUM request\n */\n processRumRequest(rumRequest, startTime, endTime) {\n this.processStoredDiff();\n if (this.#ready) return; // Server time calculated from session entity\n const responseDateHeader = rumRequest.getResponseHeader('Date');\n if (!responseDateHeader) {\n throw new Error('Missing date header on rum response.');\n }\n const medianRumOffset = (endTime - startTime) / 2;\n const serverOffset = startTime + medianRumOffset;\n\n // Corrected page origin time\n this.#correctedOriginTime = Math.floor(Date.parse(responseDateHeader) - serverOffset);\n this.#localTimeDiff = originTime - this.#correctedOriginTime;\n if (isNaN(this.#correctedOriginTime)) {\n throw new Error('Date header invalid format.');\n }\n this.#session?.write({\n serverTimeDiff: this.#localTimeDiff\n });\n this.#ready = true;\n }\n\n /**\n * Converts a page origin relative time to an absolute timestamp\n * corrected to NR server time.\n * @param relativeTime {number} The relative time of the event in milliseconds\n * @returns {number} Corrected unix/epoch timestamp\n */\n convertRelativeTimestamp(relativeTime) {\n return Math.floor(this.#correctedOriginTime + relativeTime);\n }\n\n /**\n * Corrects an event timestamp to NR server time.\n * @param timestamp {number} The unix/epoch timestamp of the event with milliseconds\n * @return {number} Corrected unix/epoch timestamp\n */\n correctAbsoluteTimestamp(timestamp) {\n return Math.floor(timestamp - this.#localTimeDiff);\n }\n\n /** Process the session entity and use the info to set the main time calculations if present */\n processStoredDiff() {\n const storedServerTimeDiff = this.#session?.read()?.serverTimeDiff;\n if (typeof storedServerTimeDiff === 'number' && !isNaN(storedServerTimeDiff)) {\n this.#localTimeDiff = storedServerTimeDiff;\n this.#correctedOriginTime = originTime - this.#localTimeDiff;\n this.#ready = true;\n }\n }\n}","import { globalScope, isBrowserScope, originTime } from '../../../common/constants/runtime';\nimport { addPT, addPN } from '../../../common/timing/nav-timing';\nimport { stringify } from '../../../common/util/stringify';\nimport { getInfo, getRuntime } from '../../../common/config/config';\nimport { Harvest } from '../../../common/harvest/harvest';\nimport * as CONSTANTS from '../constants';\nimport { getActivatedFeaturesFlags } from './initialized-features';\nimport { activateFeatures } from '../../../common/util/feature-flags';\nimport { warn } from '../../../common/util/console';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { firstContentfulPaint } from '../../../common/vitals/first-contentful-paint';\nimport { firstPaint } from '../../../common/vitals/first-paint';\nimport { timeToFirstByte } from '../../../common/vitals/time-to-first-byte';\nimport { drain } from '../../../common/drain/drain';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { handle } from '../../../common/event-emitter/handle';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../metrics/constants';\nimport { now } from '../../../common/timing/now';\nimport { TimeKeeper } from '../../../common/timing/time-keeper';\nexport class Aggregate extends AggregateBase {\n static featureName = CONSTANTS.FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n super(agentIdentifier, aggregator, CONSTANTS.FEATURE_NAME);\n this.timeToFirstByte = 0;\n this.firstByteToWindowLoad = 0; // our \"frontend\" duration\n this.firstByteToDomContent = 0; // our \"dom processing\" duration\n this.timeKeeper = new TimeKeeper(this.agentIdentifier);\n if (isBrowserScope) {\n timeToFirstByte.subscribe(_ref => {\n let {\n value,\n attrs\n } = _ref;\n const navEntry = attrs.navigationEntry;\n this.timeToFirstByte = Math.max(value, this.timeToFirstByte);\n this.firstByteToWindowLoad = Math.max(Math.round(navEntry.loadEventEnd - this.timeToFirstByte), this.firstByteToWindowLoad); // our \"frontend\" duration\n this.firstByteToDomContent = Math.max(Math.round(navEntry.domContentLoadedEventEnd - this.timeToFirstByte), this.firstByteToDomContent); // our \"dom processing\" duration\n\n this.sendRum();\n });\n } else {\n // worker agent build does not get TTFB values, use default 0 values\n this.sendRum();\n }\n }\n sendRum() {\n const info = getInfo(this.agentIdentifier);\n const agentRuntime = getRuntime(this.agentIdentifier);\n const harvester = new Harvest(this);\n if (!info.beacon) return;\n if (info.queueTime) this.aggregator.store('measures', 'qt', {\n value: info.queueTime\n });\n if (info.applicationTime) this.aggregator.store('measures', 'ap', {\n value: info.applicationTime\n });\n\n // These 3 values should've been recorded after load and before this func runs. They are part of the minimum required for PageView events to be created.\n // Following PR #428, which demands that all agents send RUM call, these need to be sent even outside of the main window context where PerformanceTiming\n // or PerformanceNavigationTiming do not exists. Hence, they'll be filled in by 0s instead in, for example, worker threads that still init the PVE module.\n this.aggregator.store('measures', 'be', {\n value: this.timeToFirstByte\n });\n this.aggregator.store('measures', 'fe', {\n value: this.firstByteToWindowLoad\n });\n this.aggregator.store('measures', 'dc', {\n value: this.firstByteToDomContent\n });\n const queryParameters = {\n tt: info.ttGuid,\n us: info.user,\n ac: info.account,\n pr: info.product,\n af: getActivatedFeaturesFlags(this.agentIdentifier).join(','),\n ...Object.entries(this.aggregator.get('measures') || {}).reduce((aggregator, _ref2) => {\n let [metricName, measure] = _ref2;\n aggregator[metricName] = measure.params?.value;\n return aggregator;\n }, {}),\n xx: info.extra,\n ua: info.userAttributes,\n at: info.atts\n };\n if (agentRuntime.session) queryParameters.fsh = Number(agentRuntime.session.isNew); // \"first session harvest\" aka RUM request or PageView event of a session\n\n let body;\n if (typeof info.jsAttributes === 'object' && Object.keys(info.jsAttributes).length > 0) {\n body = {\n ja: info.jsAttributes\n };\n }\n if (globalScope.performance) {\n if (typeof PerformanceNavigationTiming !== 'undefined') {\n // Navigation Timing level 2 API that replaced PerformanceTiming & PerformanceNavigation\n const navTimingEntry = globalScope?.performance?.getEntriesByType('navigation')?.[0];\n const perf = {\n timing: addPT(originTime, navTimingEntry, {}),\n navigation: addPN(navTimingEntry, {})\n };\n queryParameters.perf = stringify(perf);\n } else if (typeof PerformanceTiming !== 'undefined') {\n // Safari pre-15 did not support level 2 timing\n const perf = {\n timing: addPT(originTime, globalScope.performance.timing, {}, true),\n navigation: addPN(globalScope.performance.navigation, {})\n };\n queryParameters.perf = stringify(perf);\n }\n }\n queryParameters.fp = firstPaint.current.value;\n queryParameters.fcp = firstContentfulPaint.current.value;\n if (this.timeKeeper?.ready) {\n queryParameters.timestamp = this.timeKeeper.convertRelativeTimestamp(now());\n }\n const rumStartTime = now();\n harvester.send({\n endpoint: 'rum',\n payload: {\n qs: queryParameters,\n body\n },\n opts: {\n needResponse: true,\n sendEmptyBody: true\n },\n cbFinished: _ref3 => {\n let {\n status,\n responseText,\n xhr\n } = _ref3;\n const rumEndTime = now();\n if (status >= 400 || status === 0) {\n // Adding retry logic for the rum call will be a separate change\n this.ee.abort();\n return;\n }\n try {\n this.timeKeeper.processRumRequest(xhr, rumStartTime, rumEndTime);\n if (!this.timeKeeper.ready) throw new Error('TimeKeeper not ready');\n agentRuntime.timeKeeper = this.timeKeeper;\n } catch (error) {\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['PVE/NRTime/Calculation/Failed'], undefined, FEATURE_NAMES.metrics, this.ee);\n drain(this.agentIdentifier, FEATURE_NAMES.metrics, true);\n this.ee.abort();\n warn('Could not calculate New Relic server time. Agent shutting down.', error);\n return;\n }\n try {\n const {\n app,\n ...flags\n } = JSON.parse(responseText);\n agentRuntime.appMetadata = app;\n activateFeatures(flags, this.agentIdentifier);\n this.drain();\n } catch (err) {\n this.ee.abort();\n warn('RUM call failed. Agent shutting down.', err);\n }\n }\n });\n }\n}","import { FEATURE_NAMES } from '../../loaders/features/features';\nexport const FEATURE_NAME = FEATURE_NAMES.pageViewTiming;","import { onCLS } from 'web-vitals/attribution';\nimport { VITAL_NAMES } from './constants';\nimport { VitalMetric } from './vital-metric';\nimport { isBrowserScope } from '../constants/runtime';\nexport const cumulativeLayoutShift = new VitalMetric(VITAL_NAMES.CUMULATIVE_LAYOUT_SHIFT, x => x);\nif (isBrowserScope) {\n onCLS(_ref => {\n let {\n value,\n attribution,\n id\n } = _ref;\n const attrs = {\n metricId: id,\n largestShiftTarget: attribution.largestShiftTarget,\n largestShiftTime: attribution.largestShiftTime,\n largestShiftValue: attribution.largestShiftValue,\n loadState: attribution.loadState\n };\n cumulativeLayoutShift.update({\n value,\n attrs\n });\n }, {\n reportAllChanges: true\n });\n}","import { onFID } from 'web-vitals/attribution';\nimport { VitalMetric } from './vital-metric';\nimport { VITAL_NAMES } from './constants';\nimport { initiallyHidden, isBrowserScope } from '../constants/runtime';\nexport const firstInputDelay = new VitalMetric(VITAL_NAMES.FIRST_INPUT_DELAY);\nif (isBrowserScope) {\n onFID(_ref => {\n let {\n value,\n attribution\n } = _ref;\n if (initiallyHidden || firstInputDelay.isValid) return;\n const attrs = {\n type: attribution.eventType,\n fid: Math.round(value),\n eventTarget: attribution.eventTarget,\n loadState: attribution.loadState\n };\n\n // CWV will only report one (THE) first-input entry to us; fid isn't reported if there are no user interactions occurs before the *first* page hiding.\n firstInputDelay.update({\n value: attribution.eventTime,\n attrs\n });\n });\n}","import { onINP } from 'web-vitals/attribution';\nimport { VitalMetric } from './vital-metric';\nimport { VITAL_NAMES } from './constants';\nimport { isBrowserScope } from '../constants/runtime';\nexport const interactionToNextPaint = new VitalMetric(VITAL_NAMES.INTERACTION_TO_NEXT_PAINT);\nif (isBrowserScope) {\n /* Interaction-to-Next-Paint */\n onINP(_ref => {\n let {\n value,\n attribution,\n id\n } = _ref;\n const attrs = {\n metricId: id,\n eventTarget: attribution.eventTarget,\n eventType: attribution.eventType,\n eventTime: attribution.eventTime,\n loadState: attribution.loadState\n };\n interactionToNextPaint.update({\n value,\n attrs\n });\n });\n}","import { onLCP } from 'web-vitals/attribution';\nimport { VitalMetric } from './vital-metric';\nimport { VITAL_NAMES } from './constants';\nimport { initiallyHidden, isBrowserScope } from '../constants/runtime';\nimport { cleanURL } from '../url/clean-url';\nexport const largestContentfulPaint = new VitalMetric(VITAL_NAMES.LARGEST_CONTENTFUL_PAINT);\nif (isBrowserScope) {\n onLCP(_ref => {\n let {\n value,\n attribution\n } = _ref;\n /* Largest Contentful Paint - As of WV v3, it still imperfectly tries to detect document vis state asap and isn't supposed to report if page starts hidden. */\n if (initiallyHidden || largestContentfulPaint.isValid) return;\n let attrs;\n const lcpEntry = attribution.lcpEntry;\n if (lcpEntry) {\n attrs = {\n size: lcpEntry.size,\n eid: lcpEntry.id,\n element: attribution.element,\n timeToFirstByte: attribution.timeToFirstByte,\n resourceLoadDelay: attribution.resourceLoadDelay,\n resourceLoadTime: attribution.resourceLoadTime,\n elementRenderDelay: attribution.elementRenderDelay\n };\n if (attribution.url) attrs.elUrl = cleanURL(attribution.url);\n if (lcpEntry.element?.tagName) attrs.elTag = lcpEntry.element.tagName;\n }\n largestContentfulPaint.update({\n value,\n attrs\n });\n });\n}","import { isBrowserScope } from '../constants/runtime';\nimport { subscribeToEOL } from '../unload/eol';\nimport { VITAL_NAMES } from './constants';\nimport { VitalMetric } from './vital-metric';\nexport const longTask = new VitalMetric(VITAL_NAMES.LONG_TASK);\nif (isBrowserScope) {\n const handleEntries = entries => {\n entries.forEach(entry => {\n longTask.update({\n value: entry.duration,\n attrs: {\n ltFrame: entry.name,\n // MDN: the browsing context or frame that can be attributed to the long task\n ltStart: entry.startTime,\n // MDN: a double representing the time (millisec) when the task started\n ltCtr: entry.attribution[0].containerType,\n // MDN: type of frame container: 'iframe', 'embed', or 'object' ... but this can also be 'window',\n ...(entry.attribution[0].containerType !== 'window' && {\n ltCtrSrc: entry.attribution[0].containerSrc,\n // MDN: container's 'src' attribute\n ltCtrId: entry.attribution[0].containerId,\n // MDN: container's 'id' attribute\n ltCtrName: entry.attribution[0].containerName // MDN: container's 'name' attribute\n })\n }\n });\n });\n };\n let observer;\n try {\n if (PerformanceObserver.supportedEntryTypes.includes('longtask')) {\n observer = new PerformanceObserver(list => {\n // Delay by a microtask to workaround a bug in Safari where the\n // callback is invoked immediately, rather than in a separate task.\n // See: https://github.com/GoogleChrome/web-vitals/issues/277\n Promise.resolve().then(() => {\n handleEntries(list.getEntries());\n });\n });\n observer.observe({\n type: 'longtask',\n buffered: true\n });\n }\n } catch (e) {\n // Do nothing.\n }\n if (observer) {\n subscribeToEOL(() => {\n handleEntries(observer.takeRecords());\n }, true); // this bool is a temp arg under staged BFCache work that runs the func under the new page session logic -- tb removed w/ the feature flag later\n\n /* No work needed on BFCache restore for long task. */\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { nullable, numeric, getAddStringContext, addCustomAttributes } from '../../../common/serialize/bel-serializer';\nimport { mapOwn } from '../../../common/util/map-own';\nimport { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';\nimport { registerHandler } from '../../../common/event-emitter/register-handler';\nimport { handle } from '../../../common/event-emitter/handle';\nimport { getInfo, getConfigurationValue } from '../../../common/config/config';\nimport { FEATURE_NAME } from '../constants';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { cumulativeLayoutShift } from '../../../common/vitals/cumulative-layout-shift';\nimport { firstContentfulPaint } from '../../../common/vitals/first-contentful-paint';\nimport { firstInputDelay } from '../../../common/vitals/first-input-delay';\nimport { firstPaint } from '../../../common/vitals/first-paint';\nimport { interactionToNextPaint } from '../../../common/vitals/interaction-to-next-paint';\nimport { largestContentfulPaint } from '../../../common/vitals/largest-contentful-paint';\nimport { timeToFirstByte } from '../../../common/vitals/time-to-first-byte';\nimport { longTask } from '../../../common/vitals/long-task';\nimport { subscribeToVisibilityChange } from '../../../common/window/page-visibility';\nimport { VITAL_NAMES } from '../../../common/vitals/constants';\nexport class Aggregate extends AggregateBase {\n static featureName = FEATURE_NAME;\n #handleVitalMetric = _ref => {\n let {\n name,\n value,\n attrs\n } = _ref;\n this.addTiming(name, value, attrs);\n };\n constructor(agentIdentifier, aggregator) {\n var _this;\n super(agentIdentifier, aggregator, FEATURE_NAME);\n _this = this;\n this.timings = [];\n this.timingsSent = [];\n this.curSessEndRecorded = false;\n if (getConfigurationValue(this.agentIdentifier, 'page_view_timing.long_task') === true) longTask.subscribe(this.#handleVitalMetric);\n registerHandler('docHidden', msTimestamp => this.endCurrentSession(msTimestamp), this.featureName, this.ee);\n registerHandler('winPagehide', msTimestamp => this.recordPageUnload(msTimestamp), this.featureName, this.ee);\n const initialHarvestSeconds = getConfigurationValue(this.agentIdentifier, 'page_view_timing.initialHarvestSeconds') || 10;\n const harvestTimeSeconds = getConfigurationValue(this.agentIdentifier, 'page_view_timing.harvestTimeSeconds') || 30;\n this.waitForFlags([]).then(() => {\n /* It's important that CWV api, like \"onLCP\", is called before the **scheduler** is initialized. The reason is because they listen to the same\n on vis change or pagehide events, and we'd want ex. onLCP to record the timing (win the race) before we try to send \"final harvest\". */\n firstPaint.subscribe(this.#handleVitalMetric);\n firstContentfulPaint.subscribe(this.#handleVitalMetric);\n firstInputDelay.subscribe(this.#handleVitalMetric);\n largestContentfulPaint.subscribe(this.#handleVitalMetric);\n interactionToNextPaint.subscribe(this.#handleVitalMetric);\n timeToFirstByte.subscribe(_ref2 => {\n let {\n attrs\n } = _ref2;\n this.addTiming('load', Math.round(attrs.navigationEntry.loadEventEnd));\n });\n subscribeToVisibilityChange(() => {\n /* Downstream, the event consumer interprets all timing node value as ms-unit and converts it to seconds via division by 1000. CLS is unitless so this normally is a problem.\n bel.6 schema also doesn't support decimal values, of which cls within [0,1). However, the two nicely cancels out, and we can multiply cls by 1000 to both negate the division\n and send an integer > 1. We effectively lose some precision down to 3 decimal places for this workaround. E.g. (real) 0.749132... -> 749.132...-> 749 -> 0.749 (final) */\n const {\n name,\n value,\n attrs\n } = cumulativeLayoutShift.current;\n if (value === undefined) return;\n this.addTiming(name, value * 1000, attrs);\n }, true); // CLS node should only reports on vis change rather than on every change\n\n const scheduler = new HarvestScheduler('events', {\n onFinished: function () {\n return _this.onHarvestFinished(...arguments);\n },\n getPayload: function () {\n return _this.prepareHarvest(...arguments);\n }\n }, this);\n scheduler.startTimer(harvestTimeSeconds, initialHarvestSeconds);\n this.drain();\n });\n }\n\n /**\n * Add the time of _document visibilitychange to hidden_ to the next PVT harvest == NRDB pageHide attr.\n * @param {number} timestamp\n */\n endCurrentSession(timestamp) {\n if (!this.curSessEndRecorded) {\n // TO DO: stage 2 - we don't want to capture this timing twice on page navigating away, but it should run again if we return to page and away *again*\n this.addTiming('pageHide', timestamp, null);\n this.curSessEndRecorded = true;\n }\n }\n\n /**\n * Add the time of _window pagehide event_ firing to the next PVT harvest == NRDB windowUnload attr.\n */\n recordPageUnload(timestamp) {\n this.addTiming('unload', timestamp, null);\n /*\n Issue: Because window's pageHide commonly fires BEFORE vis change and \"final\" harvest would happen at the former in this case, we also have to add our vis-change event now or it may not be sent.\n Affected: Safari < v14.1/.5 ; versions that don't support 'visiilitychange' event\n Impact: For affected w/o this, NR 'pageHide' attribute may not be sent. For other browsers w/o this, NR 'pageHide' gets fragmented into its own harvest call on page unloading because of dual EoL logic.\n Mitigation: NR 'unload' and 'pageHide' are both recorded when window pageHide fires, rather than only recording 'unload'.\n Future: When EoL can become the singular subscribeToVisibilityChange, it's likely endCurrentSession isn't needed here as 'unload'-'pageHide' can be untangled.\n */\n this.endCurrentSession(timestamp);\n }\n addTiming(name, value, attrs) {\n attrs = attrs || {};\n addConnectionAttributes(attrs); // network conditions may differ from the actual for VitalMetrics when they were captured\n\n // If cls was set to another value by `onCLS`, then it's supported and is attached onto any timing but is omitted until such time.\n /*\n *cli Apr'23 - Convert attach-to-all -> attach-if-not-null. See NEWRELIC-6143.\n Issue: Because NR 'pageHide' was only sent once with what is considered the \"final\" CLS value, in the case that 'pageHide' fires before 'load' happens, we incorrectly a final CLS of 0 for that page.\n Mitigation: We've set initial CLS to null so that it's omitted from timings like 'pageHide' in that edge case. It should only be included if onCLS callback was executed at least once.\n Future: onCLS value changes should be reported directly & CLS separated into its own timing node so it's not beholden to 'pageHide' firing. It'd also be possible to report the real final CLS.\n *cli Mar'24 update: CLS now emitted as its own timing node in addition to as-property under other nodes. The 'cls' property is unnecessary for cls nodes.\n */\n if (name !== VITAL_NAMES.CUMULATIVE_LAYOUT_SHIFT && cumulativeLayoutShift.current.value >= 0) {\n attrs.cls = cumulativeLayoutShift.current.value;\n }\n this.timings.push({\n name,\n value,\n attrs\n });\n handle('pvtAdded', [name, value, attrs], undefined, FEATURE_NAMES.sessionTrace, this.ee);\n }\n onHarvestFinished(result) {\n if (result.retry && this.timingsSent.length > 0) {\n this.timings.unshift(...this.timingsSent);\n this.timingsSent = [];\n }\n }\n appendGlobalCustomAttributes(timing) {\n var timingAttributes = timing.attrs || {};\n var customAttributes = getInfo(this.agentIdentifier).jsAttributes || {};\n var reservedAttributes = ['size', 'eid', 'cls', 'type', 'fid', 'elTag', 'elUrl', 'net-type', 'net-etype', 'net-rtt', 'net-dlink'];\n mapOwn(customAttributes, function (key, val) {\n if (reservedAttributes.indexOf(key) < 0) {\n timingAttributes[key] = val;\n }\n });\n }\n\n // serialize and return current timing data, clear and save current data for retry\n prepareHarvest(options) {\n if (this.timings.length === 0) return;\n var payload = this.getPayload(this.timings);\n if (options.retry) {\n for (var i = 0; i < this.timings.length; i++) {\n this.timingsSent.push(this.timings[i]);\n }\n }\n this.timings = [];\n return {\n body: {\n e: payload\n }\n };\n }\n\n // serialize array of timing data\n getPayload(data) {\n var addString = getAddStringContext(this.agentIdentifier);\n var payload = 'bel.6;';\n for (var i = 0; i < data.length; i++) {\n var timing = data[i];\n payload += 'e,';\n payload += addString(timing.name) + ',';\n payload += nullable(timing.value, numeric, false) + ',';\n this.appendGlobalCustomAttributes(timing);\n var attrParts = addCustomAttributes(timing.attrs, addString);\n if (attrParts && attrParts.length > 0) {\n payload += numeric(attrParts.length) + ';' + attrParts.join(';');\n }\n if (i + 1 < data.length) payload += ';';\n }\n return payload;\n }\n}\nfunction addConnectionAttributes(obj) {\n var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; // to date, both window & worker shares the same support for connection\n if (!connection) return;\n if (connection.type) obj['net-type'] = connection.type;\n if (connection.effectiveType) obj['net-etype'] = connection.effectiveType;\n if (connection.rtt) obj['net-rtt'] = connection.rtt;\n if (connection.downlink) obj['net-dlink'] = connection.downlink;\n}","/**\n * @file Keeps an object alive that is passed to all feature aggregate modules.\n * The purpose is to have a way for communication and signals to relay across features at runtime.\n * This object can hold any arbitrary values and should be treated as on-the-fly dynamic.\n */\n\nlet onReplayReady;\nconst sessionReplayInitialized = new Promise(resolve => {\n onReplayReady = resolve;\n});\nexport const sharedChannel = Object.freeze({\n onReplayReady,\n sessionReplayInitialized\n});","import { originals } from '../../../common/config/config';\nimport { isBrowserScope } from '../../../common/constants/runtime';\nclass StylesheetEvaluator {\n #evaluated = new WeakSet();\n #fetchProms = [];\n /**\n * Flipped to true if stylesheets that cannot be natively inlined are detected by the stylesheetEvaluator class\n * Used at harvest time to denote that all subsequent payloads are subject to this and customers should be advised to handle crossorigin decoration\n * */\n invalidStylesheetsDetected = false;\n failedToFix = 0;\n\n /**\n * this works by checking (only ever once) each cssRules obj in the style sheets array. The try/catch will catch an error if the cssRules obj blocks access, triggering the module to try to \"fix\" the asset`. Returns the count of incomplete assets discovered.\n * @returns {Number}\n */\n evaluate() {\n let incompletes = 0;\n if (isBrowserScope) {\n for (let i = 0; i < Object.keys(document.styleSheets).length; i++) {\n if (!this.#evaluated.has(document.styleSheets[i])) {\n this.#evaluated.add(document.styleSheets[i]);\n try {\n // eslint-disable-next-line\n const temp = document.styleSheets[i].cssRules;\n } catch (err) {\n if (!document.styleSheets[i].href) return;\n incompletes++;\n this.#fetchProms.push(this.#fetchAndOverride(document.styleSheets[i]));\n }\n }\n }\n }\n if (incompletes) this.invalidStylesheetsDetected = true;\n return incompletes;\n }\n\n /**\n * Resolves promise once all stylesheets have been fetched and overridden\n * @returns {Promise}\n */\n async fix() {\n await Promise.all(this.#fetchProms);\n this.#fetchProms = [];\n const failedToFix = this.failedToFix;\n this.failedToFix = 0;\n return failedToFix;\n }\n\n /**\n * Fetches stylesheet contents and overrides the target getters\n * @param {*} target - The stylesheet object target - ex. document.styleSheets[0]\n * @param {*} href - The asset href to fetch\n * @returns {Promise}\n */\n async #fetchAndOverride(target) {\n if (!target?.href) return;\n try {\n const stylesheetContents = await originals.FETCH.bind(window)(target.href);\n if (!stylesheetContents.ok) {\n this.failedToFix++;\n return;\n }\n const stylesheetText = await stylesheetContents.text();\n try {\n const cssSheet = new CSSStyleSheet();\n await cssSheet.replace(stylesheetText);\n Object.defineProperty(target, 'cssRules', {\n get() {\n return cssSheet.cssRules;\n }\n });\n Object.defineProperty(target, 'rules', {\n get() {\n return cssSheet.rules;\n }\n });\n } catch (err) {\n // cant make new dynamic stylesheets, browser likely doesn't support `.replace()`...\n // this is appended in prep of forking rrweb\n Object.defineProperty(target, 'cssText', {\n get() {\n return stylesheetText;\n }\n });\n this.failedToFix++;\n }\n } catch (err) {\n // failed to fetch\n this.failedToFix++;\n }\n }\n}\nexport const stylesheetEvaluator = new StylesheetEvaluator();","/*\n * Copyright 2023 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * @file Records, aggregates, and harvests session replay data.\n *\n * NOTE: This code is under development and dormant. It will not download to instrumented pages or record any data.\n * It is not production ready, and is not intended to be imported or implemented in any build of the browser agent until\n * functionality is validated and a full user experience is curated.\n */\n\nimport { registerHandler } from '../../../common/event-emitter/register-handler';\nimport { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';\nimport { ABORT_REASONS, FEATURE_NAME, MAX_PAYLOAD_SIZE, QUERY_PARAM_PADDING, RRWEB_EVENT_TYPES, SR_EVENT_EMITTER_TYPES, TRIGGERS } from '../constants';\nimport { getConfigurationValue, getInfo, getRuntime } from '../../../common/config/config';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { sharedChannel } from '../../../common/constants/shared-channel';\nimport { obj as encodeObj } from '../../../common/url/encode';\nimport { warn } from '../../../common/util/console';\nimport { globalScope } from '../../../common/constants/runtime';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../metrics/constants';\nimport { handle } from '../../../common/event-emitter/handle';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { RRWEB_VERSION } from \"../../../common/constants/env.npm\";\nimport { MODE, SESSION_EVENTS, SESSION_EVENT_TYPES } from '../../../common/session/constants';\nimport { stringify } from '../../../common/util/stringify';\nimport { stylesheetEvaluator } from '../shared/stylesheet-evaluator';\nimport { deregisterDrain } from '../../../common/drain/drain';\nimport { now } from '../../../common/timing/now';\nimport { buildNRMetaNode } from '../shared/utils';\nexport class Aggregate extends AggregateBase {\n static featureName = FEATURE_NAME;\n mode = MODE.OFF;\n\n // pass the recorder into the aggregator\n constructor(agentIdentifier, aggregator, args) {\n super(agentIdentifier, aggregator, FEATURE_NAME);\n /** The interval to harvest at. This gets overridden if the size of the payload exceeds certain thresholds */\n this.harvestTimeSeconds = getConfigurationValue(this.agentIdentifier, 'session_replay.harvestTimeSeconds') || 60;\n /** Set once the recorder has fully initialized after flag checks and sampling */\n this.initialized = false;\n /** Set once the feature has been \"aborted\" to prevent other side-effects from continuing */\n this.blocked = false;\n /** populated with the gzipper lib async */\n this.gzipper = undefined;\n /** populated with the u8 string lib async */\n this.u8 = undefined;\n\n /** set by BCS response */\n this.entitled = false;\n /** set at BCS response, stored in runtime */\n this.timeKeeper = undefined;\n this.recorder = args?.recorder;\n this.errorNoticed = args?.errorNoticed || false;\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/Enabled'], undefined, FEATURE_NAMES.metrics, this.ee);\n this.ee.on(\"cfc.\".concat(FEATURE_NAMES.jserrors), crossFeatureData => {\n crossFeatureData.hasReplay = !!(this.scheduler?.started && this.recorder && this.mode === MODE.FULL && !this.blocked && this.entitled);\n });\n\n // The SessionEntity class can emit a message indicating the session was cleared and reset (expiry, inactivity). This feature must abort and never resume if that occurs.\n this.ee.on(SESSION_EVENTS.RESET, () => {\n this.abort(ABORT_REASONS.RESET);\n });\n\n // The SessionEntity class can emit a message indicating the session was paused (visibility change). This feature must stop recording if that occurs.\n this.ee.on(SESSION_EVENTS.PAUSE, () => {\n this.recorder?.stopRecording();\n });\n // The SessionEntity class can emit a message indicating the session was resumed (visibility change). This feature must start running again (if already running) if that occurs.\n this.ee.on(SESSION_EVENTS.RESUME, () => {\n if (!this.recorder) return;\n // if the mode changed on a different tab, it needs to update this instance to match\n const {\n session\n } = getRuntime(this.agentIdentifier);\n this.mode = session.state.sessionReplayMode;\n if (!this.initialized || this.mode === MODE.OFF) return;\n this.recorder?.startRecording();\n });\n this.ee.on(SESSION_EVENTS.UPDATE, (type, data) => {\n if (!this.recorder || !this.initialized || this.blocked || type !== SESSION_EVENT_TYPES.CROSS_TAB) return;\n if (this.mode !== MODE.OFF && data.sessionReplayMode === MODE.OFF) this.abort(ABORT_REASONS.CROSS_TAB);\n this.mode = data.sessionReplay;\n });\n\n // Bespoke logic for blobs endpoint.\n this.scheduler = new HarvestScheduler('browser/blobs', {\n onFinished: this.onHarvestFinished.bind(this),\n retryDelay: this.harvestTimeSeconds,\n getPayload: this.prepareHarvest.bind(this),\n raw: true\n }, this);\n registerHandler(SR_EVENT_EMITTER_TYPES.PAUSE, () => {\n this.forceStop(this.mode !== MODE.ERROR);\n }, this.featureName, this.ee);\n registerHandler(SR_EVENT_EMITTER_TYPES.ERROR_DURING_REPLAY, e => {\n this.handleError(e);\n }, this.featureName, this.ee);\n const {\n error_sampling_rate,\n sampling_rate,\n autoStart,\n block_selector,\n mask_text_selector,\n mask_all_inputs,\n inline_stylesheet,\n inline_images,\n collect_fonts\n } = getConfigurationValue(this.agentIdentifier, 'session_replay');\n this.waitForFlags(['srs', 'sr']).then(_ref => {\n let [srMode, entitled] = _ref;\n this.entitled = !!entitled;\n if (!this.entitled) {\n deregisterDrain(this.agentIdentifier, this.featureName);\n if (this.recorder?.recording) {\n this.abort(ABORT_REASONS.ENTITLEMENTS);\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['SessionReplay/EnabledNotEntitled/Detected'], undefined, FEATURE_NAMES.metrics, this.ee);\n }\n return;\n }\n this.drain();\n this.initializeRecording(srMode);\n }).then(() => {\n if (this.mode === MODE.OFF) {\n this.recorder?.stopRecording(); // stop any conservative preload recording launched by instrument\n while (this.recorder?.getEvents().events.length) this.recorder?.clearBuffer?.();\n }\n sharedChannel.onReplayReady(this.mode);\n }); // notify watchers that replay started with the mode\n\n /** Detect if the default configs have been altered and report a SM. This is useful to evaluate what the reasonable defaults are across a customer base over time */\n if (!autoStart) handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/AutoStart/Modified'], undefined, FEATURE_NAMES.metrics, this.ee);\n if (collect_fonts === true) handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/CollectFonts/Modified'], undefined, FEATURE_NAMES.metrics, this.ee);\n if (inline_stylesheet !== true) handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/InlineStylesheet/Modified'], undefined, FEATURE_NAMES.metrics, this.ee);\n if (inline_images === true) handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/InlineImages/Modifed'], undefined, FEATURE_NAMES.metrics, this.ee);\n if (mask_all_inputs !== true) handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/MaskAllInputs/Modified'], undefined, FEATURE_NAMES.metrics, this.ee);\n if (block_selector !== '[data-nr-block]') handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/BlockSelector/Modified'], undefined, FEATURE_NAMES.metrics, this.ee);\n if (mask_text_selector !== '*') handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/MaskTextSelector/Modified'], undefined, FEATURE_NAMES.metrics, this.ee);\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/SamplingRate/Value', sampling_rate], undefined, FEATURE_NAMES.metrics, this.ee);\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['Config/SessionReplay/ErrorSamplingRate/Value', error_sampling_rate], undefined, FEATURE_NAMES.metrics, this.ee);\n }\n handleError(e) {\n if (this.recorder) this.recorder.currentBufferTarget.hasError = true;\n // run once\n if (this.mode === MODE.ERROR && globalScope?.document.visibilityState === 'visible') {\n this.switchToFull();\n }\n }\n switchToFull() {\n if (!this.entitled || this.blocked) return;\n this.mode = MODE.FULL;\n // if the error was noticed AFTER the recorder was already imported....\n if (this.recorder && this.initialized) {\n if (!this.recorder.recording) this.recorder.startRecording();\n this.scheduler.startTimer(this.harvestTimeSeconds);\n this.syncWithSessionManager({\n sessionReplayMode: this.mode\n });\n } else {\n this.initializeRecording(false, true, true);\n }\n }\n\n /**\n * Evaluate entitlements and sampling before starting feature mechanics, importing and configuring recording library, and setting storage state\n * @param {boolean} entitlements - the true/false state of the \"sr\" flag from RUM response\n * @param {boolean} errorSample - the true/false state of the error sampling decision\n * @param {boolean} fullSample - the true/false state of the full sampling decision\n * @param {boolean} ignoreSession - whether to force the method to ignore the session state and use just the sample flags\n * @returns {void}\n */\n async initializeRecording(srMode, ignoreSession) {\n this.initialized = true;\n if (!this.entitled) return;\n\n // if theres an existing session replay in progress, there's no need to sample, just check the entitlements response\n // if not, these sample flags need to be checked\n // if this isnt the FIRST load of a session AND\n // we are not actively recording SR... DO NOT import or run the recording library\n // session replay samples can only be decided on the first load of a session\n // session replays can continue if already in progress\n const {\n session,\n timeKeeper\n } = getRuntime(this.agentIdentifier);\n this.timeKeeper = timeKeeper;\n if (this.recorder?.parent.trigger === TRIGGERS.API && this.recorder?.recording) {\n this.mode = MODE.FULL;\n } else if (!session.isNew && !ignoreSession) {\n // inherit the mode of the existing session\n this.mode = session.state.sessionReplayMode;\n } else {\n // The session is new... determine the mode the new session should start in\n this.mode = srMode;\n }\n // If off, then don't record (early return)\n if (this.mode === MODE.OFF) return;\n if (!this.recorder) {\n try {\n // Do not change the webpackChunkName or it will break the webpack nrba-chunking plugin\n const {\n Recorder\n } = await import( /* webpackChunkName: \"recorder\" */'../shared/recorder');\n this.recorder = new Recorder(this);\n this.recorder.currentBufferTarget.hasError = this.errorNoticed;\n } catch (err) {\n return this.abort(ABORT_REASONS.IMPORT);\n }\n } else {\n this.recorder.parent = this;\n }\n\n // If an error was noticed before the mode could be set (like in the early lifecycle of the page), immediately set to FULL mode\n if (this.mode === MODE.ERROR && this.errorNoticed) this.mode = MODE.FULL;\n if (this.mode === MODE.FULL) {\n // If theres preloaded events and we are in full mode, just harvest immediately to clear up space and for consistency\n if (this.recorder?.getEvents().type === 'preloaded') {\n this.prepUtils().then(() => {\n this.scheduler.runHarvest();\n });\n }\n // FULL mode records AND reports from the beginning, while ERROR mode only records (but does not report).\n // ERROR mode will do this until an error is thrown, and then switch into FULL mode.\n // If an error happened in ERROR mode before we've gotten to this stage, it will have already set the mode to FULL\n if (!this.scheduler.started) {\n // We only report (harvest) in FULL mode\n this.scheduler.startTimer(this.harvestTimeSeconds);\n }\n }\n await this.prepUtils();\n if (!this.recorder.recording) this.recorder.startRecording();\n this.syncWithSessionManager({\n sessionReplayMode: this.mode\n });\n }\n async prepUtils() {\n try {\n // Do not change the webpackChunkName or it will break the webpack nrba-chunking plugin\n const {\n gzipSync,\n strToU8\n } = await import( /* webpackChunkName: \"compressor\" */'fflate');\n this.gzipper = gzipSync;\n this.u8 = strToU8;\n } catch (err) {\n // compressor failed to load, but we can still record without compression as a last ditch effort\n }\n }\n prepareHarvest() {\n let {\n opts\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!this.recorder || !this.timeKeeper?.ready) return;\n const recorderEvents = this.recorder.getEvents();\n // get the event type and use that to trigger another harvest if needed\n if (!recorderEvents.events.length || this.mode !== MODE.FULL || this.blocked) return;\n const payload = this.getHarvestContents(recorderEvents);\n if (!payload.body.length) {\n this.recorder.clearBuffer();\n return;\n }\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['SessionReplay/Harvest/Attempts'], undefined, FEATURE_NAMES.metrics, this.ee);\n let len = 0;\n if (!!this.gzipper && !!this.u8) {\n payload.body = this.gzipper(this.u8(\"[\".concat(payload.body.map(_ref2 => {\n let {\n __serialized,\n ...e\n } = _ref2;\n if (e.__newrelic && __serialized) return __serialized;\n const output = {\n ...e\n };\n if (!output.__newrelic) {\n output.__newrelic = buildNRMetaNode(e.timestamp, this.timeKeeper);\n output.timestamp = this.timeKeeper.correctAbsoluteTimestamp(e.timestamp);\n }\n return stringify(output);\n }).join(','), \"]\")));\n len = payload.body.length;\n this.scheduler.opts.gzip = true;\n } else {\n payload.body = payload.body.map(_ref3 => {\n let {\n __serialized,\n ...node\n } = _ref3;\n if (node.__newrelic) return node;\n const output = {\n ...node\n };\n output.__newrelic = buildNRMetaNode(node.timestamp, this.timeKeeper);\n output.timestamp = this.timeKeeper.correctAbsoluteTimestamp(node.timestamp);\n return output;\n });\n len = stringify(payload.body).length;\n this.scheduler.opts.gzip = false;\n }\n if (len > MAX_PAYLOAD_SIZE) {\n this.abort(ABORT_REASONS.TOO_BIG);\n return;\n }\n // TODO -- Gracefully handle the buffer for retries.\n const {\n session\n } = getRuntime(this.agentIdentifier);\n if (!session.state.sessionReplaySentFirstChunk) this.syncWithSessionManager({\n sessionReplaySentFirstChunk: true\n });\n this.recorder.clearBuffer();\n if (recorderEvents.type === 'preloaded') this.scheduler.runHarvest(opts);\n return [payload];\n }\n getCorrectedTimestamp(node) {\n if (!node?.timestamp) return;\n if (node.__newrelic) return node.timestamp;\n return this.timeKeeper.correctAbsoluteTimestamp(node.timestamp);\n }\n getHarvestContents(recorderEvents) {\n recorderEvents ??= this.recorder.getEvents();\n let events = recorderEvents.events;\n const agentRuntime = getRuntime(this.agentIdentifier);\n const info = getInfo(this.agentIdentifier);\n const endUserId = info.jsAttributes?.['enduser.id'];\n\n // do not let the first node be a full snapshot node, since this NEEDS to be preceded by a meta node\n // we will manually inject it if this happens\n const payloadStartsWithFullSnapshot = events?.[0]?.type === RRWEB_EVENT_TYPES.FullSnapshot;\n if (payloadStartsWithFullSnapshot && !!this.recorder.lastMeta) {\n recorderEvents.hasMeta = true;\n events.unshift(this.recorder.lastMeta); // --> pushed the meta from a previous payload into newer payload... but it still has old timestamps\n this.recorder.lastMeta = undefined;\n }\n\n // do not let the last node be a meta node, since this NEEDS to precede a snapshot\n // we will manually inject it later if we find a payload that is missing a meta node\n const payloadEndsWithMeta = events[events.length - 1]?.type === RRWEB_EVENT_TYPES.Meta;\n if (payloadEndsWithMeta) {\n this.recorder.lastMeta = events[events.length - 1];\n events = events.slice(0, events.length - 1);\n recorderEvents.hasMeta = !!events.find(x => x.type === RRWEB_EVENT_TYPES.Meta);\n }\n const relativeNow = now();\n const firstEventTimestamp = this.getCorrectedTimestamp(events[0]); // from rrweb node\n const lastEventTimestamp = this.getCorrectedTimestamp(events[events.length - 1]); // from rrweb node\n const firstTimestamp = firstEventTimestamp || this.timeKeeper.correctAbsoluteTimestamp(recorderEvents.cycleTimestamp); // from rrweb node || from when the harvest cycle started\n const lastTimestamp = lastEventTimestamp || this.timeKeeper.convertRelativeTimestamp(relativeNow);\n const agentMetadata = agentRuntime.appMetadata?.agents?.[0] || {};\n return {\n qs: {\n browser_monitoring_key: info.licenseKey,\n type: 'SessionReplay',\n app_id: info.applicationID,\n protocol_version: '0',\n timestamp: firstTimestamp,\n attributes: encodeObj({\n // this section of attributes must be controllable and stay below the query param padding limit -- see QUERY_PARAM_PADDING\n // if not, data could be lost to truncation at time of sending, potentially breaking parsing / API behavior in NR1\n ...(!!this.gzipper && !!this.u8 && {\n content_encoding: 'gzip'\n }),\n ...(agentMetadata.entityGuid && {\n entityGuid: agentMetadata.entityGuid\n }),\n harvestId: [agentRuntime.session?.state.value, agentRuntime.ptid, agentRuntime.harvestCount].filter(x => x).join('_'),\n 'replay.firstTimestamp': firstTimestamp,\n 'replay.lastTimestamp': lastTimestamp,\n 'replay.nodes': events.length,\n 'session.durationMs': agentRuntime.session.getDuration(),\n agentVersion: agentRuntime.version,\n session: agentRuntime.session.state.value,\n rst: relativeNow,\n hasMeta: recorderEvents.hasMeta || false,\n hasSnapshot: recorderEvents.hasSnapshot || false,\n hasError: recorderEvents.hasError || false,\n isFirstChunk: agentRuntime.session.state.sessionReplaySentFirstChunk === false,\n decompressedBytes: recorderEvents.payloadBytesEstimation,\n invalidStylesheetsDetected: stylesheetEvaluator.invalidStylesheetsDetected,\n inlinedAllStylesheets: recorderEvents.inlinedAllStylesheets,\n 'rrweb.version': RRWEB_VERSION,\n 'payload.type': recorderEvents.type,\n // customer-defined data should go last so that if it exceeds the query param padding limit it will be truncated instead of important attrs\n ...(endUserId && {\n 'enduser.id': endUserId\n })\n // The Query Param is being arbitrarily limited in length here. It is also applied when estimating the size of the payload in getPayloadSize()\n }, QUERY_PARAM_PADDING).substring(1) // remove the leading '&'\n },\n body: events\n };\n }\n onHarvestFinished(result) {\n // The mutual decision for now is to stop recording and clear buffers if ingest is experiencing 429 rate limiting\n if (result.status === 429) {\n this.abort(ABORT_REASONS.TOO_MANY);\n }\n if (this.blocked) this.scheduler.stopTimer(true);\n }\n\n /**\n * Forces the agent into OFF mode so that changing tabs or navigating\n * does not restart the recording. This is used when the customer calls\n * the stopRecording API.\n */\n forceStop(forceHarvest) {\n if (forceHarvest) this.scheduler.runHarvest();\n this.mode = MODE.OFF;\n this.recorder?.stopRecording?.();\n this.syncWithSessionManager({\n sessionReplayMode: this.mode\n });\n }\n\n /** Abort the feature, once aborted it will not resume */\n abort() {\n let reason = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n warn(\"SR aborted -- \".concat(reason.message));\n handle(SUPPORTABILITY_METRIC_CHANNEL, [\"SessionReplay/Abort/\".concat(reason.sm)], undefined, FEATURE_NAMES.metrics, this.ee);\n this.blocked = true;\n this.mode = MODE.OFF;\n this.recorder?.stopRecording?.();\n this.syncWithSessionManager({\n sessionReplayMode: this.mode\n });\n this.recorder?.clearTimestamps?.();\n this.ee.emit('REPLAY_ABORTED');\n while (this.recorder?.getEvents().events.length) this.recorder?.clearBuffer?.();\n }\n syncWithSessionManager() {\n let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n session\n } = getRuntime(this.agentIdentifier);\n session.write(state);\n }\n}","import { FEATURE_NAMES } from '../../loaders/features/features';\nexport const FEATURE_NAME = FEATURE_NAMES.sessionTrace;\nexport const BST_RESOURCE = 'bstResource';\nexport const RESOURCE = 'resource';\nexport const START = '-start';\nexport const END = '-end';\nexport const FN_START = 'fn' + START;\nexport const FN_END = 'fn' + END;\nexport const PUSH_STATE = 'pushState';\nexport const MAX_NODES_PER_HARVEST = 1000;","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { globalScope } from '../constants/runtime';\nexport function parseUrl(url) {\n // Return if URL is a data URL, parseUrl assumes urls are http/https\n if ((url || '').indexOf('data:') === 0) {\n return {\n protocol: 'data'\n };\n }\n try {\n const parsedUrl = new URL(url, location.href);\n const returnVal = {\n port: parsedUrl.port,\n hostname: parsedUrl.hostname,\n pathname: parsedUrl.pathname,\n search: parsedUrl.search,\n protocol: parsedUrl.protocol.slice(0, parsedUrl.protocol.indexOf(':')),\n sameOrigin: parsedUrl.protocol === globalScope?.location?.protocol && parsedUrl.host === globalScope?.location?.host\n };\n if (!returnVal.port || returnVal.port === '') {\n if (parsedUrl.protocol === 'http:') returnVal.port = '80';\n if (parsedUrl.protocol === 'https:') returnVal.port = '443';\n }\n if (!returnVal.pathname || returnVal.pathname === '') {\n returnVal.pathname = '/';\n } else if (!returnVal.pathname.startsWith('/')) {\n returnVal.pathname = \"/\".concat(returnVal.pathname);\n }\n return returnVal;\n } catch (err) {\n return {};\n }\n}","/**\n * All nodes reported to the consumer must take this shape\n */\nexport class TraceNode {\n constructor(name, start, end, origin, type) {\n this.n = name;\n this.s = start;\n this.e = end;\n this.o = origin;\n this.t = type;\n }\n}","import { globalScope } from '../../../../common/constants/runtime';\nimport { MODE } from '../../../../common/session/constants';\nimport { now } from '../../../../common/timing/now';\nimport { parseUrl } from '../../../../common/url/parse-url';\nimport { MAX_NODES_PER_HARVEST } from '../../constants';\nimport { TraceNode } from './node';\nconst ERROR_MODE_SECONDS_WINDOW = 30 * 1000; // sliding window of nodes to track when simply monitoring (but not harvesting) in error mode\nconst SUPPORTS_PERFORMANCE_OBSERVER = typeof globalScope.PerformanceObserver === 'function';\nconst ignoredEvents = {\n // we find that certain events make the data too noisy to be useful\n global: {\n mouseup: true,\n mousedown: true\n },\n // certain events are present both in the window and in PVT metrics. PVT metrics are prefered so the window events should be ignored\n window: {\n load: true,\n pagehide: true\n },\n // when ajax instrumentation is disabled, all XMLHttpRequest events will return with origin = xhrOriginMissing and should be ignored\n xhrOriginMissing: {\n ignoreAll: true\n }\n};\nconst toAggregate = {\n typing: [1000, 2000],\n scrolling: [100, 1000],\n mousing: [1000, 2000],\n touching: [1000, 2000]\n};\n\n/** The purpose of this class is to manage, normalize, and retrieve ST nodes as needed without polluting the main ST modules */\nexport class TraceStorage {\n nodeCount = 0;\n trace = {};\n earliestTimeStamp = Infinity;\n latestTimeStamp = 0;\n tempStorage = [];\n prevStoredEvents = new Set();\n constructor(parent) {\n this.parent = parent;\n }\n\n /** Central function called by all the other store__ & addToTrace API to append a trace node. */\n storeSTN(stn) {\n if (this.parent.blocked) return;\n if (this.nodeCount >= MAX_NODES_PER_HARVEST) {\n // limit the amount of pending data awaiting next harvest\n if (this.parent.agentRuntime.session.state.sessionTraceMode !== MODE.ERROR) return;\n const openedSpace = this.trimSTNs(ERROR_MODE_SECONDS_WINDOW); // but maybe we could make some space by discarding irrelevant nodes if we're in sessioned Error mode\n if (openedSpace === 0) return;\n }\n while (this.tempStorage.length) {\n this.storeSTN(this.tempStorage.shift());\n }\n if (this.trace[stn.n]) this.trace[stn.n].push(stn);else this.trace[stn.n] = [stn];\n if (stn.s < this.earliestTimeStamp) this.earliestTimeStamp = stn.s;\n if (stn.s > this.latestTimeStamp) this.latestTimeStamp = stn.s;\n this.nodeCount++;\n }\n\n /**\n * Trim the collection of nodes awaiting harvest such that those seen outside a certain span of time are discarded.\n * @param {number} lookbackDuration Past length of time until now for which we care about nodes, in milliseconds\n * @returns {number} However many nodes were discarded after trimming.\n */\n trimSTNs(lookbackDuration) {\n let prunedNodes = 0;\n const cutoffHighResTime = Math.max(now() - lookbackDuration, 0);\n Object.keys(this.trace).forEach(nameCategory => {\n const nodeList = this.trace[nameCategory];\n /* Notice nodes are appending under their name's list as they end and are stored. This means each list is already (roughly) sorted in chronological order by end time.\n * This isn't exact since nodes go through some processing & EE handlers chain, but it's close enough as we still capture nodes whose duration overlaps the lookback window.\n * ASSUMPTION: all 'end' timings stored are relative to timeOrigin (DOMHighResTimeStamp) and not Unix epoch based. */\n let cutoffIdx = nodeList.findIndex(node => cutoffHighResTime <= node.e);\n if (cutoffIdx === 0) return;else if (cutoffIdx < 0) {\n // whole list falls outside lookback window and is irrelevant\n cutoffIdx = nodeList.length;\n delete this.trace[nameCategory];\n } else nodeList.splice(0, cutoffIdx); // chop off everything outside our window i.e. before the last <lookbackDuration> timeframe\n\n this.nodeCount -= cutoffIdx;\n prunedNodes += cutoffIdx;\n });\n return prunedNodes;\n }\n\n /** Used by session trace's harvester to create the payload body. */\n takeSTNs() {\n if (!SUPPORTS_PERFORMANCE_OBSERVER) {\n // if PO isn't supported, this checks resourcetiming buffer every harvest.\n this.storeResources(globalScope.performance?.getEntriesByType?.('resource'));\n }\n const stns = Object.entries(this.trace).flatMap(_ref => {\n let [name, listOfSTNodes] = _ref;\n // basically take the \"this.trace\" map-obj and concat all the list-type values\n if (!(name in toAggregate)) return listOfSTNodes;\n // Special processing for event nodes dealing with user inputs:\n const reindexByOriginFn = this.smearEvtsByOrigin(name);\n const partitionListByOriginMap = listOfSTNodes.sort((a, b) => a.s - b.s).reduce(reindexByOriginFn, {});\n return Object.values(partitionListByOriginMap).flat(); // join the partitions back into 1-D, now ordered by origin then start time\n }, this);\n if (stns.length === 0) return {};\n this.trace = {};\n this.nodeCount = 0;\n const earliestTimeStamp = this.earliestTimeStamp;\n this.earliestTimeStamp = Infinity;\n const latestTimeStamp = this.latestTimeStamp;\n this.latestTimeStamp = 0;\n return {\n stns,\n earliestTimeStamp,\n latestTimeStamp\n };\n }\n smearEvtsByOrigin(name) {\n const maxGap = toAggregate[name][0];\n const maxLen = toAggregate[name][1];\n const lastO = {};\n return (byOrigin, evtNode) => {\n let lastArr = byOrigin[evtNode.o];\n if (!lastArr) lastArr = byOrigin[evtNode.o] = [];\n const last = lastO[evtNode.o];\n if (name === 'scrolling' && !trivial(evtNode)) {\n lastO[evtNode.o] = null;\n evtNode.n = 'scroll';\n lastArr.push(evtNode);\n } else if (last && evtNode.s - last.s < maxLen && last.e > evtNode.s - maxGap) {\n last.e = evtNode.e;\n } else {\n lastO[evtNode.o] = evtNode;\n lastArr.push(evtNode);\n }\n return byOrigin;\n };\n function trivial(node) {\n const limit = 4;\n return !!(node && typeof node.e === 'number' && typeof node.s === 'number' && node.e - node.s < limit);\n }\n }\n processPVT(name, value, attrs) {\n this.storeTiming({\n [name]: value\n });\n if (hasFID(name, attrs)) this.storeEvent({\n type: 'fid',\n target: 'document'\n }, 'document', value, value + attrs.fid);\n function hasFID(name, attrs) {\n return name === 'fi' && !!attrs && typeof attrs.fid === 'number';\n }\n }\n storeTiming(timingEntry) {\n if (!timingEntry) return;\n\n // loop iterates through prototype also (for FF)\n for (let key in timingEntry) {\n let val = timingEntry[key];\n\n // ignore size and status type nodes that do not map to timestamp metrics\n const lck = key.toLowerCase();\n if (lck.indexOf('size') >= 0 || lck.indexOf('status') >= 0) continue;\n\n // ignore inherited methods, meaningless 0 values, and bogus timestamps\n // that are in the future (Microsoft Edge seems to sometimes produce these)\n if (!(typeof val === 'number' && val >= 0)) continue;\n val = Math.round(val);\n this.storeSTN(new TraceNode(key, val, val, 'document', 'timing'));\n }\n }\n\n // Tracks the events and their listener's duration on objects wrapped by wrap-events.\n storeEvent(currentEvent, target, start, end) {\n if (this.shouldIgnoreEvent(currentEvent, target)) return;\n if (this.prevStoredEvents.has(currentEvent)) return; // prevent multiple listeners of an event from creating duplicate trace nodes per occurrence. Cleared every harvest. near-zero chance for re-duplication after clearing per harvest since the timestamps of the event are considered for uniqueness.\n this.prevStoredEvents.add(currentEvent);\n const evt = new TraceNode(this.evtName(currentEvent.type), start, end, undefined, 'event');\n try {\n // webcomponents-lite.js can trigger an exception on currentEvent.target getter because\n // it does not check currentEvent.currentTarget before calling getRootNode() on it\n evt.o = this.evtOrigin(currentEvent.target, target);\n } catch (e) {\n evt.o = this.evtOrigin(null, target);\n }\n this.storeSTN(evt);\n }\n shouldIgnoreEvent(event, target) {\n const origin = this.evtOrigin(event.target, target);\n if (event.type in ignoredEvents.global) return true;\n if (!!ignoredEvents[origin] && ignoredEvents[origin].ignoreAll) return true;\n return !!(!!ignoredEvents[origin] && event.type in ignoredEvents[origin]);\n }\n evtName(type) {\n switch (type) {\n case 'keydown':\n case 'keyup':\n case 'keypress':\n return 'typing';\n case 'mousemove':\n case 'mouseenter':\n case 'mouseleave':\n case 'mouseover':\n case 'mouseout':\n return 'mousing';\n case 'scroll':\n return 'scrolling';\n case 'touchstart':\n case 'touchmove':\n case 'touchend':\n case 'touchcancel':\n case 'touchenter':\n case 'touchleave':\n return 'touching';\n default:\n return type;\n }\n }\n evtOrigin(t, target) {\n let origin = 'unknown';\n if (t && t instanceof XMLHttpRequest) {\n const params = this.parent.ee.context(t).params;\n if (!params || !params.status || !params.method || !params.host || !params.pathname) return 'xhrOriginMissing';\n origin = params.status + ' ' + params.method + ': ' + params.host + params.pathname;\n } else if (t && typeof t.tagName === 'string') {\n origin = t.tagName.toLowerCase();\n if (t.id) origin += '#' + t.id;\n if (t.className) {\n for (let i = 0; i < t.classList.length; i++) origin += '.' + t.classList[i];\n }\n }\n if (origin === 'unknown') {\n if (typeof target === 'string') origin = target;else if (target === document) origin = 'document';else if (target === window) origin = 'window';else if (target instanceof FileReader) origin = 'FileReader';\n }\n return origin;\n }\n\n // Tracks when the window history API specified by wrap-history is used.\n storeHist(path, old, time) {\n this.storeSTN(new TraceNode('history.pushState', time, time, path, old));\n }\n #laststart = 0;\n // Processes all the PerformanceResourceTiming entries captured (by observer).\n storeResources(resources) {\n if (!resources || resources.length === 0) return;\n resources.forEach(currentResource => {\n if ((currentResource.fetchStart | 0) <= this.#laststart) return; // don't recollect already-seen resources\n\n const {\n initiatorType,\n fetchStart,\n responseEnd,\n entryType\n } = currentResource;\n const {\n protocol,\n hostname,\n port,\n pathname\n } = parseUrl(currentResource.name);\n const res = new TraceNode(initiatorType, fetchStart | 0, responseEnd | 0, \"\".concat(protocol, \"://\").concat(hostname, \":\").concat(port).concat(pathname), entryType);\n this.storeSTN(res);\n });\n this.#laststart = resources[resources.length - 1].fetchStart | 0;\n }\n\n // JavascriptError (FEATURE) events pipes into ST here.\n storeErrorAgg(type, name, params, metrics) {\n if (type !== 'err') return; // internal errors are purposefully ignored\n this.storeSTN(new TraceNode('error', metrics.time, metrics.time, params.message, params.stackHash));\n }\n\n // Ajax (FEATURE) events--XML & fetches--pipes into ST here.\n storeXhrAgg(type, name, params, metrics) {\n if (type !== 'xhr') return;\n this.storeSTN(new TraceNode('Ajax', metrics.time, metrics.time + metrics.duration, \"\".concat(params.status, \" \").concat(params.method, \": \").concat(params.host).concat(params.pathname), 'ajax'));\n }\n restoreNode(name, listOfSTNodes) {\n if (this.nodeCount >= MAX_NODES_PER_HARVEST) return;\n this.nodeCount += listOfSTNodes.length;\n this.trace[name] = this.trace[name] ? listOfSTNodes.concat(this.trace[name]) : listOfSTNodes;\n }\n}","import { registerHandler } from '../../../common/event-emitter/register-handler';\nimport { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';\nimport { getConfigurationValue, getInfo, getRuntime } from '../../../common/config/config';\nimport { FEATURE_NAME } from '../constants';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { TraceStorage } from './trace/storage';\nimport { obj as encodeObj } from '../../../common/url/encode';\nimport { deregisterDrain } from '../../../common/drain/drain';\nimport { globalScope } from '../../../common/constants/runtime';\nimport { MODE, SESSION_EVENTS } from '../../../common/session/constants';\nconst ERROR_MODE_SECONDS_WINDOW = 30 * 1000; // sliding window of nodes to track when simply monitoring (but not harvesting) in error mode\n/** Reserved room for query param attrs */\nconst QUERY_PARAM_PADDING = 5000;\nexport class Aggregate extends AggregateBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n super(agentIdentifier, aggregator, FEATURE_NAME);\n this.agentRuntime = getRuntime(agentIdentifier);\n this.agentInfo = getInfo(agentIdentifier);\n\n /** A buffer to hold on to harvested traces in the case that a retry must be made later */\n this.sentTrace = null;\n this.harvestTimeSeconds = getConfigurationValue(agentIdentifier, 'session_trace.harvestTimeSeconds') || 30;\n /** Tied to the entitlement flag response from BCS. Will short circuit operations of the agg if false */\n this.entitled = undefined;\n /** A flag used to decide if the 30 node threshold should be ignored on the first harvest to ensure sending on the first payload */\n this.everHarvested = false;\n /** If the harvest module is harvesting */\n this.harvesting = false;\n /** TraceStorage is the mechanism that holds, normalizes and aggregates ST nodes. It will be accessed and purged when harvests occur */\n this.traceStorage = new TraceStorage(this);\n /** This agg needs information about sampling (sts) and entitlements (st) to make the appropriate decisions on running */\n this.waitForFlags(['sts', 'st']).then(_ref => {\n let [stMode, stEntitled] = _ref;\n return this.initialize(stMode, stEntitled);\n });\n }\n\n /** Sets up event listeners, and initializes this module to run in the correct \"mode\". Can be triggered from a few places, but makes an effort to only set up listeners once */\n initialize(stMode, stEntitled, ignoreSession) {\n var _this = this;\n this.entitled ??= stEntitled;\n if (this.blocked || !this.entitled) return deregisterDrain(this.agentIdentifier, this.featureName);\n if (!this.initialized) {\n // The SessionEntity class can emit a message indicating the session was cleared and reset (expiry, inactivity). This feature must abort and never resume if that occurs.\n this.ee.on(SESSION_EVENTS.RESET, () => {\n this.abort();\n });\n // The SessionEntity can have updates (locally or across tabs for SR mode changes), (across tabs for ST mode changes).\n // Those updates should be sync'd here to ensure this page also honors the mode after initialization\n this.ee.on(SESSION_EVENTS.UPDATE, (eventType, sessionState) => {\n // this will only have an effect if ST is NOT already in full mode\n if (this.mode !== MODE.FULL && (sessionState.sessionReplayMode === MODE.FULL || sessionState.sessionTraceMode === MODE.FULL)) this.switchToFull();\n });\n }\n\n /** ST/SR sampling flow in BCS - https://drive.google.com/file/d/19hwt2oft-8Hh4RrjpLqEXfpP_9wYBLcq/view?usp=sharing */\n /** ST will run in the mode provided by BCS if the session IS NEW. If not... it will use the state of the session entity to determine what mode to run in */\n if (!this.agentRuntime.session.isNew && !ignoreSession) this.mode = this.agentRuntime.session.state.sessionTraceMode;else this.mode = stMode;\n this.initialized = true;\n /** If the mode is off, we do not want to hold up draining for other features, so we deregister the feature for now.\n * If it drains later (due to a mode change), data and handlers will instantly drain instead of waiting for the registry. */\n if (this.mode === MODE.OFF) return deregisterDrain(this.agentIdentifier, this.featureName);\n this.timeKeeper ??= this.agentRuntime.timeKeeper;\n this.scheduler = new HarvestScheduler('browser/blobs', {\n onFinished: this.onHarvestFinished.bind(this),\n retryDelay: this.harvestTimeSeconds,\n getPayload: this.prepareHarvest.bind(this),\n raw: true\n }, this);\n\n /** The handlers set up by the Inst file */\n registerHandler('bst', function () {\n return _this.traceStorage.storeEvent(...arguments);\n }, this.featureName, this.ee);\n registerHandler('bstResource', function () {\n return _this.traceStorage.storeResources(...arguments);\n }, this.featureName, this.ee);\n registerHandler('bstHist', function () {\n return _this.traceStorage.storeHist(...arguments);\n }, this.featureName, this.ee);\n registerHandler('bstXhrAgg', function () {\n return _this.traceStorage.storeXhrAgg(...arguments);\n }, this.featureName, this.ee);\n registerHandler('bstApi', function () {\n return _this.traceStorage.storeSTN(...arguments);\n }, this.featureName, this.ee);\n registerHandler('trace-jserror', function () {\n return _this.traceStorage.storeErrorAgg(...arguments);\n }, this.featureName, this.ee);\n registerHandler('pvtAdded', function () {\n return _this.traceStorage.processPVT(...arguments);\n }, this.featureName, this.ee);\n if (typeof PerformanceNavigationTiming !== 'undefined') {\n this.traceStorage.storeTiming(globalScope.performance?.getEntriesByType?.('navigation')[0]);\n } else {\n this.traceStorage.storeTiming(globalScope.performance?.timing);\n }\n\n /** Only start actually harvesting if running in full mode at init time */\n if (this.mode === MODE.FULL) this.startHarvesting();else {\n /** A separate handler for noticing errors, and switching to \"full\" mode if running in \"error\" mode */\n registerHandler('trace-jserror', () => {\n if (this.mode === MODE.ERROR) this.switchToFull();\n }, this.featureName, this.ee);\n }\n this.agentRuntime.session.write({\n sessionTraceMode: this.mode\n });\n this.drain();\n }\n\n /** This module does not auto harvest by default -- it needs to be kicked off. Once this method is called, it will then harvest on an interval */\n startHarvesting() {\n if (this.scheduler.started || this.blocked) return;\n this.scheduler.runHarvest();\n this.scheduler.startTimer(this.harvestTimeSeconds);\n }\n\n /** Called by the harvest scheduler at harvest time to retrieve the payload. This will only actually return a payload if running in full mode */\n prepareHarvest() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.traceStorage.prevStoredEvents.clear(); // release references to past events for GC\n if (!this.timeKeeper?.ready) return; // this should likely never happen, but just to be safe, we should never harvest if we cant correct time\n if (this.mode === MODE.OFF && this.traceStorage.nodeCount === 0) return;\n if (this.mode === MODE.ERROR) return; // Trace in this mode should never be harvesting, even on unload\n\n /** Get the ST nodes from the traceStorage buffer. This also returns helpful metadata about the payload. */\n const {\n stns,\n earliestTimeStamp,\n latestTimeStamp\n } = this.traceStorage.takeSTNs();\n if (!stns) return; // there are no trace nodes\n if (options.retry) {\n this.sentTrace = stns;\n }\n const firstSessionHarvest = !this.agentRuntime.session.state.traceHarvestStarted;\n if (firstSessionHarvest) this.agentRuntime.session.write({\n traceHarvestStarted: true\n });\n const hasReplay = this.agentRuntime.session?.state.sessionReplayMode === 1;\n const endUserId = this.agentInfo?.jsAttributes?.['enduser.id'];\n this.everHarvested = true;\n\n /** The blob consumer expects the following and will reject if not supplied:\n * browser_monitoring_key\n * type\n * app_id\n * protocol_version\n * attributes\n *\n * For data that does not fit the schema of the above, it should be url-encoded and placed into `attributes`\n */\n const agentMetadata = this.agentRuntime.appMetadata?.agents?.[0] || {};\n return {\n qs: {\n browser_monitoring_key: this.agentInfo.licenseKey,\n type: 'BrowserSessionChunk',\n app_id: this.agentInfo.applicationID,\n protocol_version: '0',\n timestamp: this.timeKeeper.convertRelativeTimestamp(earliestTimeStamp),\n attributes: encodeObj({\n ...(agentMetadata.entityGuid && {\n entityGuid: agentMetadata.entityGuid\n }),\n harvestId: \"\".concat(this.agentRuntime.session?.state.value, \"_\").concat(this.agentRuntime.ptid, \"_\").concat(this.agentRuntime.harvestCount),\n // this section of attributes must be controllable and stay below the query param padding limit -- see QUERY_PARAM_PADDING\n // if not, data could be lost to truncation at time of sending, potentially breaking parsing / API behavior in NR1\n // trace payload metadata\n 'trace.firstTimestamp': this.timeKeeper.convertRelativeTimestamp(earliestTimeStamp),\n 'trace.lastTimestamp': this.timeKeeper.convertRelativeTimestamp(latestTimeStamp),\n 'trace.nodes': stns.length,\n 'trace.originTimestamp': this.timeKeeper.correctedOriginTime,\n // other payload metadata\n agentVersion: this.agentRuntime.version,\n ...(firstSessionHarvest && {\n firstSessionHarvest\n }),\n ...(hasReplay && {\n hasReplay\n }),\n ptid: \"\".concat(this.agentRuntime.ptid),\n session: \"\".concat(this.agentRuntime.session?.state.value),\n // customer-defined data should go last so that if it exceeds the query param padding limit it will be truncated instead of important attrs\n ...(endUserId && {\n 'enduser.id': endUserId\n })\n // The Query Param is being arbitrarily limited in length here. It is also applied when estimating the size of the payload in getPayloadSize()\n }, QUERY_PARAM_PADDING).substring(1) // remove the leading '&'\n },\n body: stns\n };\n }\n\n /** When the harvest scheduler finishes, this callback is executed. It's main purpose is to determine if the payload needs to be retried\n * and if so, it will take all data from the temporary buffer and place it back into the traceStorage module\n */\n onHarvestFinished(result) {\n if (result.sent && result.retry && this.sentTrace) {\n // merge previous trace back into buffer to retry for next harvest\n Object.entries(this.sentTrace).forEach(_ref2 => {\n let [name, listOfSTNodes] = _ref2;\n this.traceStorage.restoreNode(name, listOfSTNodes);\n });\n this.sentTrace = null;\n }\n }\n\n /** Switch from \"off\" or \"error\" to full mode (if entitled) */\n switchToFull() {\n if (this.mode === MODE.FULL || !this.entitled || this.blocked) return;\n const prevMode = this.mode;\n this.mode = MODE.FULL;\n this.agentRuntime.session.write({\n sessionTraceMode: this.mode\n });\n if (prevMode === MODE.OFF || !this.initialized) return this.initialize(this.mode, this.entitled);\n if (this.initialized) {\n this.traceStorage.trimSTNs(ERROR_MODE_SECONDS_WINDOW); // up until now, Trace would've been just buffering nodes up to max, which needs to be trimmed to last X seconds\n }\n this.startHarvesting();\n }\n\n /** Stop running for the remainder of the page lifecycle */\n abort() {\n this.blocked = true;\n this.mode = MODE.OFF;\n this.agentRuntime.session.write({\n sessionTraceMode: this.mode\n });\n this.scheduler.stopTimer();\n }\n}","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar MAX_NODES = 128;\nvar lastId = 0;\nexport function InteractionNode(interaction, parent, type, timestamp) {\n Object.defineProperty(this, 'interaction', {\n value: interaction,\n writable: true // enumerable: false -- by default, which hides this prop from obj (iterations)\n });\n this.parent = parent;\n this.id = ++lastId;\n this.type = type;\n this.children = [];\n this.end = null;\n this.jsEnd = this.start = timestamp;\n this.jsTime = 0;\n this.attrs = {};\n this.cancelled = false;\n}\nvar InteractionNodePrototype = InteractionNode.prototype;\n\n/**\n * @param {string} type\n * @param {number} timestamp\n * @param {string} name\n * @param {bool} dontWait - When true, the interaction will not immediately start waiting\n * for this node to complete. This is used when the creation of\n * the node and its start happen at different times (e.g. XHR).\n */\nInteractionNodePrototype.child = function child(type, timestamp, name, dontWait) {\n var interaction = this.interaction;\n if (interaction.end || interaction.nodes >= MAX_NODES) return null;\n interaction.onNodeAdded(this);\n var node = new InteractionNode(interaction, this, type, timestamp);\n node.attrs.name = name;\n interaction.nodes++;\n if (!dontWait) {\n interaction.remaining++;\n }\n return node;\n};\nInteractionNodePrototype.callback = function addCallbackTime(exclusiveTime, end) {\n var node = this;\n node.jsTime += exclusiveTime;\n if (end > node.jsEnd) {\n node.jsEnd = end;\n node.interaction.lastCb = end;\n }\n};\nInteractionNodePrototype.cancel = function cancel() {\n this.cancelled = true;\n var interaction = this.interaction;\n interaction.remaining--;\n};\nInteractionNodePrototype.finish = function finish(timestamp) {\n var node = this;\n if (node.end) return;\n node.end = timestamp;\n\n // Find the next parent node that is not cancelled\n let parent = node.parent;\n while (parent?.cancelled) parent = parent.parent;\n\n // Assign the node to the non-cancelled parent node\n if (parent) parent.children.push(node);\n node.parent = null;\n\n // Update the interaction remaining counter\n var interaction = this.interaction;\n interaction.remaining--;\n interaction.lastFinish = timestamp;\n // check if interaction has finished, (this is needed for older browsers for unknown reasons)\n interaction.checkFinish();\n};","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getInfo, getRuntime, originals } from '../../../common/config/config';\nimport { mapOwn } from '../../../common/util/map-own';\nimport { ee } from '../../../common/event-emitter/contextual-ee';\nimport { InteractionNode } from './interaction-node';\nvar originalSetTimeout = originals.ST;\nvar originalClearTimeout = originals.CT;\nvar lastId = {};\nexport function Interaction(eventName, timestamp, url, routeName, onFinished, agentIdentifier) {\n this.agentIdentifier = agentIdentifier;\n this.ee = ee.get(agentIdentifier);\n lastId[agentIdentifier] = 0;\n this.id = ++lastId[agentIdentifier];\n this.eventName = eventName;\n this.nodes = 0;\n this.remaining = 0;\n this.finishTimer = null;\n this.checkingFinish = false;\n this.lastCb = this.lastFinish = timestamp;\n this.handlers = [];\n this.onFinished = onFinished;\n this.done = false;\n var root = this.root = new InteractionNode(this, null, 'interaction', timestamp);\n var attrs = root.attrs;\n attrs.trigger = eventName;\n attrs.initialPageURL = getRuntime(agentIdentifier).origin;\n attrs.oldRoute = routeName;\n attrs.newURL = attrs.oldURL = url;\n attrs.custom = {};\n attrs.store = {};\n}\nvar InteractionPrototype = Interaction.prototype;\nInteractionPrototype.checkFinish = function checkFinish() {\n var interaction = this;\n if (interaction.remaining > 0) {\n interaction._resetFinishCheck();\n return;\n }\n if (interaction.checkingFinish) {\n return;\n }\n if (interaction.root.end !== null) return;\n interaction._resetFinishCheck();\n interaction.checkingFinish = true;\n interaction.finishTimer = originalSetTimeout(() => {\n interaction.checkingFinish = false;\n interaction.finishTimer = originalSetTimeout(() => {\n interaction.finishTimer = null;\n if (interaction.remaining <= 0) interaction.finish();\n }, 1);\n }, 0);\n};\nInteractionPrototype.setNewURL = function setNewURL(url) {\n this.root.attrs.newURL = url;\n};\nInteractionPrototype.setNewRoute = function setNewRoute(route) {\n this.root.attrs.newRoute = route;\n};\nInteractionPrototype.onNodeAdded = function onNodeAdded() {\n this._resetFinishCheck();\n};\nInteractionPrototype._resetFinishCheck = function _resetFinishCheck() {\n if (this.finishTimer) {\n originalClearTimeout(this.finishTimer);\n this.finishTimer = null;\n this.checkingFinish = false;\n }\n};\n\n// serialize report and remove nodes from map\nInteractionPrototype.finish = function finishInteraction() {\n var interaction = this;\n var root = interaction.root;\n if (root.end !== null) return;\n var endTimestamp = Math.max(interaction.lastCb, interaction.lastFinish);\n var attrs = root.attrs;\n var customAttrs = attrs.custom;\n if (this.onFinished) {\n this.onFinished(this);\n }\n mapOwn(getInfo(interaction.agentIdentifier).jsAttributes, function (attr, value) {\n if (!(attr in customAttrs)) customAttrs[attr] = value;\n });\n root.end = endTimestamp;\n interaction.ee.emit('interaction', [this]);\n};","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { cleanURL } from '../../../common/url/clean-url';\nimport { mapOwn } from '../../../common/util/map-own';\nimport { nullable, numeric, getAddStringContext, addCustomAttributes } from '../../../common/serialize/bel-serializer';\nimport { SharedContext } from '../../../common/context/shared-context';\nimport { getInfo } from '../../../common/config/config';\nexport class Serializer extends SharedContext {\n constructor(parent) {\n super(parent);\n\n /**\n * This variable is used to calculate an interactions ending offset when the\n * harvest includes multiple interactions. This variable is set by the first\n * interaction processed and used by subsequent interactions in the same harvest.\n * See https://issues.newrelic.com/browse/NEWRELIC-5498\n * @type {number|undefined}\n */\n this.firstTimestamp = undefined;\n }\n serializeMultiple(interactions, offset, navTiming) {\n const info = getInfo(this.sharedContext.agentIdentifier);\n var addString = getAddStringContext(this.sharedContext.agentIdentifier);\n var serialized = 'bel.7';\n interactions.forEach(interaction => {\n serialized += ';' + this.serializeInteraction(interaction.root, offset, navTiming, interaction.routeChange, addString, info);\n });\n this.firstTimestamp = undefined;\n return serialized;\n }\n serializeSingle(root, offset, navTiming, isRouteChange) {\n const info = getInfo(this.sharedContext.agentIdentifier);\n var addString = getAddStringContext(this.sharedContext.agentIdentifier);\n var serialized = 'bel.7;' + this.serializeInteraction(root, offset, navTiming, isRouteChange, addString, info);\n this.firstTimestamp = undefined;\n return serialized;\n }\n serializeInteraction(root, offset, navTiming, isRouteChange, addString, info) {\n offset = offset || 0;\n var isInitialPage = root.attrs.trigger === 'initialPageLoad';\n var typeIdsByName = {\n interaction: 1,\n ajax: 2,\n customTracer: 4\n };\n\n // Include the hash fragment with all SPA data\n var includeHashFragment = true;\n const addNode = (node, nodeList) => {\n if (node.type === 'customEnd') return nodeList.push([3, numeric(node.end - this.firstTimestamp)]);\n var typeName = node.type;\n var typeId = typeIdsByName[typeName];\n var startTimestamp = node.start;\n var childCount = node.children.length;\n var attrCount = 0;\n var apmAttributes = info.atts;\n var hasNavTiming = isInitialPage && navTiming.length && typeId === 1;\n var children = [];\n var attrs = node.attrs;\n var metrics = attrs.metrics;\n var params = attrs.params;\n var queueTime = info.queueTime;\n var appTime = info.applicationTime;\n if (typeof this.firstTimestamp === 'undefined') {\n startTimestamp += offset;\n this.firstTimestamp = startTimestamp;\n } else {\n startTimestamp -= this.firstTimestamp;\n }\n var fields = [numeric(startTimestamp), numeric(node.end - node.start), numeric(node.jsEnd - node.end), numeric(node.jsTime)];\n switch (typeId) {\n case 1:\n fields[2] = numeric(node.jsEnd - this.firstTimestamp);\n fields.push(addString(attrs.trigger), addString(cleanURL(attrs.initialPageURL, includeHashFragment)), addString(cleanURL(attrs.oldURL, includeHashFragment)), addString(cleanURL(attrs.newURL, includeHashFragment)), addString(attrs.customName), isInitialPage ? '' : isRouteChange ? 1 : 2, nullable(isInitialPage && queueTime, numeric, true) + nullable(isInitialPage && appTime, numeric, true) + nullable(attrs.oldRoute, addString, true) + nullable(attrs.newRoute, addString, true) + addString(attrs.id), addString(node.id), nullable(attrs.firstPaint, numeric, true) + nullable(attrs.firstContentfulPaint, numeric, false));\n var attrParts = addCustomAttributes(attrs.custom, addString);\n children = children.concat(attrParts);\n attrCount = attrParts.length;\n if (apmAttributes) {\n childCount++;\n children.push('a,' + addString(apmAttributes));\n }\n break;\n case 2:\n fields.push(addString(params.method), numeric(params.status), addString(params.host), addString(params.pathname), numeric(metrics.txSize), numeric(metrics.rxSize), attrs.isFetch ? 1 : attrs.isJSONP ? 2 : '', addString(node.id), nullable(node.dt && node.dt.spanId, addString, true) + nullable(node.dt && node.dt.traceId, addString, true) + nullable(node.dt && node.dt.timestamp, numeric, false));\n\n // add params.gql here\n if (Object.keys(params?.gql || {}).length) {\n var ajaxAttrParts = addCustomAttributes(params.gql, addString);\n children = children.concat(ajaxAttrParts);\n attrCount = ajaxAttrParts.length;\n }\n break;\n case 4:\n var tracedTime = attrs.tracedTime;\n fields.push(addString(attrs.name), nullable(tracedTime, numeric, true) + addString(node.id));\n break;\n }\n for (var i = 0; i < node.children.length; i++) {\n addNode(node.children[i], children);\n }\n fields.unshift(numeric(typeId), numeric(childCount += attrCount));\n nodeList.push(fields);\n if (childCount) {\n nodeList.push(children.join(';'));\n }\n if (hasNavTiming) {\n // this build up the navTiming node\n // it for each navTiming value (pre aggregated in nav-timing.js):\n // we initialize the seperator to ',' (seperates the nodeType id from the first value)\n // we initialize the navTiming node to 'b' (the nodeType id)\n // if the value is present:\n // we add the seperator followed by the value\n // otherwise\n // we add null seperator ('!') to the navTimingNode\n // we set the seperator to an empty string since we already wrote it above\n // the reason for writing the null seperator instead of setting the seperator\n // is to ensure we still write it if the null is the last navTiming value.\n\n var seperator = ',';\n var navTimingNode = 'b';\n var prev = 0;\n\n // get all navTiming values except navigationStart\n // (since its the same as interaction.start)\n // and limit to just the first 20 values we know about\n mapOwn(navTiming.slice(1, 21), function (i, v) {\n if (v !== undefined) {\n navTimingNode += seperator + numeric(v - prev);\n seperator = ',';\n prev = v;\n } else {\n navTimingNode += seperator + '!';\n seperator = '';\n }\n });\n nodeList.push(navTimingNode);\n } else if (typeId === 1) {\n nodeList.push('');\n }\n return nodeList;\n };\n return addNode(root, []).join(';');\n }\n}","import { originals } from '../../common/config/config';\nimport { FEATURE_NAMES } from '../../loaders/features/features';\nexport const FEATURE_NAME = FEATURE_NAMES.spa;\nexport const INTERACTION_EVENTS = ['click', 'submit', 'keypress', 'keydown', 'keyup', 'change'];\nexport const MAX_TIMER_BUDGET = 999;\nexport const FN_START = 'fn-start';\nexport const FN_END = 'fn-end';\nexport const CB_START = 'cb-start';\nexport const INTERACTION_API = 'api-ixn-';\nexport const REMAINING = 'remaining';\nexport const INTERACTION = 'interaction';\nexport const SPA_NODE = 'spaNode';\nexport const JSONP_NODE = 'jsonpNode';\nexport const FETCH_START = 'fetch-start';\nexport const FETCH_DONE = 'fetch-done';\nexport const FETCH_BODY = 'fetch-body-';\nexport const JSONP_END = 'jsonp-end';\nexport const originalSetTimeout = originals.ST;\nexport const START = '-start';\nexport const END = '-end';\nexport const BODY = '-body';\nexport const CB_END = 'cb' + END;\nexport const JS_TIME = 'jsTime';\nexport const FETCH = 'fetch';","/*\n * Copyright 2020 New Relic Corporation. All rights reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/* eslint no-undef: \"error\" */\nimport { registerHandler as register } from '../../../common/event-emitter/register-handler';\nimport { parseUrl } from '../../../common/url/parse-url';\nimport { shouldCollectEvent } from '../../../common/deny-list/deny-list';\nimport { mapOwn } from '../../../common/util/map-own';\nimport { navTimingValues as navTiming } from '../../../common/timing/nav-timing';\nimport { generateUuid } from '../../../common/ids/unique-id';\nimport { Interaction } from './interaction';\nimport { getConfigurationValue, getRuntime } from '../../../common/config/config';\nimport { eventListenerOpts } from '../../../common/event-listener/event-listener-opts';\nimport { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';\nimport { Serializer } from './serializer';\nimport { ee } from '../../../common/event-emitter/contextual-ee';\nimport * as CONSTANTS from '../constants';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { firstContentfulPaint } from '../../../common/vitals/first-contentful-paint';\nimport { firstPaint } from '../../../common/vitals/first-paint';\nimport { bundleId } from '../../../common/ids/bundle-id';\nimport { loadedAsDeferredBrowserScript } from '../../../common/constants/runtime';\nimport { handle } from '../../../common/event-emitter/handle';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../metrics/constants';\nimport { deregisterDrain } from '../../../common/drain/drain';\nimport { warn } from '../../../common/util/console';\nconst {\n FEATURE_NAME,\n INTERACTION_EVENTS,\n MAX_TIMER_BUDGET,\n FN_START,\n FN_END,\n CB_START,\n INTERACTION_API,\n REMAINING,\n INTERACTION,\n SPA_NODE,\n JSONP_NODE,\n FETCH_START,\n FETCH_DONE,\n FETCH_BODY,\n JSONP_END,\n originalSetTimeout\n} = CONSTANTS;\nexport class Aggregate extends AggregateBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator) {\n super(agentIdentifier, aggregator, FEATURE_NAME);\n const agentRuntime = getRuntime(agentIdentifier);\n this.state = {\n initialPageURL: agentRuntime.origin,\n lastSeenUrl: agentRuntime.origin,\n lastSeenRouteName: null,\n timerMap: {},\n timerBudget: MAX_TIMER_BUDGET,\n currentNode: null,\n prevNode: null,\n nodeOnLastHashUpdate: null,\n initialPageLoad: null,\n pageLoaded: false,\n childTime: 0,\n depth: 0,\n harvestTimeSeconds: getConfigurationValue(agentIdentifier, 'spa.harvestTimeSeconds') || 10,\n interactionsToHarvest: [],\n interactionsSent: [],\n // The below feature flag is used to disable the SPA ajax fix for specific customers, see https://new-relic.atlassian.net/browse/NR-172169\n disableSpaFix: (getConfigurationValue(agentIdentifier, 'feature_flags') || []).indexOf('disable-spa-fix') > -1\n };\n let scheduler;\n this.serializer = new Serializer(this);\n const {\n state,\n serializer\n } = this;\n const baseEE = ee.get(agentIdentifier); // <-- parent baseEE\n const mutationEE = baseEE.get('mutation');\n const promiseEE = baseEE.get('promise');\n const historyEE = baseEE.get('history');\n const eventsEE = baseEE.get('events'); // ajax --> ee(123).emit() ee()\n const timerEE = baseEE.get('timer');\n const fetchEE = baseEE.get('fetch');\n const jsonpEE = baseEE.get('jsonp');\n const xhrEE = baseEE.get('xhr');\n const tracerEE = baseEE.get('tracer');\n\n // childTime is used when calculating exclusive time for a cb duration.\n //\n // Exclusive time will be different than the total time for either callbacks\n // which synchronously invoke a customTracer callback or, trigger a synchronous\n // event (eg. onreadystate=1 or popstate).\n //\n // At fn-end, childTime will contain the total time of all timed callbacks and\n // event handlers which executed as a child of the current callback. At the\n // begining of every callback, childTime is saved to the event context (which at\n // that time contains the sum of its preceeding siblings) and is reset to 0. The\n // callback is then executed, and its children may increase childTime. At the\n // end of the callback, it reports its exclusive time as its\n // execution time - exlcuded. childTime is then reset to its previous\n // value, and the totalTime of the callback that just finished executing is\n // added to the childTime time.\n // | clock | childTime | ctx.ct | totalTime | exclusive |\n // click fn-start | 0 | 0 | 0 | | |\n // | click begining: | 5 | 0 | 0 | | |\n // | | custom-1 fn-start | 10 | 0 | 0 | | |\n // | | | custom-1 begining | 15 | 0 | 0 | | |\n // | | | | custom-2 fn-start | 20 | 0 | 0 | | |\n // | | | | | custom-2 | 25 | 0 | 0 | | |\n // | | | | custom-2 fn-end | 30 | 10 | 0 | 10 | 10 |\n // | | | custom-1 middle | 35 | 10 | 0 | | |\n // | | | | custom-3 fn-start | 40 | 0 | 10 | | |\n // | | | | | custom-3 | 45 | 0 | 10 | | |\n // | | | | custom-3 fn-end | 50 | 20 | 0 | 10 | 10 |\n // | | | custom-1 ending | 55 | 20 | 0 | | |\n // | custom-1 fn-end | 60 | 50 | 0 | 50 | 30 |\n // | click ending: | 65 | 50 | | | |\n // click fn-end | 70 | 0 | 0 | 70 | 20 |\n\n this.waitForFlags(['spa']).then(_ref => {\n let [spaFlag] = _ref;\n if (spaFlag) {\n scheduler = new HarvestScheduler('events', {\n onFinished: onHarvestFinished,\n retryDelay: state.harvestTimeSeconds\n }, {\n agentIdentifier,\n ee: baseEE\n });\n scheduler.harvest.on('events', onHarvestStarted);\n this.drain();\n } else {\n this.blocked = true;\n deregisterDrain(this.agentIdentifier, this.featureName);\n }\n });\n if (!isEnabled()) return;\n state.initialPageLoad = new Interaction('initialPageLoad', 0, state.lastSeenUrl, state.lastSeenRouteName, onInteractionFinished, agentIdentifier);\n state.initialPageLoad.save = true;\n state.prevInteraction = state.initialPageLoad;\n state.currentNode = state.initialPageLoad.root; // hint\n // ensure that checkFinish calls are safe during initialPageLoad\n state.initialPageLoad[REMAINING]++;\n register(FN_START, callbackStart, this.featureName, baseEE);\n register(CB_START, callbackStart, this.featureName, promiseEE);\n\n // register plugins\n var pluginApi = {\n getCurrentNode,\n setCurrentNode\n };\n register('spa-register', function (init) {\n if (typeof init === 'function') {\n init(pluginApi);\n }\n }, FEATURE_NAMES.spa, baseEE);\n function callbackStart() {\n state.depth++;\n this.prevNode = state.currentNode;\n this.ct = state.childTime;\n state.childTime = 0;\n state.timerBudget = MAX_TIMER_BUDGET;\n }\n register(FN_END, callbackEnd, this.featureName, baseEE);\n register('cb-end', callbackEnd, this.featureName, promiseEE);\n function callbackEnd() {\n state.depth--;\n var totalTime = this.jsTime || 0;\n var exclusiveTime = totalTime - state.childTime;\n state.childTime = this.ct + totalTime;\n if (state.currentNode) {\n // transfer accumulated callback time to the active interaction node\n // run even if jsTime is 0 to update jsEnd\n state.currentNode.callback(exclusiveTime, this[FN_END]);\n if (this.isTraced) {\n state.currentNode.attrs.tracedTime = exclusiveTime;\n }\n }\n this.jsTime = state.currentNode ? 0 : exclusiveTime;\n setCurrentNode(this.prevNode);\n this.prevNode = null;\n state.timerBudget = MAX_TIMER_BUDGET;\n }\n register(FN_START, function (args, eventSource) {\n var ev = args[0];\n var evName = ev.type;\n var eventNode = ev[\"__nrNode:\".concat(bundleId)];\n if (!state.pageLoaded && (evName === 'load' && eventSource === window || loadedAsDeferredBrowserScript)) {\n state.pageLoaded = true;\n // set to null so prevNode is set correctly\n this.prevNode = state.currentNode = null;\n if (state.initialPageLoad) {\n eventNode = state.initialPageLoad.root;\n\n // Even if initialPageLoad has remaining callbacks, force the initialPageLoad\n // interaction to complete when the page load event occurs.\n state.initialPageLoad[REMAINING] = 0;\n originalSetTimeout(function () {\n INTERACTION_EVENTS.push('popstate');\n });\n }\n }\n if (eventNode) {\n // If we've already seen a previous handler for this specific event object,\n // just restore that. We want multiple handlers for the same event to share\n // a node.\n setCurrentNode(eventNode);\n } else if (evName === 'hashchange') {\n setCurrentNode(state.nodeOnLastHashUpdate);\n state.nodeOnLastHashUpdate = null;\n } else if (eventSource instanceof XMLHttpRequest) {\n // If this event was emitted by an XHR, restore the node ID associated with\n // that XHR.\n setCurrentNode(baseEE.context(eventSource).spaNode);\n } else if (!state.currentNode && INTERACTION_EVENTS.indexOf(evName) !== -1) {\n // Otherwise, if no interaction is currently active, create a new node ID,\n // and let the aggregator know that we entered a new event handler callback\n // so that it has a chance to possibly start an interaction.\n var ixn = new Interaction(evName, this[FN_START], state.lastSeenUrl, state.lastSeenRouteName, onInteractionFinished, agentIdentifier);\n\n // Store the interaction as prevInteraction in case it is prematurely discarded\n state.prevInteraction = ixn;\n setCurrentNode(ixn.root);\n if (evName === 'click') {\n var value = getActionText(ev.target);\n if (value) {\n state.currentNode.attrs.custom.actionText = value;\n }\n }\n }\n ev[\"__nrNode:\".concat(bundleId)] = state.currentNode;\n }, this.featureName, eventsEE);\n\n /**\n * *** TIMERS ***\n * setTimeout call needs to keep the interaction active in case a node is started\n * in its callback.\n */\n\n // The context supplied to this callback will be shared with the fn-start/fn-end\n // callbacks that fire around the callback passed to setTimeout originally.\n register('setTimeout-end', function saveId(args, obj, timerId) {\n if (!state.currentNode || state.timerBudget - this.timerDuration < 0) return;\n if (args && !(args[0] instanceof Function)) return;\n state.currentNode[INTERACTION][REMAINING]++;\n this.timerId = timerId;\n state.timerMap[timerId] = state.currentNode;\n this.timerBudget = state.timerBudget - 50;\n }, this.featureName, timerEE);\n register('clearTimeout-start', function clear(args) {\n var timerId = args[0];\n var node = state.timerMap[timerId];\n if (node) {\n var interaction = node[INTERACTION];\n interaction[REMAINING]--;\n interaction.checkFinish();\n delete state.timerMap[timerId];\n }\n }, this.featureName, timerEE);\n register(FN_START, function () {\n state.timerBudget = this.timerBudget || MAX_TIMER_BUDGET;\n var id = this.timerId;\n var node = state.timerMap[id];\n setCurrentNode(node);\n delete state.timerMap[id];\n if (node) node[INTERACTION][REMAINING]--;\n }, this.featureName, timerEE);\n\n /**\n * *** XHR ***\n * - `new-xhr` event is fired when new instance of XHR is created. Here we create\n * a new node and store it on the XHR object.\n * - When the send method is called (`send-xhr-start` event), we tell the interaction\n * to wait for this XHR to complete.\n * - When any direct event handlers are invoked (`fn-start` on the `xhr` emitter),\n * we restore the node in case other child nodes are started here.\n * - Callbacks attached using `addEventListener` are handled using `fn-start` on the\n * `events` emitter.\n * - When `xhr-resolved` is emitted, we end the node. The node.finish() call also\n * instructs the interaction to stop waiting for this node.\n */\n\n // context is shared with new-xhr event, and is stored on the xhr iteself.\n register(FN_START, function () {\n setCurrentNode(this[SPA_NODE]);\n }, this.featureName, xhrEE);\n\n // context is stored on the xhr and is shared with all callbacks associated\n // with the new xhr\n register('new-xhr', function () {\n if (!state.disableSpaFix && !state.currentNode && state.prevInteraction && !state.prevInteraction.ignored) {\n /*\n * The previous interaction was discarded before a route change. Restore the interaction\n * in case this XHR is associated with a route change.\n */\n const interaction = state.prevInteraction;\n state.currentNode = interaction.root;\n interaction.root.end = null;\n }\n if (state.currentNode) {\n this[SPA_NODE] = state.currentNode.child('ajax', null, null, true);\n }\n }, this.featureName, xhrEE);\n register('send-xhr-start', function () {\n var node = this[SPA_NODE];\n if (node && !this.sent) {\n this.sent = true;\n node.dt = this.dt;\n if (node.dt?.timestamp) {\n node.dt.timestamp = agentRuntime.timeKeeper.correctAbsoluteTimestamp(node.dt.timestamp);\n }\n node.jsEnd = node.start = this.startTime;\n node[INTERACTION][REMAINING]++;\n }\n }, this.featureName, xhrEE);\n register('xhr-resolved', function () {\n var node = this[SPA_NODE];\n if (node) {\n if (!shouldCollectEvent(this.params)) {\n node.cancel();\n return;\n }\n var attrs = node.attrs;\n attrs.params = this.params;\n attrs.metrics = this.metrics;\n node.finish(this.endTime);\n if (!!this.currentNode && !!this.currentNode.interaction) this.currentNode.interaction.checkFinish();\n }\n }, this.featureName, baseEE);\n\n /**\n * *** JSONP ***\n *\n */\n\n register('new-jsonp', function (url) {\n if (state.currentNode) {\n var node = this[JSONP_NODE] = state.currentNode.child('ajax', this[FETCH_START]);\n node.start = this['new-jsonp'];\n this.url = url;\n this.status = null;\n }\n }, this.featureName, jsonpEE);\n register('cb-start', function (args) {\n var node = this[JSONP_NODE];\n if (node) {\n setCurrentNode(node);\n this.status = 200;\n }\n }, this.featureName, jsonpEE);\n register('jsonp-error', function () {\n var node = this[JSONP_NODE];\n if (node) {\n setCurrentNode(node);\n this.status = 0;\n }\n }, this.featureName, jsonpEE);\n register(JSONP_END, function () {\n var node = this[JSONP_NODE];\n if (node) {\n // if no status is set then cb never fired - so it's not a valid JSONP\n if (this.status === null) {\n node.cancel();\n return;\n }\n var attrs = node.attrs;\n var params = attrs.params = {};\n var parsed = parseUrl(this.url);\n params.method = 'GET';\n params.pathname = parsed.pathname;\n params.host = parsed.hostname + ':' + parsed.port;\n params.status = this.status;\n attrs.metrics = {\n txSize: 0,\n rxSize: 0\n };\n attrs.isJSONP = true;\n node.jsEnd = this[JSONP_END];\n node.jsTime = this[CB_START] ? this[JSONP_END] - this[CB_START] : 0;\n node.finish(node.jsEnd);\n }\n }, this.featureName, jsonpEE);\n register(FETCH_START, function (fetchArguments, dtPayload) {\n if (fetchArguments) {\n if (!state.disableSpaFix && !state.currentNode && state.prevInteraction && !state.prevInteraction.ignored) {\n /*\n * The previous interaction was discarded before a route change. Restore the interaction\n * in case this XHR is associated with a route change.\n */\n const interaction = state.prevInteraction;\n state.currentNode = interaction.root;\n interaction.root.end = null;\n }\n if (state.currentNode) {\n this[SPA_NODE] = state.currentNode.child('ajax', this[FETCH_START]);\n if (dtPayload && this[SPA_NODE]) {\n this[SPA_NODE].dt = dtPayload;\n if (this[SPA_NODE].dt?.timestamp) {\n this[SPA_NODE].dt.timestamp = agentRuntime.timeKeeper.correctAbsoluteTimestamp(this[SPA_NODE].dt.timestamp);\n }\n }\n }\n }\n }, this.featureName, fetchEE);\n register(FETCH_BODY + 'start', function (args) {\n if (state.currentNode) {\n this[SPA_NODE] = state.currentNode;\n state.currentNode[INTERACTION][REMAINING]++;\n }\n }, this.featureName, fetchEE);\n register(FETCH_BODY + 'end', function (args, ctx, bodyPromise) {\n var node = this[SPA_NODE];\n if (node) node[INTERACTION][REMAINING]--;\n }, this.featureName, fetchEE);\n register(FETCH_DONE, function (err, res) {\n var node = this[SPA_NODE];\n if (node) {\n if (err || !shouldCollectEvent(this.params)) {\n node.cancel();\n return;\n }\n var attrs = node.attrs;\n attrs.params = this.params;\n attrs.metrics = {\n txSize: this.txSize,\n rxSize: this.rxSize\n };\n attrs.isFetch = true;\n node.finish(this[FETCH_DONE]);\n }\n }, this.featureName, fetchEE);\n register('newURL', function (url, hashChangedDuringCb) {\n if (state.currentNode) {\n state.currentNode[INTERACTION].setNewURL(url);\n } else if (state.prevInteraction && !state.prevInteraction.ignored) {\n /*\n * The previous interaction was discarded before the route was changed. This can happen in SPA\n * frameworks when using lazy loading. We have also seen this in version 11+ of Nextjs where\n * some route changes re-use cached resolved promises.\n */\n const interaction = state.prevInteraction;\n interaction.setNewURL(url);\n interaction.root.end = null;\n setCurrentNode(interaction.root);\n }\n if (state.currentNode) {\n if (state.lastSeenUrl !== url) {\n state.currentNode[INTERACTION].routeChange = true;\n }\n if (hashChangedDuringCb) {\n state.nodeOnLastHashUpdate = state.currentNode;\n }\n }\n state.lastSeenUrl = url;\n }, this.featureName, historyEE);\n\n /**\n * SCRIPTS\n * This is only needed to keep the interaction open while external scripts are being loaded.\n * The script that is loaded could continue the interaction by making additional AJAX\n * calls or changing the URL. The interaction context (currentNode) needs to be\n * restored somehow, but this differs based on the specific customer code. In some cases, we\n * could wrap a JSONP callback, in other cases we could wrap a higher-level API, and in\n * some cases we may not be able to restore context automatically (customer would need\n * to instrument their code manually).\n *\n * - We do not restore the original context in the load/error callbacks. This would not\n * work for the scripts themselves because by the time the load event fires, the\n * script content has already been executed.\n */\n\n // dom-start is emitted when appendChild or replaceChild are called. If the element being\n // inserted is script and we are inside an interaction, we will keep the interaction open\n // until the script is loaded.\n jsonpEE.on('dom-start', function (args) {\n if (!state.currentNode) return;\n var el = args[0];\n var isScript = el && el.nodeName === 'SCRIPT' && el.src !== '';\n var interaction = state.currentNode.interaction;\n if (isScript) {\n // increase remaining count to keep the interaction open\n interaction[REMAINING]++;\n el.addEventListener('load', onload, eventListenerOpts(false));\n el.addEventListener('error', onerror, eventListenerOpts(false));\n }\n function onload() {\n // decrease remaining to allow interaction to finish\n interaction[REMAINING]--;\n\n // checkFinish is what initiates closing interaction, but is only called\n // when setCurrentNode is called. Since we are not restoring a node here,\n // we need to initiate the check manually.\n // The reason we are not restoring the node here is because 1) this is not\n // where the code of the external script runs (by the time the load event\n // fires, it has already executed), and 2) it would require storing the context\n // probably on the DOM node and restoring in all callbacks, which is a different\n // use case than lazy loading.\n interaction.checkFinish();\n }\n function onerror() {\n interaction[REMAINING]--;\n interaction.checkFinish();\n }\n });\n register(FN_START, function () {\n setCurrentNode(state.prevNode);\n }, this.featureName, mutationEE);\n register('resolve-start', resolvePromise, this.featureName, promiseEE);\n register('executor-err', resolvePromise, this.featureName, promiseEE);\n register('propagate', saveNode, this.featureName, promiseEE);\n register(CB_START, function () {\n var ctx = this.getCtx ? this.getCtx() : this;\n setCurrentNode(ctx[SPA_NODE]);\n }, this.featureName, promiseEE);\n register(INTERACTION_API + 'get', function (t) {\n var interaction;\n if (state?.currentNode?.[INTERACTION]) interaction = this.ixn = state.currentNode[INTERACTION];else if (state?.prevNode?.end === null && state?.prevNode?.[INTERACTION]?.root?.[INTERACTION]?.eventName !== 'initialPageLoad') interaction = this.ixn = state.prevNode[INTERACTION];else interaction = this.ixn = new Interaction('api', t, state.lastSeenUrl, state.lastSeenRouteName, onInteractionFinished, agentIdentifier);\n if (!state.currentNode) {\n interaction.checkFinish();\n if (state.depth) setCurrentNode(interaction.root);\n }\n }, this.featureName, baseEE);\n register(INTERACTION_API + 'actionText', function (t, actionText) {\n var customAttrs = this.ixn.root.attrs.custom;\n if (actionText) customAttrs.actionText = actionText;\n }, this.featureName, baseEE);\n register(INTERACTION_API + 'setName', function (t, name, trigger) {\n var attrs = this.ixn.root.attrs;\n if (name) attrs.customName = name;\n if (trigger) attrs.trigger = trigger;\n }, this.featureName, baseEE);\n register(INTERACTION_API + 'setAttribute', function (t, name, value) {\n this.ixn.root.attrs.custom[name] = value;\n }, this.featureName, baseEE);\n register(INTERACTION_API + 'end', function (timestamp) {\n var interaction = this.ixn;\n var node = activeNodeFor(interaction);\n setCurrentNode(null);\n node.child('customEnd', timestamp).finish(timestamp);\n interaction.finish();\n }, this.featureName, baseEE);\n register(INTERACTION_API + 'ignore', function (t) {\n this.ixn.ignored = true;\n }, this.featureName, baseEE);\n register(INTERACTION_API + 'save', function (t) {\n this.ixn.save = true;\n }, this.featureName, baseEE);\n register(INTERACTION_API + 'tracer', function (timestamp, name, store) {\n var interaction = this.ixn;\n var parent = activeNodeFor(interaction);\n var ctx = baseEE.context(store);\n if (!name) {\n ctx.inc = ++interaction[REMAINING];\n return ctx[SPA_NODE] = parent;\n }\n ctx[SPA_NODE] = parent.child('customTracer', timestamp, name);\n }, this.featureName, baseEE);\n register(FN_START, tracerDone, this.featureName, tracerEE);\n register('no-' + FN_START, tracerDone, this.featureName, tracerEE);\n function tracerDone(timestamp, interactionContext, hasCb) {\n var node = this[SPA_NODE];\n if (!node) return;\n var interaction = node[INTERACTION];\n var inc = this.inc;\n this.isTraced = true;\n if (inc) {\n interaction[REMAINING]--;\n } else if (node) {\n node.finish(timestamp);\n }\n hasCb ? setCurrentNode(node) : interaction.checkFinish();\n }\n register(INTERACTION_API + 'getContext', function (t, cb) {\n var store = this.ixn.root.attrs.store;\n setTimeout(function () {\n cb(store);\n }, 0);\n }, this.featureName, baseEE);\n register(INTERACTION_API + 'onEnd', function (t, cb) {\n this.ixn.handlers.push(cb);\n }, this.featureName, baseEE);\n register('api-routeName', function (t, currentRouteName) {\n state.lastSeenRouteName = currentRouteName;\n if (state.currentNode) state.currentNode[INTERACTION].setNewRoute(currentRouteName);\n }, this.featureName, baseEE);\n function activeNodeFor(interaction) {\n return state.currentNode && state.currentNode[INTERACTION] === interaction ? state.currentNode : interaction.root;\n }\n function saveNode(val, overwrite) {\n if (overwrite || !this[SPA_NODE]) this[SPA_NODE] = state.currentNode;\n }\n function resolvePromise() {\n if (!this.resolved) {\n this.resolved = true;\n this[SPA_NODE] = state.currentNode;\n }\n }\n function getCurrentNode() {\n return state.currentNode;\n }\n function setCurrentNode(newNode) {\n if (!state.pageLoaded && !newNode && state.initialPageLoad) newNode = state.initialPageLoad.root;\n if (state.currentNode) {\n state.currentNode[INTERACTION].checkFinish();\n }\n state.prevNode = state.currentNode;\n state.currentNode = newNode && !newNode[INTERACTION].root.end ? newNode : null;\n }\n function onInteractionFinished(interaction) {\n if (interaction === state.initialPageLoad) state.initialPageLoad = null;\n var root = interaction.root;\n var attrs = root.attrs;\n\n // make sure that newrelic[INTERACTION]() works in end handler\n state.currentNode = root;\n mapOwn(interaction.handlers, function (i, cb) {\n cb(attrs.store);\n });\n setCurrentNode(null);\n }\n const classThis = this;\n function onHarvestStarted(options) {\n if (state.interactionsToHarvest.length === 0 || classThis.blocked) return {};\n var payload = serializer.serializeMultiple(state.interactionsToHarvest, 0, navTiming);\n if (options.retry) {\n state.interactionsToHarvest.forEach(function (interaction) {\n state.interactionsSent.push(interaction);\n });\n }\n state.interactionsToHarvest = [];\n return {\n body: {\n e: payload\n }\n };\n }\n function onHarvestFinished(result) {\n if (result.sent && result.retry && state.interactionsSent.length > 0) {\n state.interactionsSent.forEach(function (interaction) {\n state.interactionsToHarvest.unshift(interaction);\n });\n state.interactionsSent = [];\n }\n }\n baseEE.on('spa-jserror', function (type, name, params, metrics) {\n if (!state.currentNode) return;\n params._interactionId = state.currentNode.interaction.id;\n // do not capture parentNodeId when in root node\n if (state.currentNode.type && state.currentNode.type !== 'interaction') {\n params._interactionNodeId = state.currentNode.id;\n }\n });\n register('function-err', function (args, obj, error) {\n if (!state.currentNode) return;\n error.__newrelic ??= {};\n error.__newrelic[agentIdentifier] = {\n interactionId: state.currentNode.interaction.id\n };\n if (state.currentNode.type && state.currentNode.type !== 'interaction') {\n error.__newrelic[agentIdentifier].interactionNodeId = state.currentNode.id;\n }\n }, this.featureName, baseEE);\n baseEE.on('interaction', saveInteraction);\n function getActionText(node) {\n var nodeType = node.tagName.toLowerCase();\n var goodNodeTypes = ['a', 'button', 'input'];\n var isGoodNode = goodNodeTypes.indexOf(nodeType) !== -1;\n if (isGoodNode) {\n return node.title || node.value || node.innerText;\n }\n }\n function saveInteraction(interaction) {\n if (interaction.ignored || !interaction.save && !interaction.routeChange) {\n baseEE.emit('interactionDone', [interaction, false]);\n return;\n }\n if (state.prevInteraction === interaction) {\n // If the interaction is being saved, remove it from prevInteraction variable\n // to prevent the interaction from possibly being sent twice or causing an internal\n // recursive loop issue.\n state.prevInteraction = null;\n }\n\n // assign unique id, this is serialized and used to link interactions with errors\n interaction.root.attrs.id = generateUuid();\n if (interaction.root.attrs.trigger === 'initialPageLoad') {\n interaction.root.attrs.firstPaint = firstPaint.current.value;\n interaction.root.attrs.firstContentfulPaint = firstContentfulPaint.current.value;\n }\n baseEE.emit('interactionDone', [interaction, true]);\n state.interactionsToHarvest.push(interaction);\n let smCategory;\n if (interaction.root?.attrs?.trigger === 'initialPageLoad') smCategory = 'InitialPageLoad';else if (interaction.routeChange) smCategory = 'RouteChange';else smCategory = 'Custom';\n handle(SUPPORTABILITY_METRIC_CHANNEL, [\"Spa/Interaction/\".concat(smCategory, \"/Duration/Ms\"), Math.max((interaction.root?.end || 0) - (interaction.root?.start || 0), 0)], undefined, FEATURE_NAMES.metrics, baseEE);\n scheduler?.scheduleHarvest(0);\n if (!scheduler) warn('SPA scheduler is not initialized. Saved interaction is not sent!');\n }\n function isEnabled() {\n var enabled = getConfigurationValue(agentIdentifier, 'spa.enabled');\n return enabled !== false;\n }\n }\n}","import { FEATURE_NAMES } from '../../loaders/features/features';\nexport const INTERACTION_TRIGGERS = ['click',\n// e.g. user clicks link or the page back/forward buttons\n'keydown',\n// e.g. user presses left and right arrow key to switch between displayed photo gallery\n'submit' // e.g. user clicks submit butotn or presses enter while editing a form field\n];\nexport const API_TRIGGER_NAME = 'api';\nexport const FEATURE_NAME = FEATURE_NAMES.softNav;\nexport const INTERACTION_TYPE = {\n INITIAL_PAGE_LOAD: '',\n ROUTE_CHANGE: 1,\n UNSPECIFIED: 2\n};\nexport const NODE_TYPE = {\n INTERACTION: 1,\n AJAX: 2,\n CUSTOM_END: 3,\n CUSTOM_TRACER: 4\n};\nexport const INTERACTION_STATUS = {\n IP: 'in progress',\n FIN: 'finished',\n CAN: 'cancelled'\n};","let nodesSeen = 0;\nexport class BelNode {\n belType;\n /** List of other BelNode derivatives. Each children should be of a subclass that implements its own 'serialize' function. */\n children = [];\n start;\n end;\n callbackEnd = 0;\n callbackDuration = 0;\n nodeId = ++nodesSeen;\n constructor(agentIdentifier) {\n if (!agentIdentifier) throw new Error('Interaction is missing core attributes');\n this.agentIdentifier = agentIdentifier;\n }\n addChild(child) {\n this.children.push(child);\n }\n\n /** Virtual fn for stringifying an instance. */\n serialize() {}\n}","import { addCustomAttributes, getAddStringContext, nullable, numeric } from '../../../common/serialize/bel-serializer';\nimport { NODE_TYPE } from '../constants';\nimport { BelNode } from './bel-node';\nexport class AjaxNode extends BelNode {\n constructor(agentIdentifier, ajaxEvent) {\n super(agentIdentifier);\n this.belType = NODE_TYPE.AJAX;\n this.method = ajaxEvent.method;\n this.status = ajaxEvent.status;\n this.domain = ajaxEvent.domain;\n this.path = ajaxEvent.path;\n this.txSize = ajaxEvent.requestSize;\n this.rxSize = ajaxEvent.responseSize;\n this.requestedWith = ajaxEvent.type === 'fetch' ? 1 : ''; // 'xhr' and 'beacon' types get the empty string\n this.spanId = ajaxEvent.spanId;\n this.traceId = ajaxEvent.traceId;\n this.spanTimestamp = ajaxEvent.spanTimestamp;\n this.gql = ajaxEvent.gql;\n this.start = ajaxEvent.startTime;\n this.end = ajaxEvent.endTime;\n }\n serialize(parentStartTimestamp) {\n const addString = getAddStringContext(this.agentIdentifier);\n const nodeList = [];\n\n // IMPORTANT: The order in which addString is called matters and correlates to the order in which string shows up in the harvest payload. Do not re-order the following code.\n const fields = [numeric(this.belType), 0,\n // this will be overwritten below with number of attached nodes\n numeric(this.start - parentStartTimestamp),\n // start relative to parent start (if part of first node in payload) or first parent start\n numeric(this.end - this.start),\n // end is relative to start\n numeric(this.callbackEnd), numeric(this.callbackDuration), addString(this.method), numeric(this.status), addString(this.domain), addString(this.path), numeric(this.txSize), numeric(this.rxSize), this.requestedWith, addString(this.nodeId), nullable(this.spanId, addString, true) + nullable(this.traceId, addString, true) + nullable(this.spanTimestamp, numeric)];\n let allAttachedNodes = [];\n if (typeof this.gql === 'object') allAttachedNodes = addCustomAttributes(this.gql, addString);\n this.children.forEach(node => allAttachedNodes.push(node.serialize())); // no children is expected under ajax nodes at this time\n\n fields[1] = numeric(allAttachedNodes.length);\n nodeList.push(fields);\n if (allAttachedNodes.length) nodeList.push(allAttachedNodes.join(';'));\n return nodeList.join(';');\n }\n}","import { getInfo } from '../../../common/config/config';\nimport { globalScope, initialLocation } from '../../../common/constants/runtime';\nimport { generateUuid } from '../../../common/ids/unique-id';\nimport { addCustomAttributes, getAddStringContext, nullable, numeric } from '../../../common/serialize/bel-serializer';\nimport { now } from '../../../common/timing/now';\nimport { cleanURL } from '../../../common/url/clean-url';\nimport { NODE_TYPE, INTERACTION_STATUS, INTERACTION_TYPE, API_TRIGGER_NAME } from '../constants';\nimport { BelNode } from './bel-node';\n\n/**\n * link https://github.com/newrelic/nr-querypack/blob/main/schemas/bel/7.qpschema\n **/\nexport class Interaction extends BelNode {\n id = generateUuid(); // unique id that is serialized and used to link interactions with errors\n initialPageURL = initialLocation;\n oldURL = '' + globalScope?.location;\n newURL = '' + globalScope?.location;\n customName;\n customAttributes = {};\n customDataByApi = {};\n queueTime; // only used by initialPageLoad interactions\n appTime; // only used by initialPageLoad interactions\n newRoute;\n /** Internal state of this interaction: in-progress, finished, or cancelled. */\n status = INTERACTION_STATUS.IP;\n domTimestamp = 0;\n historyTimestamp = 0;\n createdByApi = false;\n keepOpenUntilEndApi = false;\n onDone = [];\n cancellationTimer;\n constructor(agentIdentifier, uiEvent, uiEventTimestamp, currentRouteKnown) {\n super(agentIdentifier);\n this.belType = NODE_TYPE.INTERACTION;\n this.trigger = uiEvent;\n this.start = uiEventTimestamp;\n this.oldRoute = currentRouteKnown;\n this.eventSubscription = new Map([['finished', []], ['cancelled', []]]);\n this.forceSave = this.forceIgnore = false;\n if (this.trigger === API_TRIGGER_NAME) this.createdByApi = true;\n }\n updateDom(timestamp) {\n this.domTimestamp = timestamp || now(); // default timestamp should be precise for accurate isActiveDuring calculations\n }\n updateHistory(timestamp, newUrl) {\n this.newURL = newUrl || '' + globalScope?.location;\n this.historyTimestamp = timestamp || now();\n }\n seenHistoryAndDomChange() {\n return this.historyTimestamp > 0 && this.domTimestamp > this.historyTimestamp; // URL must change before DOM does\n }\n on(event, cb) {\n if (!this.eventSubscription.has(event)) throw new Error('Cannot subscribe to non pre-defined events.');\n if (typeof cb !== 'function') throw new Error('Must supply function as callback.');\n this.eventSubscription.get(event).push(cb);\n }\n done(customEndTime) {\n // User could've mark this interaction--regardless UI or api started--as \"don't close until .end() is called on it\". Only .end provides a timestamp; the default flows do not.\n if (this.keepOpenUntilEndApi && customEndTime === undefined) return false;\n this.onDone.forEach(apiProvidedCb => apiProvidedCb(this.customDataByApi)); // this interaction's .save or .ignore can still be set by these user provided callbacks for example\n\n if (this.forceIgnore) this.#cancel(); // .ignore() always has precedence over save actions\n else if (this.seenHistoryAndDomChange()) this.#finish(customEndTime); // then this should've already finished while it was the interactionInProgress, with a natural end time\n else if (this.forceSave) this.#finish(customEndTime || performance.now()); // a manually saved ixn (did not fulfill conditions) must have a specified end time, if one wasn't provided\n else this.#cancel();\n return true;\n }\n #finish() {\n let customEndTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (this.status !== INTERACTION_STATUS.IP) return; // disallow this call if the ixn is already done aka not in-progress\n clearTimeout(this.cancellationTimer);\n this.end = Math.max(this.domTimestamp, this.historyTimestamp, customEndTime);\n this.customAttributes = {\n ...getInfo(this.agentIdentifier).jsAttributes,\n ...this.customAttributes\n }; // attrs specific to this interaction should have precedence over the general custom attrs\n this.status = INTERACTION_STATUS.FIN;\n\n // Run all the callbacks awaiting this interaction to finish.\n const callbacks = this.eventSubscription.get('finished');\n callbacks.forEach(fn => fn());\n }\n #cancel() {\n if (this.status !== INTERACTION_STATUS.IP) return; // disallow this call if the ixn is already done aka not in-progress\n clearTimeout(this.cancellationTimer);\n this.status = INTERACTION_STATUS.CAN;\n\n // Run all the callbacks listening to this interaction's potential cancellation.\n const callbacks = this.eventSubscription.get('cancelled');\n callbacks.forEach(fn => fn());\n }\n\n /**\n * Given a timestamp, determine if it falls within this interaction's span, i.e. if this was the active interaction during that time.\n * For in-progress interactions, this only compares the time with the start of span. Cancelled interactions are not considered active at all.\n * @param {DOMHighResTimeStamp} timestamp\n * @returns True or false boolean.\n */\n isActiveDuring(timestamp) {\n if (this.status === INTERACTION_STATUS.IP) return this.start <= timestamp;\n return this.status === INTERACTION_STATUS.FIN && this.start <= timestamp && this.end >= timestamp;\n }\n\n // Following are virtual properties overridden by a subclass:\n get firstPaint() {}\n get firstContentfulPaint() {}\n get navTiming() {}\n serialize(firstStartTimeOfPayload) {\n const addString = getAddStringContext(this.agentIdentifier);\n const nodeList = [];\n let ixnType;\n if (this.trigger === 'initialPageLoad') ixnType = INTERACTION_TYPE.INITIAL_PAGE_LOAD;else if (this.newURL !== this.oldURL) ixnType = INTERACTION_TYPE.ROUTE_CHANGE;else ixnType = INTERACTION_TYPE.UNSPECIFIED;\n\n // IMPORTANT: The order in which addString is called matters and correlates to the order in which string shows up in the harvest payload. Do not re-order the following code.\n const fields = [numeric(this.belType), 0,\n // this will be overwritten below with number of attached nodes\n numeric(this.start - firstStartTimeOfPayload),\n // relative to first node\n numeric(this.end - this.start),\n // end -- relative to start\n numeric(this.callbackEnd),\n // cbEnd -- relative to start; not used by BrowserInteraction events\n numeric(this.callbackDuration),\n // not relative\n addString(this.trigger), addString(cleanURL(this.initialPageURL, true)), addString(cleanURL(this.oldURL, true)), addString(cleanURL(this.newURL, true)), addString(this.customName), ixnType, nullable(this.queueTime, numeric, true) + nullable(this.appTime, numeric, true) + nullable(this.oldRoute, addString, true) + nullable(this.newRoute, addString, true) + addString(this.id), addString(this.nodeId), nullable(this.firstPaint, numeric, true) + nullable(this.firstContentfulPaint, numeric)];\n const allAttachedNodes = addCustomAttributes(this.customAttributes || {}, addString); // start with all custom attributes\n if (getInfo(this.agentIdentifier).atts) allAttachedNodes.push('a,' + addString(getInfo(this.agentIdentifier).atts)); // add apm provided attributes\n /* Querypack encoder+decoder quirkiness:\n - If first ixn node of payload is being processed, we use this node's start to offset. (firstStartTime should be 0--or undefined.)\n - Else for subsequent ixn nodes, we use the first ixn node's start to offset. */\n this.children.forEach(node => allAttachedNodes.push(node.serialize(firstStartTimeOfPayload || this.start))); // recursively add the serialized string of every child of this (ixn) bel node\n\n fields[1] = numeric(allAttachedNodes.length);\n nodeList.push(fields);\n if (allAttachedNodes.length) nodeList.push(allAttachedNodes.join(';'));\n if (this.navTiming) nodeList.push(this.navTiming);else nodeList.push('');\n // nodeList = [<fields array>, <serialized string of all attributes and children>, <serialized nav timing info> || '']\n\n return nodeList.join(';');\n }\n}","import { navTimingValues } from '../../../common/timing/nav-timing';\nimport { Interaction } from './interaction';\nimport { numeric } from '../../../common/serialize/bel-serializer';\nimport { firstPaint } from '../../../common/vitals/first-paint';\nimport { firstContentfulPaint } from '../../../common/vitals/first-contentful-paint';\nimport { getInfo } from '../../../common/config/config';\nexport class InitialPageLoadInteraction extends Interaction {\n constructor(agentIdentifier) {\n super(agentIdentifier, 'initialPageLoad', 0, null);\n const agentInfo = getInfo(agentIdentifier);\n this.queueTime = agentInfo.queueTime;\n this.appTime = agentInfo.applicationTime;\n }\n get firstPaint() {\n return firstPaint.current.value;\n }\n get firstContentfulPaint() {\n return firstContentfulPaint.current.value;\n }\n\n /**\n * Build the navTiming node. This assumes the navTimingValues array in nav-timing.js has already been filled with values via the PageViewEvent feature having\n * executed the addPT function first and foremost.\n */\n get navTiming() {\n if (!navTimingValues.length) return;\n /*\n 1. we initialize the seperator to ',' (seperates the nodeType id from the first value)\n 2. we initialize the navTiming node to 'b' (the nodeType id)\n 3. if the value is present, we add the seperator followed by the value;\n otherwise:\n - we add null seperator ('!') to the navTimingNode\n - we set the seperator to an empty string since we already wrote it above\n the reason for writing the null seperator instead of setting the seperator\n is to ensure we still write it if the null is the last navTiming value.\n */\n let seperator = ',';\n let navTimingNode = 'b';\n let prev = 0;\n\n // Get all navTiming values except offset aka timeOrigin since we just consider that (this.start) 0.\n // These are the latter 20 of the 21 timings appended by addPT:\n navTimingValues.slice(1, 21).forEach(v => {\n if (v !== undefined) {\n navTimingNode += seperator + numeric(v - prev);\n seperator = ',';\n prev = v;\n } else {\n navTimingNode += seperator + '!';\n seperator = '';\n }\n });\n return navTimingNode;\n }\n}","import { getConfigurationValue } from '../../../common/config/config';\nimport { deregisterDrain } from '../../../common/drain/drain';\nimport { handle } from '../../../common/event-emitter/handle';\nimport { registerHandler } from '../../../common/event-emitter/register-handler';\nimport { HarvestScheduler } from '../../../common/harvest/harvest-scheduler';\nimport { single } from '../../../common/util/invoke';\nimport { timeToFirstByte } from '../../../common/vitals/time-to-first-byte';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../metrics/constants';\nimport { AggregateBase } from '../../utils/aggregate-base';\nimport { API_TRIGGER_NAME, FEATURE_NAME, INTERACTION_STATUS } from '../constants';\nimport { AjaxNode } from './ajax-node';\nimport { InitialPageLoadInteraction } from './initial-page-load-interaction';\nimport { Interaction } from './interaction';\nexport class Aggregate extends AggregateBase {\n static featureName = FEATURE_NAME;\n constructor(agentIdentifier, aggregator, _ref) {\n let {\n domObserver\n } = _ref;\n super(agentIdentifier, aggregator, FEATURE_NAME);\n const harvestTimeSeconds = getConfigurationValue(agentIdentifier, 'soft_navigations.harvestTimeSeconds') || 10;\n this.interactionsToHarvest = [];\n this.interactionsAwaitingRetry = [];\n this.domObserver = domObserver;\n this.initialPageLoadInteraction = new InitialPageLoadInteraction(agentIdentifier);\n timeToFirstByte.subscribe(_ref2 => {\n let {\n attrs\n } = _ref2;\n const loadEventTime = attrs.navigationEntry.loadEventEnd;\n this.initialPageLoadInteraction.forceSave = true;\n this.initialPageLoadInteraction.done(loadEventTime);\n this.interactionsToHarvest.push(this.initialPageLoadInteraction);\n this.initialPageLoadInteraction = null;\n // Report metric on the initial page load time\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['SoftNav/Interaction/InitialPageLoad/Duration/Ms', Math.round(loadEventTime)], undefined, FEATURE_NAMES.metrics, this.ee);\n });\n this.latestRouteSetByApi = null;\n this.interactionInProgress = null; // aside from the \"page load\" interaction, there can only ever be 1 ongoing at a time\n\n this.blocked = false;\n this.waitForFlags(['spa']).then(_ref3 => {\n let [spaOn] = _ref3;\n if (spaOn) {\n this.drain();\n const scheduler = new HarvestScheduler('events', {\n onFinished: this.onHarvestFinished.bind(this),\n retryDelay: harvestTimeSeconds,\n onUnload: () => this.interactionInProgress?.done() // return any held ajax or jserr events so they can be sent with EoL harvest\n }, {\n agentIdentifier,\n ee: this.ee\n });\n scheduler.harvest.on('events', this.onHarvestStarted.bind(this));\n scheduler.startTimer(harvestTimeSeconds, 0);\n } else {\n this.blocked = true; // if rum response determines that customer lacks entitlements for spa endpoint, this feature shouldn't harvest\n deregisterDrain(this.agentIdentifier, this.featureName);\n }\n });\n\n // By default, a complete UI driven interaction requires event -> URL change -> DOM mod in that exact order.\n registerHandler('newUIEvent', event => this.startUIInteraction(event.type, Math.floor(event.timeStamp), event.target), this.featureName, this.ee);\n registerHandler('newURL', (timestamp, url) => this.interactionInProgress?.updateHistory(timestamp, url), this.featureName, this.ee);\n registerHandler('newDom', timestamp => {\n this.interactionInProgress?.updateDom(timestamp);\n if (this.interactionInProgress?.seenHistoryAndDomChange()) this.interactionInProgress.done();\n }, this.featureName, this.ee);\n this.#registerApiHandlers();\n registerHandler('ajax', this.#handleAjaxEvent.bind(this), this.featureName, this.ee);\n registerHandler('jserror', this.#handleJserror.bind(this), this.featureName, this.ee);\n }\n onHarvestStarted(options) {\n if (this.interactionsToHarvest.length === 0 || this.blocked) return;\n // The payload depacker takes the first ixn of a payload (if there are multiple ixns) and positively offset the subsequent ixns timestamps by that amount.\n // In order to accurately portray the real start & end times of the 2nd & onward ixns, we hence need to negatively offset their start timestamps with that of the 1st ixn.\n let firstIxnStartTime = 0; // the very 1st ixn does not require any offsetting\n const serializedIxnList = [];\n for (const interaction of this.interactionsToHarvest) {\n serializedIxnList.push(interaction.serialize(firstIxnStartTime));\n if (!firstIxnStartTime) firstIxnStartTime = Math.floor(interaction.start);\n }\n const payload = \"bel.7;\".concat(serializedIxnList.join(';'));\n if (options.retry) this.interactionsAwaitingRetry = this.interactionsToHarvest;\n this.interactionsToHarvest = [];\n return {\n body: {\n e: payload\n }\n };\n }\n onHarvestFinished(result) {\n if (result.sent && result.retry && this.interactionsAwaitingRetry.length > 0) {\n this.interactionsToHarvest = [...this.interactionsAwaitingRetry, ...this.interactionsToHarvest];\n }\n this.interactionsAwaitingRetry = [];\n }\n startUIInteraction(eventName, startedAt, sourceElem) {\n // this is throttled by instrumentation so that it isn't excessively called\n if (this.interactionInProgress?.createdByApi) return; // api-started interactions cannot be disrupted aka cancelled by UI events (and the vice versa applies as well)\n if (this.interactionInProgress?.done() === false) return;\n this.interactionInProgress = new Interaction(this.agentIdentifier, eventName, startedAt, this.latestRouteSetByApi);\n if (eventName === 'click') {\n const sourceElemText = getActionText(sourceElem);\n if (sourceElemText) this.interactionInProgress.customAttributes.actionText = sourceElemText;\n }\n this.interactionInProgress.cancellationTimer = setTimeout(() => {\n this.interactionInProgress.done();\n // Report metric on frequency of cancellation due to timeout for UI ixn\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['SoftNav/Interaction/TimeOut'], undefined, FEATURE_NAMES.metrics, this.ee);\n }, 30000); // UI ixn are disregarded after 30 seconds if it's not completed by then\n this.setClosureHandlers();\n }\n setClosureHandlers() {\n this.interactionInProgress.on('finished', () => {\n const ref = this.interactionInProgress;\n this.interactionsToHarvest.push(this.interactionInProgress);\n this.interactionInProgress = null;\n this.domObserver.disconnect(); // can stop observing whenever our interaction logic completes a cycle\n\n // Report metric on the ixn duration\n handle(SUPPORTABILITY_METRIC_CHANNEL, [\"SoftNav/Interaction/\".concat(ref.newURL !== ref.oldURL ? 'RouteChange' : 'Custom', \"/Duration/Ms\"), Math.round(ref.end - ref.start)], undefined, FEATURE_NAMES.metrics, this.ee);\n });\n this.interactionInProgress.on('cancelled', () => {\n this.interactionInProgress = null;\n this.domObserver.disconnect();\n });\n }\n\n /**\n * Find the active interaction (current or past) for a given timestamp. Note that historic lookups mostly only go as far back as the last harvest for this feature.\n * Also, the caller should check the status of the interaction returned if found via {@link Interaction.status}, if that's pertinent.\n * TIP: Cancelled (status) interactions are NOT returned!\n * IMPORTANT: Finished interactions are in queue for next harvest! It's highly recommended that consumer logic be synchronous for safe reference.\n * @param {DOMHighResTimeStamp} timestamp\n * @returns An {@link Interaction} or undefined, if no active interaction was found.\n */\n getInteractionFor(timestamp) {\n /* In the sole case wherein there can be two \"interactions\" overlapping (initialPageLoad + regular route-change),\n the regular interaction should get precedence in being assigned the \"active\" interaction in regards to our one-at-a-time model.\n */\n if (this.interactionInProgress?.isActiveDuring(timestamp)) return this.interactionInProgress;\n let saveIxn;\n for (let idx = this.interactionsToHarvest.length - 1; idx >= 0; idx--) {\n // reverse search for the latest completed interaction for efficiency\n const finishedInteraction = this.interactionsToHarvest[idx];\n if (finishedInteraction.isActiveDuring(timestamp)) {\n if (finishedInteraction.trigger !== 'initialPageLoad') return finishedInteraction;\n // It's possible that a complete interaction occurs before page is fully loaded, so we need to consider if a route-change ixn may have overlapped this iPL\n else saveIxn = finishedInteraction;\n }\n }\n if (saveIxn) return saveIxn; // if an iPL was determined to be active and no route-change was found active for the same time, then iPL is deemed the one\n if (this.initialPageLoadInteraction?.isActiveDuring(timestamp)) return this.initialPageLoadInteraction; // lowest precedence and also only if it's still in-progress\n // Time must be when no interaction is happening, so return undefined.\n }\n\n /**\n * Handles or redirect ajax event based on the interaction, if any, that it's tied to.\n * @param {Object} event see Ajax feature's storeXhr function for object definition\n */\n #handleAjaxEvent(event) {\n const associatedInteraction = this.getInteractionFor(event.startTime);\n if (!associatedInteraction) {\n // no interaction was happening when this ajax started, so give it back to Ajax feature for processing\n handle('returnAjax', [event], undefined, FEATURE_NAMES.ajax, this.ee);\n } else {\n if (associatedInteraction.status === INTERACTION_STATUS.FIN) processAjax(this.agentIdentifier, event, associatedInteraction); // tack ajax onto the ixn object awaiting harvest\n else {\n // same thing as above, just at a later time -- if the interaction in progress is cancelled, just send the event back to ajax feat unmodified\n associatedInteraction.on('finished', () => processAjax(this.agentIdentifier, event, associatedInteraction));\n associatedInteraction.on('cancelled', () => handle('returnAjax', [event], undefined, FEATURE_NAMES.ajax, this.ee));\n }\n }\n function processAjax(agentId, event, parentInteraction) {\n const newNode = new AjaxNode(agentId, event);\n parentInteraction.addChild(newNode);\n }\n }\n\n /**\n * Decorate the passed-in params obj with properties relating to any associated interaction at the time of the timestamp.\n * @param {Object} params reference to the local var instance in Jserrors feature's storeError\n * @param {DOMHighResTimeStamp} timestamp time the jserror occurred\n */\n #handleJserror(params, timestamp) {\n const associatedInteraction = this.getInteractionFor(timestamp);\n if (!associatedInteraction) return; // do not need to decorate this jserror params\n\n // Whether the interaction is in-progress or already finished, the id will let jserror buffer it under its index, until it gets the next step instruction.\n params.browserInteractionId = associatedInteraction.id;\n if (associatedInteraction.status === INTERACTION_STATUS.FIN) {\n // This information cannot be relayed back via handle() that flushes buffered errs because this is being called by a jserror's handle() per se and before the err is buffered.\n params._softNavFinished = true; // instead, signal that this err can be processed right away without needing to be buffered aka wait for an in-progress ixn\n params._softNavAttributes = associatedInteraction.customAttributes;\n } else {\n // These callbacks may be added multiple times for an ixn, but just a single run will deal with all jserrors associated with the interaction.\n // As such, be cautious not to use the params object since that's tied to one specific jserror and won't affect the rest of them.\n associatedInteraction.on('finished', single(() => handle('softNavFlush', [associatedInteraction.id, true, associatedInteraction.customAttributes], undefined, FEATURE_NAMES.jserrors, this.ee)));\n associatedInteraction.on('cancelled', single(() => handle('softNavFlush', [associatedInteraction.id, false, undefined], undefined, FEATURE_NAMES.jserrors, this.ee))); // don't take custom attrs from cancelled ixns\n }\n }\n #registerApiHandlers() {\n const INTERACTION_API = 'api-ixn-';\n const thisClass = this;\n registerHandler(INTERACTION_API + 'get', function (time) {\n let {\n waitForEnd\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // In here, 'this' refers to the EventContext specific to per InteractionHandle instance spawned by each .interaction() api call.\n // Each api call aka IH instance would therefore retain a reference to either the in-progress interaction *at the time of the call* OR a new api-started interaction.\n this.associatedInteraction = thisClass.getInteractionFor(time);\n if (!this.associatedInteraction) {\n // This new api-driven interaction will be the target of any subsequent .interaction() call, until it is closed by EITHER .end() OR the regular seenHistoryAndDomChange process.\n this.associatedInteraction = thisClass.interactionInProgress = new Interaction(thisClass.agentIdentifier, API_TRIGGER_NAME, time, thisClass.latestRouteSetByApi);\n thisClass.setClosureHandlers();\n }\n if (waitForEnd === true) this.associatedInteraction.keepOpenUntilEndApi = true;\n }, thisClass.featureName, thisClass.ee);\n registerHandler(INTERACTION_API + 'end', function (timeNow) {\n this.associatedInteraction.done(timeNow);\n }, thisClass.featureName, thisClass.ee);\n registerHandler(INTERACTION_API + 'save', function () {\n this.associatedInteraction.forceSave = true;\n }, thisClass.featureName, thisClass.ee);\n registerHandler(INTERACTION_API + 'ignore', function () {\n this.associatedInteraction.forceIgnore = true;\n }, thisClass.featureName, thisClass.ee);\n registerHandler(INTERACTION_API + 'getContext', function (time, callback) {\n if (typeof callback !== 'function') return;\n setTimeout(() => callback(this.associatedInteraction.customDataByApi), 0);\n }, thisClass.featureName, thisClass.ee);\n registerHandler(INTERACTION_API + 'onEnd', function (time, callback) {\n if (typeof callback !== 'function') return;\n this.associatedInteraction.onDone.push(callback);\n }, thisClass.featureName, thisClass.ee);\n registerHandler(INTERACTION_API + 'actionText', function (time, newActionText) {\n if (newActionText) this.associatedInteraction.customAttributes.actionText = newActionText;\n }, thisClass.featureName, thisClass.ee);\n registerHandler(INTERACTION_API + 'setName', function (time, name, trigger) {\n if (name) this.associatedInteraction.customName = name;\n if (trigger) this.associatedInteraction.trigger = trigger;\n }, thisClass.featureName, thisClass.ee);\n registerHandler(INTERACTION_API + 'setAttribute', function (time, key, value) {\n this.associatedInteraction.customAttributes[key] = value;\n }, thisClass.featureName, thisClass.ee);\n registerHandler(INTERACTION_API + 'routeName', function (time, newRouteName) {\n // notice that this fn tampers with the ixn IP, not with the linked ixn\n thisClass.latestRouteSetByApi = newRouteName;\n if (thisClass.interactionInProgress) thisClass.interactionInProgress.newRoute = newRouteName;\n }, thisClass.featureName, thisClass.ee);\n }\n}\nfunction getActionText(elem) {\n const tagName = elem.tagName.toLowerCase();\n const elementsOfInterest = ['a', 'button', 'input'];\n if (elementsOfInterest.includes(tagName)) {\n return elem.title || elem.value || elem.innerText;\n }\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar NodeType$2;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType$2 || (NodeType$2 = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror$2 {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror$2() {\r\n return new Mirror$2();\r\n}\r\nfunction maskInputValue({ element, maskInputOptions, tagName, type, value, maskInputFn, }) {\r\n let text = value || '';\r\n const actualType = type && toLowerCase(type);\r\n if (maskInputOptions[tagName.toLowerCase()] ||\r\n (actualType && maskInputOptions[actualType])) {\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n else {\r\n text = '*'.repeat(text.length);\r\n }\r\n }\r\n return text;\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME$1 = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME$1 in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME$1]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType$2.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType$2.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType$2.Comment ||\r\n a.type === NodeType$2.Text ||\r\n a.type === NodeType$2.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType$2.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction extractFileExtension(path, baseURL) {\r\n var _a;\r\n let url;\r\n try {\r\n url = new URL(path, baseURL !== null && baseURL !== void 0 ? baseURL : window.location.href);\r\n }\r\n catch (err) {\r\n return null;\r\n }\r\n const regex = /\\.([0-9a-z]+)(?:$)/i;\r\n const match = url.pathname.match(regex);\r\n return (_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : null;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName$1(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector) {\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (node.nodeType !== node.ELEMENT_NODE) {\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n }\r\n for (let eIndex = node.classList.length; eIndex--;) {\r\n const className = node.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, checkAncestors) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (typeof maskTextClass === 'string') {\r\n if (checkAncestors) {\r\n if (el.closest(`.${maskTextClass}`))\r\n return true;\r\n }\r\n else {\r\n if (el.classList.contains(maskTextClass))\r\n return true;\r\n }\r\n }\r\n else {\r\n if (classMatchesRegex(el, maskTextClass, checkAncestors))\r\n return true;\r\n }\r\n if (maskTextSelector) {\r\n if (checkAncestors) {\r\n if (el.closest(maskTextSelector))\r\n return true;\r\n }\r\n else {\r\n if (el.matches(maskTextSelector))\r\n return true;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, needsMask, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType$2.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType$2.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType$2.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n needsMask,\r\n maskTextFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType$2.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType$2.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n var _a;\r\n const { needsMask, maskTextFn, rootId } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n if (!isStyle && !isScript && textContent && needsMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n return {\r\n type: NodeType$2.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, inlineStylesheet, maskInputOptions = {}, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector);\r\n const tagName = getValidTagName$1(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\r\n const value = n.value;\r\n const checked = n.checked;\r\n if (attributes.type !== 'radio' &&\r\n attributes.type !== 'checkbox' &&\r\n attributes.type !== 'submit' &&\r\n attributes.type !== 'button' &&\r\n value) {\r\n attributes.value = maskInputValue({\r\n element: n,\r\n type: getInputType(n),\r\n tagName,\r\n value,\r\n maskInputOptions,\r\n maskInputFn,\r\n });\r\n }\r\n else if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType$2.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType$2.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType$2.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n extractFileExtension(sn.attributes.href) === 'js'))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, maskTextClass, maskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { needsMask } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n if (!needsMask &&\r\n n.childNodes) {\r\n const checkAncestors = needsMask === undefined;\r\n needsMask = needMaskingText(n, maskTextClass, maskTextSelector, checkAncestors);\r\n }\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType$2.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType$2.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType$2.Document ||\r\n serializedNode.type === NodeType$2.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType$2.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n if (serializedNode.type === NodeType$2.Element &&\r\n serializedNode.tagName === 'textarea' &&\r\n serializedNode.attributes.value !== undefined) ;\r\n else {\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType$2.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType$2.Element &&\r\n serializedNode.tagName === 'link' &&\r\n typeof serializedNode.attributes.rel === 'string' &&\r\n (serializedNode.attributes.rel === 'stylesheet' ||\r\n (serializedNode.attributes.rel === 'preload' &&\r\n typeof serializedNode.attributes.href === 'string' &&\r\n extractFileExtension(serializedNode.attributes.href) === 'css'))) {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror$2(), blockClass = 'rr-block', blockSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : maskAllInputs === false\r\n ? {\r\n password: true,\r\n }\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n const m = match(/^([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n return trim(m[0])\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n })\r\n .split(/\\s*(?![^(]*\\)),\\s*/)\r\n .map((s) => {\r\n return s.replace(/\\u200C/g, ',');\r\n });\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\r\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, 'g');\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction adaptCssForReplay(cssText, cache) {\r\n const cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n const medias = [];\r\n function getSelectors(rule) {\r\n if ('selectors' in rule && rule.selectors) {\r\n rule.selectors.forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n if ('media' in rule && rule.media && MEDIA_SELECTOR.test(rule.media)) {\r\n medias.push(rule.media);\r\n }\r\n if ('rules' in rule && rule.rules) {\r\n rule.rules.forEach(getSelectors);\r\n }\r\n }\r\n getSelectors(ast.stylesheet);\r\n let result = cssText;\r\n if (selectors.length > 0) {\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n result = result.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n }\r\n if (medias.length > 0) {\r\n const mediaMatcher = new RegExp(medias\r\n .filter((media, index) => medias.indexOf(media) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((media) => {\r\n return escapeRegExp(media);\r\n })\r\n .join('|'), 'g');\r\n result = result.replace(mediaMatcher, (media) => {\r\n return media.replace(MEDIA_SELECTOR_GLOBAL, '$1-$2');\r\n });\r\n }\r\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n var _a;\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType$2.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType$2.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType$2.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n ((_a = doc.defaultView) === null || _a === void 0 ? void 0 : _a.customElements) &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = adaptCssForReplay(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n node.appendChild(doc.createTextNode(value));\r\n n.childNodes = [];\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.width = value.toString();\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.height = value.toString();\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType$2.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? adaptCssForReplay(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType$2.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType$2.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType$2.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType$2.DocumentType) {\r\n if (n.childNodes[0].type === NodeType$2.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\r\n }\r\n else {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType$2.Document || n.type === NodeType$2.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType$2.Document &&\r\n childN.type == NodeType$2.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if ((n === null || n === void 0 ? void 0 : n.type) !== NodeType$2.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror$2(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nexports.mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n exports.mirror = new Proxy(exports.mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch (_a) {\r\n return () => {\r\n };\r\n }\r\n}\r\nlet nowTimestamp = Date.now;\r\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\r\n nowTimestamp = () => new Date().getTime();\r\n}\r\nfunction getWindowScroll(win) {\r\n var _a, _b, _c, _d, _e, _f;\r\n const doc = win.document;\r\n return {\r\n left: doc.scrollingElement\r\n ? doc.scrollingElement.scrollLeft\r\n : win.pageXOffset !== undefined\r\n ? win.pageXOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollLeft) ||\r\n ((_b = (_a = doc === null || doc === void 0 ? void 0 : doc.body) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollLeft) ||\r\n ((_c = doc === null || doc === void 0 ? void 0 : doc.body) === null || _c === void 0 ? void 0 : _c.scrollLeft) ||\r\n 0,\r\n top: doc.scrollingElement\r\n ? doc.scrollingElement.scrollTop\r\n : win.pageYOffset !== undefined\r\n ? win.pageYOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollTop) ||\r\n ((_e = (_d = doc === null || doc === void 0 ? void 0 : doc.body) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop) ||\r\n ((_f = doc === null || doc === void 0 ? void 0 : doc.body) === null || _f === void 0 ? void 0 : _f.scrollTop) ||\r\n 0,\r\n };\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction closestElementOfNode(node) {\r\n if (!node) {\r\n return null;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n return el;\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = closestElementOfNode(node);\r\n if (!el) {\r\n return false;\r\n }\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (el.classList.contains(blockClass))\r\n return true;\r\n if (checkAncestors && el.closest('.' + blockClass) !== null)\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, blockClass, checkAncestors))\r\n return true;\r\n }\r\n }\r\n catch (e) {\r\n }\r\n if (blockSelector) {\r\n if (el.matches(blockSelector))\r\n return true;\r\n if (checkAncestors && el.closest(blockSelector) !== null)\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction legacy_isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill$1(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction queueToResolveTrees(queue) {\r\n const queueNodeMap = {};\r\n const putIntoMap = (m, parent) => {\r\n const nodeInTree = {\r\n value: m,\r\n parent,\r\n children: [],\r\n };\r\n queueNodeMap[m.node.id] = nodeInTree;\r\n return nodeInTree;\r\n };\r\n const queueNodeTrees = [];\r\n for (const mutation of queue) {\r\n const { nextId, parentId } = mutation;\r\n if (nextId && nextId in queueNodeMap) {\r\n const nextInTree = queueNodeMap[nextId];\r\n if (nextInTree.parent) {\r\n const idx = nextInTree.parent.children.indexOf(nextInTree);\r\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\r\n }\r\n else {\r\n const idx = queueNodeTrees.indexOf(nextInTree);\r\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\r\n }\r\n continue;\r\n }\r\n if (parentId in queueNodeMap) {\r\n const parentInTree = queueNodeMap[parentId];\r\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\r\n continue;\r\n }\r\n queueNodeTrees.push(putIntoMap(mutation, null));\r\n }\r\n return queueNodeTrees;\r\n}\r\nfunction iterateResolveTree(tree, cb) {\r\n cb(tree.value);\r\n for (let i = tree.children.length - 1; i >= 0; i--) {\r\n iterateResolveTree(tree.children[i], cb);\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction getBaseDimension(node, rootIframe) {\r\n var _a, _b;\r\n const frameElement = (_b = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) === null || _b === void 0 ? void 0 : _b.frameElement;\r\n if (!frameElement || frameElement === rootIframe) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n relativeScale: 1,\r\n absoluteScale: 1,\r\n };\r\n }\r\n const frameDimension = frameElement.getBoundingClientRect();\r\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\r\n const relativeScale = frameDimension.height / frameElement.clientHeight;\r\n return {\r\n x: frameDimension.x * frameBaseDimension.relativeScale +\r\n frameBaseDimension.x,\r\n y: frameDimension.y * frameBaseDimension.relativeScale +\r\n frameBaseDimension.y,\r\n relativeScale,\r\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\r\n };\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\r\n}\r\nfunction getNestedRule(rules, position) {\r\n const rule = rules[position[0]];\r\n if (position.length === 1) {\r\n return rule;\r\n }\r\n else {\r\n return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));\r\n }\r\n}\r\nfunction getPositionsAndIndex(nestedIndex) {\r\n const positions = [...nestedIndex];\r\n const index = positions.pop();\r\n return { positions, index };\r\n}\r\nfunction uniqueTextMutations(mutations) {\r\n const idSet = new Set();\r\n const uniqueMutations = [];\r\n for (let i = mutations.length; i--;) {\r\n const mutation = mutations[i];\r\n if (!idSet.has(mutation.id)) {\r\n uniqueMutations.push(mutation);\r\n idSet.add(mutation.id);\r\n }\r\n }\r\n return uniqueMutations;\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n var _a;\r\n return (_a = this.styleIDMap.get(stylesheet)) !== null && _a !== void 0 ? _a : -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\r\nfunction getShadowHost(n) {\r\n var _a, _b;\r\n let shadowHost = null;\r\n if (((_b = (_a = n.getRootNode) === null || _a === void 0 ? void 0 : _a.call(n)) === null || _b === void 0 ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n return shadowHost;\r\n}\r\nfunction getRootShadowHost(n) {\r\n let rootShadowHost = n;\r\n let shadowHost;\r\n while ((shadowHost = getShadowHost(rootShadowHost)))\r\n rootShadowHost = shadowHost;\r\n return rootShadowHost;\r\n}\r\nfunction shadowHostInDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n const shadowHost = getRootShadowHost(n);\r\n return doc.contains(shadowHost);\r\n}\r\nfunction inDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n return doc.contains(n) || shadowHostInDom(n);\r\n}\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n on: on,\n get _mirror () { return exports.mirror; },\n throttle: throttle,\n hookSetter: hookSetter,\n patch: patch,\n get nowTimestamp () { return nowTimestamp; },\n getWindowScroll: getWindowScroll,\n getWindowHeight: getWindowHeight,\n getWindowWidth: getWindowWidth,\n closestElementOfNode: closestElementOfNode,\n isBlocked: isBlocked,\n isSerialized: isSerialized,\n isIgnored: isIgnored,\n isAncestorRemoved: isAncestorRemoved,\n legacy_isTouchEvent: legacy_isTouchEvent,\n polyfill: polyfill$1,\n queueToResolveTrees: queueToResolveTrees,\n iterateResolveTree: iterateResolveTree,\n isSerializedIframe: isSerializedIframe,\n isSerializedStylesheet: isSerializedStylesheet,\n getBaseDimension: getBaseDimension,\n hasShadowRoot: hasShadowRoot,\n getNestedRule: getNestedRule,\n getPositionsAndIndex: getPositionsAndIndex,\n uniqueTextMutations: uniqueTextMutations,\n StyleSheetMirror: StyleSheetMirror,\n getShadowHost: getShadowHost,\n getRootShadowHost: getRootShadowHost,\n shadowHostInDom: shadowHostInDom,\n inDom: inDom\n});\n\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n this.tail = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n if (node.next === null) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n else {\r\n this.tail = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addedIds = new Set();\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n if (!n.parentNode ||\r\n !inDom(n) ||\r\n n.parentNode.tagName === 'TEXTAREA') {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(getShadowHost(n))\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskTextClass: this.maskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n addedIds.add(sn.id);\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of this.movedSet) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of this.addedSet) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n let tailNode = addList.tail;\r\n while (tailNode) {\r\n const _node = tailNode;\r\n tailNode = tailNode.previous;\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => {\r\n const n = text.node;\r\n if (n.parentNode.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(n.parentNode);\r\n }\r\n return {\r\n id: this.mirror.getId(n),\r\n value: text.value,\r\n };\r\n })\r\n .filter((text) => !addedIds.has(text.id))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => {\r\n const { attributes } = attribute;\r\n if (typeof attributes.style === 'string') {\r\n const diffAsStr = JSON.stringify(attribute.styleDiff);\r\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\r\n if (diffAsStr.length < attributes.style.length) {\r\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\r\n attributes.style.split('var(').length) {\r\n attributes.style = attribute.styleDiff;\r\n }\r\n }\r\n }\r\n return {\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attributes,\r\n };\r\n })\r\n .filter((attribute) => !addedIds.has(attribute.id))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.genTextAreaValueMutation = (textarea) => {\r\n let item = this.attributeMap.get(textarea);\r\n if (!item) {\r\n item = {\r\n node: textarea,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(textarea, item);\r\n }\r\n item.attributes.value = Array.from(textarea.childNodes, (cn) => cn.textContent || '').join('');\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, true) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value, closestElementOfNode(m.target))\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let attributeName = m.attributeName;\r\n let value = m.target.getAttribute(attributeName);\r\n if (attributeName === 'value') {\r\n const type = getInputType(target);\r\n value = maskInputValue({\r\n element: target,\r\n maskInputOptions: this.maskInputOptions,\r\n tagName: target.tagName,\r\n type,\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributeMap.get(m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(m.target, item);\r\n }\r\n if (attributeName === 'type' &&\r\n target.tagName === 'INPUT' &&\r\n (m.oldValue || '').toLowerCase() === 'password') {\r\n target.setAttribute('data-rr-is-password', 'true');\r\n }\r\n if (!ignoreAttribute(target.tagName, attributeName)) {\r\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value);\r\n if (attributeName === 'style') {\r\n if (!this.unattachedDoc) {\r\n try {\r\n this.unattachedDoc =\r\n document.implementation.createHTMLDocument();\r\n }\r\n catch (e) {\r\n this.unattachedDoc = this.doc;\r\n }\r\n }\r\n const old = this.unattachedDoc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n item.styleDiff[pname] = newValue;\r\n }\r\n else {\r\n item.styleDiff[pname] = [newValue, newPriority];\r\n }\r\n }\r\n else {\r\n item._unchangedStyles[pname] = [newValue, newPriority];\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n item.styleDiff[pname] = false;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\r\n return;\r\n if (m.target.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(m.target);\r\n return;\r\n }\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.processedNodeManager.inOtherBuffer(n, this))\r\n return;\r\n if (this.addedSet.has(n) || this.movedSet.has(n))\r\n return;\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, false)) {\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n if (hasShadowRoot(n)) {\r\n n.shadowRoot.childNodes.forEach((childN) => {\r\n this.processedNodeManager.add(childN, this);\r\n this.genAdds(childN, n);\r\n });\r\n }\r\n }\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'maskTextClass',\r\n 'maskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n 'processedNodeManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nlet errorHandler;\r\nfunction registerErrorHandler(handler) {\r\n errorHandler = handler;\r\n}\r\nfunction unregisterErrorHandler() {\r\n errorHandler = undefined;\r\n}\r\nconst callbackWrapper = (cb) => {\r\n if (!errorHandler) {\r\n return cb;\r\n }\r\n const rrwebWrapped = ((...rest) => {\r\n try {\r\n return cb(...rest);\r\n }\r\n catch (error) {\r\n if (errorHandler && errorHandler(error) === true) {\r\n return;\r\n }\r\n throw error;\r\n }\r\n });\r\n return rrwebWrapped;\r\n};\n\nconst mutationBuffers = [];\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n }\r\n catch (_a) {\r\n }\r\n return event && event.target;\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n var _a, _b;\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = (_b = (_a = window === null || window === void 0 ? void 0 : window.Zone) === null || _a === void 0 ? void 0 : _a.__symbol__) === null || _b === void 0 ? void 0 : _b.call(_a, 'MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer)));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle(callbackWrapper((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }), callbackThreshold);\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = legacy_isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = nowTimestamp();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: nowTimestamp() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource.MouseMove\r\n : IncrementalSource.TouchMove);\r\n }), threshold, {\r\n trailing: false,\r\n }));\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n let currentPointerType = null;\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n let pointerType = null;\r\n let thisEventKey = eventKey;\r\n if ('pointerType' in event) {\r\n switch (event.pointerType) {\r\n case 'mouse':\r\n pointerType = PointerTypes.Mouse;\r\n break;\r\n case 'touch':\r\n pointerType = PointerTypes.Touch;\r\n break;\r\n case 'pen':\r\n pointerType = PointerTypes.Pen;\r\n break;\r\n }\r\n if (pointerType === PointerTypes.Touch) {\r\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\r\n thisEventKey = 'TouchStart';\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\r\n thisEventKey = 'TouchEnd';\r\n }\r\n }\r\n else if (pointerType === PointerTypes.Pen) ;\r\n }\r\n else if (legacy_isTouchEvent(event)) {\r\n pointerType = PointerTypes.Touch;\r\n }\r\n if (pointerType !== null) {\r\n currentPointerType = pointerType;\r\n if ((thisEventKey.startsWith('Touch') &&\r\n pointerType === PointerTypes.Touch) ||\r\n (thisEventKey.startsWith('Mouse') &&\r\n pointerType === PointerTypes.Mouse)) {\r\n pointerType = null;\r\n }\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\r\n pointerType = currentPointerType;\r\n currentPointerType = null;\r\n }\r\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n callbackWrapper(mouseInteractionCb)(Object.assign({ type: MouseInteractions[thisEventKey], id, x: clientX, y: clientY }, (pointerType !== null && { pointerType })));\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n let eventName = toLowerCase(eventKey);\r\n const handler = getHandler(eventKey);\r\n if (window.PointerEvent) {\r\n switch (MouseInteractions[eventKey]) {\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n eventName = eventName.replace('mouse', 'pointer');\r\n break;\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n return;\r\n }\r\n }\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc && doc.defaultView) {\r\n const scrollLeftTop = getWindowScroll(doc.defaultView);\r\n scrollCb({\r\n id,\r\n x: scrollLeftTop.left,\r\n y: scrollLeftTop.top,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }), sampling.scroll || 100));\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = callbackWrapper(throttle(callbackWrapper(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }), 200));\r\n return on('resize', updateDimension, win);\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n const tagName = target && target.tagName;\r\n if (target && tagName === 'OPTION') {\r\n target = target.parentElement;\r\n }\r\n if (!target ||\r\n !tagName ||\r\n INPUT_TAGS.indexOf(tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n if (target.classList.contains(ignoreClass) ||\r\n (ignoreSelector && target.matches(ignoreSelector))) {\r\n return;\r\n }\r\n let text = target.value;\r\n let isChecked = false;\r\n const type = getInputType(target) || '';\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n else if (maskInputOptions[tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n text = maskInputValue({\r\n element: target,\r\n maskInputOptions,\r\n tagName,\r\n type,\r\n value: text,\r\n maskInputFn,\r\n });\r\n }\r\n cbWithDedup(target, userTriggeredOnInput\r\n ? { text, isChecked, userTriggered }\r\n : { text, isChecked });\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n const text = el.value;\r\n cbWithDedup(el, userTriggeredOnInput\r\n ? { text, isChecked: !isChecked, userTriggered: false }\r\n : { text, isChecked: !isChecked });\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n callbackWrapper(inputCb)(Object.assign(Object.assign({}, v), { id }));\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n callbackWrapper(eventHandler)({\r\n target: this,\r\n isTrusted: false,\r\n });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((hasNestedCSSRule('CSSGroupingRule') &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (hasNestedCSSRule('CSSMediaRule') &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (hasNestedCSSRule('CSSSupportsRule') &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (hasNestedCSSRule('CSSConditionRule') &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\r\n return () => {\r\n };\r\n }\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(thisArg),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(thisArg), index] },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n });\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n var _a, _b, _c;\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? (_a = host.defaultView) === null || _a === void 0 ? void 0 : _a.Document\r\n : (_c = (_b = host.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.ShadowRoot;\r\n const originalPropertyDescriptor = (patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype)\r\n ? Object.getOwnPropertyDescriptor(patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype, 'adoptedStyleSheets')\r\n : undefined;\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n var _a;\r\n return (_a = originalPropertyDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\r\n },\r\n set(sheets) {\r\n var _a;\r\n const result = (_a = originalPropertyDescriptor.set) === null || _a === void 0 ? void 0 : _a.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return callbackWrapper(() => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n });\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property, value, priority] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(thisArg, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(thisArg, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n });\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, mirror, sampling, doc, }) {\r\n const handler = callbackWrapper((type) => throttle(callbackWrapper((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n });\r\n }), sampling.media || 500));\r\n const handlers = [\r\n on('play', handler(0), doc),\r\n on('pause', handler(1), doc),\r\n on('seeked', handler(2), doc),\r\n on('volumechange', handler(3), doc),\r\n on('ratechange', handler(4), doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(callbackWrapper(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }), 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\r\n let collapsed = true;\r\n const updateSelection = callbackWrapper(() => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && (selection === null || selection === void 0 ? void 0 : selection.isCollapsed)))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n });\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction initCustomElementObserver({ doc, customElementCb, }) {\r\n const win = doc.defaultView;\r\n if (!win || !win.customElements)\r\n return () => { };\r\n const restoreHandler = patch(win.customElements, 'define', function (original) {\r\n return function (name, constructor, options) {\r\n try {\r\n customElementCb({\r\n define: {\r\n name,\r\n },\r\n });\r\n }\r\n catch (e) {\r\n console.warn(`Custom element callback failed for ${name}`);\r\n }\r\n return original.apply(this, [name, constructor, options]);\r\n };\r\n });\r\n return restoreHandler;\r\n}\r\nfunction mergeHooks(o, hooks) {\r\n const { mutationCb, mousemoveCb, mouseInteractionCb, scrollCb, viewportResizeCb, inputCb, mediaInteractionCb, styleSheetRuleCb, styleDeclarationCb, canvasMutationCb, fontCb, selectionCb, customElementCb, } = o;\r\n o.mutationCb = (...p) => {\r\n if (hooks.mutation) {\r\n hooks.mutation(...p);\r\n }\r\n mutationCb(...p);\r\n };\r\n o.mousemoveCb = (...p) => {\r\n if (hooks.mousemove) {\r\n hooks.mousemove(...p);\r\n }\r\n mousemoveCb(...p);\r\n };\r\n o.mouseInteractionCb = (...p) => {\r\n if (hooks.mouseInteraction) {\r\n hooks.mouseInteraction(...p);\r\n }\r\n mouseInteractionCb(...p);\r\n };\r\n o.scrollCb = (...p) => {\r\n if (hooks.scroll) {\r\n hooks.scroll(...p);\r\n }\r\n scrollCb(...p);\r\n };\r\n o.viewportResizeCb = (...p) => {\r\n if (hooks.viewportResize) {\r\n hooks.viewportResize(...p);\r\n }\r\n viewportResizeCb(...p);\r\n };\r\n o.inputCb = (...p) => {\r\n if (hooks.input) {\r\n hooks.input(...p);\r\n }\r\n inputCb(...p);\r\n };\r\n o.mediaInteractionCb = (...p) => {\r\n if (hooks.mediaInteaction) {\r\n hooks.mediaInteaction(...p);\r\n }\r\n mediaInteractionCb(...p);\r\n };\r\n o.styleSheetRuleCb = (...p) => {\r\n if (hooks.styleSheetRule) {\r\n hooks.styleSheetRule(...p);\r\n }\r\n styleSheetRuleCb(...p);\r\n };\r\n o.styleDeclarationCb = (...p) => {\r\n if (hooks.styleDeclaration) {\r\n hooks.styleDeclaration(...p);\r\n }\r\n styleDeclarationCb(...p);\r\n };\r\n o.canvasMutationCb = (...p) => {\r\n if (hooks.canvasMutation) {\r\n hooks.canvasMutation(...p);\r\n }\r\n canvasMutationCb(...p);\r\n };\r\n o.fontCb = (...p) => {\r\n if (hooks.font) {\r\n hooks.font(...p);\r\n }\r\n fontCb(...p);\r\n };\r\n o.selectionCb = (...p) => {\r\n if (hooks.selection) {\r\n hooks.selection(...p);\r\n }\r\n selectionCb(...p);\r\n };\r\n o.customElementCb = (...c) => {\r\n if (hooks.customElement) {\r\n hooks.customElement(...c);\r\n }\r\n customElementCb(...c);\r\n };\r\n}\r\nfunction initObservers(o, hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n mergeHooks(o, hooks);\r\n let mutationObserver;\r\n if (o.recordDOM) {\r\n mutationObserver = initMutationObserver(o, o.doc);\r\n }\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o, {\r\n win: currentWindow,\r\n });\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n let styleSheetObserver = () => { };\r\n let adoptedStyleSheetObserver = () => { };\r\n let styleDeclarationObserver = () => { };\r\n let fontObserver = () => { };\r\n if (o.recordDOM) {\r\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n if (o.collectFonts) {\r\n fontObserver = initFontObserver(o);\r\n }\r\n }\r\n const selectionObserver = initSelectionObserver(o);\r\n const customElementObserver = initCustomElementObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return callbackWrapper(() => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver === null || mutationObserver === void 0 ? void 0 : mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n customElementObserver();\r\n pluginHandlers.forEach((h) => h());\r\n });\r\n}\r\nfunction hasNestedCSSRule(prop) {\r\n return typeof window[prop] !== 'undefined';\r\n}\r\nfunction canMonkeyPatchNestedCSSRule(prop) {\r\n return Boolean(typeof window[prop] !== 'undefined' &&\r\n window[prop].prototype &&\r\n 'insertRule' in window[prop].prototype &&\r\n 'deleteRule' in window[prop].prototype);\r\n}\n\nclass CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n var _a;\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n const crossOriginMessageEvent = message;\r\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\r\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\r\n return;\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n var _a;\r\n switch (e.type) {\r\n case EventType.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n const rootId = e.data.node.id;\r\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\r\n this.patchRootIdOnNode(e.data.node, rootId);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType.Meta:\r\n case EventType.Load:\r\n case EventType.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType.Plugin: {\r\n return e;\r\n }\r\n case EventType.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\r\n rootId && this.patchRootIdOnNode(n.node, rootId);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource.MediaInteraction:\r\n case IncrementalSource.MouseInteraction:\r\n case IncrementalSource.Scroll:\r\n case IncrementalSource.CanvasMutation:\r\n case IncrementalSource.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource.Font: {\r\n return e;\r\n }\r\n case IncrementalSource.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n (_a = e.data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n patchRootIdOnNode(node, rootId) {\r\n if (node.type !== NodeType$2.Document && !node.rootId)\r\n node.rootId = rootId;\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.patchRootIdOnNode(child, rootId);\r\n });\r\n }\r\n }\r\n}\n\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restoreHandlers = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n this.init();\r\n }\r\n init() {\r\n this.reset();\r\n this.patchAttachShadow(Element, document);\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n const observer = initMutationObserver(Object.assign(Object.assign({}, this.bypassOptions), { doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\r\n this.restoreHandlers.push(() => observer.disconnect());\r\n this.restoreHandlers.push(initScrollObserver(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror })));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot));\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\r\n return;\r\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\r\n }\r\n patchAttachShadow(element, doc) {\r\n const manager = this;\r\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot && inDom(this))\r\n manager.addShadowRoot(this.shadowRoot, doc);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n reset() {\r\n this.restoreHandlers.forEach((handler) => {\r\n try {\r\n handler();\r\n }\r\n catch (e) {\r\n }\r\n });\r\n this.restoreHandlers = [];\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\n/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i$2 = 0; i$2 < chars.length; i$2++) {\n lookup[chars.charCodeAt(i$2)] = i$2;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor$1(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor$1(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return args.map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\r\n const handlers = [];\r\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\r\n for (const prop of props2D) {\r\n try {\r\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\r\n return function (...args) {\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n setTimeout(() => {\r\n const recordArgs = serializeArgs(args, win, this);\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: recordArgs,\r\n });\r\n }, 0);\r\n }\r\n return original.apply(this, args);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction getNormalizedContextName(contextType) {\r\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\r\n}\r\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\r\n const handlers = [];\r\n try {\r\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\r\n return function (contextType, ...args) {\r\n if (!isBlocked(this, blockClass, blockSelector, true)) {\r\n const ctxName = getNormalizedContextName(contextType);\r\n if (!('__context' in this))\r\n this.__context = ctxName;\r\n if (setPreserveDrawingBufferToTrue &&\r\n ['webgl', 'webgl2'].includes(ctxName)) {\r\n if (args[0] && typeof args[0] === 'object') {\r\n const contextAttributes = args[0];\r\n if (!contextAttributes.preserveDrawingBuffer) {\r\n contextAttributes.preserveDrawingBuffer = true;\r\n }\r\n }\r\n else {\r\n args.splice(0, 1, {\r\n preserveDrawingBuffer: true,\r\n });\r\n }\r\n }\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, mirror, win) {\r\n const handlers = [];\r\n const props = Object.getOwnPropertyNames(prototype);\r\n for (const prop of props) {\r\n if ([\r\n 'isContextLost',\r\n 'canvas',\r\n 'drawingBufferWidth',\r\n 'drawingBufferHeight',\r\n ].includes(prop)) {\r\n continue;\r\n }\r\n try {\r\n if (typeof prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(prototype, prop, function (original) {\r\n return function (...args) {\r\n const result = original.apply(this, args);\r\n saveWebGLVar(result, win, this);\r\n if ('tagName' in this.canvas &&\r\n !isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n const recordArgs = serializeArgs(args, win, this);\r\n const mutation = {\r\n type,\r\n property: prop,\r\n args: recordArgs,\r\n };\r\n cb(this.canvas, mutation);\r\n }\r\n return result;\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type,\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return handlers;\r\n}\r\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction funcToSource(fn, sourcemapArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var source = fn.toString();\n var lines = source.split('\\n');\n lines.pop();\n lines.shift();\n var blankPrefixLength = lines[0].search(/\\S/);\n var regex = /(['\"])__worker_loader_strict__(['\"])/g;\n for (var i = 0, n = lines.length; i < n; ++i) {\n lines[i] = lines[i].substring(blankPrefixLength).replace(regex, '$1use strict$2') + '\\n';\n }\n if (sourcemap) {\n lines.push('\\/\\/# sourceMappingURL=' + sourcemap + '\\n');\n }\n return lines;\n}\n\nfunction createURL(fn, sourcemapArg) {\n var lines = funcToSource(fn, sourcemapArg);\n var blob = new Blob(lines, { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n\nfunction createInlineWorkerFactory(fn, sourcemapArg) {\n var url;\n return function WorkerFactory(options) {\n url = url || createURL(fn, sourcemapArg);\n return new Worker(url, options);\n };\n}\n\nvar WorkerFactory = createInlineWorkerFactory(/* rollup-plugin-web-worker-loader */function () {\n(function () {\n '__worker_loader_strict__';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\n\n /*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n var encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n };\n\n const lastBlobMap = new Map();\r\n const transparentBlobMap = new Map();\r\n function getTransparentBlobFor(width, height, dataURLOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const id = `${width}-${height}`;\r\n if ('OffscreenCanvas' in globalThis) {\r\n if (transparentBlobMap.has(id))\r\n return transparentBlobMap.get(id);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n offscreen.getContext('2d');\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n transparentBlobMap.set(id, base64);\r\n return base64;\r\n }\r\n else {\r\n return '';\r\n }\r\n });\r\n }\r\n const worker = self;\r\n worker.onmessage = function (e) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if ('OffscreenCanvas' in globalThis) {\r\n const { id, bitmap, width, height, dataURLOptions } = e.data;\r\n const transparentBase64 = getTransparentBlobFor(width, height, dataURLOptions);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n const ctx = offscreen.getContext('2d');\r\n ctx.drawImage(bitmap, 0, 0);\r\n bitmap.close();\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const type = blob.type;\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n if (!lastBlobMap.has(id) && (yield transparentBase64) === base64) {\r\n lastBlobMap.set(id, base64);\r\n return worker.postMessage({ id });\r\n }\r\n if (lastBlobMap.get(id) === base64)\r\n return worker.postMessage({ id });\r\n worker.postMessage({\r\n id,\r\n type,\r\n base64,\r\n width,\r\n height,\r\n });\r\n lastBlobMap.set(id, base64);\r\n }\r\n else {\r\n return worker.postMessage({ id: e.data.id });\r\n }\r\n });\r\n };\n\n})();\n}, null);\n/* eslint-enable */\n\nclass CanvasManager {\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, recordCanvas, dataURLOptions, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\r\n dataURLOptions,\r\n });\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, true);\r\n const snapshotInProgressMap = new Map();\r\n const worker = new WorkerFactory();\r\n worker.onmessage = (e) => {\r\n const { id } = e.data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in e.data))\r\n return;\r\n const { base64, type, width, height } = e.data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = () => {\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas()\r\n .forEach((canvas) => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (((_a = context === null || context === void 0 ? void 0 : context.getContextAttributes()) === null || _a === void 0 ? void 0 : _a.preserveDrawingBuffer) === false) {\r\n context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n const bitmap = yield createImageBitmap(canvas);\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions: options.dataURLOptions,\r\n }, [bitmap]);\r\n }));\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, false);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const rest = __rest(value, [\"type\"]);\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n styles.push({\r\n styleId,\r\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\r\n rule: stringifyRule(r),\r\n index,\r\n })),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nclass ProcessedNodeManager {\r\n constructor() {\r\n this.nodeMap = new WeakMap();\r\n this.loop = true;\r\n this.periodicallyClear();\r\n }\r\n periodicallyClear() {\r\n requestAnimationFrame(() => {\r\n this.clear();\r\n if (this.loop)\r\n this.periodicallyClear();\r\n });\r\n }\r\n inOtherBuffer(node, thisBuffer) {\r\n const buffers = this.nodeMap.get(node);\r\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\r\n }\r\n add(node, buffer) {\r\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\r\n }\r\n clear() {\r\n this.nodeMap = new WeakMap();\r\n }\r\n destroy() {\r\n this.loop = false;\r\n }\r\n}\n\nfunction wrapEvent(e) {\r\n return Object.assign(Object.assign({}, e), { timestamp: nowTimestamp() });\r\n}\r\nlet wrappedEmit;\r\nlet takeFullSnapshot;\r\nlet canvasManager;\r\nlet recording = false;\r\nconst mirror = createMirror$2();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskInputFn, maskTextFn, hooks, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordDOM = true, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\r\n ? options.recordAfter\r\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, } = options;\r\n registerErrorHandler(errorHandler);\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n if (window.parent.document) {\r\n passEmitsToParent = false;\r\n }\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : { password: true };\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill$1();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn &&\r\n !passEmitsToParent) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (e, isCheckout) => {\r\n var _a;\r\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\r\n e.type !== EventType.FullSnapshot &&\r\n !(e.type === EventType.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit === null || emit === void 0 ? void 0 : emit(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n origin: window.location.origin,\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Mutation }, m),\r\n }));\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Scroll }, p),\r\n }));\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.CanvasMutation }, p),\r\n }));\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.AdoptedStyleSheet }, a),\r\n }));\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n const processedNodeManager = new ProcessedNodeManager();\r\n canvasManager = new CanvasManager({\r\n recordCanvas,\r\n mutationCb: wrappedCanvasMutationEmit,\r\n win: window,\r\n blockClass,\r\n blockSelector,\r\n mirror,\r\n sampling: sampling.canvas,\r\n dataURLOptions,\r\n });\r\n const shadowDomManager = new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n processedNodeManager,\r\n },\r\n mirror,\r\n });\r\n takeFullSnapshot = (isCheckout = false) => {\r\n if (!recordDOM) {\r\n return;\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }), isCheckout);\r\n stylesheetManager.reset();\r\n shadowDomManager.init();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: getWindowScroll(window),\r\n },\r\n }), isCheckout);\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n try {\r\n const handlers = [];\r\n const observe = (doc) => {\r\n var _a;\r\n return callbackWrapper(initObservers)({\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n })),\r\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MouseInteraction }, d),\r\n })),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.ViewportResize }, d),\r\n })),\r\n inputCb: (v) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Input }, v),\r\n })),\r\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MediaInteraction }, p),\r\n })),\r\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleSheetRule }, r),\r\n })),\r\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleDeclaration }, r),\r\n })),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Font }, p),\r\n })),\r\n selectionCb: (p) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Selection }, p),\r\n }));\r\n },\r\n customElementCb: (c) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.CustomElement }, c),\r\n }));\r\n },\r\n blockClass,\r\n ignoreClass,\r\n ignoreSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordDOM,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n processedNodeManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter((p) => p.observer)) === null || _a === void 0 ? void 0 : _a.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit(wrapEvent({\r\n type: EventType.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n })),\r\n }))) || [],\r\n }, hooks);\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n try {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n recording = true;\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.DomContentLoaded,\r\n data: {},\r\n }));\r\n if (recordAfter === 'DOMContentLoaded')\r\n init();\r\n }));\r\n handlers.push(on('load', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Load,\r\n data: {},\r\n }));\r\n if (recordAfter === 'load')\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n processedNodeManager.destroy();\r\n recording = false;\r\n unregisterErrorHandler();\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nrecord.addCustomEvent = (tag, payload) => {\r\n if (!recording) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n }));\r\n};\r\nrecord.freezePage = () => {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n};\r\nrecord.takeFullSnapshot = (isCheckout) => {\r\n if (!recording) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n takeFullSnapshot(isCheckout);\r\n};\r\nrecord.mirror = mirror;\n\nvar NodeType$1;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType$1 || (NodeType$1 = {}));\nclass Mirror$1 {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror$1() {\r\n return new Mirror$1();\r\n}\n\nfunction parseCSSText(cssText) {\r\n const res = {};\r\n const listDelimiter = /;(?![^(]*\\))/g;\r\n const propertyDelimiter = /:(.+)/;\r\n const comment = /\\/\\*.*?\\*\\//g;\r\n cssText\r\n .replace(comment, '')\r\n .split(listDelimiter)\r\n .forEach(function (item) {\r\n if (item) {\r\n const tmp = item.split(propertyDelimiter);\r\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\r\n }\r\n });\r\n return res;\r\n}\r\nfunction toCSSText(style) {\r\n const properties = [];\r\n for (const name in style) {\r\n const value = style[name];\r\n if (typeof value !== 'string')\r\n continue;\r\n const normalizedName = hyphenate(name);\r\n properties.push(`${normalizedName}: ${value};`);\r\n }\r\n return properties.join(' ');\r\n}\r\nconst camelizeRE = /-([a-z])/g;\r\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\r\nconst camelize = (str) => {\r\n if (CUSTOM_PROPERTY_REGEX.test(str))\r\n return str;\r\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\r\n};\r\nconst hyphenateRE = /\\B([A-Z])/g;\r\nconst hyphenate = (str) => {\r\n return str.replace(hyphenateRE, '-$1').toLowerCase();\r\n};\n\nclass BaseRRNode {\r\n constructor(..._args) {\r\n this.parentElement = null;\r\n this.parentNode = null;\r\n this.firstChild = null;\r\n this.lastChild = null;\r\n this.previousSibling = null;\r\n this.nextSibling = null;\r\n this.ELEMENT_NODE = NodeType.ELEMENT_NODE;\r\n this.TEXT_NODE = NodeType.TEXT_NODE;\r\n }\r\n get childNodes() {\r\n const childNodes = [];\r\n let childIterator = this.firstChild;\r\n while (childIterator) {\r\n childNodes.push(childIterator);\r\n childIterator = childIterator.nextSibling;\r\n }\r\n return childNodes;\r\n }\r\n contains(node) {\r\n if (!(node instanceof BaseRRNode))\r\n return false;\r\n else if (node.ownerDocument !== this.ownerDocument)\r\n return false;\r\n else if (node === this)\r\n return true;\r\n while (node.parentNode) {\r\n if (node.parentNode === this)\r\n return true;\r\n node = node.parentNode;\r\n }\r\n return false;\r\n }\r\n appendChild(_newChild) {\r\n throw new Error(`RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`);\r\n }\r\n insertBefore(_newChild, _refChild) {\r\n throw new Error(`RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`);\r\n }\r\n removeChild(_node) {\r\n throw new Error(`RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`);\r\n }\r\n toString() {\r\n return 'RRNode';\r\n }\r\n}\r\nfunction BaseRRDocumentImpl(RRNodeClass) {\r\n return class BaseRRDocument extends RRNodeClass {\r\n constructor(...args) {\r\n super(args);\r\n this.nodeType = NodeType.DOCUMENT_NODE;\r\n this.nodeName = '#document';\r\n this.compatMode = 'CSS1Compat';\r\n this.RRNodeType = NodeType$1.Document;\r\n this.textContent = null;\r\n this.ownerDocument = this;\r\n }\r\n get documentElement() {\r\n return (this.childNodes.find((node) => node.RRNodeType === NodeType$1.Element &&\r\n node.tagName === 'HTML') || null);\r\n }\r\n get body() {\r\n var _a;\r\n return (((_a = this.documentElement) === null || _a === void 0 ? void 0 : _a.childNodes.find((node) => node.RRNodeType === NodeType$1.Element &&\r\n node.tagName === 'BODY')) || null);\r\n }\r\n get head() {\r\n var _a;\r\n return (((_a = this.documentElement) === null || _a === void 0 ? void 0 : _a.childNodes.find((node) => node.RRNodeType === NodeType$1.Element &&\r\n node.tagName === 'HEAD')) || null);\r\n }\r\n get implementation() {\r\n return this;\r\n }\r\n get firstElementChild() {\r\n return this.documentElement;\r\n }\r\n appendChild(newChild) {\r\n const nodeType = newChild.RRNodeType;\r\n if (nodeType === NodeType$1.Element ||\r\n nodeType === NodeType$1.DocumentType) {\r\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\r\n throw new Error(`RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? 'RRElement' : 'RRDoctype'} on RRDocument allowed.`);\r\n }\r\n }\r\n const child = appendChild(this, newChild);\r\n child.parentElement = null;\r\n return child;\r\n }\r\n insertBefore(newChild, refChild) {\r\n const nodeType = newChild.RRNodeType;\r\n if (nodeType === NodeType$1.Element ||\r\n nodeType === NodeType$1.DocumentType) {\r\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\r\n throw new Error(`RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? 'RRElement' : 'RRDoctype'} on RRDocument allowed.`);\r\n }\r\n }\r\n const child = insertBefore(this, newChild, refChild);\r\n child.parentElement = null;\r\n return child;\r\n }\r\n removeChild(node) {\r\n return removeChild(this, node);\r\n }\r\n open() {\r\n this.firstChild = null;\r\n this.lastChild = null;\r\n }\r\n close() {\r\n }\r\n write(content) {\r\n let publicId;\r\n if (content ===\r\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\r\n publicId = '-//W3C//DTD XHTML 1.0 Transitional//EN';\r\n else if (content ===\r\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\r\n publicId = '-//W3C//DTD HTML 4.0 Transitional//EN';\r\n if (publicId) {\r\n const doctype = this.createDocumentType('html', publicId, '');\r\n this.open();\r\n this.appendChild(doctype);\r\n }\r\n }\r\n createDocument(_namespace, _qualifiedName, _doctype) {\r\n return new BaseRRDocument();\r\n }\r\n createDocumentType(qualifiedName, publicId, systemId) {\r\n const doctype = new (BaseRRDocumentTypeImpl(BaseRRNode))(qualifiedName, publicId, systemId);\r\n doctype.ownerDocument = this;\r\n return doctype;\r\n }\r\n createElement(tagName) {\r\n const element = new (BaseRRElementImpl(BaseRRNode))(tagName);\r\n element.ownerDocument = this;\r\n return element;\r\n }\r\n createElementNS(_namespaceURI, qualifiedName) {\r\n return this.createElement(qualifiedName);\r\n }\r\n createTextNode(data) {\r\n const text = new (BaseRRTextImpl(BaseRRNode))(data);\r\n text.ownerDocument = this;\r\n return text;\r\n }\r\n createComment(data) {\r\n const comment = new (BaseRRCommentImpl(BaseRRNode))(data);\r\n comment.ownerDocument = this;\r\n return comment;\r\n }\r\n createCDATASection(data) {\r\n const CDATASection = new (BaseRRCDATASectionImpl(BaseRRNode))(data);\r\n CDATASection.ownerDocument = this;\r\n return CDATASection;\r\n }\r\n toString() {\r\n return 'RRDocument';\r\n }\r\n };\r\n}\r\nfunction BaseRRDocumentTypeImpl(RRNodeClass) {\r\n return class BaseRRDocumentType extends RRNodeClass {\r\n constructor(qualifiedName, publicId, systemId) {\r\n super();\r\n this.nodeType = NodeType.DOCUMENT_TYPE_NODE;\r\n this.RRNodeType = NodeType$1.DocumentType;\r\n this.name = qualifiedName;\r\n this.publicId = publicId;\r\n this.systemId = systemId;\r\n this.nodeName = qualifiedName;\r\n this.textContent = null;\r\n }\r\n toString() {\r\n return 'RRDocumentType';\r\n }\r\n };\r\n}\r\nfunction BaseRRElementImpl(RRNodeClass) {\r\n return class BaseRRElement extends RRNodeClass {\r\n constructor(tagName) {\r\n super();\r\n this.nodeType = NodeType.ELEMENT_NODE;\r\n this.RRNodeType = NodeType$1.Element;\r\n this.attributes = {};\r\n this.shadowRoot = null;\r\n this.tagName = tagName.toUpperCase();\r\n this.nodeName = tagName.toUpperCase();\r\n }\r\n get textContent() {\r\n let result = '';\r\n this.childNodes.forEach((node) => (result += node.textContent));\r\n return result;\r\n }\r\n set textContent(textContent) {\r\n this.firstChild = null;\r\n this.lastChild = null;\r\n this.appendChild(this.ownerDocument.createTextNode(textContent));\r\n }\r\n get classList() {\r\n return new ClassList(this.attributes.class, (newClassName) => {\r\n this.attributes.class = newClassName;\r\n });\r\n }\r\n get id() {\r\n return this.attributes.id || '';\r\n }\r\n get className() {\r\n return this.attributes.class || '';\r\n }\r\n get style() {\r\n const style = (this.attributes.style ? parseCSSText(this.attributes.style) : {});\r\n const hyphenateRE = /\\B([A-Z])/g;\r\n style.setProperty = (name, value, priority) => {\r\n if (hyphenateRE.test(name))\r\n return;\r\n const normalizedName = camelize(name);\r\n if (!value)\r\n delete style[normalizedName];\r\n else\r\n style[normalizedName] = value;\r\n if (priority === 'important')\r\n style[normalizedName] += ' !important';\r\n this.attributes.style = toCSSText(style);\r\n };\r\n style.removeProperty = (name) => {\r\n if (hyphenateRE.test(name))\r\n return '';\r\n const normalizedName = camelize(name);\r\n const value = style[normalizedName] || '';\r\n delete style[normalizedName];\r\n this.attributes.style = toCSSText(style);\r\n return value;\r\n };\r\n return style;\r\n }\r\n getAttribute(name) {\r\n return this.attributes[name] || null;\r\n }\r\n setAttribute(name, attribute) {\r\n this.attributes[name] = attribute;\r\n }\r\n setAttributeNS(_namespace, qualifiedName, value) {\r\n this.setAttribute(qualifiedName, value);\r\n }\r\n removeAttribute(name) {\r\n delete this.attributes[name];\r\n }\r\n appendChild(newChild) {\r\n return appendChild(this, newChild);\r\n }\r\n insertBefore(newChild, refChild) {\r\n return insertBefore(this, newChild, refChild);\r\n }\r\n removeChild(node) {\r\n return removeChild(this, node);\r\n }\r\n attachShadow(_init) {\r\n const shadowRoot = this.ownerDocument.createElement('SHADOWROOT');\r\n this.shadowRoot = shadowRoot;\r\n return shadowRoot;\r\n }\r\n dispatchEvent(_event) {\r\n return true;\r\n }\r\n toString() {\r\n let attributeString = '';\r\n for (const attribute in this.attributes) {\r\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\r\n }\r\n return `${this.tagName} ${attributeString}`;\r\n }\r\n };\r\n}\r\nfunction BaseRRMediaElementImpl(RRElementClass) {\r\n return class BaseRRMediaElement extends RRElementClass {\r\n attachShadow(_init) {\r\n throw new Error(`RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`);\r\n }\r\n play() {\r\n this.paused = false;\r\n }\r\n pause() {\r\n this.paused = true;\r\n }\r\n };\r\n}\r\nfunction BaseRRTextImpl(RRNodeClass) {\r\n return class BaseRRText extends RRNodeClass {\r\n constructor(data) {\r\n super();\r\n this.nodeType = NodeType.TEXT_NODE;\r\n this.nodeName = '#text';\r\n this.RRNodeType = NodeType$1.Text;\r\n this.data = data;\r\n }\r\n get textContent() {\r\n return this.data;\r\n }\r\n set textContent(textContent) {\r\n this.data = textContent;\r\n }\r\n toString() {\r\n return `RRText text=${JSON.stringify(this.data)}`;\r\n }\r\n };\r\n}\r\nfunction BaseRRCommentImpl(RRNodeClass) {\r\n return class BaseRRComment extends RRNodeClass {\r\n constructor(data) {\r\n super();\r\n this.nodeType = NodeType.COMMENT_NODE;\r\n this.nodeName = '#comment';\r\n this.RRNodeType = NodeType$1.Comment;\r\n this.data = data;\r\n }\r\n get textContent() {\r\n return this.data;\r\n }\r\n set textContent(textContent) {\r\n this.data = textContent;\r\n }\r\n toString() {\r\n return `RRComment text=${JSON.stringify(this.data)}`;\r\n }\r\n };\r\n}\r\nfunction BaseRRCDATASectionImpl(RRNodeClass) {\r\n return class BaseRRCDATASection extends RRNodeClass {\r\n constructor(data) {\r\n super();\r\n this.nodeName = '#cdata-section';\r\n this.nodeType = NodeType.CDATA_SECTION_NODE;\r\n this.RRNodeType = NodeType$1.CDATA;\r\n this.data = data;\r\n }\r\n get textContent() {\r\n return this.data;\r\n }\r\n set textContent(textContent) {\r\n this.data = textContent;\r\n }\r\n toString() {\r\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\r\n }\r\n };\r\n}\r\nclass ClassList {\r\n constructor(classText, onChange) {\r\n this.classes = [];\r\n this.add = (...classNames) => {\r\n for (const item of classNames) {\r\n const className = String(item);\r\n if (this.classes.indexOf(className) >= 0)\r\n continue;\r\n this.classes.push(className);\r\n }\r\n this.onChange && this.onChange(this.classes.join(' '));\r\n };\r\n this.remove = (...classNames) => {\r\n this.classes = this.classes.filter((item) => classNames.indexOf(item) === -1);\r\n this.onChange && this.onChange(this.classes.join(' '));\r\n };\r\n if (classText) {\r\n const classes = classText.trim().split(/\\s+/);\r\n this.classes.push(...classes);\r\n }\r\n this.onChange = onChange;\r\n }\r\n}\r\nfunction appendChild(parent, newChild) {\r\n if (newChild.parentNode)\r\n newChild.parentNode.removeChild(newChild);\r\n if (parent.lastChild) {\r\n parent.lastChild.nextSibling = newChild;\r\n newChild.previousSibling = parent.lastChild;\r\n }\r\n else {\r\n parent.firstChild = newChild;\r\n newChild.previousSibling = null;\r\n }\r\n parent.lastChild = newChild;\r\n newChild.nextSibling = null;\r\n newChild.parentNode = parent;\r\n newChild.parentElement = parent;\r\n newChild.ownerDocument = parent.ownerDocument;\r\n return newChild;\r\n}\r\nfunction insertBefore(parent, newChild, refChild) {\r\n if (!refChild)\r\n return appendChild(parent, newChild);\r\n if (refChild.parentNode !== parent)\r\n throw new Error(\"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\");\r\n if (newChild === refChild)\r\n return newChild;\r\n if (newChild.parentNode)\r\n newChild.parentNode.removeChild(newChild);\r\n newChild.previousSibling = refChild.previousSibling;\r\n refChild.previousSibling = newChild;\r\n newChild.nextSibling = refChild;\r\n if (newChild.previousSibling)\r\n newChild.previousSibling.nextSibling = newChild;\r\n else\r\n parent.firstChild = newChild;\r\n newChild.parentElement = parent;\r\n newChild.parentNode = parent;\r\n newChild.ownerDocument = parent.ownerDocument;\r\n return newChild;\r\n}\r\nfunction removeChild(parent, child) {\r\n if (child.parentNode !== parent)\r\n throw new Error(\"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\");\r\n if (child.previousSibling)\r\n child.previousSibling.nextSibling = child.nextSibling;\r\n else\r\n parent.firstChild = child.nextSibling;\r\n if (child.nextSibling)\r\n child.nextSibling.previousSibling = child.previousSibling;\r\n else\r\n parent.lastChild = child.previousSibling;\r\n child.previousSibling = null;\r\n child.nextSibling = null;\r\n child.parentElement = null;\r\n child.parentNode = null;\r\n return child;\r\n}\r\nvar NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\r\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\r\n NodeType[NodeType[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\r\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\r\n NodeType[NodeType[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\r\n NodeType[NodeType[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\r\n NodeType[NodeType[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\r\n NodeType[NodeType[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\r\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\r\n NodeType[NodeType[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\r\n NodeType[NodeType[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\r\n NodeType[NodeType[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\r\n})(NodeType || (NodeType = {}));\n\nconst NAMESPACES = {\r\n svg: 'http://www.w3.org/2000/svg',\r\n 'xlink:href': 'http://www.w3.org/1999/xlink',\r\n xmlns: 'http://www.w3.org/2000/xmlns/',\r\n};\r\nconst SVGTagMap = {\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nlet createdNodeSet = null;\r\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror ||\r\n newTree.ownerDocument.mirror) {\r\n oldTree = diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror);\r\n diffChildren(oldTree, newTree, replayer, rrnodeMirror);\r\n diffAfterUpdatingChildren(oldTree, newTree, replayer);\r\n}\r\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\r\n var _a;\r\n if (replayer.afterAppend && !createdNodeSet) {\r\n createdNodeSet = new WeakSet();\r\n setTimeout(() => {\r\n createdNodeSet = null;\r\n }, 0);\r\n }\r\n if (!sameNodeType(oldTree, newTree)) {\r\n const calibratedOldTree = createOrGetNode(newTree, replayer.mirror, rrnodeMirror);\r\n (_a = oldTree.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(calibratedOldTree, oldTree);\r\n oldTree = calibratedOldTree;\r\n }\r\n switch (newTree.RRNodeType) {\r\n case NodeType$1.Document: {\r\n if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\r\n const newMeta = rrnodeMirror.getMeta(newTree);\r\n if (newMeta) {\r\n replayer.mirror.removeNodeFromMap(oldTree);\r\n oldTree.close();\r\n oldTree.open();\r\n replayer.mirror.add(oldTree, newMeta);\r\n createdNodeSet === null || createdNodeSet === void 0 ? void 0 : createdNodeSet.add(oldTree);\r\n }\r\n }\r\n break;\r\n }\r\n case NodeType$1.Element: {\r\n const oldElement = oldTree;\r\n const newRRElement = newTree;\r\n switch (newRRElement.tagName) {\r\n case 'IFRAME': {\r\n const oldContentDocument = oldTree\r\n .contentDocument;\r\n if (!oldContentDocument)\r\n break;\r\n diff(oldContentDocument, newTree.contentDocument, replayer, rrnodeMirror);\r\n break;\r\n }\r\n }\r\n if (newRRElement.shadowRoot) {\r\n if (!oldElement.shadowRoot)\r\n oldElement.attachShadow({ mode: 'open' });\r\n diffChildren(oldElement.shadowRoot, newRRElement.shadowRoot, replayer, rrnodeMirror);\r\n }\r\n diffProps(oldElement, newRRElement, rrnodeMirror);\r\n break;\r\n }\r\n }\r\n return oldTree;\r\n}\r\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\r\n var _a;\r\n switch (newTree.RRNodeType) {\r\n case NodeType$1.Document: {\r\n const scrollData = newTree.scrollData;\r\n scrollData && replayer.applyScroll(scrollData, true);\r\n break;\r\n }\r\n case NodeType$1.Element: {\r\n const oldElement = oldTree;\r\n const newRRElement = newTree;\r\n newRRElement.scrollData &&\r\n replayer.applyScroll(newRRElement.scrollData, true);\r\n newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\r\n switch (newRRElement.tagName) {\r\n case 'AUDIO':\r\n case 'VIDEO': {\r\n const oldMediaElement = oldTree;\r\n const newMediaRRElement = newRRElement;\r\n if (newMediaRRElement.paused !== undefined)\r\n newMediaRRElement.paused\r\n ? void oldMediaElement.pause()\r\n : void oldMediaElement.play();\r\n if (newMediaRRElement.muted !== undefined)\r\n oldMediaElement.muted = newMediaRRElement.muted;\r\n if (newMediaRRElement.volume !== undefined)\r\n oldMediaElement.volume = newMediaRRElement.volume;\r\n if (newMediaRRElement.currentTime !== undefined)\r\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\r\n if (newMediaRRElement.playbackRate !== undefined)\r\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\r\n break;\r\n }\r\n case 'CANVAS': {\r\n const rrCanvasElement = newTree;\r\n if (rrCanvasElement.rr_dataURL !== null) {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = oldElement.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = rrCanvasElement.rr_dataURL;\r\n }\r\n rrCanvasElement.canvasMutations.forEach((canvasMutation) => replayer.applyCanvas(canvasMutation.event, canvasMutation.mutation, oldTree));\r\n break;\r\n }\r\n case 'STYLE': {\r\n const styleSheet = oldElement.sheet;\r\n styleSheet &&\r\n newTree.rules.forEach((data) => replayer.applyStyleSheetMutation(data, styleSheet));\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case NodeType$1.Text:\r\n case NodeType$1.Comment:\r\n case NodeType$1.CDATA: {\r\n if (oldTree.textContent !==\r\n newTree.data)\r\n oldTree.textContent = newTree.data;\r\n break;\r\n }\r\n }\r\n if (createdNodeSet === null || createdNodeSet === void 0 ? void 0 : createdNodeSet.has(oldTree)) {\r\n createdNodeSet.delete(oldTree);\r\n (_a = replayer.afterAppend) === null || _a === void 0 ? void 0 : _a.call(replayer, oldTree, replayer.mirror.getId(oldTree));\r\n }\r\n}\r\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\r\n const oldAttributes = oldTree.attributes;\r\n const newAttributes = newTree.attributes;\r\n for (const name in newAttributes) {\r\n const newValue = newAttributes[name];\r\n const sn = rrnodeMirror.getMeta(newTree);\r\n if ((sn === null || sn === void 0 ? void 0 : sn.isSVG) && NAMESPACES[name])\r\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\r\n else if (newTree.tagName === 'CANVAS' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.src = newValue;\r\n image.onload = () => {\r\n const ctx = oldTree.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n }\r\n else if (newTree.tagName === 'IFRAME' && name === 'srcdoc')\r\n continue;\r\n else\r\n oldTree.setAttribute(name, newValue);\r\n }\r\n for (const { name } of Array.from(oldAttributes))\r\n if (!(name in newAttributes))\r\n oldTree.removeAttribute(name);\r\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\r\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\r\n}\r\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\r\n const oldChildren = Array.from(oldTree.childNodes);\r\n const newChildren = newTree.childNodes;\r\n if (oldChildren.length === 0 && newChildren.length === 0)\r\n return;\r\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\r\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\r\n let oldIdToIndex = undefined, indexInOld = undefined;\r\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\r\n if (oldStartNode === undefined) {\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n }\r\n else if (oldEndNode === undefined) {\r\n oldEndNode = oldChildren[--oldEndIndex];\r\n }\r\n else if (nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)) {\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n newStartNode = newChildren[++newStartIndex];\r\n }\r\n else if (nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)) {\r\n oldEndNode = oldChildren[--oldEndIndex];\r\n newEndNode = newChildren[--newEndIndex];\r\n }\r\n else if (nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)) {\r\n try {\r\n oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n newEndNode = newChildren[--newEndIndex];\r\n }\r\n else if (nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)) {\r\n try {\r\n oldTree.insertBefore(oldEndNode, oldStartNode);\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n oldEndNode = oldChildren[--oldEndIndex];\r\n newStartNode = newChildren[++newStartIndex];\r\n }\r\n else {\r\n if (!oldIdToIndex) {\r\n oldIdToIndex = {};\r\n for (let i = oldStartIndex; i <= oldEndIndex; i++) {\r\n const oldChild = oldChildren[i];\r\n if (oldChild && replayer.mirror.hasNode(oldChild))\r\n oldIdToIndex[replayer.mirror.getId(oldChild)] = i;\r\n }\r\n }\r\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\r\n const nodeToMove = oldChildren[indexInOld];\r\n if (indexInOld !== undefined &&\r\n nodeToMove &&\r\n nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\r\n try {\r\n oldTree.insertBefore(nodeToMove, oldStartNode);\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n oldChildren[indexInOld] = undefined;\r\n }\r\n else {\r\n const newNode = createOrGetNode(newStartNode, replayer.mirror, rrnodeMirror);\r\n if (oldTree.nodeName === '#document' &&\r\n oldStartNode &&\r\n ((newNode.nodeType === newNode.DOCUMENT_TYPE_NODE &&\r\n oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE) ||\r\n (newNode.nodeType === newNode.ELEMENT_NODE &&\r\n oldStartNode.nodeType === oldStartNode.ELEMENT_NODE))) {\r\n oldTree.removeChild(oldStartNode);\r\n replayer.mirror.removeNodeFromMap(oldStartNode);\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n }\r\n try {\r\n oldTree.insertBefore(newNode, oldStartNode || null);\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n }\r\n newStartNode = newChildren[++newStartIndex];\r\n }\r\n }\r\n if (oldStartIndex > oldEndIndex) {\r\n const referenceRRNode = newChildren[newEndIndex + 1];\r\n let referenceNode = null;\r\n if (referenceRRNode)\r\n referenceNode = replayer.mirror.getNode(rrnodeMirror.getId(referenceRRNode));\r\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\r\n const newNode = createOrGetNode(newChildren[newStartIndex], replayer.mirror, rrnodeMirror);\r\n try {\r\n oldTree.insertBefore(newNode, referenceNode);\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n }\r\n }\r\n else if (newStartIndex > newEndIndex) {\r\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\r\n const node = oldChildren[oldStartIndex];\r\n if (!node || node.parentNode !== oldTree)\r\n continue;\r\n try {\r\n oldTree.removeChild(node);\r\n replayer.mirror.removeNodeFromMap(node);\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n }\r\n }\r\n let oldChild = oldTree.firstChild;\r\n let newChild = newTree.firstChild;\r\n while (oldChild !== null && newChild !== null) {\r\n diff(oldChild, newChild, replayer, rrnodeMirror);\r\n oldChild = oldChild.nextSibling;\r\n newChild = newChild.nextSibling;\r\n }\r\n}\r\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\r\n const nodeId = rrnodeMirror.getId(rrNode);\r\n const sn = rrnodeMirror.getMeta(rrNode);\r\n let node = null;\r\n if (nodeId > -1)\r\n node = domMirror.getNode(nodeId);\r\n if (node !== null && sameNodeType(node, rrNode))\r\n return node;\r\n switch (rrNode.RRNodeType) {\r\n case NodeType$1.Document:\r\n node = new Document();\r\n break;\r\n case NodeType$1.DocumentType:\r\n node = document.implementation.createDocumentType(rrNode.name, rrNode.publicId, rrNode.systemId);\r\n break;\r\n case NodeType$1.Element: {\r\n let tagName = rrNode.tagName.toLowerCase();\r\n tagName = SVGTagMap[tagName] || tagName;\r\n if (sn && 'isSVG' in sn && (sn === null || sn === void 0 ? void 0 : sn.isSVG)) {\r\n node = document.createElementNS(NAMESPACES['svg'], tagName);\r\n }\r\n else\r\n node = document.createElement(rrNode.tagName);\r\n break;\r\n }\r\n case NodeType$1.Text:\r\n node = document.createTextNode(rrNode.data);\r\n break;\r\n case NodeType$1.Comment:\r\n node = document.createComment(rrNode.data);\r\n break;\r\n case NodeType$1.CDATA:\r\n node = document.createCDATASection(rrNode.data);\r\n break;\r\n }\r\n if (sn)\r\n domMirror.add(node, Object.assign({}, sn));\r\n try {\r\n createdNodeSet === null || createdNodeSet === void 0 ? void 0 : createdNodeSet.add(node);\r\n }\r\n catch (e) {\r\n }\r\n return node;\r\n}\r\nfunction sameNodeType(node1, node2) {\r\n if (node1.nodeType !== node2.nodeType)\r\n return false;\r\n return (node1.nodeType !== node1.ELEMENT_NODE ||\r\n node1.tagName.toUpperCase() ===\r\n node2.tagName);\r\n}\r\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\r\n const node1Id = domMirror.getId(node1);\r\n const node2Id = rrdomMirror.getId(node2);\r\n if (node1Id === -1 || node1Id !== node2Id)\r\n return false;\r\n return sameNodeType(node1, node2);\r\n}\n\nclass RRDocument extends BaseRRDocumentImpl(BaseRRNode) {\r\n get unserializedId() {\r\n return this._unserializedId--;\r\n }\r\n constructor(mirror) {\r\n super();\r\n this.UNSERIALIZED_STARTING_ID = -2;\r\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\r\n this.mirror = createMirror();\r\n this.scrollData = null;\r\n if (mirror) {\r\n this.mirror = mirror;\r\n }\r\n }\r\n createDocument(_namespace, _qualifiedName, _doctype) {\r\n return new RRDocument();\r\n }\r\n createDocumentType(qualifiedName, publicId, systemId) {\r\n const documentTypeNode = new RRDocumentType(qualifiedName, publicId, systemId);\r\n documentTypeNode.ownerDocument = this;\r\n return documentTypeNode;\r\n }\r\n createElement(tagName) {\r\n const upperTagName = tagName.toUpperCase();\r\n let element;\r\n switch (upperTagName) {\r\n case 'AUDIO':\r\n case 'VIDEO':\r\n element = new RRMediaElement(upperTagName);\r\n break;\r\n case 'IFRAME':\r\n element = new RRIFrameElement(upperTagName, this.mirror);\r\n break;\r\n case 'CANVAS':\r\n element = new RRCanvasElement(upperTagName);\r\n break;\r\n case 'STYLE':\r\n element = new RRStyleElement(upperTagName);\r\n break;\r\n default:\r\n element = new RRElement(upperTagName);\r\n break;\r\n }\r\n element.ownerDocument = this;\r\n return element;\r\n }\r\n createComment(data) {\r\n const commentNode = new RRComment(data);\r\n commentNode.ownerDocument = this;\r\n return commentNode;\r\n }\r\n createCDATASection(data) {\r\n const sectionNode = new RRCDATASection(data);\r\n sectionNode.ownerDocument = this;\r\n return sectionNode;\r\n }\r\n createTextNode(data) {\r\n const textNode = new RRText(data);\r\n textNode.ownerDocument = this;\r\n return textNode;\r\n }\r\n destroyTree() {\r\n this.firstChild = null;\r\n this.lastChild = null;\r\n this.mirror.reset();\r\n }\r\n open() {\r\n super.open();\r\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\r\n }\r\n}\r\nconst RRDocumentType = BaseRRDocumentTypeImpl(BaseRRNode);\r\nclass RRElement extends BaseRRElementImpl(BaseRRNode) {\r\n constructor() {\r\n super(...arguments);\r\n this.inputData = null;\r\n this.scrollData = null;\r\n }\r\n}\r\nclass RRMediaElement extends BaseRRMediaElementImpl(RRElement) {\r\n}\r\nclass RRCanvasElement extends RRElement {\r\n constructor() {\r\n super(...arguments);\r\n this.rr_dataURL = null;\r\n this.canvasMutations = [];\r\n }\r\n getContext() {\r\n return null;\r\n }\r\n}\r\nclass RRStyleElement extends RRElement {\r\n constructor() {\r\n super(...arguments);\r\n this.rules = [];\r\n }\r\n}\r\nclass RRIFrameElement extends RRElement {\r\n constructor(upperTagName, mirror) {\r\n super(upperTagName);\r\n this.contentDocument = new RRDocument();\r\n this.contentDocument.mirror = mirror;\r\n }\r\n}\r\nconst RRText = BaseRRTextImpl(BaseRRNode);\r\nconst RRComment = BaseRRCommentImpl(BaseRRNode);\r\nconst RRCDATASection = BaseRRCDATASectionImpl(BaseRRNode);\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'FORM';\r\n }\r\n return element.tagName.toUpperCase();\r\n}\r\nfunction buildFromNode(node, rrdom, domMirror, parentRRNode) {\r\n let rrNode;\r\n switch (node.nodeType) {\r\n case NodeType.DOCUMENT_NODE:\r\n if (parentRRNode && parentRRNode.nodeName === 'IFRAME')\r\n rrNode = parentRRNode.contentDocument;\r\n else {\r\n rrNode = rrdom;\r\n rrNode.compatMode = node.compatMode;\r\n }\r\n break;\r\n case NodeType.DOCUMENT_TYPE_NODE: {\r\n const documentType = node;\r\n rrNode = rrdom.createDocumentType(documentType.name, documentType.publicId, documentType.systemId);\r\n break;\r\n }\r\n case NodeType.ELEMENT_NODE: {\r\n const elementNode = node;\r\n const tagName = getValidTagName(elementNode);\r\n rrNode = rrdom.createElement(tagName);\r\n const rrElement = rrNode;\r\n for (const { name, value } of Array.from(elementNode.attributes)) {\r\n rrElement.attributes[name] = value;\r\n }\r\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\r\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\r\n break;\r\n }\r\n case NodeType.TEXT_NODE:\r\n rrNode = rrdom.createTextNode(node.textContent || '');\r\n break;\r\n case NodeType.CDATA_SECTION_NODE:\r\n rrNode = rrdom.createCDATASection(node.data);\r\n break;\r\n case NodeType.COMMENT_NODE:\r\n rrNode = rrdom.createComment(node.textContent || '');\r\n break;\r\n case NodeType.DOCUMENT_FRAGMENT_NODE:\r\n rrNode = parentRRNode.attachShadow({ mode: 'open' });\r\n break;\r\n default:\r\n return null;\r\n }\r\n let sn = domMirror.getMeta(node);\r\n if (rrdom instanceof RRDocument) {\r\n if (!sn) {\r\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\r\n domMirror.add(node, sn);\r\n }\r\n rrdom.mirror.add(rrNode, Object.assign({}, sn));\r\n }\r\n return rrNode;\r\n}\r\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\r\n function walk(node, parentRRNode) {\r\n const rrNode = buildFromNode(node, rrdom, domMirror, parentRRNode);\r\n if (rrNode === null)\r\n return;\r\n if ((parentRRNode === null || parentRRNode === void 0 ? void 0 : parentRRNode.nodeName) !== 'IFRAME' &&\r\n node.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE) {\r\n parentRRNode === null || parentRRNode === void 0 ? void 0 : parentRRNode.appendChild(rrNode);\r\n rrNode.parentNode = parentRRNode;\r\n rrNode.parentElement = parentRRNode;\r\n }\r\n if (node.nodeName === 'IFRAME') {\r\n const iframeDoc = node.contentDocument;\r\n iframeDoc && walk(iframeDoc, rrNode);\r\n }\r\n else if (node.nodeType === NodeType.DOCUMENT_NODE ||\r\n node.nodeType === NodeType.ELEMENT_NODE ||\r\n node.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\r\n if (node.nodeType === NodeType.ELEMENT_NODE &&\r\n node.shadowRoot)\r\n walk(node.shadowRoot, rrNode);\r\n node.childNodes.forEach((childNode) => walk(childNode, rrNode));\r\n }\r\n }\r\n walk(dom, null);\r\n return rrdom;\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction getDefaultSN(node, id) {\r\n switch (node.RRNodeType) {\r\n case NodeType$1.Document:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n childNodes: [],\r\n };\r\n case NodeType$1.DocumentType: {\r\n const doctype = node;\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n name: doctype.name,\r\n publicId: doctype.publicId,\r\n systemId: doctype.systemId,\r\n };\r\n }\r\n case NodeType$1.Element:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n tagName: node.tagName.toLowerCase(),\r\n attributes: {},\r\n childNodes: [],\r\n };\r\n case NodeType$1.Text:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n textContent: node.textContent || '',\r\n };\r\n case NodeType$1.Comment:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n textContent: node.textContent || '',\r\n };\r\n case NodeType$1.CDATA:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n textContent: '',\r\n };\r\n }\r\n}\n\nfunction mitt$1(n){return {all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e]);},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]));},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e);}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e);});}}}\n\nvar mittProxy = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': mitt$1\n});\n\nfunction polyfill(w = window, d = document) {\r\n if ('scrollBehavior' in d.documentElement.style &&\r\n w.__forceSmoothScrollPolyfill__ !== true) {\r\n return;\r\n }\r\n const Element = w.HTMLElement || w.Element;\r\n const SCROLL_TIME = 468;\r\n const original = {\r\n scroll: w.scroll || w.scrollTo,\r\n scrollBy: w.scrollBy,\r\n elementScroll: Element.prototype.scroll || scrollElement,\r\n scrollIntoView: Element.prototype.scrollIntoView,\r\n };\r\n const now = w.performance && w.performance.now\r\n ? w.performance.now.bind(w.performance)\r\n : Date.now;\r\n function isMicrosoftBrowser(userAgent) {\r\n const userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\r\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\r\n }\r\n const ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\r\n function scrollElement(x, y) {\r\n this.scrollLeft = x;\r\n this.scrollTop = y;\r\n }\r\n function ease(k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n }\r\n function shouldBailOut(firstArg) {\r\n if (firstArg === null ||\r\n typeof firstArg !== 'object' ||\r\n firstArg.behavior === undefined ||\r\n firstArg.behavior === 'auto' ||\r\n firstArg.behavior === 'instant') {\r\n return true;\r\n }\r\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\r\n return false;\r\n }\r\n throw new TypeError('behavior member of ScrollOptions ' +\r\n firstArg.behavior +\r\n ' is not a valid value for enumeration ScrollBehavior.');\r\n }\r\n function hasScrollableSpace(el, axis) {\r\n if (axis === 'Y') {\r\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\r\n }\r\n if (axis === 'X') {\r\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\r\n }\r\n }\r\n function canOverflow(el, axis) {\r\n const overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\r\n return overflowValue === 'auto' || overflowValue === 'scroll';\r\n }\r\n function isScrollable(el) {\r\n const isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\r\n const isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\r\n return isScrollableY || isScrollableX;\r\n }\r\n function findScrollableParent(el) {\r\n while (el !== d.body && isScrollable(el) === false) {\r\n el = el.parentNode || el.host;\r\n }\r\n return el;\r\n }\r\n function step(context) {\r\n const time = now();\r\n let value;\r\n let currentX;\r\n let currentY;\r\n let elapsed = (time - context.startTime) / SCROLL_TIME;\r\n elapsed = elapsed > 1 ? 1 : elapsed;\r\n value = ease(elapsed);\r\n currentX = context.startX + (context.x - context.startX) * value;\r\n currentY = context.startY + (context.y - context.startY) * value;\r\n context.method.call(context.scrollable, currentX, currentY);\r\n if (currentX !== context.x || currentY !== context.y) {\r\n w.requestAnimationFrame(step.bind(w, context));\r\n }\r\n }\r\n function smoothScroll(el, x, y) {\r\n let scrollable;\r\n let startX;\r\n let startY;\r\n let method;\r\n const startTime = now();\r\n if (el === d.body) {\r\n scrollable = w;\r\n startX = w.scrollX || w.pageXOffset;\r\n startY = w.scrollY || w.pageYOffset;\r\n method = original.scroll;\r\n }\r\n else {\r\n scrollable = el;\r\n startX = el.scrollLeft;\r\n startY = el.scrollTop;\r\n method = scrollElement;\r\n }\r\n step({\r\n scrollable: scrollable,\r\n method: method,\r\n startTime: startTime,\r\n startX: startX,\r\n startY: startY,\r\n x: x,\r\n y: y,\r\n });\r\n }\r\n w.scroll = w.scrollTo = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0]) === true) {\r\n original.scroll.call(w, arguments[0].left !== undefined\r\n ? arguments[0].left\r\n : typeof arguments[0] !== 'object'\r\n ? arguments[0]\r\n : w.scrollX || w.pageXOffset, arguments[0].top !== undefined\r\n ? arguments[0].top\r\n : arguments[1] !== undefined\r\n ? arguments[1]\r\n : w.scrollY || w.pageYOffset);\r\n return;\r\n }\r\n smoothScroll.call(w, d.body, arguments[0].left !== undefined\r\n ? ~~arguments[0].left\r\n : w.scrollX || w.pageXOffset, arguments[0].top !== undefined\r\n ? ~~arguments[0].top\r\n : w.scrollY || w.pageYOffset);\r\n };\r\n w.scrollBy = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0])) {\r\n original.scrollBy.call(w, arguments[0].left !== undefined\r\n ? arguments[0].left\r\n : typeof arguments[0] !== 'object'\r\n ? arguments[0]\r\n : 0, arguments[0].top !== undefined\r\n ? arguments[0].top\r\n : arguments[1] !== undefined\r\n ? arguments[1]\r\n : 0);\r\n return;\r\n }\r\n smoothScroll.call(w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset));\r\n };\r\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0]) === true) {\r\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\r\n throw new SyntaxError('Value could not be converted');\r\n }\r\n original.elementScroll.call(this, arguments[0].left !== undefined\r\n ? ~~arguments[0].left\r\n : typeof arguments[0] !== 'object'\r\n ? ~~arguments[0]\r\n : this.scrollLeft, arguments[0].top !== undefined\r\n ? ~~arguments[0].top\r\n : arguments[1] !== undefined\r\n ? ~~arguments[1]\r\n : this.scrollTop);\r\n return;\r\n }\r\n const left = arguments[0].left;\r\n const top = arguments[0].top;\r\n smoothScroll.call(this, this, typeof left === 'undefined' ? this.scrollLeft : ~~left, typeof top === 'undefined' ? this.scrollTop : ~~top);\r\n };\r\n Element.prototype.scrollBy = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0]) === true) {\r\n original.elementScroll.call(this, arguments[0].left !== undefined\r\n ? ~~arguments[0].left + this.scrollLeft\r\n : ~~arguments[0] + this.scrollLeft, arguments[0].top !== undefined\r\n ? ~~arguments[0].top + this.scrollTop\r\n : ~~arguments[1] + this.scrollTop);\r\n return;\r\n }\r\n this.scroll({\r\n left: ~~arguments[0].left + this.scrollLeft,\r\n top: ~~arguments[0].top + this.scrollTop,\r\n behavior: arguments[0].behavior,\r\n });\r\n };\r\n Element.prototype.scrollIntoView = function () {\r\n if (shouldBailOut(arguments[0]) === true) {\r\n original.scrollIntoView.call(this, arguments[0] === undefined ? true : arguments[0]);\r\n return;\r\n }\r\n const scrollableParent = findScrollableParent(this);\r\n const parentRects = scrollableParent.getBoundingClientRect();\r\n const clientRects = this.getBoundingClientRect();\r\n if (scrollableParent !== d.body) {\r\n smoothScroll.call(this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top);\r\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\r\n w.scrollBy({\r\n left: parentRects.left,\r\n top: parentRects.top,\r\n behavior: 'smooth',\r\n });\r\n }\r\n }\r\n else {\r\n w.scrollBy({\r\n left: clientRects.left,\r\n top: clientRects.top,\r\n behavior: 'smooth',\r\n });\r\n }\r\n };\r\n}\n\nclass Timer {\r\n constructor(actions = [], config) {\r\n this.timeOffset = 0;\r\n this.raf = null;\r\n this.actions = actions;\r\n this.speed = config.speed;\r\n }\r\n addAction(action) {\r\n const rafWasActive = this.raf === true;\r\n if (!this.actions.length ||\r\n this.actions[this.actions.length - 1].delay <= action.delay) {\r\n this.actions.push(action);\r\n }\r\n else {\r\n const index = this.findActionIndex(action);\r\n this.actions.splice(index, 0, action);\r\n }\r\n if (rafWasActive) {\r\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\r\n }\r\n }\r\n start() {\r\n this.timeOffset = 0;\r\n this.lastTimestamp = performance.now();\r\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\r\n }\r\n rafCheck() {\r\n const time = performance.now();\r\n this.timeOffset += (time - this.lastTimestamp) * this.speed;\r\n this.lastTimestamp = time;\r\n while (this.actions.length) {\r\n const action = this.actions[0];\r\n if (this.timeOffset >= action.delay) {\r\n this.actions.shift();\r\n action.doAction();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (this.actions.length > 0) {\r\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\r\n }\r\n else {\r\n this.raf = true;\r\n }\r\n }\r\n clear() {\r\n if (this.raf) {\r\n if (this.raf !== true) {\r\n cancelAnimationFrame(this.raf);\r\n }\r\n this.raf = null;\r\n }\r\n this.actions.length = 0;\r\n }\r\n setSpeed(speed) {\r\n this.speed = speed;\r\n }\r\n isActive() {\r\n return this.raf !== null;\r\n }\r\n findActionIndex(action) {\r\n let start = 0;\r\n let end = this.actions.length - 1;\r\n while (start <= end) {\r\n const mid = Math.floor((start + end) / 2);\r\n if (this.actions[mid].delay < action.delay) {\r\n start = mid + 1;\r\n }\r\n else if (this.actions[mid].delay > action.delay) {\r\n end = mid - 1;\r\n }\r\n else {\r\n return mid + 1;\r\n }\r\n }\r\n return start;\r\n }\r\n}\r\nfunction addDelay(event, baselineTime) {\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.MouseMove &&\r\n event.data.positions &&\r\n event.data.positions.length) {\r\n const firstOffset = event.data.positions[0].timeOffset;\r\n const firstTimestamp = event.timestamp + firstOffset;\r\n event.delay = firstTimestamp - baselineTime;\r\n return firstTimestamp - baselineTime;\r\n }\r\n event.delay = event.timestamp - baselineTime;\r\n return event.delay;\r\n}\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t,n){var e=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),a=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)a.push(r.value);}catch(t){o={error:t};}finally{try{r&&!r.done&&(e=i.return)&&e.call(i);}finally{if(o)throw o.error}}return a}var n;!function(t){t[t.NotStarted=0]=\"NotStarted\",t[t.Running=1]=\"Running\",t[t.Stopped=2]=\"Stopped\";}(n||(n={}));var e={type:\"xstate.init\"};function r(t){return void 0===t?[]:[].concat(t)}function o(t){return {type:\"xstate.assign\",assignment:t}}function i$1(t,n){return \"string\"==typeof(t=\"string\"==typeof t&&n&&n[t]?n[t]:t)?{type:t}:\"function\"==typeof t?{type:t.name,exec:t}:t}function a(t){return function(n){return t===n}}function u(t){return \"string\"==typeof t?{type:t}:t}function c(t,n){return {value:t,context:n,actions:[],changed:!1,matches:a(t)}}function f(t,n,e){var r=n,o=!1;return [t.filter((function(t){if(\"xstate.assign\"===t.type){o=!0;var n=Object.assign({},r);return \"function\"==typeof t.assignment?n=t.assignment(r,e):Object.keys(t.assignment).forEach((function(o){n[o]=\"function\"==typeof t.assignment[o]?t.assignment[o](r,e):t.assignment[o];})),r=n,!1}return !0})),r,o]}function s(n,o){void 0===o&&(o={});var s=t(f(r(n.states[n.initial].entry).map((function(t){return i$1(t,o.actions)})),n.context,e),2),l=s[0],v=s[1],y={config:n,_options:o,initialState:{value:n.initial,actions:l,context:v,matches:a(n.initial)},transition:function(e,o){var s,l,v=\"string\"==typeof e?{value:e,context:n.context}:e,p=v.value,g=v.context,d=u(o),x=n.states[p];if(x.on){var m=r(x.on[d.type]);try{for(var h=function(t){var n=\"function\"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&\"number\"==typeof t.length)return {next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}(m),b=h.next();!b.done;b=h.next()){var S=b.value;if(void 0===S)return c(p,g);var w=\"string\"==typeof S?{target:S}:S,j=w.target,E=w.actions,R=void 0===E?[]:E,N=w.cond,O=void 0===N?function(){return !0}:N,_=void 0===j,k=null!=j?j:p,T=n.states[k];if(O(g,d)){var q=t(f((_?r(R):[].concat(x.exit,R,T.entry).filter((function(t){return t}))).map((function(t){return i$1(t,y._options.actions)})),g,d),3),z=q[0],A=q[1],B=q[2],C=null!=j?j:p;return {value:C,context:A,actions:z,changed:j!==p||z.length>0||B,matches:a(C)}}}}catch(t){s={error:t};}finally{try{b&&!b.done&&(l=h.return)&&l.call(h);}finally{if(s)throw s.error}}}return c(p,g)}};return y}var l=function(t,n){return t.actions.forEach((function(e){var r=e.exec;return r&&r(t.context,n)}))};function v(t){var r=t.initialState,o=n.NotStarted,i=new Set,c={_machine:t,send:function(e){o===n.Running&&(r=t.transition(r,e),l(r,u(e)),i.forEach((function(t){return t(r)})));},subscribe:function(t){return i.add(t),t(r),{unsubscribe:function(){return i.delete(t)}}},start:function(i){if(i){var u=\"object\"==typeof i?i:{context:t.config.context,value:i};r={value:u.value,actions:[],context:u.context,matches:a(u.value)};}return o=n.Running,l(r,e),c},stop:function(){return o=n.Stopped,i.clear(),c},get state(){return r},get status(){return o}};return c}\n\nfunction discardPriorSnapshots(events, baselineTime) {\r\n for (let idx = events.length - 1; idx >= 0; idx--) {\r\n const event = events[idx];\r\n if (event.type === EventType.Meta) {\r\n if (event.timestamp <= baselineTime) {\r\n return events.slice(idx);\r\n }\r\n }\r\n }\r\n return events;\r\n}\r\nfunction createPlayerService(context, { getCastFn, applyEventsSynchronously, emitter }) {\r\n const playerMachine = s({\r\n id: 'player',\r\n context,\r\n initial: 'paused',\r\n states: {\r\n playing: {\r\n on: {\r\n PAUSE: {\r\n target: 'paused',\r\n actions: ['pause'],\r\n },\r\n CAST_EVENT: {\r\n target: 'playing',\r\n actions: 'castEvent',\r\n },\r\n END: {\r\n target: 'paused',\r\n actions: ['resetLastPlayedEvent', 'pause'],\r\n },\r\n ADD_EVENT: {\r\n target: 'playing',\r\n actions: ['addEvent'],\r\n },\r\n },\r\n },\r\n paused: {\r\n on: {\r\n PLAY: {\r\n target: 'playing',\r\n actions: ['recordTimeOffset', 'play'],\r\n },\r\n CAST_EVENT: {\r\n target: 'paused',\r\n actions: 'castEvent',\r\n },\r\n TO_LIVE: {\r\n target: 'live',\r\n actions: ['startLive'],\r\n },\r\n ADD_EVENT: {\r\n target: 'paused',\r\n actions: ['addEvent'],\r\n },\r\n },\r\n },\r\n live: {\r\n on: {\r\n ADD_EVENT: {\r\n target: 'live',\r\n actions: ['addEvent'],\r\n },\r\n CAST_EVENT: {\r\n target: 'live',\r\n actions: ['castEvent'],\r\n },\r\n },\r\n },\r\n },\r\n }, {\r\n actions: {\r\n castEvent: o({\r\n lastPlayedEvent: (ctx, event) => {\r\n if (event.type === 'CAST_EVENT') {\r\n return event.payload.event;\r\n }\r\n return ctx.lastPlayedEvent;\r\n },\r\n }),\r\n recordTimeOffset: o((ctx, event) => {\r\n let timeOffset = ctx.timeOffset;\r\n if ('payload' in event && 'timeOffset' in event.payload) {\r\n timeOffset = event.payload.timeOffset;\r\n }\r\n return Object.assign(Object.assign({}, ctx), { timeOffset, baselineTime: ctx.events[0].timestamp + timeOffset });\r\n }),\r\n play(ctx) {\r\n var _a;\r\n const { timer, events, baselineTime, lastPlayedEvent } = ctx;\r\n timer.clear();\r\n for (const event of events) {\r\n addDelay(event, baselineTime);\r\n }\r\n const neededEvents = discardPriorSnapshots(events, baselineTime);\r\n let lastPlayedTimestamp = lastPlayedEvent === null || lastPlayedEvent === void 0 ? void 0 : lastPlayedEvent.timestamp;\r\n if ((lastPlayedEvent === null || lastPlayedEvent === void 0 ? void 0 : lastPlayedEvent.type) === EventType.IncrementalSnapshot &&\r\n lastPlayedEvent.data.source === IncrementalSource.MouseMove) {\r\n lastPlayedTimestamp =\r\n lastPlayedEvent.timestamp +\r\n ((_a = lastPlayedEvent.data.positions[0]) === null || _a === void 0 ? void 0 : _a.timeOffset);\r\n }\r\n if (baselineTime < (lastPlayedTimestamp || 0)) {\r\n emitter.emit(ReplayerEvents.PlayBack);\r\n }\r\n const syncEvents = new Array();\r\n for (const event of neededEvents) {\r\n if (lastPlayedTimestamp &&\r\n lastPlayedTimestamp < baselineTime &&\r\n (event.timestamp <= lastPlayedTimestamp ||\r\n event === lastPlayedEvent)) {\r\n continue;\r\n }\r\n if (event.timestamp < baselineTime) {\r\n syncEvents.push(event);\r\n }\r\n else {\r\n const castFn = getCastFn(event, false);\r\n timer.addAction({\r\n doAction: () => {\r\n castFn();\r\n },\r\n delay: event.delay,\r\n });\r\n }\r\n }\r\n applyEventsSynchronously(syncEvents);\r\n emitter.emit(ReplayerEvents.Flush);\r\n timer.start();\r\n },\r\n pause(ctx) {\r\n ctx.timer.clear();\r\n },\r\n resetLastPlayedEvent: o((ctx) => {\r\n return Object.assign(Object.assign({}, ctx), { lastPlayedEvent: null });\r\n }),\r\n startLive: o({\r\n baselineTime: (ctx, event) => {\r\n ctx.timer.start();\r\n if (event.type === 'TO_LIVE' && event.payload.baselineTime) {\r\n return event.payload.baselineTime;\r\n }\r\n return Date.now();\r\n },\r\n }),\r\n addEvent: o((ctx, machineEvent) => {\r\n const { baselineTime, timer, events } = ctx;\r\n if (machineEvent.type === 'ADD_EVENT') {\r\n const { event } = machineEvent.payload;\r\n addDelay(event, baselineTime);\r\n let end = events.length - 1;\r\n if (!events[end] || events[end].timestamp <= event.timestamp) {\r\n events.push(event);\r\n }\r\n else {\r\n let insertionIndex = -1;\r\n let start = 0;\r\n while (start <= end) {\r\n const mid = Math.floor((start + end) / 2);\r\n if (events[mid].timestamp <= event.timestamp) {\r\n start = mid + 1;\r\n }\r\n else {\r\n end = mid - 1;\r\n }\r\n }\r\n if (insertionIndex === -1) {\r\n insertionIndex = start;\r\n }\r\n events.splice(insertionIndex, 0, event);\r\n }\r\n const isSync = event.timestamp < baselineTime;\r\n const castFn = getCastFn(event, isSync);\r\n if (isSync) {\r\n castFn();\r\n }\r\n else if (timer.isActive()) {\r\n timer.addAction({\r\n doAction: () => {\r\n castFn();\r\n },\r\n delay: event.delay,\r\n });\r\n }\r\n }\r\n return Object.assign(Object.assign({}, ctx), { events });\r\n }),\r\n },\r\n });\r\n return v(playerMachine);\r\n}\r\nfunction createSpeedService(context) {\r\n const speedMachine = s({\r\n id: 'speed',\r\n context,\r\n initial: 'normal',\r\n states: {\r\n normal: {\r\n on: {\r\n FAST_FORWARD: {\r\n target: 'skipping',\r\n actions: ['recordSpeed', 'setSpeed'],\r\n },\r\n SET_SPEED: {\r\n target: 'normal',\r\n actions: ['setSpeed'],\r\n },\r\n },\r\n },\r\n skipping: {\r\n on: {\r\n BACK_TO_NORMAL: {\r\n target: 'normal',\r\n actions: ['restoreSpeed'],\r\n },\r\n SET_SPEED: {\r\n target: 'normal',\r\n actions: ['setSpeed'],\r\n },\r\n },\r\n },\r\n },\r\n }, {\r\n actions: {\r\n setSpeed: (ctx, event) => {\r\n if ('payload' in event) {\r\n ctx.timer.setSpeed(event.payload.speed);\r\n }\r\n },\r\n recordSpeed: o({\r\n normalSpeed: (ctx) => ctx.timer.speed,\r\n }),\r\n restoreSpeed: (ctx) => {\r\n ctx.timer.setSpeed(ctx.normalSpeed);\r\n },\r\n },\r\n });\r\n return v(speedMachine);\r\n}\n\nconst rules = (blockClass) => [\r\n `.${blockClass} { background: currentColor }`,\r\n 'noscript { display: none !important; }',\r\n];\n\nconst webGLVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = webGLVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n webGLVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nfunction deserializeArg(imageMap, ctx, preload) {\r\n return (arg) => __awaiter(this, void 0, void 0, function* () {\r\n if (arg && typeof arg === 'object' && 'rr_type' in arg) {\r\n if (preload)\r\n preload.isUnchanged = false;\r\n if (arg.rr_type === 'ImageBitmap' && 'args' in arg) {\r\n const args = yield deserializeArg(imageMap, ctx, preload)(arg.args);\r\n return yield createImageBitmap.apply(null, args);\r\n }\r\n else if ('index' in arg) {\r\n if (preload || ctx === null)\r\n return arg;\r\n const { rr_type: name, index } = arg;\r\n return variableListFor(ctx, name)[index];\r\n }\r\n else if ('args' in arg) {\r\n const { rr_type: name, args } = arg;\r\n const ctor = window[name];\r\n return new ctor(...(yield Promise.all(args.map(deserializeArg(imageMap, ctx, preload)))));\r\n }\r\n else if ('base64' in arg) {\r\n return decode(arg.base64);\r\n }\r\n else if ('src' in arg) {\r\n const image = imageMap.get(arg.src);\r\n if (image) {\r\n return image;\r\n }\r\n else {\r\n const image = new Image();\r\n image.src = arg.src;\r\n imageMap.set(arg.src, image);\r\n return image;\r\n }\r\n }\r\n else if ('data' in arg && arg.rr_type === 'Blob') {\r\n const blobContents = yield Promise.all(arg.data.map(deserializeArg(imageMap, ctx, preload)));\r\n const blob = new Blob(blobContents, {\r\n type: arg.type,\r\n });\r\n return blob;\r\n }\r\n }\r\n else if (Array.isArray(arg)) {\r\n const result = yield Promise.all(arg.map(deserializeArg(imageMap, ctx, preload)));\r\n return result;\r\n }\r\n return arg;\r\n });\r\n}\n\nfunction getContext(target, type) {\r\n try {\r\n if (type === CanvasContext.WebGL) {\r\n return (target.getContext('webgl') || target.getContext('experimental-webgl'));\r\n }\r\n return target.getContext('webgl2');\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n}\r\nconst WebGLVariableConstructorsNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n];\r\nfunction saveToWebGLVarMap(ctx, result) {\r\n if (!(result === null || result === void 0 ? void 0 : result.constructor))\r\n return;\r\n const { name } = result.constructor;\r\n if (!WebGLVariableConstructorsNames.includes(name))\r\n return;\r\n const variables = variableListFor(ctx, name);\r\n if (!variables.includes(result))\r\n variables.push(result);\r\n}\r\nfunction webglMutation({ mutation, target, type, imageMap, errorHandler, }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const ctx = getContext(target, type);\r\n if (!ctx)\r\n return;\r\n if (mutation.setter) {\r\n ctx[mutation.property] = mutation.args[0];\r\n return;\r\n }\r\n const original = ctx[mutation.property];\r\n const args = yield Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\r\n const result = original.apply(ctx, args);\r\n saveToWebGLVarMap(ctx, result);\r\n const debugMode = false;\r\n if (debugMode) ;\r\n }\r\n catch (error) {\r\n errorHandler(mutation, error);\r\n }\r\n });\r\n}\n\nfunction canvasMutation$1({ event, mutations, target, imageMap, errorHandler, }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const ctx = target.getContext('2d');\r\n if (!ctx) {\r\n errorHandler(mutations[0], new Error('Canvas context is null'));\r\n return;\r\n }\r\n const mutationArgsPromises = mutations.map((mutation) => __awaiter(this, void 0, void 0, function* () {\r\n return Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\r\n }));\r\n const args = yield Promise.all(mutationArgsPromises);\r\n args.forEach((args, index) => {\r\n const mutation = mutations[index];\r\n try {\r\n if (mutation.setter) {\r\n ctx[mutation.property] =\r\n mutation.args[0];\r\n return;\r\n }\r\n const original = ctx[mutation.property];\r\n if (mutation.property === 'drawImage' &&\r\n typeof mutation.args[0] === 'string') {\r\n imageMap.get(event);\r\n original.apply(ctx, mutation.args);\r\n }\r\n else {\r\n original.apply(ctx, args);\r\n }\r\n }\r\n catch (error) {\r\n errorHandler(mutation, error);\r\n }\r\n return;\r\n });\r\n });\r\n}\n\nfunction canvasMutation({ event, mutation, target, imageMap, canvasEventMap, errorHandler, }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const precomputedMutation = canvasEventMap.get(event) || mutation;\r\n const commands = 'commands' in precomputedMutation\r\n ? precomputedMutation.commands\r\n : [precomputedMutation];\r\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\r\n for (let i = 0; i < commands.length; i++) {\r\n const command = commands[i];\r\n yield webglMutation({\r\n mutation: command,\r\n type: mutation.type,\r\n target,\r\n imageMap,\r\n errorHandler,\r\n });\r\n }\r\n return;\r\n }\r\n yield canvasMutation$1({\r\n event,\r\n mutations: commands,\r\n target,\r\n imageMap,\r\n errorHandler,\r\n });\r\n }\r\n catch (error) {\r\n errorHandler(mutation, error);\r\n }\r\n });\r\n}\n\nconst SKIP_TIME_THRESHOLD = 10 * 1000;\r\nconst SKIP_TIME_INTERVAL = 5 * 1000;\r\nconst mitt = mitt$1 || mittProxy;\r\nconst REPLAY_CONSOLE_PREFIX = '[replayer]';\r\nconst defaultMouseTailConfig = {\r\n duration: 500,\r\n lineCap: 'round',\r\n lineWidth: 3,\r\n strokeStyle: 'red',\r\n};\r\nfunction indicatesTouchDevice(e) {\r\n return (e.type == EventType.IncrementalSnapshot &&\r\n (e.data.source == IncrementalSource.TouchMove ||\r\n (e.data.source == IncrementalSource.MouseInteraction &&\r\n e.data.type == MouseInteractions.TouchStart)));\r\n}\r\nclass Replayer {\r\n get timer() {\r\n return this.service.state.context.timer;\r\n }\r\n constructor(events, config) {\r\n this.usingVirtualDom = false;\r\n this.virtualDom = new RRDocument();\r\n this.mouseTail = null;\r\n this.tailPositions = [];\r\n this.emitter = mitt();\r\n this.legacy_missingNodeRetryMap = {};\r\n this.cache = createCache();\r\n this.imageMap = new Map();\r\n this.canvasEventMap = new Map();\r\n this.mirror = createMirror$2();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.firstFullSnapshot = null;\r\n this.newDocumentQueue = [];\r\n this.mousePos = null;\r\n this.touchActive = null;\r\n this.lastMouseDownEvent = null;\r\n this.lastSelectionData = null;\r\n this.constructedStyleMutations = [];\r\n this.adoptedStyleSheets = [];\r\n this.handleResize = (dimension) => {\r\n this.iframe.style.display = 'inherit';\r\n for (const el of [this.mouseTail, this.iframe]) {\r\n if (!el) {\r\n continue;\r\n }\r\n el.setAttribute('width', String(dimension.width));\r\n el.setAttribute('height', String(dimension.height));\r\n }\r\n };\r\n this.applyEventsSynchronously = (events) => {\r\n for (const event of events) {\r\n switch (event.type) {\r\n case EventType.DomContentLoaded:\r\n case EventType.Load:\r\n case EventType.Custom:\r\n continue;\r\n case EventType.FullSnapshot:\r\n case EventType.Meta:\r\n case EventType.Plugin:\r\n case EventType.IncrementalSnapshot:\r\n break;\r\n }\r\n const castFn = this.getCastFn(event, true);\r\n castFn();\r\n }\r\n };\r\n this.getCastFn = (event, isSync = false) => {\r\n let castFn;\r\n switch (event.type) {\r\n case EventType.DomContentLoaded:\r\n case EventType.Load:\r\n break;\r\n case EventType.Custom:\r\n castFn = () => {\r\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\r\n };\r\n break;\r\n case EventType.Meta:\r\n castFn = () => this.emitter.emit(ReplayerEvents.Resize, {\r\n width: event.data.width,\r\n height: event.data.height,\r\n });\r\n break;\r\n case EventType.FullSnapshot:\r\n castFn = () => {\r\n var _a;\r\n if (this.firstFullSnapshot) {\r\n if (this.firstFullSnapshot === event) {\r\n this.firstFullSnapshot = true;\r\n return;\r\n }\r\n }\r\n else {\r\n this.firstFullSnapshot = true;\r\n }\r\n this.rebuildFullSnapshot(event, isSync);\r\n (_a = this.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.scrollTo(event.data.initialOffset);\r\n this.styleMirror.reset();\r\n };\r\n break;\r\n case EventType.IncrementalSnapshot:\r\n castFn = () => {\r\n this.applyIncremental(event, isSync);\r\n if (isSync) {\r\n return;\r\n }\r\n if (event === this.nextUserInteractionEvent) {\r\n this.nextUserInteractionEvent = null;\r\n this.backToNormal();\r\n }\r\n if (this.config.skipInactive && !this.nextUserInteractionEvent) {\r\n for (const _event of this.service.state.context.events) {\r\n if (_event.timestamp <= event.timestamp) {\r\n continue;\r\n }\r\n if (this.isUserInteraction(_event)) {\r\n if (_event.delay - event.delay >\r\n SKIP_TIME_THRESHOLD *\r\n this.speedService.state.context.timer.speed) {\r\n this.nextUserInteractionEvent = _event;\r\n }\r\n break;\r\n }\r\n }\r\n if (this.nextUserInteractionEvent) {\r\n const skipTime = this.nextUserInteractionEvent.delay - event.delay;\r\n const payload = {\r\n speed: Math.min(Math.round(skipTime / SKIP_TIME_INTERVAL), this.config.maxSpeed),\r\n };\r\n this.speedService.send({ type: 'FAST_FORWARD', payload });\r\n this.emitter.emit(ReplayerEvents.SkipStart, payload);\r\n }\r\n }\r\n };\r\n break;\r\n }\r\n const wrappedCastFn = () => {\r\n if (castFn) {\r\n castFn();\r\n }\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.handler)\r\n plugin.handler(event, isSync, { replayer: this });\r\n }\r\n this.service.send({ type: 'CAST_EVENT', payload: { event } });\r\n const last_index = this.service.state.context.events.length - 1;\r\n if (!this.config.liveMode &&\r\n event === this.service.state.context.events[last_index]) {\r\n const finish = () => {\r\n if (last_index < this.service.state.context.events.length - 1) {\r\n return;\r\n }\r\n this.backToNormal();\r\n this.service.send('END');\r\n this.emitter.emit(ReplayerEvents.Finish);\r\n };\r\n let finish_buffer = 50;\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.MouseMove &&\r\n event.data.positions.length) {\r\n finish_buffer += Math.max(0, -event.data.positions[0].timeOffset);\r\n }\r\n setTimeout(finish, finish_buffer);\r\n }\r\n this.emitter.emit(ReplayerEvents.EventCast, event);\r\n };\r\n return wrappedCastFn;\r\n };\r\n if (!(config === null || config === void 0 ? void 0 : config.liveMode) && events.length < 2) {\r\n throw new Error('Replayer need at least 2 events.');\r\n }\r\n const defaultConfig = {\r\n speed: 1,\r\n maxSpeed: 360,\r\n root: document.body,\r\n loadTimeout: 0,\r\n skipInactive: false,\r\n showWarning: true,\r\n showDebug: false,\r\n blockClass: 'rr-block',\r\n liveMode: false,\r\n insertStyleRules: [],\r\n triggerFocus: true,\r\n UNSAFE_replayCanvas: false,\r\n pauseAnimation: true,\r\n mouseTail: defaultMouseTailConfig,\r\n useVirtualDom: true,\r\n logger: console,\r\n };\r\n this.config = Object.assign({}, defaultConfig, config);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.getCastFn = this.getCastFn.bind(this);\r\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\r\n this.emitter.on(ReplayerEvents.Resize, this.handleResize);\r\n this.setupDom();\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({ nodeMirror: this.mirror });\r\n }\r\n this.emitter.on(ReplayerEvents.Flush, () => {\r\n if (this.usingVirtualDom) {\r\n const replayerHandler = {\r\n mirror: this.mirror,\r\n applyCanvas: (canvasEvent, canvasMutationData, target) => {\r\n void canvasMutation({\r\n event: canvasEvent,\r\n mutation: canvasMutationData,\r\n target,\r\n imageMap: this.imageMap,\r\n canvasEventMap: this.canvasEventMap,\r\n errorHandler: this.warnCanvasMutationFailed.bind(this),\r\n });\r\n },\r\n applyInput: this.applyInput.bind(this),\r\n applyScroll: this.applyScroll.bind(this),\r\n applyStyleSheetMutation: (data, styleSheet) => {\r\n if (data.source === IncrementalSource.StyleSheetRule)\r\n this.applyStyleSheetRule(data, styleSheet);\r\n else if (data.source === IncrementalSource.StyleDeclaration)\r\n this.applyStyleDeclaration(data, styleSheet);\r\n },\r\n afterAppend: (node, id) => {\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(node, { id, replayer: this });\r\n }\r\n },\r\n };\r\n if (this.iframe.contentDocument)\r\n try {\r\n diff(this.iframe.contentDocument, this.virtualDom, replayerHandler, this.virtualDom.mirror);\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n this.virtualDom.destroyTree();\r\n this.usingVirtualDom = false;\r\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\r\n for (const key in this.legacy_missingNodeRetryMap) {\r\n try {\r\n const value = this.legacy_missingNodeRetryMap[key];\r\n const realNode = createOrGetNode(value.node, this.mirror, this.virtualDom.mirror);\r\n diff(realNode, value.node, replayerHandler, this.virtualDom.mirror);\r\n value.node = realNode;\r\n }\r\n catch (error) {\r\n this.warn(error);\r\n }\r\n }\r\n }\r\n this.constructedStyleMutations.forEach((data) => {\r\n this.applyStyleSheetMutation(data);\r\n });\r\n this.constructedStyleMutations = [];\r\n this.adoptedStyleSheets.forEach((data) => {\r\n this.applyAdoptedStyleSheet(data);\r\n });\r\n this.adoptedStyleSheets = [];\r\n }\r\n if (this.mousePos) {\r\n this.moveAndHover(this.mousePos.x, this.mousePos.y, this.mousePos.id, true, this.mousePos.debugData);\r\n this.mousePos = null;\r\n }\r\n if (this.touchActive === true) {\r\n this.mouse.classList.add('touch-active');\r\n }\r\n else if (this.touchActive === false) {\r\n this.mouse.classList.remove('touch-active');\r\n }\r\n this.touchActive = null;\r\n if (this.lastMouseDownEvent) {\r\n const [target, event] = this.lastMouseDownEvent;\r\n target.dispatchEvent(event);\r\n }\r\n this.lastMouseDownEvent = null;\r\n if (this.lastSelectionData) {\r\n this.applySelection(this.lastSelectionData);\r\n this.lastSelectionData = null;\r\n }\r\n });\r\n this.emitter.on(ReplayerEvents.PlayBack, () => {\r\n this.firstFullSnapshot = null;\r\n this.mirror.reset();\r\n this.styleMirror.reset();\r\n });\r\n const timer = new Timer([], {\r\n speed: this.config.speed,\r\n });\r\n this.service = createPlayerService({\r\n events: events\r\n .map((e) => {\r\n if (config && config.unpackFn) {\r\n return config.unpackFn(e);\r\n }\r\n return e;\r\n })\r\n .sort((a1, a2) => a1.timestamp - a2.timestamp),\r\n timer,\r\n timeOffset: 0,\r\n baselineTime: 0,\r\n lastPlayedEvent: null,\r\n }, {\r\n getCastFn: this.getCastFn,\r\n applyEventsSynchronously: this.applyEventsSynchronously,\r\n emitter: this.emitter,\r\n });\r\n this.service.start();\r\n this.service.subscribe((state) => {\r\n this.emitter.emit(ReplayerEvents.StateChange, {\r\n player: state,\r\n });\r\n });\r\n this.speedService = createSpeedService({\r\n normalSpeed: -1,\r\n timer,\r\n });\r\n this.speedService.start();\r\n this.speedService.subscribe((state) => {\r\n this.emitter.emit(ReplayerEvents.StateChange, {\r\n speed: state,\r\n });\r\n });\r\n const firstMeta = this.service.state.context.events.find((e) => e.type === EventType.Meta);\r\n const firstFullsnapshot = this.service.state.context.events.find((e) => e.type === EventType.FullSnapshot);\r\n if (firstMeta) {\r\n const { width, height } = firstMeta.data;\r\n setTimeout(() => {\r\n this.emitter.emit(ReplayerEvents.Resize, {\r\n width,\r\n height,\r\n });\r\n }, 0);\r\n }\r\n if (firstFullsnapshot) {\r\n setTimeout(() => {\r\n var _a;\r\n if (this.firstFullSnapshot) {\r\n return;\r\n }\r\n this.firstFullSnapshot = firstFullsnapshot;\r\n this.rebuildFullSnapshot(firstFullsnapshot);\r\n (_a = this.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.scrollTo(firstFullsnapshot.data.initialOffset);\r\n }, 1);\r\n }\r\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\r\n this.mouse.classList.add('touch-device');\r\n }\r\n }\r\n on(event, handler) {\r\n this.emitter.on(event, handler);\r\n return this;\r\n }\r\n off(event, handler) {\r\n this.emitter.off(event, handler);\r\n return this;\r\n }\r\n setConfig(config) {\r\n Object.keys(config).forEach((key) => {\r\n config[key];\r\n this.config[key] = config[key];\r\n });\r\n if (!this.config.skipInactive) {\r\n this.backToNormal();\r\n }\r\n if (typeof config.speed !== 'undefined') {\r\n this.speedService.send({\r\n type: 'SET_SPEED',\r\n payload: {\r\n speed: config.speed,\r\n },\r\n });\r\n }\r\n if (typeof config.mouseTail !== 'undefined') {\r\n if (config.mouseTail === false) {\r\n if (this.mouseTail) {\r\n this.mouseTail.style.display = 'none';\r\n }\r\n }\r\n else {\r\n if (!this.mouseTail) {\r\n this.mouseTail = document.createElement('canvas');\r\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\r\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\r\n this.mouseTail.classList.add('replayer-mouse-tail');\r\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\r\n }\r\n this.mouseTail.style.display = 'inherit';\r\n }\r\n }\r\n }\r\n getMetaData() {\r\n const firstEvent = this.service.state.context.events[0];\r\n const lastEvent = this.service.state.context.events[this.service.state.context.events.length - 1];\r\n return {\r\n startTime: firstEvent.timestamp,\r\n endTime: lastEvent.timestamp,\r\n totalTime: lastEvent.timestamp - firstEvent.timestamp,\r\n };\r\n }\r\n getCurrentTime() {\r\n return this.timer.timeOffset + this.getTimeOffset();\r\n }\r\n getTimeOffset() {\r\n const { baselineTime, events } = this.service.state.context;\r\n return baselineTime - events[0].timestamp;\r\n }\r\n getMirror() {\r\n return this.mirror;\r\n }\r\n play(timeOffset = 0) {\r\n var _a, _b;\r\n if (this.service.state.matches('paused')) {\r\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\r\n }\r\n else {\r\n this.service.send({ type: 'PAUSE' });\r\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\r\n }\r\n (_b = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('html')[0]) === null || _b === void 0 ? void 0 : _b.classList.remove('rrweb-paused');\r\n this.emitter.emit(ReplayerEvents.Start);\r\n }\r\n pause(timeOffset) {\r\n var _a, _b;\r\n if (timeOffset === undefined && this.service.state.matches('playing')) {\r\n this.service.send({ type: 'PAUSE' });\r\n }\r\n if (typeof timeOffset === 'number') {\r\n this.play(timeOffset);\r\n this.service.send({ type: 'PAUSE' });\r\n }\r\n (_b = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('html')[0]) === null || _b === void 0 ? void 0 : _b.classList.add('rrweb-paused');\r\n this.emitter.emit(ReplayerEvents.Pause);\r\n }\r\n resume(timeOffset = 0) {\r\n this.warn(`The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.`);\r\n this.play(timeOffset);\r\n this.emitter.emit(ReplayerEvents.Resume);\r\n }\r\n destroy() {\r\n this.pause();\r\n this.config.root.removeChild(this.wrapper);\r\n this.emitter.emit(ReplayerEvents.Destroy);\r\n }\r\n startLive(baselineTime) {\r\n this.service.send({ type: 'TO_LIVE', payload: { baselineTime } });\r\n }\r\n addEvent(rawEvent) {\r\n const event = this.config.unpackFn\r\n ? this.config.unpackFn(rawEvent)\r\n : rawEvent;\r\n if (indicatesTouchDevice(event)) {\r\n this.mouse.classList.add('touch-device');\r\n }\r\n void Promise.resolve().then(() => this.service.send({ type: 'ADD_EVENT', payload: { event } }));\r\n }\r\n enableInteract() {\r\n this.iframe.setAttribute('scrolling', 'auto');\r\n this.iframe.style.pointerEvents = 'auto';\r\n }\r\n disableInteract() {\r\n this.iframe.setAttribute('scrolling', 'no');\r\n this.iframe.style.pointerEvents = 'none';\r\n }\r\n resetCache() {\r\n this.cache = createCache();\r\n }\r\n setupDom() {\r\n this.wrapper = document.createElement('div');\r\n this.wrapper.classList.add('replayer-wrapper');\r\n this.config.root.appendChild(this.wrapper);\r\n this.mouse = document.createElement('div');\r\n this.mouse.classList.add('replayer-mouse');\r\n this.wrapper.appendChild(this.mouse);\r\n if (this.config.mouseTail !== false) {\r\n this.mouseTail = document.createElement('canvas');\r\n this.mouseTail.classList.add('replayer-mouse-tail');\r\n this.mouseTail.style.display = 'inherit';\r\n this.wrapper.appendChild(this.mouseTail);\r\n }\r\n this.iframe = document.createElement('iframe');\r\n const attributes = ['allow-same-origin'];\r\n if (this.config.UNSAFE_replayCanvas) {\r\n attributes.push('allow-scripts');\r\n }\r\n this.iframe.style.display = 'none';\r\n this.iframe.setAttribute('sandbox', attributes.join(' '));\r\n this.disableInteract();\r\n this.wrapper.appendChild(this.iframe);\r\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\r\n polyfill(this.iframe.contentWindow, this.iframe.contentDocument);\r\n polyfill$1(this.iframe.contentWindow);\r\n }\r\n }\r\n rebuildFullSnapshot(event, isSync = false) {\r\n if (!this.iframe.contentDocument) {\r\n return this.warn('Looks like your replayer has been destroyed.');\r\n }\r\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\r\n this.warn('Found unresolved missing node map', this.legacy_missingNodeRetryMap);\r\n }\r\n this.legacy_missingNodeRetryMap = {};\r\n const collected = [];\r\n const afterAppend = (builtNode, id) => {\r\n this.collectIframeAndAttachDocument(collected, builtNode);\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(builtNode, {\r\n id,\r\n replayer: this,\r\n });\r\n }\r\n };\r\n if (this.usingVirtualDom) {\r\n this.virtualDom.destroyTree();\r\n this.usingVirtualDom = false;\r\n }\r\n this.mirror.reset();\r\n rebuild(event.data.node, {\r\n doc: this.iframe.contentDocument,\r\n afterAppend,\r\n cache: this.cache,\r\n mirror: this.mirror,\r\n });\r\n afterAppend(this.iframe.contentDocument, event.data.node.id);\r\n for (const { mutationInQueue, builtNode } of collected) {\r\n this.attachDocumentToIframe(mutationInQueue, builtNode);\r\n this.newDocumentQueue = this.newDocumentQueue.filter((m) => m !== mutationInQueue);\r\n }\r\n const { documentElement, head } = this.iframe.contentDocument;\r\n this.insertStyleRules(documentElement, head);\r\n if (!this.service.state.matches('playing')) {\r\n this.iframe.contentDocument\r\n .getElementsByTagName('html')[0]\r\n .classList.add('rrweb-paused');\r\n }\r\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\r\n if (!isSync) {\r\n this.waitForStylesheetLoad();\r\n }\r\n if (this.config.UNSAFE_replayCanvas) {\r\n void this.preloadAllImages();\r\n }\r\n }\r\n insertStyleRules(documentElement, head) {\r\n var _a;\r\n const injectStylesRules = rules(this.config.blockClass).concat(this.config.insertStyleRules);\r\n if (this.config.pauseAnimation) {\r\n injectStylesRules.push('html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }');\r\n }\r\n if (this.usingVirtualDom) {\r\n const styleEl = this.virtualDom.createElement('style');\r\n this.virtualDom.mirror.add(styleEl, getDefaultSN(styleEl, this.virtualDom.unserializedId));\r\n documentElement.insertBefore(styleEl, head);\r\n styleEl.rules.push({\r\n source: IncrementalSource.StyleSheetRule,\r\n adds: injectStylesRules.map((cssText, index) => ({\r\n rule: cssText,\r\n index,\r\n })),\r\n });\r\n }\r\n else {\r\n const styleEl = document.createElement('style');\r\n documentElement.insertBefore(styleEl, head);\r\n for (let idx = 0; idx < injectStylesRules.length; idx++) {\r\n (_a = styleEl.sheet) === null || _a === void 0 ? void 0 : _a.insertRule(injectStylesRules[idx], idx);\r\n }\r\n }\r\n }\r\n attachDocumentToIframe(mutation, iframeEl) {\r\n const mirror = this.usingVirtualDom\r\n ? this.virtualDom.mirror\r\n : this.mirror;\r\n const collected = [];\r\n const afterAppend = (builtNode, id) => {\r\n this.collectIframeAndAttachDocument(collected, builtNode);\r\n const sn = mirror.getMeta(builtNode);\r\n if ((sn === null || sn === void 0 ? void 0 : sn.type) === NodeType$2.Element &&\r\n (sn === null || sn === void 0 ? void 0 : sn.tagName.toUpperCase()) === 'HTML') {\r\n const { documentElement, head } = iframeEl.contentDocument;\r\n this.insertStyleRules(documentElement, head);\r\n }\r\n if (this.usingVirtualDom)\r\n return;\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(builtNode, {\r\n id,\r\n replayer: this,\r\n });\r\n }\r\n };\r\n buildNodeWithSN(mutation.node, {\r\n doc: iframeEl.contentDocument,\r\n mirror: mirror,\r\n hackCss: true,\r\n skipChild: false,\r\n afterAppend,\r\n cache: this.cache,\r\n });\r\n afterAppend(iframeEl.contentDocument, mutation.node.id);\r\n for (const { mutationInQueue, builtNode } of collected) {\r\n this.attachDocumentToIframe(mutationInQueue, builtNode);\r\n this.newDocumentQueue = this.newDocumentQueue.filter((m) => m !== mutationInQueue);\r\n }\r\n }\r\n collectIframeAndAttachDocument(collected, builtNode) {\r\n if (isSerializedIframe(builtNode, this.mirror)) {\r\n const mutationInQueue = this.newDocumentQueue.find((m) => m.parentId === this.mirror.getId(builtNode));\r\n if (mutationInQueue) {\r\n collected.push({\r\n mutationInQueue,\r\n builtNode: builtNode,\r\n });\r\n }\r\n }\r\n }\r\n waitForStylesheetLoad() {\r\n var _a;\r\n const head = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.head;\r\n if (head) {\r\n const unloadSheets = new Set();\r\n let timer;\r\n let beforeLoadState = this.service.state;\r\n const stateHandler = () => {\r\n beforeLoadState = this.service.state;\r\n };\r\n this.emitter.on(ReplayerEvents.Start, stateHandler);\r\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\r\n const unsubscribe = () => {\r\n this.emitter.off(ReplayerEvents.Start, stateHandler);\r\n this.emitter.off(ReplayerEvents.Pause, stateHandler);\r\n };\r\n head\r\n .querySelectorAll('link[rel=\"stylesheet\"]')\r\n .forEach((css) => {\r\n if (!css.sheet) {\r\n unloadSheets.add(css);\r\n css.addEventListener('load', () => {\r\n unloadSheets.delete(css);\r\n if (unloadSheets.size === 0 && timer !== -1) {\r\n if (beforeLoadState.matches('playing')) {\r\n this.play(this.getCurrentTime());\r\n }\r\n this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n unsubscribe();\r\n }\r\n });\r\n }\r\n });\r\n if (unloadSheets.size > 0) {\r\n this.service.send({ type: 'PAUSE' });\r\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\r\n timer = setTimeout(() => {\r\n if (beforeLoadState.matches('playing')) {\r\n this.play(this.getCurrentTime());\r\n }\r\n timer = -1;\r\n unsubscribe();\r\n }, this.config.loadTimeout);\r\n }\r\n }\r\n }\r\n preloadAllImages() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.service.state;\r\n const stateHandler = () => {\r\n this.service.state;\r\n };\r\n this.emitter.on(ReplayerEvents.Start, stateHandler);\r\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\r\n const promises = [];\r\n for (const event of this.service.state.context.events) {\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.CanvasMutation) {\r\n promises.push(this.deserializeAndPreloadCanvasEvents(event.data, event));\r\n const commands = 'commands' in event.data ? event.data.commands : [event.data];\r\n commands.forEach((c) => {\r\n this.preloadImages(c, event);\r\n });\r\n }\r\n }\r\n return Promise.all(promises);\r\n });\r\n }\r\n preloadImages(data, event) {\r\n if (data.property === 'drawImage' &&\r\n typeof data.args[0] === 'string' &&\r\n !this.imageMap.has(event)) {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n const imgd = ctx === null || ctx === void 0 ? void 0 : ctx.createImageData(canvas.width, canvas.height);\r\n imgd === null || imgd === void 0 ? void 0 : imgd.data;\r\n JSON.parse(data.args[0]);\r\n ctx === null || ctx === void 0 ? void 0 : ctx.putImageData(imgd, 0, 0);\r\n }\r\n }\r\n deserializeAndPreloadCanvasEvents(data, event) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.canvasEventMap.has(event)) {\r\n const status = {\r\n isUnchanged: true,\r\n };\r\n if ('commands' in data) {\r\n const commands = yield Promise.all(data.commands.map((c) => __awaiter(this, void 0, void 0, function* () {\r\n const args = yield Promise.all(c.args.map(deserializeArg(this.imageMap, null, status)));\r\n return Object.assign(Object.assign({}, c), { args });\r\n })));\r\n if (status.isUnchanged === false)\r\n this.canvasEventMap.set(event, Object.assign(Object.assign({}, data), { commands }));\r\n }\r\n else {\r\n const args = yield Promise.all(data.args.map(deserializeArg(this.imageMap, null, status)));\r\n if (status.isUnchanged === false)\r\n this.canvasEventMap.set(event, Object.assign(Object.assign({}, data), { args }));\r\n }\r\n }\r\n });\r\n }\r\n applyIncremental(e, isSync) {\r\n var _a, _b, _c;\r\n const { data: d } = e;\r\n switch (d.source) {\r\n case IncrementalSource.Mutation: {\r\n try {\r\n this.applyMutation(d, isSync);\r\n }\r\n catch (error) {\r\n this.warn(`Exception in mutation ${error.message || error}`, d);\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove:\r\n if (isSync) {\r\n const lastPosition = d.positions[d.positions.length - 1];\r\n this.mousePos = {\r\n x: lastPosition.x,\r\n y: lastPosition.y,\r\n id: lastPosition.id,\r\n debugData: d,\r\n };\r\n }\r\n else {\r\n d.positions.forEach((p) => {\r\n const action = {\r\n doAction: () => {\r\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\r\n },\r\n delay: p.timeOffset +\r\n e.timestamp -\r\n this.service.state.context.baselineTime,\r\n };\r\n this.timer.addAction(action);\r\n });\r\n this.timer.addAction({\r\n doAction() {\r\n },\r\n delay: e.delay - ((_a = d.positions[0]) === null || _a === void 0 ? void 0 : _a.timeOffset),\r\n });\r\n }\r\n break;\r\n case IncrementalSource.MouseInteraction: {\r\n if (d.id === -1) {\r\n break;\r\n }\r\n const event = new Event(toLowerCase(MouseInteractions[d.type]));\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\r\n type: d.type,\r\n target,\r\n });\r\n const { triggerFocus } = this.config;\r\n switch (d.type) {\r\n case MouseInteractions.Blur:\r\n if ('blur' in target) {\r\n target.blur();\r\n }\r\n break;\r\n case MouseInteractions.Focus:\r\n if (triggerFocus && target.focus) {\r\n target.focus({\r\n preventScroll: true,\r\n });\r\n }\r\n break;\r\n case MouseInteractions.Click:\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n if (isSync) {\r\n if (d.type === MouseInteractions.TouchStart) {\r\n this.touchActive = true;\r\n }\r\n else if (d.type === MouseInteractions.TouchEnd) {\r\n this.touchActive = false;\r\n }\r\n if (d.type === MouseInteractions.MouseDown) {\r\n this.lastMouseDownEvent = [target, event];\r\n }\r\n else if (d.type === MouseInteractions.MouseUp) {\r\n this.lastMouseDownEvent = null;\r\n }\r\n this.mousePos = {\r\n x: d.x || 0,\r\n y: d.y || 0,\r\n id: d.id,\r\n debugData: d,\r\n };\r\n }\r\n else {\r\n if (d.type === MouseInteractions.TouchStart) {\r\n this.tailPositions.length = 0;\r\n }\r\n this.moveAndHover(d.x || 0, d.y || 0, d.id, isSync, d);\r\n if (d.type === MouseInteractions.Click) {\r\n this.mouse.classList.remove('active');\r\n void this.mouse.offsetWidth;\r\n this.mouse.classList.add('active');\r\n }\r\n else if (d.type === MouseInteractions.TouchStart) {\r\n void this.mouse.offsetWidth;\r\n this.mouse.classList.add('touch-active');\r\n }\r\n else if (d.type === MouseInteractions.TouchEnd) {\r\n this.mouse.classList.remove('touch-active');\r\n }\r\n else {\r\n target.dispatchEvent(event);\r\n }\r\n }\r\n break;\r\n case MouseInteractions.TouchCancel:\r\n if (isSync) {\r\n this.touchActive = false;\r\n }\r\n else {\r\n this.mouse.classList.remove('touch-active');\r\n }\r\n break;\r\n default:\r\n target.dispatchEvent(event);\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Scroll: {\r\n if (d.id === -1) {\r\n break;\r\n }\r\n if (this.usingVirtualDom) {\r\n const target = this.virtualDom.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n target.scrollData = d;\r\n break;\r\n }\r\n this.applyScroll(d, isSync);\r\n break;\r\n }\r\n case IncrementalSource.ViewportResize:\r\n this.emitter.emit(ReplayerEvents.Resize, {\r\n width: d.width,\r\n height: d.height,\r\n });\r\n break;\r\n case IncrementalSource.Input: {\r\n if (d.id === -1) {\r\n break;\r\n }\r\n if (this.usingVirtualDom) {\r\n const target = this.virtualDom.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n target.inputData = d;\r\n break;\r\n }\r\n this.applyInput(d);\r\n break;\r\n }\r\n case IncrementalSource.MediaInteraction: {\r\n const target = this.usingVirtualDom\r\n ? this.virtualDom.mirror.getNode(d.id)\r\n : this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n const mediaEl = target;\r\n try {\r\n if (d.currentTime !== undefined) {\r\n mediaEl.currentTime = d.currentTime;\r\n }\r\n if (d.volume !== undefined) {\r\n mediaEl.volume = d.volume;\r\n }\r\n if (d.muted !== undefined) {\r\n mediaEl.muted = d.muted;\r\n }\r\n if (d.type === 1) {\r\n mediaEl.pause();\r\n }\r\n if (d.type === 0) {\r\n void mediaEl.play();\r\n }\r\n if (d.type === 4) {\r\n mediaEl.playbackRate = d.playbackRate;\r\n }\r\n }\r\n catch (error) {\r\n this.warn(`Failed to replay media interactions: ${error.message || error}`);\r\n }\r\n break;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n if (this.usingVirtualDom) {\r\n if (d.styleId)\r\n this.constructedStyleMutations.push(d);\r\n else if (d.id)\r\n (_b = this.virtualDom.mirror.getNode(d.id)) === null || _b === void 0 ? void 0 : _b.rules.push(d);\r\n }\r\n else\r\n this.applyStyleSheetMutation(d);\r\n break;\r\n }\r\n case IncrementalSource.CanvasMutation: {\r\n if (!this.config.UNSAFE_replayCanvas) {\r\n return;\r\n }\r\n if (this.usingVirtualDom) {\r\n const target = this.virtualDom.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n target.canvasMutations.push({\r\n event: e,\r\n mutation: d,\r\n });\r\n }\r\n else {\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n void canvasMutation({\r\n event: e,\r\n mutation: d,\r\n target: target,\r\n imageMap: this.imageMap,\r\n canvasEventMap: this.canvasEventMap,\r\n errorHandler: this.warnCanvasMutationFailed.bind(this),\r\n });\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Font: {\r\n try {\r\n const fontFace = new FontFace(d.family, d.buffer\r\n ? new Uint8Array(JSON.parse(d.fontSource))\r\n : d.fontSource, d.descriptors);\r\n (_c = this.iframe.contentDocument) === null || _c === void 0 ? void 0 : _c.fonts.add(fontFace);\r\n }\r\n catch (error) {\r\n this.warn(error);\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Selection: {\r\n if (isSync) {\r\n this.lastSelectionData = d;\r\n break;\r\n }\r\n this.applySelection(d);\r\n break;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n if (this.usingVirtualDom)\r\n this.adoptedStyleSheets.push(d);\r\n else\r\n this.applyAdoptedStyleSheet(d);\r\n break;\r\n }\r\n }\r\n }\r\n applyMutation(d, isSync) {\r\n if (this.config.useVirtualDom && !this.usingVirtualDom && isSync) {\r\n this.usingVirtualDom = true;\r\n buildFromDom(this.iframe.contentDocument, this.mirror, this.virtualDom);\r\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\r\n for (const key in this.legacy_missingNodeRetryMap) {\r\n try {\r\n const value = this.legacy_missingNodeRetryMap[key];\r\n const virtualNode = buildFromNode(value.node, this.virtualDom, this.mirror);\r\n if (virtualNode)\r\n value.node = virtualNode;\r\n }\r\n catch (error) {\r\n this.warn(error);\r\n }\r\n }\r\n }\r\n }\r\n const mirror = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\r\n d.removes = d.removes.filter((mutation) => {\r\n if (!mirror.getNode(mutation.id)) {\r\n this.warnNodeNotFound(d, mutation.id);\r\n return false;\r\n }\r\n return true;\r\n });\r\n d.removes.forEach((mutation) => {\r\n var _a;\r\n const target = mirror.getNode(mutation.id);\r\n if (!target) {\r\n return;\r\n }\r\n let parent = mirror.getNode(mutation.parentId);\r\n if (!parent) {\r\n return this.warnNodeNotFound(d, mutation.parentId);\r\n }\r\n if (mutation.isShadow && hasShadowRoot(parent)) {\r\n parent = parent.shadowRoot;\r\n }\r\n mirror.removeNodeFromMap(target);\r\n if (parent)\r\n try {\r\n parent.removeChild(target);\r\n if (this.usingVirtualDom &&\r\n target.nodeName === '#text' &&\r\n parent.nodeName === 'STYLE' &&\r\n ((_a = parent.rules) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n parent.rules = [];\r\n }\r\n catch (error) {\r\n if (error instanceof DOMException) {\r\n this.warn('parent could not remove child in mutation', parent, target, d);\r\n }\r\n else {\r\n throw error;\r\n }\r\n }\r\n });\r\n const legacy_missingNodeMap = Object.assign({}, this.legacy_missingNodeRetryMap);\r\n const queue = [];\r\n const nextNotInDOM = (mutation) => {\r\n let next = null;\r\n if (mutation.nextId) {\r\n next = mirror.getNode(mutation.nextId);\r\n }\r\n if (mutation.nextId !== null &&\r\n mutation.nextId !== undefined &&\r\n mutation.nextId !== -1 &&\r\n !next) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n const appendNode = (mutation) => {\r\n var _a, _b;\r\n if (!this.iframe.contentDocument) {\r\n return this.warn('Looks like your replayer has been destroyed.');\r\n }\r\n let parent = mirror.getNode(mutation.parentId);\r\n if (!parent) {\r\n if (mutation.node.type === NodeType$2.Document) {\r\n return this.newDocumentQueue.push(mutation);\r\n }\r\n return queue.push(mutation);\r\n }\r\n if (mutation.node.isShadow) {\r\n if (!hasShadowRoot(parent)) {\r\n parent.attachShadow({ mode: 'open' });\r\n parent = parent.shadowRoot;\r\n }\r\n else\r\n parent = parent.shadowRoot;\r\n }\r\n let previous = null;\r\n let next = null;\r\n if (mutation.previousId) {\r\n previous = mirror.getNode(mutation.previousId);\r\n }\r\n if (mutation.nextId) {\r\n next = mirror.getNode(mutation.nextId);\r\n }\r\n if (nextNotInDOM(mutation)) {\r\n return queue.push(mutation);\r\n }\r\n if (mutation.node.rootId && !mirror.getNode(mutation.node.rootId)) {\r\n return;\r\n }\r\n const targetDoc = mutation.node.rootId\r\n ? mirror.getNode(mutation.node.rootId)\r\n : this.usingVirtualDom\r\n ? this.virtualDom\r\n : this.iframe.contentDocument;\r\n if (isSerializedIframe(parent, mirror)) {\r\n this.attachDocumentToIframe(mutation, parent);\r\n return;\r\n }\r\n const afterAppend = (node, id) => {\r\n if (this.usingVirtualDom)\r\n return;\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(node, { id, replayer: this });\r\n }\r\n };\r\n const target = buildNodeWithSN(mutation.node, {\r\n doc: targetDoc,\r\n mirror: mirror,\r\n skipChild: true,\r\n hackCss: true,\r\n cache: this.cache,\r\n afterAppend,\r\n });\r\n if (mutation.previousId === -1 || mutation.nextId === -1) {\r\n legacy_missingNodeMap[mutation.node.id] = {\r\n node: target,\r\n mutation,\r\n };\r\n return;\r\n }\r\n const parentSn = mirror.getMeta(parent);\r\n if (parentSn &&\r\n parentSn.type === NodeType$2.Element &&\r\n parentSn.tagName === 'textarea' &&\r\n mutation.node.type === NodeType$2.Text) {\r\n const childNodeArray = Array.isArray(parent.childNodes)\r\n ? parent.childNodes\r\n : Array.from(parent.childNodes);\r\n for (const c of childNodeArray) {\r\n if (c.nodeType === parent.TEXT_NODE) {\r\n parent.removeChild(c);\r\n }\r\n }\r\n }\r\n else if ((parentSn === null || parentSn === void 0 ? void 0 : parentSn.type) === NodeType$2.Document) {\r\n const parentDoc = parent;\r\n if (mutation.node.type === NodeType$2.DocumentType &&\r\n ((_a = parentDoc.childNodes[0]) === null || _a === void 0 ? void 0 : _a.nodeType) === Node.DOCUMENT_TYPE_NODE)\r\n parentDoc.removeChild(parentDoc.childNodes[0]);\r\n if (target.nodeName === 'HTML' && parentDoc.documentElement)\r\n parentDoc.removeChild(parentDoc.documentElement);\r\n }\r\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\r\n parent.insertBefore(target, previous.nextSibling);\r\n }\r\n else if (next && next.parentNode) {\r\n parent.contains(next)\r\n ? parent.insertBefore(target, next)\r\n : parent.insertBefore(target, null);\r\n }\r\n else {\r\n parent.appendChild(target);\r\n }\r\n afterAppend(target, mutation.node.id);\r\n if (this.usingVirtualDom &&\r\n target.nodeName === '#text' &&\r\n parent.nodeName === 'STYLE' &&\r\n ((_b = parent.rules) === null || _b === void 0 ? void 0 : _b.length) > 0)\r\n parent.rules = [];\r\n if (isSerializedIframe(target, this.mirror)) {\r\n const targetId = this.mirror.getId(target);\r\n const mutationInQueue = this.newDocumentQueue.find((m) => m.parentId === targetId);\r\n if (mutationInQueue) {\r\n this.attachDocumentToIframe(mutationInQueue, target);\r\n this.newDocumentQueue = this.newDocumentQueue.filter((m) => m !== mutationInQueue);\r\n }\r\n }\r\n if (mutation.previousId || mutation.nextId) {\r\n this.legacy_resolveMissingNode(legacy_missingNodeMap, parent, target, mutation);\r\n }\r\n };\r\n d.adds.forEach((mutation) => {\r\n appendNode(mutation);\r\n });\r\n const startTime = Date.now();\r\n while (queue.length) {\r\n const resolveTrees = queueToResolveTrees(queue);\r\n queue.length = 0;\r\n if (Date.now() - startTime > 500) {\r\n this.warn('Timeout in the loop, please check the resolve tree data:', resolveTrees);\r\n break;\r\n }\r\n for (const tree of resolveTrees) {\r\n const parent = mirror.getNode(tree.value.parentId);\r\n if (!parent) {\r\n this.debug('Drop resolve tree since there is no parent for the root node.', tree);\r\n }\r\n else {\r\n iterateResolveTree(tree, (mutation) => {\r\n appendNode(mutation);\r\n });\r\n }\r\n }\r\n }\r\n if (Object.keys(legacy_missingNodeMap).length) {\r\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\r\n }\r\n uniqueTextMutations(d.texts).forEach((mutation) => {\r\n var _a;\r\n const target = mirror.getNode(mutation.id);\r\n if (!target) {\r\n if (d.removes.find((r) => r.id === mutation.id)) {\r\n return;\r\n }\r\n return this.warnNodeNotFound(d, mutation.id);\r\n }\r\n target.textContent = mutation.value;\r\n if (this.usingVirtualDom) {\r\n const parent = target.parentNode;\r\n if (((_a = parent === null || parent === void 0 ? void 0 : parent.rules) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n parent.rules = [];\r\n }\r\n });\r\n d.attributes.forEach((mutation) => {\r\n var _a;\r\n const target = mirror.getNode(mutation.id);\r\n if (!target) {\r\n if (d.removes.find((r) => r.id === mutation.id)) {\r\n return;\r\n }\r\n return this.warnNodeNotFound(d, mutation.id);\r\n }\r\n for (const attributeName in mutation.attributes) {\r\n if (typeof attributeName === 'string') {\r\n const value = mutation.attributes[attributeName];\r\n if (value === null) {\r\n target.removeAttribute(attributeName);\r\n }\r\n else if (typeof value === 'string') {\r\n try {\r\n if (attributeName === '_cssText' &&\r\n (target.nodeName === 'LINK' || target.nodeName === 'STYLE')) {\r\n try {\r\n const newSn = mirror.getMeta(target);\r\n Object.assign(newSn.attributes, mutation.attributes);\r\n const newNode = buildNodeWithSN(newSn, {\r\n doc: target.ownerDocument,\r\n mirror: mirror,\r\n skipChild: true,\r\n hackCss: true,\r\n cache: this.cache,\r\n });\r\n const siblingNode = target.nextSibling;\r\n const parentNode = target.parentNode;\r\n if (newNode && parentNode) {\r\n parentNode.removeChild(target);\r\n parentNode.insertBefore(newNode, siblingNode);\r\n mirror.replace(mutation.id, newNode);\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n }\r\n }\r\n if (attributeName === 'value' && target.nodeName === 'TEXTAREA') {\r\n const textarea = target;\r\n textarea.childNodes.forEach((c) => textarea.removeChild(c));\r\n const tn = (_a = target.ownerDocument) === null || _a === void 0 ? void 0 : _a.createTextNode(value);\r\n if (tn) {\r\n textarea.appendChild(tn);\r\n }\r\n }\r\n else {\r\n target.setAttribute(attributeName, value);\r\n }\r\n }\r\n catch (error) {\r\n this.warn('An error occurred may due to the checkout feature.', error);\r\n }\r\n }\r\n else if (attributeName === 'style') {\r\n const styleValues = value;\r\n const targetEl = target;\r\n for (const s in styleValues) {\r\n if (styleValues[s] === false) {\r\n targetEl.style.removeProperty(s);\r\n }\r\n else if (styleValues[s] instanceof Array) {\r\n const svp = styleValues[s];\r\n targetEl.style.setProperty(s, svp[0], svp[1]);\r\n }\r\n else {\r\n const svs = styleValues[s];\r\n targetEl.style.setProperty(s, svs);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n applyScroll(d, isSync) {\r\n var _a, _b;\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n const sn = this.mirror.getMeta(target);\r\n if (target === this.iframe.contentDocument) {\r\n (_a = this.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.scrollTo({\r\n top: d.y,\r\n left: d.x,\r\n behavior: isSync ? 'auto' : 'smooth',\r\n });\r\n }\r\n else if ((sn === null || sn === void 0 ? void 0 : sn.type) === NodeType$2.Document) {\r\n (_b = target.defaultView) === null || _b === void 0 ? void 0 : _b.scrollTo({\r\n top: d.y,\r\n left: d.x,\r\n behavior: isSync ? 'auto' : 'smooth',\r\n });\r\n }\r\n else {\r\n try {\r\n target.scrollTo({\r\n top: d.y,\r\n left: d.x,\r\n behavior: isSync ? 'auto' : 'smooth',\r\n });\r\n }\r\n catch (error) {\r\n }\r\n }\r\n }\r\n applyInput(d) {\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n try {\r\n target.checked = d.isChecked;\r\n target.value = d.text;\r\n }\r\n catch (error) {\r\n }\r\n }\r\n applySelection(d) {\r\n try {\r\n const selectionSet = new Set();\r\n const ranges = d.ranges.map(({ start, startOffset, end, endOffset }) => {\r\n const startContainer = this.mirror.getNode(start);\r\n const endContainer = this.mirror.getNode(end);\r\n if (!startContainer || !endContainer)\r\n return;\r\n const result = new Range();\r\n result.setStart(startContainer, startOffset);\r\n result.setEnd(endContainer, endOffset);\r\n const doc = startContainer.ownerDocument;\r\n const selection = doc === null || doc === void 0 ? void 0 : doc.getSelection();\r\n selection && selectionSet.add(selection);\r\n return {\r\n range: result,\r\n selection,\r\n };\r\n });\r\n selectionSet.forEach((s) => s.removeAllRanges());\r\n ranges.forEach((r) => { var _a; return r && ((_a = r.selection) === null || _a === void 0 ? void 0 : _a.addRange(r.range)); });\r\n }\r\n catch (error) {\r\n }\r\n }\r\n applyStyleSheetMutation(data) {\r\n var _a;\r\n let styleSheet = null;\r\n if (data.styleId)\r\n styleSheet = this.styleMirror.getStyle(data.styleId);\r\n else if (data.id)\r\n styleSheet =\r\n ((_a = this.mirror.getNode(data.id)) === null || _a === void 0 ? void 0 : _a.sheet) || null;\r\n if (!styleSheet)\r\n return;\r\n if (data.source === IncrementalSource.StyleSheetRule)\r\n this.applyStyleSheetRule(data, styleSheet);\r\n else if (data.source === IncrementalSource.StyleDeclaration)\r\n this.applyStyleDeclaration(data, styleSheet);\r\n }\r\n applyStyleSheetRule(data, styleSheet) {\r\n var _a, _b, _c, _d;\r\n (_a = data.adds) === null || _a === void 0 ? void 0 : _a.forEach(({ rule, index: nestedIndex }) => {\r\n try {\r\n if (Array.isArray(nestedIndex)) {\r\n const { positions, index } = getPositionsAndIndex(nestedIndex);\r\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\r\n nestedRule.insertRule(rule, index);\r\n }\r\n else {\r\n const index = nestedIndex === undefined\r\n ? undefined\r\n : Math.min(nestedIndex, styleSheet.cssRules.length);\r\n styleSheet === null || styleSheet === void 0 ? void 0 : styleSheet.insertRule(rule, index);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n });\r\n (_b = data.removes) === null || _b === void 0 ? void 0 : _b.forEach(({ index: nestedIndex }) => {\r\n try {\r\n if (Array.isArray(nestedIndex)) {\r\n const { positions, index } = getPositionsAndIndex(nestedIndex);\r\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\r\n nestedRule.deleteRule(index || 0);\r\n }\r\n else {\r\n styleSheet === null || styleSheet === void 0 ? void 0 : styleSheet.deleteRule(nestedIndex);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n });\r\n if (data.replace)\r\n try {\r\n void ((_c = styleSheet.replace) === null || _c === void 0 ? void 0 : _c.call(styleSheet, data.replace));\r\n }\r\n catch (e) {\r\n }\r\n if (data.replaceSync)\r\n try {\r\n (_d = styleSheet.replaceSync) === null || _d === void 0 ? void 0 : _d.call(styleSheet, data.replaceSync);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n applyStyleDeclaration(data, styleSheet) {\r\n if (data.set) {\r\n const rule = getNestedRule(styleSheet.rules, data.index);\r\n rule.style.setProperty(data.set.property, data.set.value, data.set.priority);\r\n }\r\n if (data.remove) {\r\n const rule = getNestedRule(styleSheet.rules, data.index);\r\n rule.style.removeProperty(data.remove.property);\r\n }\r\n }\r\n applyAdoptedStyleSheet(data) {\r\n var _a;\r\n const targetHost = this.mirror.getNode(data.id);\r\n if (!targetHost)\r\n return;\r\n (_a = data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n var _a;\r\n let newStyleSheet = null;\r\n let hostWindow = null;\r\n if (hasShadowRoot(targetHost))\r\n hostWindow = ((_a = targetHost.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) || null;\r\n else if (targetHost.nodeName === '#document')\r\n hostWindow = targetHost.defaultView;\r\n if (!hostWindow)\r\n return;\r\n try {\r\n newStyleSheet = new hostWindow.CSSStyleSheet();\r\n this.styleMirror.add(newStyleSheet, style.styleId);\r\n this.applyStyleSheetRule({\r\n source: IncrementalSource.StyleSheetRule,\r\n adds: style.rules,\r\n }, newStyleSheet);\r\n }\r\n catch (e) {\r\n }\r\n });\r\n const MAX_RETRY_TIME = 10;\r\n let count = 0;\r\n const adoptStyleSheets = (targetHost, styleIds) => {\r\n const stylesToAdopt = styleIds\r\n .map((styleId) => this.styleMirror.getStyle(styleId))\r\n .filter((style) => style !== null);\r\n if (hasShadowRoot(targetHost))\r\n targetHost.shadowRoot.adoptedStyleSheets =\r\n stylesToAdopt;\r\n else if (targetHost.nodeName === '#document')\r\n targetHost.adoptedStyleSheets = stylesToAdopt;\r\n if (stylesToAdopt.length !== styleIds.length && count < MAX_RETRY_TIME) {\r\n setTimeout(() => adoptStyleSheets(targetHost, styleIds), 0 + 100 * count);\r\n count++;\r\n }\r\n };\r\n adoptStyleSheets(targetHost, data.styleIds);\r\n }\r\n legacy_resolveMissingNode(map, parent, target, targetMutation) {\r\n const { previousId, nextId } = targetMutation;\r\n const previousInMap = previousId && map[previousId];\r\n const nextInMap = nextId && map[nextId];\r\n if (previousInMap) {\r\n const { node, mutation } = previousInMap;\r\n parent.insertBefore(node, target);\r\n delete map[mutation.node.id];\r\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\r\n if (mutation.previousId || mutation.nextId) {\r\n this.legacy_resolveMissingNode(map, parent, node, mutation);\r\n }\r\n }\r\n if (nextInMap) {\r\n const { node, mutation } = nextInMap;\r\n parent.insertBefore(node, target.nextSibling);\r\n delete map[mutation.node.id];\r\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\r\n if (mutation.previousId || mutation.nextId) {\r\n this.legacy_resolveMissingNode(map, parent, node, mutation);\r\n }\r\n }\r\n }\r\n moveAndHover(x, y, id, isSync, debugData) {\r\n const target = this.mirror.getNode(id);\r\n if (!target) {\r\n return this.debugNodeNotFound(debugData, id);\r\n }\r\n const base = getBaseDimension(target, this.iframe);\r\n const _x = x * base.absoluteScale + base.x;\r\n const _y = y * base.absoluteScale + base.y;\r\n this.mouse.style.left = `${_x}px`;\r\n this.mouse.style.top = `${_y}px`;\r\n if (!isSync) {\r\n this.drawMouseTail({ x: _x, y: _y });\r\n }\r\n this.hoverElements(target);\r\n }\r\n drawMouseTail(position) {\r\n if (!this.mouseTail) {\r\n return;\r\n }\r\n const { lineCap, lineWidth, strokeStyle, duration } = this.config.mouseTail === true\r\n ? defaultMouseTailConfig\r\n : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail);\r\n const draw = () => {\r\n if (!this.mouseTail) {\r\n return;\r\n }\r\n const ctx = this.mouseTail.getContext('2d');\r\n if (!ctx || !this.tailPositions.length) {\r\n return;\r\n }\r\n ctx.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height);\r\n ctx.beginPath();\r\n ctx.lineWidth = lineWidth;\r\n ctx.lineCap = lineCap;\r\n ctx.strokeStyle = strokeStyle;\r\n ctx.moveTo(this.tailPositions[0].x, this.tailPositions[0].y);\r\n this.tailPositions.forEach((p) => ctx.lineTo(p.x, p.y));\r\n ctx.stroke();\r\n };\r\n this.tailPositions.push(position);\r\n draw();\r\n setTimeout(() => {\r\n this.tailPositions = this.tailPositions.filter((p) => p !== position);\r\n draw();\r\n }, duration / this.speedService.state.context.timer.speed);\r\n }\r\n hoverElements(el) {\r\n var _a;\r\n (_a = (this.lastHoveredRootNode || this.iframe.contentDocument)) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.\\\\:hover').forEach((hoveredEl) => {\r\n hoveredEl.classList.remove(':hover');\r\n });\r\n this.lastHoveredRootNode = el.getRootNode();\r\n let currentEl = el;\r\n while (currentEl) {\r\n if (currentEl.classList) {\r\n currentEl.classList.add(':hover');\r\n }\r\n currentEl = currentEl.parentElement;\r\n }\r\n }\r\n isUserInteraction(event) {\r\n if (event.type !== EventType.IncrementalSnapshot) {\r\n return false;\r\n }\r\n return (event.data.source > IncrementalSource.Mutation &&\r\n event.data.source <= IncrementalSource.Input);\r\n }\r\n backToNormal() {\r\n this.nextUserInteractionEvent = null;\r\n if (this.speedService.state.matches('normal')) {\r\n return;\r\n }\r\n this.speedService.send({ type: 'BACK_TO_NORMAL' });\r\n this.emitter.emit(ReplayerEvents.SkipEnd, {\r\n speed: this.speedService.state.context.normalSpeed,\r\n });\r\n }\r\n warnNodeNotFound(d, id) {\r\n this.warn(`Node with id '${id}' not found. `, d);\r\n }\r\n warnCanvasMutationFailed(d, error) {\r\n this.warn(`Has error on canvas update`, error, 'canvas mutation:', d);\r\n }\r\n debugNodeNotFound(d, id) {\r\n this.debug(`Node with id '${id}' not found. `, d);\r\n }\r\n warn(...args) {\r\n if (!this.config.showWarning) {\r\n return;\r\n }\r\n this.config.logger.warn(REPLAY_CONSOLE_PREFIX, ...args);\r\n }\r\n debug(...args) {\r\n if (!this.config.showDebug) {\r\n return;\r\n }\r\n this.config.logger.log(REPLAY_CONSOLE_PREFIX, ...args);\r\n }\r\n}\n\nconst { addCustomEvent } = record;\r\nconst { freezePage } = record;\n\n// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([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, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([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, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nfunction zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nfunction unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nfunction strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nfunction strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n\nconst MARK = 'v1';\n\nconst pack = (event) => {\r\n const _e = Object.assign(Object.assign({}, event), { v: MARK });\r\n return strFromU8(zlibSync(strToU8(JSON.stringify(_e))), true);\r\n};\n\nconst unpack = (raw) => {\r\n if (typeof raw !== 'string') {\r\n return raw;\r\n }\r\n try {\r\n const e = JSON.parse(raw);\r\n if (e.timestamp) {\r\n return e;\r\n }\r\n }\r\n catch (error) {\r\n }\r\n try {\r\n const e = JSON.parse(strFromU8(unzlibSync(strToU8(raw, true))));\r\n if (e.v === MARK) {\r\n return e;\r\n }\r\n throw new Error(`These events were packed with packer ${e.v} which is incompatible with current packer ${MARK}.`);\r\n }\r\n catch (error) {\r\n console.error(error);\r\n throw new Error('Unknown data format.');\r\n }\r\n};\n\nclass StackFrame {\r\n constructor(obj) {\r\n this.fileName = obj.fileName || '';\r\n this.functionName = obj.functionName || '';\r\n this.lineNumber = obj.lineNumber;\r\n this.columnNumber = obj.columnNumber;\r\n }\r\n toString() {\r\n const lineNumber = this.lineNumber || '';\r\n const columnNumber = this.columnNumber || '';\r\n if (this.functionName)\r\n return `${this.functionName} (${this.fileName}:${lineNumber}:${columnNumber})`;\r\n return `${this.fileName}:${lineNumber}:${columnNumber}`;\r\n }\r\n}\r\nconst FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\r\nconst CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\r\nconst SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\r\nconst ErrorStackParser = {\r\n parse: function (error) {\r\n if (!error) {\r\n return [];\r\n }\r\n if (typeof error.stacktrace !== 'undefined' ||\r\n typeof error['opera#sourceloc'] !== 'undefined') {\r\n return this.parseOpera(error);\r\n }\r\n else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\r\n return this.parseV8OrIE(error);\r\n }\r\n else if (error.stack) {\r\n return this.parseFFOrSafari(error);\r\n }\r\n else {\r\n console.warn('[console-record-plugin]: Failed to parse error object:', error);\r\n return [];\r\n }\r\n },\r\n extractLocation: function (urlLike) {\r\n if (urlLike.indexOf(':') === -1) {\r\n return [urlLike];\r\n }\r\n const regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\r\n const parts = regExp.exec(urlLike.replace(/[()]/g, ''));\r\n if (!parts)\r\n throw new Error(`Cannot parse given url: ${urlLike}`);\r\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\r\n },\r\n parseV8OrIE: function (error) {\r\n const filtered = error.stack.split('\\n').filter(function (line) {\r\n return !!line.match(CHROME_IE_STACK_REGEXP);\r\n }, this);\r\n return filtered.map(function (line) {\r\n if (line.indexOf('(eval ') > -1) {\r\n line = line\r\n .replace(/eval code/g, 'eval')\r\n .replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\r\n }\r\n let sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\r\n const location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\r\n sanitizedLine = location\r\n ? sanitizedLine.replace(location[0], '')\r\n : sanitizedLine;\r\n const tokens = sanitizedLine.split(/\\s+/).slice(1);\r\n const locationParts = this.extractLocation(location ? location[1] : tokens.pop());\r\n const functionName = tokens.join(' ') || undefined;\r\n const fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1\r\n ? undefined\r\n : locationParts[0];\r\n return new StackFrame({\r\n functionName,\r\n fileName,\r\n lineNumber: locationParts[1],\r\n columnNumber: locationParts[2],\r\n });\r\n }, this);\r\n },\r\n parseFFOrSafari: function (error) {\r\n const filtered = error.stack.split('\\n').filter(function (line) {\r\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\r\n }, this);\r\n return filtered.map(function (line) {\r\n if (line.indexOf(' > eval') > -1) {\r\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\r\n }\r\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\r\n return new StackFrame({\r\n functionName: line,\r\n });\r\n }\r\n else {\r\n const functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\r\n const matches = line.match(functionNameRegex);\r\n const functionName = matches && matches[1] ? matches[1] : undefined;\r\n const locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\r\n return new StackFrame({\r\n functionName,\r\n fileName: locationParts[0],\r\n lineNumber: locationParts[1],\r\n columnNumber: locationParts[2],\r\n });\r\n }\r\n }, this);\r\n },\r\n parseOpera: function (e) {\r\n if (!e.stacktrace ||\r\n (e.message.indexOf('\\n') > -1 &&\r\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\r\n return this.parseOpera9(e);\r\n }\r\n else if (!e.stack) {\r\n return this.parseOpera10(e);\r\n }\r\n else {\r\n return this.parseOpera11(e);\r\n }\r\n },\r\n parseOpera9: function (e) {\r\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\r\n const lines = e.message.split('\\n');\r\n const result = [];\r\n for (let i = 2, len = lines.length; i < len; i += 2) {\r\n const match = lineRE.exec(lines[i]);\r\n if (match) {\r\n result.push(new StackFrame({\r\n fileName: match[2],\r\n lineNumber: parseFloat(match[1]),\r\n }));\r\n }\r\n }\r\n return result;\r\n },\r\n parseOpera10: function (e) {\r\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\r\n const lines = e.stacktrace.split('\\n');\r\n const result = [];\r\n for (let i = 0, len = lines.length; i < len; i += 2) {\r\n const match = lineRE.exec(lines[i]);\r\n if (match) {\r\n result.push(new StackFrame({\r\n functionName: match[3] || undefined,\r\n fileName: match[2],\r\n lineNumber: parseFloat(match[1]),\r\n }));\r\n }\r\n }\r\n return result;\r\n },\r\n parseOpera11: function (error) {\r\n const filtered = error.stack.split('\\n').filter(function (line) {\r\n return (!!line.match(FIREFOX_SAFARI_STACK_REGEXP) &&\r\n !line.match(/^Error created at/));\r\n }, this);\r\n return filtered.map(function (line) {\r\n const tokens = line.split('@');\r\n const locationParts = this.extractLocation(tokens.pop());\r\n const functionCall = tokens.shift() || '';\r\n const functionName = functionCall\r\n .replace(/<anonymous function(: (\\w+))?>/, '$2')\r\n .replace(/\\([^)]*\\)/g, '') || undefined;\r\n return new StackFrame({\r\n functionName,\r\n fileName: locationParts[0],\r\n lineNumber: locationParts[1],\r\n columnNumber: locationParts[2],\r\n });\r\n }, this);\r\n },\r\n};\n\nfunction pathToSelector(node) {\r\n if (!node || !node.outerHTML) {\r\n return '';\r\n }\r\n let path = '';\r\n while (node.parentElement) {\r\n let name = node.localName;\r\n if (!name) {\r\n break;\r\n }\r\n name = name.toLowerCase();\r\n const parent = node.parentElement;\r\n const domSiblings = [];\r\n if (parent.children && parent.children.length > 0) {\r\n for (let i = 0; i < parent.children.length; i++) {\r\n const sibling = parent.children[i];\r\n if (sibling.localName && sibling.localName.toLowerCase) {\r\n if (sibling.localName.toLowerCase() === name) {\r\n domSiblings.push(sibling);\r\n }\r\n }\r\n }\r\n }\r\n if (domSiblings.length > 1) {\r\n name += `:eq(${domSiblings.indexOf(node)})`;\r\n }\r\n path = name + (path ? '>' + path : '');\r\n node = parent;\r\n }\r\n return path;\r\n}\r\nfunction isObject(obj) {\r\n return Object.prototype.toString.call(obj) === '[object Object]';\r\n}\r\nfunction isObjTooDeep(obj, limit) {\r\n if (limit === 0) {\r\n return true;\r\n }\r\n const keys = Object.keys(obj);\r\n for (const key of keys) {\r\n if (isObject(obj[key]) &&\r\n isObjTooDeep(obj[key], limit - 1)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction stringify(obj, stringifyOptions) {\r\n const options = {\r\n numOfKeysLimit: 50,\r\n depthOfLimit: 4,\r\n };\r\n Object.assign(options, stringifyOptions);\r\n const stack = [];\r\n const keys = [];\r\n return JSON.stringify(obj, function (key, value) {\r\n if (stack.length > 0) {\r\n const thisPos = stack.indexOf(this);\r\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\r\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\r\n if (~stack.indexOf(value)) {\r\n if (stack[0] === value) {\r\n value = '[Circular ~]';\r\n }\r\n else {\r\n value =\r\n '[Circular ~.' +\r\n keys.slice(0, stack.indexOf(value)).join('.') +\r\n ']';\r\n }\r\n }\r\n }\r\n else {\r\n stack.push(value);\r\n }\r\n if (value === null)\r\n return value;\r\n if (value === undefined)\r\n return 'undefined';\r\n if (shouldIgnore(value)) {\r\n return toString(value);\r\n }\r\n if (typeof value === 'bigint') {\r\n return value.toString() + 'n';\r\n }\r\n if (value instanceof Event) {\r\n const eventResult = {};\r\n for (const eventKey in value) {\r\n const eventValue = value[eventKey];\r\n if (Array.isArray(eventValue)) {\r\n eventResult[eventKey] = pathToSelector((eventValue.length ? eventValue[0] : null));\r\n }\r\n else {\r\n eventResult[eventKey] = eventValue;\r\n }\r\n }\r\n return eventResult;\r\n }\r\n else if (value instanceof Node) {\r\n if (value instanceof HTMLElement) {\r\n return value ? value.outerHTML : '';\r\n }\r\n return value.nodeName;\r\n }\r\n else if (value instanceof Error) {\r\n return value.stack\r\n ? value.stack + '\\nEnd of stack for Error object'\r\n : value.name + ': ' + value.message;\r\n }\r\n return value;\r\n });\r\n function shouldIgnore(_obj) {\r\n if (isObject(_obj) && Object.keys(_obj).length > options.numOfKeysLimit) {\r\n return true;\r\n }\r\n if (typeof _obj === 'function') {\r\n return true;\r\n }\r\n if (isObject(_obj) &&\r\n isObjTooDeep(_obj, options.depthOfLimit)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n function toString(_obj) {\r\n let str = _obj.toString();\r\n if (options.stringLengthLimit && str.length > options.stringLengthLimit) {\r\n str = `${str.slice(0, options.stringLengthLimit)}...`;\r\n }\r\n return str;\r\n }\r\n}\n\nconst defaultLogOptions = {\r\n level: [\r\n 'assert',\r\n 'clear',\r\n 'count',\r\n 'countReset',\r\n 'debug',\r\n 'dir',\r\n 'dirxml',\r\n 'error',\r\n 'group',\r\n 'groupCollapsed',\r\n 'groupEnd',\r\n 'info',\r\n 'log',\r\n 'table',\r\n 'time',\r\n 'timeEnd',\r\n 'timeLog',\r\n 'trace',\r\n 'warn',\r\n ],\r\n lengthThreshold: 1000,\r\n logger: 'console',\r\n};\r\nfunction initLogObserver(cb, win, options) {\r\n const logOptions = (options ? Object.assign({}, defaultLogOptions, options) : defaultLogOptions);\r\n const loggerType = logOptions.logger;\r\n if (!loggerType) {\r\n return () => {\r\n };\r\n }\r\n let logger;\r\n if (typeof loggerType === 'string') {\r\n logger = win[loggerType];\r\n }\r\n else {\r\n logger = loggerType;\r\n }\r\n let logCount = 0;\r\n let inStack = false;\r\n const cancelHandlers = [];\r\n if (logOptions.level.includes('error')) {\r\n const errorHandler = (event) => {\r\n const message = event.message, error = event.error;\r\n const trace = ErrorStackParser.parse(error).map((stackFrame) => stackFrame.toString());\r\n const payload = [stringify(message, logOptions.stringifyOptions)];\r\n cb({\r\n level: 'error',\r\n trace,\r\n payload,\r\n });\r\n };\r\n win.addEventListener('error', errorHandler);\r\n cancelHandlers.push(() => {\r\n win.removeEventListener('error', errorHandler);\r\n });\r\n const unhandledrejectionHandler = (event) => {\r\n let error;\r\n let payload;\r\n if (event.reason instanceof Error) {\r\n error = event.reason;\r\n payload = [\r\n stringify(`Uncaught (in promise) ${error.name}: ${error.message}`, logOptions.stringifyOptions),\r\n ];\r\n }\r\n else {\r\n error = new Error();\r\n payload = [\r\n stringify('Uncaught (in promise)', logOptions.stringifyOptions),\r\n stringify(event.reason, logOptions.stringifyOptions),\r\n ];\r\n }\r\n const trace = ErrorStackParser.parse(error).map((stackFrame) => stackFrame.toString());\r\n cb({\r\n level: 'error',\r\n trace,\r\n payload,\r\n });\r\n };\r\n win.addEventListener('unhandledrejection', unhandledrejectionHandler);\r\n cancelHandlers.push(() => {\r\n win.removeEventListener('unhandledrejection', unhandledrejectionHandler);\r\n });\r\n }\r\n for (const levelType of logOptions.level) {\r\n cancelHandlers.push(replace(logger, levelType));\r\n }\r\n return () => {\r\n cancelHandlers.forEach((h) => h());\r\n };\r\n function replace(_logger, level) {\r\n if (!_logger[level]) {\r\n return () => {\r\n };\r\n }\r\n return patch(_logger, level, (original) => {\r\n return (...args) => {\r\n original.apply(this, args);\r\n if (inStack) {\r\n return;\r\n }\r\n inStack = true;\r\n try {\r\n const trace = ErrorStackParser.parse(new Error())\r\n .map((stackFrame) => stackFrame.toString())\r\n .splice(1);\r\n const payload = args.map((s) => stringify(s, logOptions.stringifyOptions));\r\n logCount++;\r\n if (logCount < logOptions.lengthThreshold) {\r\n cb({\r\n level,\r\n trace,\r\n payload,\r\n });\r\n }\r\n else if (logCount === logOptions.lengthThreshold) {\r\n cb({\r\n level: 'warn',\r\n trace: [],\r\n payload: [\r\n stringify('The number of log records reached the threshold.'),\r\n ],\r\n });\r\n }\r\n }\r\n catch (error) {\r\n original('rrweb logger error:', error, ...args);\r\n }\r\n finally {\r\n inStack = false;\r\n }\r\n };\r\n });\r\n }\r\n}\r\nconst PLUGIN_NAME = 'rrweb/console@1';\r\nconst getRecordConsolePlugin = (options) => ({\r\n name: PLUGIN_NAME,\r\n observer: initLogObserver,\r\n options: options,\r\n});\n\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nconst defaultLogConfig = {\r\n level: [\r\n 'assert',\r\n 'clear',\r\n 'count',\r\n 'countReset',\r\n 'debug',\r\n 'dir',\r\n 'dirxml',\r\n 'error',\r\n 'group',\r\n 'groupCollapsed',\r\n 'groupEnd',\r\n 'info',\r\n 'log',\r\n 'table',\r\n 'time',\r\n 'timeEnd',\r\n 'timeLog',\r\n 'trace',\r\n 'warn',\r\n ],\r\n replayLogger: undefined,\r\n};\r\nclass LogReplayPlugin {\r\n constructor(config) {\r\n this.config = Object.assign(defaultLogConfig, config);\r\n }\r\n getConsoleLogger() {\r\n const replayLogger = {};\r\n for (const level of this.config.level) {\r\n if (level === 'trace') {\r\n replayLogger[level] = (data) => {\r\n const logger = console.log[ORIGINAL_ATTRIBUTE_NAME]\r\n ? console.log[ORIGINAL_ATTRIBUTE_NAME]\r\n : console.log;\r\n logger(...data.payload.map((s) => JSON.parse(s)), this.formatMessage(data));\r\n };\r\n }\r\n else {\r\n replayLogger[level] = (data) => {\r\n const logger = console[level][ORIGINAL_ATTRIBUTE_NAME]\r\n ? console[level][ORIGINAL_ATTRIBUTE_NAME]\r\n : console[level];\r\n logger(...data.payload.map((s) => JSON.parse(s)), this.formatMessage(data));\r\n };\r\n }\r\n }\r\n return replayLogger;\r\n }\r\n formatMessage(data) {\r\n if (data.trace.length === 0) {\r\n return '';\r\n }\r\n const stackPrefix = '\\n\\tat ';\r\n let result = stackPrefix;\r\n result += data.trace.join(stackPrefix);\r\n return result;\r\n }\r\n}\r\nconst getReplayConsolePlugin = (options) => {\r\n const replayLogger = (options === null || options === void 0 ? void 0 : options.replayLogger) || new LogReplayPlugin(options).getConsoleLogger();\r\n return {\r\n handler(event, _isSync, context) {\r\n let logData = null;\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.Log) {\r\n logData = event.data;\r\n }\r\n else if (event.type === EventType.Plugin &&\r\n event.data.plugin === PLUGIN_NAME) {\r\n logData = event.data.payload;\r\n }\r\n if (logData) {\r\n try {\r\n if (typeof replayLogger[logData.level] === 'function') {\r\n replayLogger[logData.level](logData);\r\n }\r\n }\r\n catch (error) {\r\n if (context.replayer.config.showWarning) {\r\n console.warn(error);\r\n }\r\n }\r\n }\r\n },\r\n };\r\n};\n\nexports.EventType = EventType;\nexports.IncrementalSource = IncrementalSource;\nexports.MouseInteractions = MouseInteractions;\nexports.PLUGIN_NAME = PLUGIN_NAME;\nexports.Replayer = Replayer;\nexports.ReplayerEvents = ReplayerEvents;\nexports.addCustomEvent = addCustomEvent;\nexports.canvasMutation = canvasMutation;\nexports.freezePage = freezePage;\nexports.getRecordConsolePlugin = getRecordConsolePlugin;\nexports.getReplayConsolePlugin = getReplayConsolePlugin;\nexports.pack = pack;\nexports.record = record;\nexports.unpack = unpack;\nexports.utils = utils;\n","export class RecorderEvents {\n constructor() {\n /** The buffer to hold recorder event nodes */\n this.events = [];\n /** Payload metadata -- Should indicate when a replay blob started recording. Resets each time a harvest occurs.\n * cycle timestamps are used as fallbacks if event timestamps cannot be used\n */\n this.cycleTimestamp = Date.now();\n /** A value which increments with every new mutation node reported. Resets after a harvest is sent */\n this.payloadBytesEstimation = 0;\n /** Payload metadata -- Should indicate that the payload being sent has a full DOM snapshot. This can happen\n * -- When the recording library begins recording, it starts by taking a DOM snapshot\n * -- When visibility changes from \"hidden\" -> \"visible\", it must capture a full snapshot for the replay to work correctly across tabs\n */\n this.hasSnapshot = false;\n /** Payload metadata -- Should indicate that the payload being sent has a meta node. The meta node should always precede a snapshot node. */\n this.hasMeta = false;\n /** Payload metadata -- Should indicate that the payload being sent contains an error. Used for query/filter purposes in UI */\n this.hasError = false;\n /** Payload metadata -- Denotes whether all stylesheet elements were able to be inlined */\n this.inlinedAllStylesheets = true;\n }\n add(event) {\n this.events.push(event);\n }\n}","import { record as recorder } from 'rrweb';\nimport { stringify } from '../../../common/util/stringify';\nimport { AVG_COMPRESSION, CHECKOUT_MS, IDEAL_PAYLOAD_SIZE, QUERY_PARAM_PADDING, RRWEB_EVENT_TYPES, SR_EVENT_EMITTER_TYPES } from '../constants';\nimport { getConfigurationValue } from '../../../common/config/config';\nimport { RecorderEvents } from './recorder-events';\nimport { MODE } from '../../../common/session/constants';\nimport { stylesheetEvaluator } from './stylesheet-evaluator';\nimport { handle } from '../../../common/event-emitter/handle';\nimport { SUPPORTABILITY_METRIC_CHANNEL } from '../../metrics/constants';\nimport { FEATURE_NAMES } from '../../../loaders/features/features';\nimport { buildNRMetaNode } from './utils';\nexport class Recorder {\n /** Each page mutation or event will be stored (raw) in this array. This array will be cleared on each harvest */\n #events;\n /** Backlog used for a 2-part sliding window to guarantee a 15-30s buffer window */\n #backloggedEvents;\n /** array of recorder events -- Will be filled only if forced harvest was triggered and harvester does not exist */\n #preloaded;\n /** flag that if true, blocks events from being \"stored\". Only set to true when a full snapshot has incomplete nodes (only stylesheets ATM) */\n #fixing = false;\n constructor(parent) {\n this.#events = new RecorderEvents();\n this.#backloggedEvents = new RecorderEvents();\n this.#preloaded = [new RecorderEvents()];\n /** True when actively recording, false when paused or stopped */\n this.recording = false;\n /** The pointer to the current bucket holding rrweb events */\n this.currentBufferTarget = this.#events;\n /** Hold on to the last meta node, so that it can be re-inserted if the meta and snapshot nodes are broken up due to harvesting */\n this.lastMeta = false;\n /** The parent class that instantiated the recorder */\n this.parent = parent;\n /** Config to inform to inline stylesheet contents (true default) */\n this.shouldInlineStylesheets = getConfigurationValue(this.parent.agentIdentifier, 'session_replay.inline_stylesheet');\n /** A flag that can be set to false by failing conversions to stop the fetching process */\n this.shouldFix = this.shouldInlineStylesheets;\n /** The method to stop recording. This defaults to a noop, but is overwritten once the recording library is imported and initialized */\n this.stopRecording = () => {/* no-op until set by rrweb initializer */};\n }\n getEvents() {\n if (this.#preloaded[0]?.events.length) return {\n ...this.#preloaded[0],\n type: 'preloaded'\n };\n return {\n events: [...this.#backloggedEvents.events, ...this.#events.events].filter(x => x),\n type: 'standard',\n cycleTimestamp: Math.min(this.#backloggedEvents.cycleTimestamp, this.#events.cycleTimestamp),\n payloadBytesEstimation: this.#backloggedEvents.payloadBytesEstimation + this.#events.payloadBytesEstimation,\n hasError: this.#backloggedEvents.hasError || this.#events.hasError,\n hasMeta: this.#backloggedEvents.hasMeta || this.#events.hasMeta,\n hasSnapshot: this.#backloggedEvents.hasSnapshot || this.#events.hasSnapshot,\n inlinedAllStylesheets: !!this.#backloggedEvents.events.length && this.#backloggedEvents.inlinedAllStylesheets || this.#events.inlinedAllStylesheets\n };\n }\n\n /** Clears the buffer (this.#events), and resets all payload metadata properties */\n clearBuffer() {\n if (this.#preloaded[0]?.events.length) this.#preloaded.shift();else if (this.parent.mode === MODE.ERROR) this.#backloggedEvents = this.#events;else this.#backloggedEvents = new RecorderEvents();\n this.#events = new RecorderEvents();\n }\n\n /** Begin recording using configured recording lib */\n startRecording() {\n this.recording = true;\n const {\n block_class,\n ignore_class,\n mask_text_class,\n block_selector,\n mask_input_options,\n mask_text_selector,\n mask_all_inputs,\n inline_stylesheet,\n inline_images,\n collect_fonts\n } = getConfigurationValue(this.parent.agentIdentifier, 'session_replay');\n const customMasker = (text, element) => {\n if (element?.type?.toLowerCase() !== 'password' && (element?.dataset.nrUnmask !== undefined || element?.classList.contains('nr-unmask'))) return text;\n return '*'.repeat(text.length);\n };\n // set up rrweb configurations for maximum privacy --\n // https://newrelic.atlassian.net/wiki/spaces/O11Y/pages/2792293280/2023+02+28+Browser+-+Session+Replay#Configuration-options\n const stop = recorder({\n emit: this.audit.bind(this),\n blockClass: block_class,\n ignoreClass: ignore_class,\n maskTextClass: mask_text_class,\n blockSelector: block_selector,\n maskInputOptions: mask_input_options,\n maskTextSelector: mask_text_selector,\n maskTextFn: customMasker,\n maskAllInputs: mask_all_inputs,\n maskInputFn: customMasker,\n inlineStylesheet: inline_stylesheet,\n inlineImages: inline_images,\n collectFonts: collect_fonts,\n checkoutEveryNms: CHECKOUT_MS[this.parent.mode],\n /** Emits errors thrown by rrweb directly before bubbling them up to the window */\n errorHandler: err => {\n /** capture rrweb errors as \"internal\" errors only */\n this.parent.ee.emit('internal-error', [err]);\n /** returning true informs rrweb to swallow the error instead of throwing it to the window */\n return true;\n }\n });\n this.stopRecording = () => {\n this.recording = false;\n this.parent.ee.emit(SR_EVENT_EMITTER_TYPES.REPLAY_RUNNING, [false, this.parent.mode]);\n stop?.();\n };\n }\n\n /**\n * audit - Checks if the event node payload is missing certain attributes\n * will forward on to the \"store\" method if nothing needs async fixing\n * @param {*} event - An RRWEB event node\n * @param {*} isCheckout - Flag indicating if the payload was triggered as a checkout\n */\n audit(event, isCheckout) {\n /** only run the audit if inline_stylesheets is configured as on (default behavior) */\n if (this.shouldInlineStylesheets === false || !this.shouldFix) {\n this.currentBufferTarget.inlinedAllStylesheets = false;\n return this.store(event, isCheckout);\n }\n /** An count of stylesheet objects that were blocked from accessing contents via JS */\n const incompletes = stylesheetEvaluator.evaluate();\n /** Only stop ignoring data if already ignoring and a new valid snapshap is taking place (0 incompletes and we get a meta node for the snap) */\n if (!incompletes && this.#fixing && event.type === RRWEB_EVENT_TYPES.Meta) this.#fixing = false;\n if (incompletes > 0) {\n /** wait for the evaluator to download/replace the incompletes' src code and then take a new snap */\n stylesheetEvaluator.fix().then(failedToFix => {\n if (failedToFix > 0) {\n this.currentBufferTarget.inlinedAllStylesheets = false;\n this.shouldFix = false;\n }\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['SessionReplay/Payload/Missing-Inline-Css/Failed', failedToFix], undefined, FEATURE_NAMES.metrics, this.parent.ee);\n handle(SUPPORTABILITY_METRIC_CHANNEL, ['SessionReplay/Payload/Missing-Inline-Css/Fixed', incompletes - failedToFix], undefined, FEATURE_NAMES.metrics, this.parent.ee);\n this.takeFullSnapshot();\n });\n /** Only start ignoring data if got a faulty snapshot */\n if (event.type === RRWEB_EVENT_TYPES.FullSnapshot || event.type === RRWEB_EVENT_TYPES.Meta) this.#fixing = true;\n }\n /** Only store the data if not being \"fixed\" (full snapshots that have broken css) */\n if (!this.#fixing) this.store(event, isCheckout);\n }\n\n /** Store a payload in the buffer (this.#events). This should be the callback to the recording lib noticing a mutation */\n store(event, isCheckout) {\n if (!event) return;\n if (!this.parent.scheduler && this.#preloaded.length) this.currentBufferTarget = this.#preloaded[this.#preloaded.length - 1];else this.currentBufferTarget = this.#events;\n if (this.parent.blocked) return;\n if (!this.notified) {\n this.parent.ee.emit(SR_EVENT_EMITTER_TYPES.REPLAY_RUNNING, [true, this.parent.mode]);\n this.notified = true;\n }\n if (this.parent.timeKeeper?.ready && !event.__newrelic) {\n event.__newrelic = buildNRMetaNode(event.timestamp, this.parent.timeKeeper);\n event.timestamp = this.parent.timeKeeper.correctAbsoluteTimestamp(event.timestamp);\n }\n event.__serialized = stringify(event);\n const eventBytes = event.__serialized.length;\n /** The estimated size of the payload after compression */\n const payloadSize = this.getPayloadSize(eventBytes);\n // Checkout events are flags by the recording lib that indicate a fullsnapshot was taken every n ms. These are important\n // to help reconstruct the replay later and must be included. While waiting and buffering for errors to come through,\n // each time we see a new checkout, we can drop the old data.\n // we need to check for meta because rrweb will flag it as checkout twice, once for meta, then once for snapshot\n if (this.parent.mode === MODE.ERROR && isCheckout && event.type === RRWEB_EVENT_TYPES.Meta) {\n // we are still waiting for an error to throw, so keep wiping the buffer over time\n this.clearBuffer();\n }\n\n // meta event\n if (event.type === RRWEB_EVENT_TYPES.Meta) {\n this.currentBufferTarget.hasMeta = true;\n }\n // snapshot event\n if (event.type === RRWEB_EVENT_TYPES.FullSnapshot) {\n this.currentBufferTarget.hasSnapshot = true;\n }\n this.currentBufferTarget.add(event);\n this.currentBufferTarget.payloadBytesEstimation += eventBytes;\n\n // We are making an effort to try to keep payloads manageable for unloading. If they reach the unload limit before their interval,\n // it will send immediately. This often happens on the first snapshot, which can be significantly larger than the other payloads.\n if ((event.type === RRWEB_EVENT_TYPES.FullSnapshot && this.currentBufferTarget.hasMeta || payloadSize > IDEAL_PAYLOAD_SIZE) && this.parent.mode === MODE.FULL) {\n // if we've made it to the ideal size of ~64kb before the interval timer, we should send early.\n if (this.parent.scheduler) {\n this.parent.scheduler.runHarvest();\n } else {\n // we are still in \"preload\" and it triggered a \"stop point\". Make a new set, which will get pointed at on next cycle\n this.#preloaded.push(new RecorderEvents());\n }\n }\n }\n\n /** force the recording lib to take a full DOM snapshot. This needs to occur in certain cases, like visibility changes */\n takeFullSnapshot() {\n try {\n if (!this.recording) return;\n recorder.takeFullSnapshot();\n } catch (err) {\n // in the off chance we think we are recording, but rrweb does not, rrweb's lib will throw an error. This catch is just a precaution\n }\n }\n clearTimestamps() {\n this.currentBufferTarget.cycleTimestamp = undefined;\n }\n\n /** Estimate the payload size */\n getPayloadSize() {\n let newBytes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n // the query param padding constant gives us some padding for the other metadata to be safely injected\n return this.estimateCompression(this.currentBufferTarget.payloadBytesEstimation + newBytes) + QUERY_PARAM_PADDING;\n }\n\n /** Extensive research has yielded about an 88% compression factor on these payloads.\n * This is an estimation using that factor as to not cause performance issues while evaluating\n * https://staging.onenr.io/037jbJWxbjy\n * */\n estimateCompression(data) {\n if (!!this.parent.gzipper && !!this.parent.u8) return data * AVG_COMPRESSION;\n return data;\n }\n}","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([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, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([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, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v.BYTES_PER_ELEMENT == 2 ? u16 : v.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n if (!sl || (st && st.f && !st.l))\n return buf || new u8(0);\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [et, 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[pos >> 3] = lst;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n // deopt when i > s - 3 - at end, deopt acceptable\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst && pos & 7)\n pos = wfblk(w, pos + 1, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return ((d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) | (d[l - 1] << 24)) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if (d[1] & 32)\n err(6, 'invalid zlib data: preset dictionaries not supported');\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = this.p.length > 3 ? gzs(this.p) : 4;\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n err(6, 'invalid gzip data');\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return [r, slc(d, i - 1)];\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), ch = _a[0], np = _a[1];\n if (final) {\n if (np.length)\n err(8);\n this.p = null;\n }\n else\n this.p = np;\n this.ondata(ch, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td)\n return td.decode(dat);\n else {\n var _a = dutf8(dat), out = _a[0], ext = _a[1];\n if (ext.length)\n err(8);\n return out;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this_1 = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this_1.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this_1.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this_1.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this_1.ondata(err, dat, final);\n _this_1.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this_1 = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this_1.d & 1))\n return;\n _this_1.u.splice(-1, 1);\n _this_1.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this_1 = this;\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this_1 = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this_1 = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this_1.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this_1.k[0] == chks_3 && _this_1.c)\n _this_1.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n"],"names":["Browser","_createClass","_classCallCheck","key","value","navigator","userAgent","indexOf","this","isFacebook","isInstagram","window","language","Date","getTimezoneOffset","sUsrAg","javaEnabled","screen","colorDepth","height","width","tem","ua","M","match","test","name","version","exec","appName","appVersion","splice","PRE_AUTH_CHARGE_LINK","ApiCharge","api","payload","cb","getClient","send","_extends","_3ds","browser_details","getBrowserName","java_enabled","isJavaEnabled","toString","getLanguage","screen_height","getScreenHeight","screen_width","getScreenWidth","time_zone","color_depth","getColorDepth","data","getClientPromise","ENV","WIDGET_URL","env","url","API_URL","ADDITIONAL_ENV","DEFAULT_ENV","DEFAULT_ALIAS","Env","configs","defaultEnv","arguments","length","undefined","setEnv","alias","isValidMode","Error","concat","index","hasOwnProperty","getEnv","SDK","get","_version","trim","type","headerKeys","Object","freeze","ACCESS_HEADER_NAME","AccessToken","jwt","_jwt$split2","_slicedToArray","split","rawHead","rawBody","signature","head","JSON","parse","atob","body","_a","meta","token","validateJWT","HttpRequest","request","setRequestHeader","setHeader","method","XMLHttpRequest","open","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","now","Math","floor","performance","SuppressedError","isBrowserScope","document","isWorkerScope","WorkerGlobalScope","self","WorkerNavigator","globalThis","globalScope","loadedAsDeferredBrowserScript","readyState","initiallyHidden","Boolean","visibilityState","initialLocation","location","isiOS","iOSBelow16","SharedWorker","Array","isArray","isIE","documentMode","supportsSendBeacon","sendBeacon","originTime","defaults","beacon","errorBeacon","gosNREUM","NREUM","newrelic","gosNREUMOriginals","nr","o","ST","setTimeout","SI","setImmediate","CT","clearTimeout","XHR","REQ","Request","EV","Event","PR","MO","MutationObserver","FETCH","fetch","getNREUMInitializedAgent","id","initializedAgents","gosCDN","externallySupplied","info","gosNREUMInfo","init","gosNREUMInit","loader_config","gosNREUMLoaderConfig","has","prototype","getOrSet","obj","prop","getVal","call","val","defineProperty","keys","writable","enumerable","warn","message","secondary","console","getModeledObject","model","output","create","getPrototypeOf","getOwnPropertyDescriptors","target","from","Set","err","nrDefaults","licenseKey","applicationID","sa","queueTime","applicationTime","ttGuid","user","account","product","extra","jsAttributes","userAttributes","atts","transactionName","tNamePlain","_cache","getInfo","setInfo","agentInst","isValidSelector","selector","createDocumentFragment","querySelector","DEFAULT_EXPIRES_MS","DEFAULT_INACTIVE_MS","SESSION_EVENTS","SESSION_EVENT_TYPES","MODE","OFF","FULL","ERROR","nrMask","hiddenState","mask_selector","block_selector","mask_input_options","color","date","email","month","number","range","search","tel","text","time","week","textarea","select","password","feature_flags","proxy","assets","privacy","cookies_enabled","ajax","deny_list","block_internal","enabled","harvestTimeSeconds","autoStart","distributed_tracing","exclude_newrelic_header","cors_use_newrelic_header","cors_use_tracecontext_headers","allowed_origins","session","expiresMs","inactiveMs","ssl","obfuscate","jserrors","metrics","page_action","page_view_event","page_view_timing","long_task","session_trace","harvest","tooManyRequestsDelay","session_replay","preload","sampling_rate","error_sampling_rate","collect_fonts","inline_images","inline_stylesheet","mask_all_inputs","mask_text_selector","block_class","ignore_class","mask_text_class","spa","soft_navigations","missingAgentIdError","getConfiguration","getConfigurationValue","path","parts","i","accountID","trustKey","agentID","xpid","getLoaderConfig","originals","VERSION","readonly","buildEnv","distMethod","customTransaction","disabled","isolatedBacklog","loaderType","maxBytes","onerror","origin","ptid","releaseIds","appMetadata","denyList","harvestCount","timeKeeper","getRuntime","isConfigured","agentIdentifier","isValid","EventContext","constructor","contextId","getRandomValue","valueTable","tableIndex","random","generateUuid","crypto","msCrypto","randomValueTable","randomValueIndex","getRandomValues","Uint8Array","map","templateInput","join","generateRandomHexString","chars","push","bundleId","globalInstance","ee","old","debugId","handlers","bufferGroupMap","emitters","emitter","on","addEventListener","removeEventListener","fn","listeners","emit","args","contextOrStore","force","bubble","aborted","ctx","context","handlersArray","len","bufferGroup","getBuffer","getOrCreate","buffer","types","group","eventBuffer","entries","forEach","_ref","_","abort","_aborted","backlog","isBuffering","handleEE","handle","mapOwn","defaultRegister","registerWithSpecificEmitter","handler","groupHandlers","FEATURE_NAMES","pageAction","pageViewEvent","pageViewTiming","sessionReplay","sessionTrace","softNav","featurePriority","registry","registerDrain","item","staged","priority","curateRegistry","set","deregisterDrain","delete","size","checkCanDrainAll","Map","drain","featureName","drainGroup","items","every","values","sort","a","b","_ref2","baseEE","bufferedEventsInGroup","emitEvent","eventType","handlerRegistrationList","registration","evt","sourceEE","FeatureBase","aggregator","blocked","passiveSupported","signalSupported","options","passive","signal","eventListenerOpts","useCapture","abortSignal","capture","windowAddEventListener","event","listener","documentAddEventListener","checkState","onWindowLoad","canEnableSessionTracking","agentId","canImportReplayAgg","sessionMgr","hasReplayPrerequisite","isNew","state","sessionReplayMode","buildNRMetaNode","timestamp","correctedTimestamp","correctAbsoluteTimestamp","originalTimestamp","timestampDiff","correctedOriginTime","originTimeDiff","single","func","_this2","called","_len2","_key2","InstrumentBase","auto","super","abortHandler","featAggregate","onAggregateImported","importAggregator","loadedSuccessfully","argsObjFromInstrument","importLater","async","setupAgentSession","agentSession","shouldImportAgg","lazyFeatureLoader","lazyFeatureLoader$1","Aggregate","FEATURE_NAME","SR_EVENT_EMITTER_TYPES","RECORD","PAUSE","REPLAY_RUNNING","ERROR_DURING_REPLAY","RRWEB_EVENT_TYPES","CHECKOUT_MS","ABORT_REASONS","sm","TRIGGERS","getCircularReplacer","seen","WeakSet","add","stringify","UncaughtError","filename","lineno","colno","sourceURL","line","column","__newrelic","castError","error","canTrustError","col","castPromiseRejectionEvent","promiseRejectionEvent","prefix","reason","castErrorEvent","errorEvent","SyntaxError","stack","static","replayRunning","removeOnAbort","AbortController","isRunning","unhandledPromiseRejection","CONSTANTS.FEATURE_NAME","featureNames","getEnabledFeatures","enabledFeatures","isEnabled","SUPPORTABILITY_METRIC_CHANNEL","CUSTOM_METRIC_CHANNEL","apiMethods","asyncApiMethods","setTopLevelCallers","f","_len","_key","fnName","returnVals","exposed","caller","GLOBAL_EVENT_NAMESPACE","sentIds","activatedFeatures","activateFeatures","flags","sharedEE","detail","dispatchEvent","CustomEvent","dispatchGlobalEvent","loaded","alreadySetOnce","configure","agent","opts","forceDrain","runtime","setConfiguration","setLoaderConfig","isWorker","updatedInit","internalTrafficList","runSoftNavOverSpa","includes","setRuntime","apiInterface","instanceEE","tracerEE","spaPrefix","appendJsAttribute","apiName","addToBrowserStorage","currentInfo","apiCall","InteractionHandle","addPageAction","setPageViewName","host","charAt","setCustomAttribute","persistAttribute","setUserId","setApplicationVersion","start","interaction","InteractionApiProto","createTracer","contextStore","ixn","hasCb","notSpa","lazyLoad","apiAsync","setAPI","catch","setCurrentRouteName","noticeError","customAttributes","SharedContext","sharedContext","assign","Aggregator","parent","aggregatedData","store","params","newMetrics","customParams","bucket","getBucket","oldMetrics","count","updateMetric","aggregateMetrics","merge","oldMetric","newMetric","c","t","createMetricObject","min","max","sos","mergeMetric","storeMetric","stats","custom","take","results","hasData","metric","updateCounterMetric","AgentBase","callMethod","methodName","attributes","persist","setErrorHandler","callback","finished","timeStamp","addRelease","recordReplay","pauseReplay","addToTrace","nonAutoFeatures","MicroAgent","sharedAggregator","features","newAgentInstance","initializedAt","ms","setNREUMInitializedAgent","run","filter","config","featNames","some","PVE","Instrument","getConfig","gateway","browserAgent","accountId","applicationId","available","loaderConfig","InstrumentationAgent","_MicroAgent","_this","_callSuper","isAvailable","_InstrumentationAgent","_inherits","initialized","_getConfig","JSErrors","PageAction","PageViewEvent","ActionRepository","instance","_this$agent","_context","stop","_callee","API_AUTH_TYPE","ErrorRepository","errorRepository","EventRepository","PROCESS_STANDALONE_3DS_STATUS","AUTHENTICATION_STATUS","IFRAME_STATUS","ApiBase","auth","authType","reportEvent","repository","createEvent","reportError","createError","setAuthType","TOKEN","PUBLIC_KEY","link","newApiRequest","errorCb","onload","parser","responseText","status","classMethod","description","_reject","parserPromise","res","resource","getConf","setContentTypeJson","setSdkVersion","setPublicKey","setAccessToken","inner","sdkVersion","className","environment","Api","_ApiBase","publicKey","Url","uri","replace","RegExp","encodeURIComponent","Uuid","buf","Uint16Array","hash","substring","FLYPAY_LINK","FLYPAY_LOGO_LINK","Link","linkResource","widgetId","generate","setParams","widget_id","getNetUrl","getParams","extendSearchParams","dataType","eventData","input","subject","attachEvent","Container","getElement","allowValue","isExist","styles","getAttribute","containerStyleCollection","convertConfigs","subscribe","container","containerTextCollection","currentConfig","style","collectionKey","IFrame","iFrame","createElement","setAttribute","title","appendChild","content","iFrameDocument","contentDocument","write","close","removeChild","setStyle","saveSize","property","EVENT","AFTER_LOAD","SUBMIT","FINISH","VALIDATION_ERROR","SYSTEM_ERROR","CHECKOUT_SUCCESS","CHECKOUT_READY","CHECKOUT_ERROR","CHECKOUT_COMPLETED","CHECKOUT_POPUP_OPEN","CHECKOUT_POPUP_CLOSE","VALIDATION","SELECT","UNSELECT","NEXT","PREV","META_CHANGE","RESIZE","CHARGE_AUTH_SUCCESS","CHARGE_AUTH_REJECT","CHARGE_AUTH_CANCELLED","ADDITIONAL_DATA_SUCCESS","ADDITIONAL_DATA_REJECT","CHARGE_AUTH","DISPATCH_SUCCESS","DISPATCH_ERROR","IFrameEvent","eventName","hiddenStyle","visibility","border","CARD_SCHEME_SERVICE","GPAYMENTS_EVENT","GPaymentsService","eventEmitter","resultRead","iFrameEvent","initialization_url","secondary_url","charge_3ds_id","setupIFrameEvents","initializeIFrames","parseError","initializationUrl","secondaryUrl","hideAuthorization","divAuthorization","browserAndChallengeContainer","iFrameAuthorization","load","divSecondaryURL","monitoringContainer","iFrameSecondaryUrl","hideIframes","SKIPPED","FINISHED","performAuthentication","TIMEOUT","INVALID","parseHandleResponse","processResult","charge3dsId","_ref3","charge","standalone3dsHandle","remove","SUCCESS","parseResultData","_this3","externalAPI","doPolling","_ref4","_this4","standalone3dsProcess","authenticationResult","PENDING","challenge","challenge_url","_b","decoupled_challenge","ApiChargeInternal","ApiServiceInternal","service_id","ApiInternal","TOKEN_FORMAT","STANDALONE_3DS_GATEWAYS","Standalone3dsService","parsedToken","tokenData","extractData","service_type","EventEmitter","events","storedHandler","Canvas3ds","CHECKOUT_MODE","GATEWAY_TYPE","extractToken","ref_id","standalone3dsService","format","HTML","loadFromHtml","URL","STANDALONE_3DS","hide","show","CHECKOUT_BUTTON_EVENT","CLICK","POPUP_REDIRECT","REDIRECT","REFERRED","DECLINED","CANCELLED","ACCEPTED","CLOSE","WALLET_GATEWAY","WALLET_TYPE","CHECKOUT_BTN_LOG_PREFIX","PAYMENT_SOURCE_TYPE","CARD","BANK_ACCOUNT","CHECKOUT","FORM_FIELD","CARD_NAME","CARD_NUMBER","EXPIRE_MONTH","EXPIRE_YEAR","CARD_CCV","CARD_PIN","ACCOUNT_NAME","ACCOUNT_BSB","ACCOUNT_NUMBER","ACCOUNT_ROUTING","ACCOUNT_HOLDER_TYPE","ACCOUNT_BANK_NAME","ACCOUNT_TYPE","FIRST_NAME","LAST_NAME","EMAIL","PHONE","PHONE2","ADDRESS_LINE1","ADDRESS_LINE2","ADDRESS_STATE","ADDRESS_COUNTRY","ADDRESS_CITY","ADDRESS_POSTCODE","ADDRESS_COMPANY","STYLE","BACKGROUND_COLOR","BACKGROUND_ACTIVE_COLOR","TEXT_COLOR","BORDER_COLOR","ICON_SIZE","BUTTON_COLOR","ERROR_COLOR","SUCCESS_COLOR","FONT_SIZE","FONT_FAMILY","TEXT","TITLE","TITLE_H1","TITLE_H2","TITLE_H3","TITLE_H4","TITLE_H5","TITLE_H6","TITLE_DESCRIPTION","SUBMIT_BUTTON","SUBMIT_BUTTON_PROCESSING","ELEMENT","TABS","SUPPORTED_CARD_TYPES","AMEX","AUSBC","DINERS","DISCOVER","JAPCB","LASER","MASTERCARD","SOLO","VISA","VISA_WHITE","SUPPORTED_CHECKOUT_META_COLLECTION","RUNNER_EVENT","HttpCore","getLink","accessToken","getUrl","getAccessHeaderNameByToken","Builder","_HttpCore","gatewayID","successRedirectUrl","errorRedirectUrl","gateway_id","success_redirect_url","error_redirect_url","redirect_url","code","getConfigs","Checker","TEMPLATE","TRIGGER","Background","overlay","showControl","showLoader","isInit","isSupportPopUp","createLoader","createTemplate","createStyles","eventHandler","closeButton","focusButton","EventHelper","parentNode","getElementsByTagName","classList","innerHTML","LOADER_STYLE","LOADER_TEMPLATE","template","String","css","offsetHeight","createTextNode","triggerName","BaseRunner","widgetEnv","ContextualRunner","_Runner","_class","background","onTrigger","BACKGROUND_TRIGGER","suspendedRedirectUri","setBackdropTitle","setBackdropDescription","turnOffControl","turnOffLoader","DISPATCHER_ELEMENT_ID","Dispatcher","messageSource","dispatcher","getElementById","display","message_source","restartDispatcher","EVENT_CLOSE","Popup","scrollbars","resizable","top","left","closed","timer","setInterval","clearInterval","href","focus","getNetConfigs","screenX","screenY","clickCount","LOADER_EXTRA_STYLE","PopupRunner","_ContextualRunner","checkout","popup","initControl","checkoutData","localStorage","setItem","redirect","onClose","clear","reference_id","getItem","removeItem","_get","_getPrototypeOf","isContextualRunner","runner","isRedirectRunner","n","r","u","require","s","exports","v","d","h","y","l","fun","array","p","nextTick","browser","argv","versions","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","bootstrap","_typeof","define","amd","ses","ok","makeQ","Q","noConflict","x","source","__minimumStackCounter__","stackCounter","U","configurable","unshift","I","Number","j","C","Z","notify","promise","$","longStackSupport","L","promiseDispatch","H","valueOf","inspect","N","fulfill","m","TypeError","exception","F","G","when","z","runAfter","B","post","q","g","spread","dispatch","k","defer","w","S","R","E","T","O","task","domain","enter","pop","exit","bind","MessageChannel","port1","onmessage","port2","postMessage","Function","slice","reduce","A","D","ReturnValue","Q_DEBUG","makeNodeResolver","race","all","passByCopy","makePromise","tap","fcall","thenResolve","thenReject","nearer","isPromise","isPromiseAlike","isPending","isFulfilled","isRejected","W","resetUnhandledRejections","getUnhandledReasons","stopUnhandledRejectionTracking","master","isDef","StopIteration","spawn","promised","del","mapply","mcall","invoke","fapply","fbind","any","allResolved","allSettled","fail","progress","fin","timeout","delay","nfapply","nfcall","nfbind","denodeify","nbind","nmapply","npost","nsend","nmcall","ninvoke","nodeify","_process","isFinite","__esModule","default","information","onCheckout","redirect_uri","redirectUri","debug","onError","Checkout","_validate","setLevel","logLevel","redirectFn","onComplete","build","setUri","querySelectorAll","addEventHandler","Zip","toLowerCase","checkoutUri","log","EventListener","isIe","bubbles","cancelable","initCustomEvent","eventTypes","resize","transition","complete","zipmoney","msg","global","zipMoneyEvent","ZipEvent","documentElement","clientHeight","innerHeight","scrollHeight","overflowY","currentStyle","getComputedStyle","parseInt","marginTop","marginBottom","iframeWidth","iframeMinWidth","iframeInitialHeight","iframeMinHeight","verticalMargin","_events","_isMobile","isMobileDevice","_initialHtmlHeight","scrollTo","_frame","_frameUri","frameborder","padding","zIndex","backgroundColor","backgroundImage","backgroundRepeat","backgroundPosition","overflow","position","bottom","right","margin","minWidth","backgroundSize","textAlign","boxShadow","src","cursor","onclick","_overlay","verticalAlign","_startMonitoringWindowResize","scroll","_destroy","_resizeHandler","debounce","innerWidth","clientWidth","removeEventHandler","_stopMonitoringWindowResize","headers","onShippingAddressChanged","shippingUri","checkoutId","vendor","opera","substr","detachEvent","response","xhr","xmlHttpRequest","withCredentials","LOAD","raw","ABORT","dump","Symbol","iterator","GET","POST","PUT","DELETE","PATCH","OPTIONS","READY_STATE_CHANGE","LOAD_START","PROGRESS","LOAD_END","Accept","encode","Methods","Events","put","patch","StorageDataIntent","ZipmoneyRunner","_BaseRunner","apiEnv","serialize","json_body","ZipmoneyContextualRunner","runs","initLoader","getCheckoutUri","getSuccessRedirectUri","element","LOG_PREFIX","AfterpayErrorStatus","StorageDispatcher","defaultPayload","destination","iframeEvent","onLoadCallback","dispatcherFrame","destroy","setupIframeEventListeners","pushCallbacks","contentWindow","_event","onSuccess","ZipmoneyRedirectRunner","_RedirectRunner","storageDispatcher","widgetSessionData","merchant_redirect_url","getRedirectUrl","checkout_token","public_key","intent","WIDGET_SESSION","getProxyRedirectUrl","merchantRedirectUrl","RedirectRunner","PaypalRunner","_PopupRunner","AfterpayRunner","EVENT_DATA_TYPE","btoa","newData","getOwnPropertySymbols","propertyIsEnumerable","__rest","isCloseEvent","initError","setConfigs","mode","TYPE","EXTERNAL_CHECKOUT_TOKEN","CHECKOUT_TOKEN","CheckoutContextualHandler","onStop","checkToken","createOneTimeToken","checker","ExternalCheckoutChecker","details","paymentSourceToken","PaymentSourceBuilder","gatewayId","TOKEN_TYPE","payment_source_token","checkout_email","checkout_holder","gateway_type","CheckoutButton","gatewayType","PAYPAL","CONTEXTUAL","initCheckout","chooseRunner","Runner","getRunnerByMode","checkoutHandler","externalCheckout","ExternalCheckoutBuilder","getErrorRedirectUri","setMeta","buttonEvent","buildAdditionalParams","assertMethodSupport","insertToInput","setBackgroundDescription","setBackgroundTitle","setSuspendedRedirectUri","setRedirectUrl","turnOffControlBackdrop","turnOffLoaderBackdrop","turnOffBackdrop","AFTERPAY","ZIPMONEY","warnMessage","ZipmoneyCheckoutButton","_CheckoutButton","AfterpayCheckoutButton","showETP","doShow","_Browser$getBrowserIn","getBrowserInfo","show_etp","PaypalCheckoutButton","ObjectHelper","object","PaymentSourceWidget","queryToken","configTokens","query_token","access_token","sdk_version","sdk_type","param","_defineProperty","refId","limit","ids","gateway_ids","_step","supportedTypes","_iterator","_createForOfIteratorHelper","payment_source_types","HtmlPaymentSourceWidget","_PaymentSourceWidget","getIFrameUrl","VAULT_DISPLAY_EVENT","PRIMARY_BUTTON_COLOR","SECONDARY_BUTTON_COLOR","PRIMARY_BUTTON_TEXT_COLOR","SECONDARY_BUTTON_TEXT_COLOR","ENABLE_SRC_POPUP","ClickToPaySRC","iframe_selector","autoResize","iFrameContainer","_ref5","useAutoResize","iframeElement","IFRAME_LOADED","_ref6","scrolling","SRC","public_key_or_access_token","provider","service","customizations","MASTERCARD_SRC","hideCheckout","showCheckout","reload","ClickToPay","_SRC","SUBMIT_FORM","CHANGE_TAB","HIDE_ELEMENTS","SHOW_ELEMENTS","REFRESH_CHECKOUT","UPDATE_FORM_VALUES","INIT_CHECKOUT","Trigger","trigger","VaultDisplayIframeEvent","FLYPAY_EVENT","_IFrameEvent","VaultDisplayWidget","validationData","triggerElement","vaultDisplayToken","vault_display_token","FlypayIframeEvent","UPDATED","WalletTrigger","_Trigger","WalletBackground","_Background","bgImageUrl","hideCloseButton","hideContinueButton","imageStyle","createImageStyles","WALLET_EVENT","UNAVAILABLE","UPDATE","PAYMENT_METHOD_SELECTED","PAYMENT_SUCCESS","PAYMENT_IN_REVIEW","PAYMENT_ERROR","CALLBACK","AUTH_TOKENS_CHANGED","BUTTON_CLICK","CHECKOUT_OPEN","CHECKOUT_CLOSE","WalletService","initializeChildWallets","childWallets","child","FlypayWalletService","_WalletService","amount","currency","gateway_mode","reference","request_shipping","credentials","initBackground","bg","_data","START_LOADING","END_LOADING","parseUpdateData","PAYMENT_SUCCESSFUL","parsePaymentSuccessfulData","currencyCode","wallet_response_code","responseCode","wallet_session_id","sessionId","paymentMethodDetails","payment_source","wallet_payment_method_id","paymentMethodId","card_number_last4","lastFourDigitsOfPan","card_scheme","paymentScheme","loyaltyAccountSummary","wallet_loyalty_account","loyaltyAccountId","barcode","loyaltyAccountBarcode","deliveryAddressDetails","shipping","address_line1","line1","address_line2","line2","address_postcode","postalCode","address_city","city","address_state","address_country","countryCode","address_company","companyName","wallet_address_id","addressId","post_office_box_number","postOfficeBoxNumber","wallet_address_created_timestamp","createdTimestamp","wallet_address_updated_timestamp","updatedTimestamp","wallet_address_name","PaypalWalletService","standalone","renderPaypalStandaloneComponent","renderPaypalCommonComponent","latestShippingChangePromiseResolve","latestShippingChangePromiseReject","success","request_type","latestShippingData","_res","buttonId","paypalScript","pay_later","paypal","Buttons","paypalSharedProps","render","isPayLater","button","fundingSource","FUNDING","PAYLATER","isEligible","Messages","placement","onClick","actions","responseValue","attachResult","createOrder","onShippingChange","_actions","parsedCallbackData","onApprove","pendingApprovalPromise","payment_method_id","orderID","customer","external_payer_id","payerID","onCancel","wallet_order_id","paymentID","paymentToken","shipping_address","postal_code","country_code","selected_shipping_option","label","currency_code","pure","loadParams","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","stripePromise","loadScript","Stripe","script","scripts","findScript","queryString","advancedFraudSignals","headOrBody","injectScript","validateLoadParams","errorMessage","loadStripeCalled","loadStripe","startTime","maybeStripe","stripe","_registerWrapper","registerWrapper","initStripe","setLoadParameters","validatedParams","previousValue","currentValue","_loadParams","pure$1","require$$0","UI_COMPLETION_STATE","StripeWalletService","paymentRequest","country","toUpperCase","total","amount_label","requestPayerName","request_payer_name","requestPayerEmail","request_payer_email","requestPayerPhone","request_payer_phone","elements","initPaymentRequest","checkAvailability","availability","mount","setOnPaymentMethodSelected","canMakePayment","gpay_enabled","wallets","GOOGLE","applepay_enabled","APPLE","google_pay","applePay","apple_pay","flypay","createWalletButton","_event$paymentMethod","paymentMethod","card","_event$paymentMethod$","billing_details","address","payer_name","payerName","payer_email","payerEmail","payer_phone","payerPhone","wallet_type","getWalletType","wallet","card_name","brand","last4","expire_month","exp_month","expire_year","exp_year","AppleWalletService","gatewayName","onCancelPayment","onValidateMerchant","handleMerchantOnButtonClickEvent","getMerchantSession","merchantSession","paymentSession","completeMerchantValidation","onPaymentAuthorized","_event$payment","payment","billingContact","shippingContact","shippingOptionMethod","selectedShippingOption","cardNameFromShippingContact","givenName","familyName","network","addressLines","locality","administrativeArea","ref_token","paymentData","hasShippingOptions","shipping_options","contact","first_name","last_name","emailAddress","phone","phoneNumber","completePayment","ApplePaySession","STATUS_SUCCESS","STATUS_FAILURE","onShippingContactSelected","rej","onShippingMethodSelected","shippingMethod","update","newTotal","getMetaRawDataInitialization","completeShippingMethodSelection","_c","_d","_e","identifier","_f","_g","_h","formatShippingOptions","merchant","metaStyles","google","apple","raw_data_initialization","metaRawDataInit","isShippingRequired","newAmount","newShippingOptions","newShippingMethods","completeShippingContactSelection","canMakePaymentsWithActiveCard","getMerchantId","_err","createButtonStyle","onApplePayButtonClicked","createRequest","onvalidatemerchant","onpaymentauthorized","oncancel","onshippingcontactselected","onshippingmethodselected","begin","rawDataInitialization","shippingMethods","merchantCapabilities","supportedNetworks","show_billing_address","requiredBillingContactFields","requiredShippingContactFields","_this5","session_id","hostname","_this6","merchantResult","getMetaStyles","button_type","GoogleWalletService","processingButtonClick","shippingOption","find","shippingOptionData","shippingAddress","option","googlePayJs","paymentsClient","payments","PaymentsClient","merchantInfo","merchant_name","merchantName","merchantId","paymentDataCallbacks","onPaymentDataChanged","intermediatePaymentData","paymentDataRequestUpdate","newTransactionInfo","totalPriceStatus","totalPriceLabel","totalPrice","newShippingOptionParameters","defaultSelectedOptionId","shippingOptions","isReadyToPay","createButton","onGooglePayButtonClicked","buttonType","buttonSizeMode","button_size_mode","buttonColor","button_color","loadPaymentData","createPaymentDataRequest","_context2","_callee2","_this7","billingAddressLine1","paymentMethodData","billingAddress","address1","billingAddressLine2","address2","shippingAddressLine1","shippingAddressLine2","_j","shippingAddressCountry","_k","shippingAddressCity","_l","shippingAddressPostCode","_m","shippingAddressState","_o","shippingContactFirstName","_p","shippingContactEmail","shippingContactPhone","_q","cardNetwork","tokenizationData","transactionState","_this8","parsedUpdateData","returnPromise","isSafariBrowser","apiVersion","apiVersionMinor","allowedPaymentMethods","createCardData","existingPaymentMethodRequired","gatewayMerchantId","tokenizationSpecification","parameters","transactionInfo","callbackIntents","_toConsumableArray","shippingAddressRequired","shippingOptionRequired","shippingOptionParameters","allowedAuthMethods","allowedCardNetworks","billingAddressRequired","MastercardWalletService","hasAppleCredentials","hasGoogleCredentials","getGatewayName","AfterPayWalletService","customStyles","afterpayButton","getButton","onAfterPayButtonClicked","buttonWalletStyle","getButtonStyle","afterpayJS","AfterPay","initialize","getCheckoutSession","getHeight","styleSheet","generateButtonColor","innerText","isNaN","DEFAULT_WIDTH","DEFAULT_HEIGHT","DEFAULT_FEATURES","frame","isCheckoutOpen","onMessage","orderId","refreshToken","clientId","onCheckoutClosed","rootUrl","targetOrigin","windowFeatures","windowObserver","onTokensChanged","onPaymentSuccess","onPaymentError","orderId2","isDomReady","isPaymentSuccessful","paymentFlowState","checkoutMode","isWindowObserverOpen","getFeatures","startWindowObserver","stopWindowObserver","listenMessage","windowWidth","windowHeight","separator","str","entriesToString","getCenteredPosition","getFlypayV2Button","getButtonWithClassNames","getWidgetClassName","classNames","containerId","FlypayV2WalletService","onFlypayV2ButtonClick","setLoadingOverlayDisplay","displayStyle","loadingOverlay","disable","processButtonClick","flypayV2Checkout","getOrderId","enable","processFailure","refresh_token","client_id","flypayV2Button","widgetClassName","WalletButtons","chargeToken","hasUpdateHandler","tokenMeta","extractMeta","STRIPE","client_auth","FLYPAY","FLYPAY_V2","setupServiceCallbacks","_this9","setupUnavailableCallback","setupUpdateCallback","setupWalletCallback","setupPaymentCallback","setupPaymentSuccessCallback","setupPaymentInReviewCallback","setupPaymentErrorCallback","setupAuthTokensChangedCallback","setupOnClickCallback","setupOnCheckoutOpenCallback","setupOnCheckoutCloseCallback","_this10","_this11","_this12","_this13","_this14","_this15","walletCallback","_this16","walletCapture","captureResult","_this17","_this18","_this19","_this20","PAYMENT_TYPE","GIFT_CARD","PURPOSE","PAYMENT_SOURCE","CARD_PAYMENT_SOURCE_WITH_CVV","CARD_PAYMENT_SOURCE_WITHOUT_CVV","Configuration","paymentType","purpose","dynamic_fields_position","predefined_fields","card_processing_network","webhook_destination","fields","defined_form_fields","configuration_token","giftCardScheme","processingNetwork","errors","tokens","counter","_loop","createToken","finishCreatingEachToken","STYLABLE_ELEMENT","INPUT","LABEL","STYLABLE_ELEMENT_STATE","FOCUS","HOVER","stylableElements","states","ElementStyle","encodedStyles","encodedStyleBlock","MultiWidget","conf","only_countries","preferred_countries","default_country","use_country_phone_mask","phone_mask_only_countries","phone_mask_preferred_countries","phone_mask_default_country","texts","setText","a2","a3","check","concatParams","element_styles","fieldValues","setFormValue","form_values","fieldLabels","setFormLabel","modifiedLabel","form_labels","fieldPlaceholders","setFormPlaceholder","placeholder","modifiedPlaceholder","form_placeholders","setFormElement","field","icons","setIcon","filteredElements","supportedElements","hidden_elements","fields_validation","validateCardNumberInput","supportedCards","supported_card_types","validate_card_types","configuration_tokens","createEachToken","FormInterceptor","intercepted","preventDefault","submit","HtmlMultiWidget","_MultiWidget","setStyles","getStyles","setTexts","getAttr","loadIFrameUrl","afterLoad","form_valid","invalid_fields","invalid_showed_fields","validator","validators","subjectFields","updateFormValue","setHiddenElements","formInterceptor","beforeSubmit","continueSubmit","HtmlWidget","_HtmlMultiWidget","setWebHookDestination","setSuccessRedirectUrl","setErrorRedirectUrl","setFormFields","setGiftCardSchemeData","Timer","onEnd","initialMs","startTimestamp","end","subscribeToVisibilityChange","toHiddenOnly","InteractionTimer","onPause","onRefresh","onResume","readStorage","remainingMs","refreshEvents","abortController","debouncedRefresh","leading","refresh","refreshHandler","evts","pause","resume","lsData","isExpired","expiresAt","inactiveAt","flag","inWrapper","createWrapperWithEmitter","always","wrapFn","inPlace","methods","getContext","prependMethodPrefix","notWrappable","nrWrapper","to","report","copy","originalThis","safeEmit","arr","prev","wrapped","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","wrapEvents","scopedEE","wfn","wrapNode","node","uniqueListener","findEventListenerProtoAndCb","originalListener","handleEvent","function","rest","updatedAt","sessionReplaySentFirstChunk","sessionTraceMode","traceHarvestStarted","serverTimeDiff","SessionEntity","storage","setup","lookupKey","newValue","sync","persistentAttributes","initialRead","read","getFutureTimestamp","expiresTimer","collectSM","reset","Infinity","inactiveTimer","isInvalid","existingData","useUpdatedAt","tag","getDuration","startingTimestamp","futureMs","syncCustomAttribute","curr","LocalStorage","ranOnce","agentRuntime","sessionInit","customSessionData","agentInfo","registerHandler","featurePart","providedTime","releaseCount","fnCall","getSubmitMethod","isFinalHarvest","header","charMap","charList","safeEncoded","real","qs","feature","dataArray","intermediate","base","getLocation","patternWithHash","patternWithoutHash","cleanURL","keepHash","isFileProtocol","protocol","fileProtocolRule","regex","replacement","Obfuscator","shouldObfuscate","getRules","obfuscateString","string","rules","obfuscated","configRules","applyFnToProps","ignoreKeys","warnings","Harvest","obfuscator","sendX","spec","submitMethod","submitData.getSubmitMethod","unload","retry","submitData.xhr","createPayload","endpoint","obfuscateAndSend","_send","cbFinished","customUrl","includeBaseParams","cleanPayload","sendEmptyBody","sent","perceviedBeacon","endpointURLPart","baseParams","baseQueryString","payloadParams","encodeObj","startsWith","fullUrl","harvestScope","cbResult","needResponse","ref","hr","qps","encodeParam","transactionNameParam","singlePayload","clean","accumulator","cleanupTasks","origClose","subscribeToEOL","HarvestScheduler","started","timeoutHandle","harvesting","runHarvest","forceNoRetry","onUnload","startTimer","interval","initialDelay","scheduleHarvest","stopTimer","permanently","cbRanAfterSend","onHarvestFinished","harvests","getPayload","onFinished","retryDelay","shouldCollectEvent","hasUndefinedHostname","parsed","domainMatchesPattern","comparePath","pathname","pattern","AggregateBase","checkConfiguration","waitForFlags","flagNames","buildOutput","drained","parseGQL","query","gqlBody","contents","opNames","opTypes","operation","parseSingleGQL","operationName","operationType","operationFramework","parseBatchGQL","parseGQLContents","gqlQuery","gqlQueryString","URLSearchParams","fromEntries","parseGQLQueryString","matches","gqlContents","isPureObject","validateGQLObject","hasOwnProp","nullable","comma","numeric","noDefault","getAddStringContext","stringTable","stringTableIdx","escapable","quoteString","addCustomAttributes","attrs","addString","attrParts","serializedValue","Chunk","aggregateInstance","endTime","requestSize","responseSize","spanId","traceId","spanTimestamp","insert","gql","tooBig","MAX_PAYLOAD_SIZE","agentInit","maxPayloadSize","denyListConfig","firstSlash","setDenyList","ajaxEvents","spaAjaxEvents","sentAjaxEvents","classThis","wasSaved","storeXhr","onEventsHarvestFinished","prepareHarvest","cat","shouldCollect","shouldOmitAjaxMetrics","txSize","rxSize","callbackDuration","cbTime","dt","parsedOrigin","spaNode","interactionId","payloadObjs","numberOfChunks","chunkSize","eventChunks","chunks","currentChunk","canonicalFunctionNameRe","canonicalFunctionName","functionNameString","stripNewlinesRegex","formatStackTrace","stackLines","stackString","truncatedLines","truncateStackLines","canonicalizeUrl","cleanedUrl","classNameRegex","chrome","gecko","chromeEval","ieEval","computeStackTrace","ex","errorInfo","parseStackProp","frames","wrapperSeen","getClassName","computeStackTraceFromStackProp","canonicalUrl","computeStackTraceBySourceAndLine","computeStackTraceWithMessageOnly","getStackElement","functionName","stringHashCode","charCodeAt","stackReported","observedAt","pageviewReported","bufferedErrorsUnderSpa","currentBody","errorOnPage","onInteractionDone","register","storeError","wasFinished","softNavAttrs","onSoftNavNotification","errFlag","scheduler","onHarvestStarted","ri","runCrossFeatureChecks","pve","getBucketName","nameHash","exceptionClass","stack_trace","browser_stack_hash","objType","buildCanonicalStackString","stackInfo","canonicalStackString","internal","hasReplay","filterOutput","stackHash","request_uri","errorGroup","bucketHash","convertRelativeTimestamp","pageview","firstOccurrenceTimestamp","jsErrorEvent","_interactionId","_interactionNodeId","interactionNodeId","browserInteractionId","_softNavFinished","storeJserrorForHarvest","_softNavAttributes","errorInfoArr","softNavOccurredFinished","softNavCustomAttrs","localAttrs","allCustomAttrs","setCustom","aggregateHash","localCustomAttrs","root","parentNodeId","crossFeatureData","errorHashes","FRAMEWORKS","getFrameworks","frameworks","divs","detectReact","detectNextJS","detectVue","$nuxt","detectNuxtJS","detectAngular","detectAngularUniversal","detectSvelte","detectSvelteKit","detectPreact","detectPreactSSR","detectAngularJs","detectElectron","storeSupportabilityMetrics","storeEventMetrics","singleChecks","eachSessionChecks","nonce","currentScript","onDOMContentLoaded","framework","invalidReplacementDetected","invalidRegexDetected","validateRules","persisted","resourcesSent","ajaxResources","internalUrls","isInternal","isAjax","initiatorType","getEntriesByType","entry","markers","measures","eventsPerMinute","eventsPerHarvest","referrerUrl","currentEvents","att","referrer","insFlag","at","ins","eventAttributes","timeSinceLoad","browserWidth","browserHeight","currentUrl","pageUrl","actionName","START","END","UNLOAD_EVENT","DOMAIN_LOOKUP","ONNECT","RESPONSE","LOAD_EVENT","DOM_CONTENT_LOAD_EVENT","navTimingValues","addPT","offset","pt","isL1Api","of","handleValue","domLoading","domInteractive","domComplete","addPN","pn","navigate","back_forward","prerender","redirectCount","isOldApi","round","getActivatedFeaturesFlags","flagArr","featName","domContentLoadedEventStart","nodeName","nodeType","activationStart","prerendering","wasDiscarded","rating","delta","navigationType","PerformanceObserver","supportedEntryTypes","getEntries","observe","buffered","requestAnimationFrame","firstHiddenTime","disconnect","reportAllChanges","entryType","processingStart","takeRecords","V","interactionCount","J","K","X","Y","duration","latency","durationThreshold","PerformanceEventTiming","te","re","ie","ae","responseStart","VITAL_NAMES","VitalMetric","subscribers","history","roundingMethod","current","firstContentfulPaint","attribution","timeToFirstByte","firstByteToFCP","loadState","navigationEntry","fcpEntry","onFCP","firstPaint","handleEntries","observer","list","PerformanceNavigationTiming","domainLookupStart","connectStart","requestStart","waitingTime","dnsTime","connectionTime","requestTime","onTTFB","timing","TimeKeeper","localTimeDiff","ready","processStoredDiff","processRumRequest","rumRequest","responseDateHeader","getResponseHeader","serverOffset","relativeTime","storedServerTimeDiff","firstByteToWindowLoad","firstByteToDomContent","navEntry","loadEventEnd","domContentLoadedEventEnd","sendRum","harvester","queryParameters","tt","us","ac","pr","af","metricName","measure","xx","fsh","ja","navTimingEntry","perf","navigation","PerformanceTiming","fp","fcp","rumStartTime","rumEndTime","app","cumulativeLayoutShift","hadRecentInput","sources","largestShiftTarget","largestShiftTime","largestShiftValue","largestShiftSource","largestShiftEntry","onCLS","metricId","firstInputDelay","eventTarget","eventTime","eventEntry","onFID","fid","interactionToNextPaint","processingEnd","onINP","largestContentfulPaint","responseEnd","resourceLoadDelay","resourceLoadTime","elementRenderDelay","lcpEntry","lcpResourceEntry","onLCP","eid","elUrl","tagName","elTag","longTask","ltFrame","ltStart","ltCtr","containerType","ltCtrSrc","containerSrc","ltCtrId","ltCtrName","containerName","handleVitalMetric","addTiming","timings","timingsSent","curSessEndRecorded","msTimestamp","endCurrentSession","recordPageUnload","initialHarvestSeconds","connection","mozConnection","webkitConnection","effectiveType","rtt","downlink","addConnectionAttributes","cls","appendGlobalCustomAttributes","timingAttributes","reservedAttributes","onReplayReady","sessionReplayInitialized","sharedChannel","stylesheetEvaluator","evaluated","fetchProms","invalidStylesheetsDetected","failedToFix","evaluate","incompletes","styleSheets","cssRules","fetchAndOverride","fix","stylesheetContents","stylesheetText","cssSheet","CSSStyleSheet","gzipper","u8","entitled","recorder","errorNoticed","stopRecording","startRecording","forceStop","handleError","srMode","recording","initializeRecording","getEvents","clearBuffer","currentBufferTarget","hasError","switchToFull","syncWithSessionManager","ignoreSession","Recorder","prepUtils","gzipSync","strToU8","recorderEvents","getHarvestContents","__serialized","gzip","getCorrectedTimestamp","endUserId","lastMeta","hasMeta","relativeNow","firstEventTimestamp","lastEventTimestamp","firstTimestamp","cycleTimestamp","lastTimestamp","agentMetadata","agents","browser_monitoring_key","app_id","protocol_version","content_encoding","entityGuid","harvestId","agentVersion","rst","hasSnapshot","isFirstChunk","decompressedBytes","payloadBytesEstimation","inlinedAllStylesheets","forceHarvest","clearTimestamps","parseUrl","parsedUrl","returnVal","port","sameOrigin","TraceNode","SUPPORTS_PERFORMANCE_OBSERVER","ignoredEvents","mouseup","mousedown","pagehide","xhrOriginMissing","ignoreAll","toAggregate","typing","mousing","touching","TraceStorage","nodeCount","trace","earliestTimeStamp","latestTimeStamp","tempStorage","prevStoredEvents","storeSTN","stn","trimSTNs","shift","lookbackDuration","prunedNodes","cutoffHighResTime","nameCategory","nodeList","cutoffIdx","findIndex","takeSTNs","storeResources","stns","flatMap","listOfSTNodes","reindexByOriginFn","smearEvtsByOrigin","partitionListByOriginMap","flat","maxGap","maxLen","lastO","byOrigin","evtNode","lastArr","last","trivial","processPVT","storeTiming","hasFID","storeEvent","timingEntry","lck","currentEvent","shouldIgnoreEvent","evtName","evtOrigin","FileReader","storeHist","laststart","resources","currentResource","fetchStart","storeErrorAgg","storeXhrAgg","restoreNode","sentTrace","everHarvested","traceStorage","stMode","stEntitled","sessionState","startHarvesting","firstSessionHarvest","prevMode","lastId","InteractionNode","children","jsEnd","jsTime","cancelled","InteractionNodePrototype","dontWait","nodes","onNodeAdded","remaining","exclusiveTime","lastCb","cancel","finish","lastFinish","checkFinish","originalSetTimeout","originalClearTimeout","Interaction","routeName","finishTimer","checkingFinish","initialPageURL","oldRoute","newURL","oldURL","InteractionPrototype","_resetFinishCheck","setNewURL","setNewRoute","route","newRoute","endTimestamp","customAttrs","attr","Serializer","serializeMultiple","interactions","navTiming","serialized","serializeInteraction","routeChange","serializeSingle","isRouteChange","isInitialPage","typeIdsByName","customTracer","includeHashFragment","addNode","typeName","typeId","childCount","attrCount","apmAttributes","hasNavTiming","appTime","customName","isFetch","isJSONP","ajaxAttrParts","tracedTime","seperator","navTimingNode","CB_END","INTERACTION_EVENTS","MAX_TIMER_BUDGET","FN_START","FN_END","CB_START","INTERACTION_API","REMAINING","INTERACTION","SPA_NODE","JSONP_NODE","FETCH_START","FETCH_DONE","FETCH_BODY","JSONP_END","CONSTANTS","lastSeenUrl","lastSeenRouteName","timerMap","timerBudget","currentNode","prevNode","nodeOnLastHashUpdate","initialPageLoad","pageLoaded","childTime","depth","interactionsToHarvest","interactionsSent","disableSpaFix","serializer","mutationEE","promiseEE","historyEE","eventsEE","timerEE","fetchEE","jsonpEE","xhrEE","spaFlag","onInteractionFinished","save","prevInteraction","callbackStart","pluginApi","getCurrentNode","setCurrentNode","ct","callbackEnd","totalTime","isTraced","tracerDone","interactionContext","inc","activeNodeFor","resolvePromise","resolved","newNode","eventSource","ev","evName","eventNode","getActionText","actionText","timerId","timerDuration","ignored","fetchArguments","dtPayload","bodyPromise","hashChangedDuringCb","el","isScript","overwrite","getCtx","currentRouteName","smCategory","INTERACTION_TYPE","NODE_TYPE","INTERACTION_STATUS","nodesSeen","BelNode","belType","nodeId","addChild","AjaxNode","ajaxEvent","requestedWith","parentStartTimestamp","allAttachedNodes","customDataByApi","domTimestamp","historyTimestamp","createdByApi","keepOpenUntilEndApi","onDone","cancellationTimer","uiEvent","uiEventTimestamp","currentRouteKnown","eventSubscription","forceSave","forceIgnore","updateDom","updateHistory","newUrl","seenHistoryAndDomChange","customEndTime","apiProvidedCb","isActiveDuring","firstStartTimeOfPayload","ixnType","InitialPageLoadInteraction","domObserver","interactionsAwaitingRetry","initialPageLoadInteraction","loadEventTime","latestRouteSetByApi","interactionInProgress","spaOn","startUIInteraction","registerApiHandlers","handleAjaxEvent","handleJserror","firstIxnStartTime","serializedIxnList","startedAt","sourceElem","sourceElemText","elem","setClosureHandlers","getInteractionFor","saveIxn","idx","finishedInteraction","associatedInteraction","processAjax","parentInteraction","thisClass","waitForEnd","timeNow","newActionText","newRouteName","NodeType$2","isElement","ELEMENT_NODE","isShadowRoot","shadowRoot","isNativeShadowDom","stringifyStylesheet","cssText","stringifyRule","rule","importStringified","isCSSImportRule","statement","layerName","supportsText","media","mediaText","escapeImportStatement","isCSSStyleRule","selectorText","cssStringified","fixSafariColons","NodeType","Mirror$2","idNodeMap","nodeMetaMap","WeakMap","getId","getMeta","getNode","getIds","removeNodeFromMap","childNodes","childNode","hasNode","oldNode","createMirror$2","maskInputValue","maskInputOptions","maskInputFn","actualType","repeat","ORIGINAL_ATTRIBUTE_NAME$1","getInputType","hasAttribute","extractFileExtension","baseURL","_id","tagNameRegex","IGNORED_NODE","genId","canvasService","canvasCtx","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","absoluteToStylesheet","quote1","path1","quote2","path2","path3","filePath","maybeQuote","extractOrigin","part","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","absoluteToDoc","doc","attributeValue","isSVGElement","ownerSVGElement","getHref","transformAttribute","pos","collectCharacters","regEx","descriptorsStr","inParens","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","eIndex","needMaskingText","maskTextClass","maskTextSelector","parentElement","closest","contains","serializeNode","mirror","blockClass","blockSelector","needsMask","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","stylesheet","rel","_cssText","sheet","textContent","checked","selected","__context","canvas","getImageData","originalGetImageData","Uint32Array","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","oldValue","crossOrigin","recordInlineImage","naturalWidth","naturalHeight","drawImage","currentSrc","removeAttribute","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","getBoundingClientRect","class","rr_width","rr_height","rr_src","isCustomElement","customElements","Element","isSVG","isCustom","serializeElementNode","TEXT_NODE","parentTagName","isStyle","nextSibling","previousSibling","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","sn","comment","as","headFavicon","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","recordChild","isShadowHost","headWhitespace","bypassOptions","childN","serializedChildNode","isShadow","iframeEl","win","fired","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","commentre","updatePosition","lines","lastIndexOf","Position","whitespace","errorsList","silent","comments","atrule","declaration","propMatch","ret","declarations","decls","decl","keyframe","vals","atimport","_compileAtrule","atcharset","atnamespace","keyframes","atkeyframes","atmedia","atcustommedia","supports","atsupports","atdocument","sel","selectors","atpage","athost","atfontface","addParent","rulesList","parsingErrors","isNode","childParent","tagMap","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","clippath","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","fedropshadow","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","foreignobject","glyphref","lineargradient","radialgradient","escapeRegExp","MEDIA_SELECTOR","MEDIA_SELECTOR_GLOBAL","HOVER_SELECTOR","HOVER_SELECTOR_GLOBAL","adaptCssForReplay","cache","cachedStyle","stylesWithHoverClass","ast","medias","getSelectors","selectorMatcher","newSelector","mediaMatcher","createCache","buildNode","hackCss","implementation","createDocument","createDocumentType","getTagName","createElementNS","defaultView","HTMLElement","specialAttributes","isTextarea","isRemoteOrDynamicCss","setAttributeNS","endsWith","srcset","RRNodeType","play","firstChild","attachShadow","createCDATASection","createComment","buildNodeWithSN","afterAppend","nodeInMirror","isNodeMetaEqual","xmlns","htmlElement","rebuild","onVisit","visit","visitedNode","handleScroll","DEPARTED_MIRROR_ACCESS_WARNING","throttle","wait","previous","trailing","hookSetter","isRevoked","original","getOwnPropertyDescriptor","defineProperties","__rrweb_original__","Proxy","Reflect","receiver","nowTimestamp","getWindowScroll","scrollingElement","pageXOffset","pageYOffset","getWindowHeight","getWindowWidth","closestElementOfNode","isBlocked","isSerialized","isIgnored","isAncestorRemoved","legacy_isTouchEvent","changedTouches","polyfill$1","NodeList","DOMTokenList","Node","queueToResolveTrees","queue","queueNodeMap","putIntoMap","nodeInTree","queueNodeTrees","mutation","nextId","parentId","nextInTree","parentInTree","iterateResolveTree","tree","isSerializedIframe","isSerializedStylesheet","getBaseDimension","rootIframe","frameElement","ownerDocument","relativeScale","absoluteScale","frameDimension","frameBaseDimension","hasShadowRoot","getNestedRule","getPositionsAndIndex","nestedIndex","positions","uniqueTextMutations","mutations","idSet","uniqueMutations","getTime","StyleSheetMirror","styleIDMap","idStyleMap","newId","getStyle","generateId","getShadowHost","shadowHost","getRootNode","DOCUMENT_FRAGMENT_NODE","getRootShadowHost","rootShadowHost","shadowHostInDom","inDom","utils","__proto__","_mirror","polyfill","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","ReplayerEvents","ReplayerEvents2","isNodeInLinkedList","DoubleLinkedList","tail","__ln","removeNode","moveKey","MutationBuffer","frozen","locked","attributeMap","removes","mapRemoves","movedMap","addedSet","movedSet","droppedSet","processMutations","processMutation","adds","addedIds","addList","getNextId","ns","pushAdd","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","isParentRemoved","isAncestorInSet","candidate","tailNode","_node","unhandledNode","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","mutationCb","cn","attributeName","unattachedDoc","createHTMLDocument","pname","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","deepDelete","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","errorHandler","registerErrorHandler","unregisterErrorHandler","callbackWrapper","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","__rrMutationObserver","angularZoneSymbol","Zone","__symbol__","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","currentPointerType","eventKey","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","clientX","clientY","getHandler","PointerEvent","TouchStart","TouchEnd","initScrollObserver","scrollCb","scrollLeftTop","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","recurse","getIdAndStyleId","styleMirror","styleId","ownerNode","initAdoptedStyleSheetObserver","hostId","patchTarget","ShadowRoot","originalPropertyDescriptor","sheets","adoptStyleSheets","initObservers","hooks","currentWindow","mutationObserver","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mousemove","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","threshold","callbackThreshold","mousemoveCallback","timeBaseline","wrappedCb","totalOffset","timeOffset","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","userTriggered","isTrusted","isChecked","cbWithDedup","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","volume","muted","playbackRate","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","insertRule","argumentsList","deleteRule","replaceSync","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","removeProperty","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","restoreHandler","fonts","initFontObserver","selectionObserver","collapsed","updateSelection","getSelection","isCollapsed","ranges","rangeCount","getRangeAt","startContainer","startOffset","endContainer","endOffset","initSelectionObserver","customElementObserver","initCustomElementObserver","pluginHandlers","plugin","plugins","CrossOriginIframeMirror","generateIdFn","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","IframeManager","iframes","crossOriginIframeMap","crossOriginIframeMirror","crossOriginIframeRootIdMap","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","addLoadListener","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","replaceIdOnNode","patchRootIdOnNode","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","Input","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","iframeMirror","ShadowDomManager","shadowDoms","restoreHandlers","patchAttachShadow","manager","lookup","i$2","decode","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","arraybuffer","ArrayBuffer","bytes","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","ctor","contextMap","variableListFor$1","serializeArg","arg","Float32Array","Float64Array","Int32Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","patchGLPrototype","props","getOwnPropertyNames","recordArgs","hookHandler","setter","WorkerFactory","lastBlobMap","transparentBlobMap","worker","bitmap","transparentBase64","offscreen","OffscreenCanvas","blob","convertToBlob","arrayBuffer","getTransparentBlobFor","sourcemapArg","blankPrefixLength","funcToSource","Blob","createObjectURL","createURL","Worker","CanvasManager","pendingCanvasMutations","resetObservers","rafStamps","latestId","invokeId","initCanvasMutationObserver","initCanvasFPSObserver","fps","canvasContextReset","snapshotInProgressMap","commands","timeBetweenSnapshots","rafId","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","getCanvas","getContextAttributes","COLOR_BUFFER_BIT","createImageBitmap","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","flushPendingCanvasMutationFor","valuesWithType","StylesheetManager","trackedLinkElements","adoptedStyleSheetCb","linkEl","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","ProcessedNodeManager","nodeMap","loop","periodicallyClear","thisBuffer","buffers","wrapEvent","takeFullSnapshot","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordAfter","inEmittingFrame","passEmitsToParent","lastFullSnapshotEvent","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","slimDOM","snapshot","initialOffset","CustomElement","NodeType$1","addCustomEvent","freezePage","Mirror$1","toCSSText","properties","normalizedName","hyphenate","camelizeRE","CUSTOM_PROPERTY_REGEX","camelize","hyphenateRE","BaseRRNode","_args","lastChild","childIterator","_newChild","insertBefore","_refChild","BaseRRDocumentTypeImpl","RRNodeClass","qualifiedName","BaseRRElementImpl","ClassList","newClassName","propertyDelimiter","tmp","parseCSSText","_namespace","newChild","refChild","_init","attributeString","BaseRRTextImpl","BaseRRCommentImpl","BaseRRCDATASectionImpl","classText","onChange","classes","NAMESPACES","svg","SVGTagMap","createdNodeSet","diff","oldTree","newTree","replayer","rrnodeMirror","sameNodeType","calibratedOldTree","createOrGetNode","replaceChild","nodeMatching","newMeta","oldElement","newRRElement","oldContentDocument","diffChildren","oldAttributes","newAttributes","diffProps","diffBeforeUpdatingChildren","scrollData","applyScroll","inputData","applyInput","oldMediaElement","newMediaRRElement","rrCanvasElement","canvasMutations","applyCanvas","applyStyleSheetMutation","diffAfterUpdatingChildren","oldChildren","newChildren","oldIdToIndex","indexInOld","oldStartIndex","oldEndIndex","newStartIndex","newEndIndex","oldStartNode","oldEndNode","newStartNode","newEndNode","oldChild","nodeToMove","referenceRRNode","referenceNode","rrNode","domMirror","node1","node2","rrdomMirror","node1Id","node2Id","RRDocument","BaseRRDocument","firstElementChild","doctype","_qualifiedName","_doctype","_namespaceURI","CDATASection","BaseRRDocumentImpl","unserializedId","_unserializedId","UNSERIALIZED_STARTING_ID","Mirror","documentTypeNode","RRDocumentType","upperTagName","RRMediaElement","RRIFrameElement","RRCanvasElement","RRStyleElement","RRElement","commentNode","RRComment","sectionNode","RRCDATASection","textNode","RRText","destroyTree","RRElementClass","BaseRRMediaElementImpl","buildFromNode","rrdom","parentRRNode","documentType","elementNode","rrElement","getDefaultSN","buildFromDom","dom","createMirror$1","walk","mitt$1","mittProxy","__forceSmoothScrollPolyfill__","SCROLL_TIME","scrollBy","elementScroll","scrollElement","scrollIntoView","ROUNDING_TOLERANCE","shouldBailOut","firstArg","behavior","hasScrollableSpace","axis","scrollWidth","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","currentX","currentY","elapsed","cos","PI","ease","startX","startY","scrollable","smoothScroll","scrollX","scrollY","scrollableParent","findScrollableParent","parentRects","clientRects","raf","speed","addAction","action","rafWasActive","findActionIndex","rafCheck","doAction","setSpeed","isActive","mid","addDelay","baselineTime","firstOffset","return","NotStarted","Running","Stopped","assignment","i$1","changed","initial","_options","initialState","cond","_machine","unsubscribe","createPlayerService","getCastFn","applyEventsSynchronously","playerMachine","playing","CAST_EVENT","ADD_EVENT","PLAY","TO_LIVE","live","castEvent","lastPlayedEvent","recordTimeOffset","neededEvents","discardPriorSnapshots","lastPlayedTimestamp","PlayBack","syncEvents","castFn","Flush","resetLastPlayedEvent","startLive","addEvent","machineEvent","insertionIndex","isSync","webGLVarMap","variableListFor","deserializeArg","imageMap","isUnchanged","Image","blobContents","WebGLVariableConstructorsNames","webglMutation","variables","saveToWebGLVarMap","canvasEventMap","precomputedMutation","command","mutationArgsPromises","canvasMutation$1","mitt","REPLAY_CONSOLE_PREFIX","defaultMouseTailConfig","lineCap","lineWidth","strokeStyle","indicatesTouchDevice","u16","u32","fleb","fdeb","clim","freb","eb","fl","revfl","fd","revfd","rev","hMap","cd","mb","co","le","rvb","sv","r_1","flt","fdt","flm","flrm","fdm","fdrm","bits","bits16","shft","slc","subarray","wbits","wbits16","hTree","t2","i0","i1","i2","maxSym","tr","mbt","ln","lft","cst","i2_1","i2_2","i2_3","lc","cl","cli","cln","clen","cf","wfblk","out","dat","wblk","final","syms","lf","df","li","bs","bl","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","lm","ll","dm","dl","flen","ftlen","dtlen","llm","lcts","it","clct","dst","deo","dopt","opt","pre","st","lvl","plvl","lst","msk_1","bs1_1","ceil","bs2_1","hsh","lc_1","wi","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","ml","nl","mmd","md","ti","lin","din","dflt","level","mem","zlibSync","adler","lv","zlh","wbytes","unzlibSync","sl","noBuf","noSt","cbuf","nbuf","bt","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lt","lms","dms","mxa","sym","dsym","inflt","zlv","latin1","TextEncoder","ar","ai","strFromU8","TextDecoder","fromCharCode","MARK","StackFrame","fileName","lineNumber","columnNumber","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","ErrorStackParser","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","extractLocation","urlLike","sanitizedLine","locationParts","functionNameRegex","parseOpera9","parseOpera11","parseOpera10","lineRE","parseFloat","pathToSelector","outerHTML","localName","domSiblings","sibling","isObject","isObjTooDeep","stringifyOptions","numOfKeysLimit","depthOfLimit","thisPos","_obj","shouldIgnore","stringLengthLimit","eventResult","eventValue","defaultLogOptions","lengthThreshold","logger","initLogObserver","logOptions","loggerType","logCount","inStack","cancelHandlers","stackFrame","unhandledrejectionHandler","levelType","_logger","PLUGIN_NAME","ORIGINAL_ATTRIBUTE_NAME","defaultLogConfig","replayLogger","LogReplayPlugin","getConsoleLogger","formatMessage","stackPrefix","Replayer","usingVirtualDom","virtualDom","mouseTail","tailPositions","legacy_missingNodeRetryMap","firstFullSnapshot","newDocumentQueue","mousePos","touchActive","lastMouseDownEvent","lastSelectionData","constructedStyleMutations","handleResize","dimension","Resize","rebuildFullSnapshot","applyIncremental","nextUserInteractionEvent","backToNormal","skipInactive","isUserInteraction","speedService","skipTime","maxSpeed","SkipStart","last_index","liveMode","Finish","finish_buffer","EventCast","defaultConfig","loadTimeout","showWarning","showDebug","insertStyleRules","triggerFocus","UNSAFE_replayCanvas","pauseAnimation","useVirtualDom","setupDom","replayerHandler","canvasEvent","canvasMutationData","warnCanvasMutationFailed","applyStyleSheetRule","applyStyleDeclaration","onBuild","realNode","applyAdoptedStyleSheet","moveAndHover","debugData","mouse","applySelection","unpackFn","a1","StateChange","player","normalSpeed","normal","FAST_FORWARD","SET_SPEED","skipping","BACK_TO_NORMAL","recordSpeed","restoreSpeed","firstMeta","firstFullsnapshot","setConfig","wrapper","getMetaData","firstEvent","lastEvent","getCurrentTime","getTimeOffset","Start","Pause","Resume","Destroy","rawEvent","enableInteract","pointerEvents","disableInteract","resetCache","collected","builtNode","collectIframeAndAttachDocument","mutationInQueue","attachDocumentToIframe","FullsnapshotRebuilded","waitForStylesheetLoad","preloadAllImages","injectStylesRules","styleEl","unloadSheets","beforeLoadState","stateHandler","LoadStylesheetEnd","LoadStylesheetStart","promises","deserializeAndPreloadCanvasEvents","preloadImages","imgd","createImageData","putImageData","applyMutation","lastPosition","debugNodeNotFound","Blur","blur","Focus","preventScroll","offsetWidth","TouchCancel","mediaEl","virtualNode","warnNodeNotFound","DOMException","legacy_missingNodeMap","appendNode","previousId","nextNotInDOM","targetDoc","parentSn","childNodeArray","parentDoc","legacy_resolveMissingNode","resolveTrees","newSn","siblingNode","tn","styleValues","targetEl","svp","svs","selectionSet","Range","setStart","setEnd","removeAllRanges","addRange","targetHost","newStyleSheet","hostWindow","stylesToAdopt","targetMutation","previousInMap","nextInMap","_x","_y","drawMouseTail","hoverElements","draw","clearRect","beginPath","moveTo","lineTo","stroke","lastHoveredRootNode","hoveredEl","currentEl","SkipEnd","getRecordConsolePlugin","getReplayConsolePlugin","_isSync","logData","Log","pack","unpack","RecorderEvents","backloggedEvents","preloaded","fixing","shouldInlineStylesheets","shouldFix","customMasker","dataset","nrUnmask","audit","notified","eventBytes","payloadSize","getPayloadSize","newBytes","estimateCompression","BYTES_PER_ELEMENT","et","crct","cr","crc","gzhl","mtime","gzh","td","stream","ar_1"],"mappings":"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","x_google_ignoreList":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,124,125,131,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219]}