Version Description
Download this release
Release Info
Developer | fullofcaffeine |
Plugin | Full Site Editing |
Version | 3.39221 |
Comparing to | |
See all releases |
Code changes from version 3.38909 to 3.39221
- build_meta.txt +3 -3
- error-reporting/dist/error-reporting.asset.php +1 -1
- error-reporting/dist/error-reporting.js +2 -4
- error-reporting/dist/error-reporting.min.js +1 -1
- error-reporting/dist/error-reporting.min.js.map +1 -1
- error-reporting/index.js +4 -4
- error-reporting/index.php +1 -0
- full-site-editing-plugin.php +3 -12
- help-center/dist/help-center.asset.php +1 -1
- help-center/dist/help-center.js +5 -2
- help-center/dist/help-center.min.js +0 -1
build_meta.txt
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
commit_hash=
|
2 |
-
commit_url=https://github.com/Automattic/wp-calypso/commit/
|
3 |
-
build_number=3.
|
1 |
+
commit_hash=fd0730c30ff13d3f6fc7691176e1ce606452af56
|
2 |
+
commit_url=https://github.com/Automattic/wp-calypso/commit/fd0730c30ff13d3f6fc7691176e1ce606452af56
|
3 |
+
build_number=3.39221
|
error-reporting/dist/error-reporting.asset.php
CHANGED
@@ -1 +1 @@
|
|
1 |
-
<?php return array('dependencies' => array('wp-api-fetch', 'wp-hooks', 'wp-polyfill'), 'version' => '
|
1 |
+
<?php return array('dependencies' => array('wp-api-fetch', 'wp-hooks', 'wp-polyfill'), 'version' => 'fc14ccd363a75bb34c1f');
|
error-reporting/dist/error-reporting.js
CHANGED
@@ -9328,12 +9328,10 @@ const headErrors = window._jsErr || [];
|
|
9328 |
const headErrorHandler = window._headJsErrorHandler;
|
9329 |
|
9330 |
function activateSentry() {
|
|
|
9331 |
_sentry_browser__WEBPACK_IMPORTED_MODULE_2__/* .init */ .S1({
|
9332 |
dsn: 'https://658ae291b00242148af6b76494d4a49a@o248881.ingest.sentry.io/5876245',
|
9333 |
-
|
9334 |
-
// of transactions for performance monitoring.
|
9335 |
-
// We recommend adjusting this value in production
|
9336 |
-
release: 'wpcom-test-01'
|
9337 |
}); // Capture exceptions from Gutenberg React Error Boundaries
|
9338 |
|
9339 |
(0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.addAction)('editor.ErrorBoundary.errorLogged', 'etk/error-reporting', error => {
|
9328 |
const headErrorHandler = window._headJsErrorHandler;
|
9329 |
|
9330 |
function activateSentry() {
|
9331 |
+
const SENTRY_RELEASE_NAME = window.A8C_ETK_ErrorReporting_Config.releaseName;
|
9332 |
_sentry_browser__WEBPACK_IMPORTED_MODULE_2__/* .init */ .S1({
|
9333 |
dsn: 'https://658ae291b00242148af6b76494d4a49a@o248881.ingest.sentry.io/5876245',
|
9334 |
+
release: SENTRY_RELEASE_NAME
|
|
|
|
|
|
|
9335 |
}); // Capture exceptions from Gutenberg React Error Boundaries
|
9336 |
|
9337 |
(0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.addAction)('editor.ErrorBoundary.errorLogged', 'etk/error-reporting', error => {
|
error-reporting/dist/error-reporting.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
!function(){"use strict";var t={2314:function(t,e,n){n.d(e,{R:function(){return g}});var r=n(9849),i=n(1476),o=n(8585),s=n(4911),a=n(5907),u=n(3699),c=n(8536),d=n(250),_=n(3135),f=n(6894),l=n(1988),p=n(8356),h=n(5854),v=(0,a.R)();class g extends r.W{constructor(t){t._metadata=t._metadata||{},t._metadata.sdk=t._metadata.sdk||{name:"sentry.javascript.browser",packages:[{name:"npm:@sentry/browser",version:i.J}],version:i.J},super(t),t.sendClientReports&&v.document&&v.document.addEventListener("visibilitychange",(()=>{"hidden"===v.document.visibilityState&&this._flushOutcomes()}))}eventFromException(t,e){return(0,l.dr)(this._options.stackParser,t,e,this._options.attachStacktrace)}eventFromMessage(t,e="info",n){return(0,l.aB)(this._options.stackParser,t,e,n,this._options.attachStacktrace)}sendEvent(t,e){var n=this.getIntegrationById(p.p);n&&n.options&&n.options.sentry&&(0,o.Gd)().addBreadcrumb({category:"sentry."+("transaction"===t.type?"transaction":"event"),event_id:t.event_id,level:t.level,message:(0,u.jH)(t)},{event:t}),super.sendEvent(t,e)}_prepareEvent(t,e,n){return t.platform=t.platform||"javascript",super._prepareEvent(t,e,n)}_flushOutcomes(){var t=this._clearOutcomes();if(0!==t.length)if(this._dsn){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&c.kg.log("Sending outcomes:",t);var e=(0,s.U)(this._dsn,this._options.tunnel),n=(0,d.y)(t,this._options.tunnel&&(0,_.RA)(this._dsn));try{(0,h.z)(e,(0,f.V$)(n))}catch(r){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&c.kg.error(r)}}else("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&c.kg.log("No dsn provided, will not send outcomes");else("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&c.kg.log("No outcomes to send")}}},1988:function(t,e,n){n.d(e,{dr:function(){return l},aB:function(){return p},ME:function(){return h},GJ:function(){return u}});var r=n(1757),i=n(1995),o=n(8035),s=n(3699),a=n(7946);function u(t,e){var n=d(t,e),r={type:e&&e.name,value:f(e)};return n.length&&(r.stacktrace={frames:n}),void 0===r.type&&""===r.value&&(r.value="Unrecoverable error caught"),r}function c(t,e){return{exception:{values:[u(t,e)]}}}function d(t,e){var n=e.stacktrace||e.stack||"",r=function(t){if(t){if("number"==typeof t.framesToPop)return t.framesToPop;if(_.test(t.message))return 1}return 0}(e);try{return t(n,r)}catch(i){}return[]}var _=/Minified React error #\d+;/i;function f(t){var e=t&&t.message;return e?e.error&&"string"==typeof e.error.message?e.error.message:e:"No error message"}function l(t,e,n,r){var i=h(t,e,n&&n.syntheticException||void 0,r);return(0,s.EG)(i),i.level="error",n&&n.event_id&&(i.event_id=n.event_id),(0,a.WD)(i)}function p(t,e,n="info",r,i){var o=v(t,e,r&&r.syntheticException||void 0,i);return o.level=n,r&&r.event_id&&(o.event_id=r.event_id),(0,a.WD)(o)}function h(t,e,n,a,u){let _;if((0,r.VW)(e)&&e.error)return c(t,e.error);if((0,r.TX)(e)||(0,r.fm)(e)){var f=e;if("stack"in e)_=c(t,e);else{var l=f.name||((0,r.TX)(f)?"DOMError":"DOMException"),p=f.message?`${l}: ${f.message}`:l;_=v(t,p,n,a),(0,s.Db)(_,p)}return"code"in f&&(_.tags={..._.tags,"DOMException.code":`${f.code}`}),_}return(0,r.VZ)(e)?c(t,e):(0,r.PO)(e)||(0,r.cO)(e)?(_=function(t,e,n,s){var a={exception:{values:[{type:(0,r.cO)(e)?e.constructor.name:s?"UnhandledRejection":"Error",value:`Non-Error ${s?"promise rejection":"exception"} captured with keys: ${(0,i.zf)(e)}`}]},extra:{__serialized__:(0,o.Qy)(e)}};if(n){var u=d(t,n);u.length&&(a.exception.values[0].stacktrace={frames:u})}return a}(t,e,n,u),(0,s.EG)(_,{synthetic:!0}),_):(_=v(t,e,n,a),(0,s.Db)(_,`${e}`,void 0),(0,s.EG)(_,{synthetic:!0}),_)}function v(t,e,n,r){var i={message:e};if(r&&n){var o=d(t,n);o.length&&(i.exception={values:[{value:e,stacktrace:{frames:o}}]})}return i}},2634:function(t,e,n){n.d(e,{Wz:function(){return a},re:function(){return c}});var r=n(2483),i=n(1995),o=n(3699);let s=0;function a(){return s>0}function u(){s+=1,setTimeout((()=>{s-=1}))}function c(t,e={},n){if("function"!=typeof t)return t;try{var s=t.__sentry_wrapped__;if(s)return s;if((0,i.HK)(t))return t}catch(_){return t}var a=function(){var i=Array.prototype.slice.call(arguments);try{n&&"function"==typeof n&&n.apply(this,arguments);var s=i.map((t=>c(t,e)));return t.apply(this,s)}catch(a){throw u(),(0,r.$e)((t=>{t.addEventProcessor((t=>(e.mechanism&&((0,o.Db)(t,void 0,void 0),(0,o.EG)(t,e.mechanism)),t.extra={...t.extra,arguments:i},t))),(0,r.Tb)(a)})),a}};try{for(var d in t)Object.prototype.hasOwnProperty.call(t,d)&&(a[d]=t[d])}catch(f){}(0,i.$Q)(a,t),(0,i.xp)(t,"__sentry_wrapped__",a);try{Object.getOwnPropertyDescriptor(a,"name").configurable&&Object.defineProperty(a,"name",{get:()=>t.name})}catch(f){}return a}},8356:function(t,e,n){n.d(e,{p:function(){return d},O:function(){return _}});var r=n(8585),i=n(4005),o=n(4194),s=n(8653),a=n(9660),u=n(5907),c=n(3699),d="Breadcrumbs";class _{static __initStatic(){this.id=d}__init(){this.name=_.id}constructor(t){_.prototype.__init.call(this),this.options={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...t}}setupOnce(){this.options.console&&(0,i.o)("console",f),this.options.dom&&(0,i.o)("dom",function(t){function e(e){let n,i="object"==typeof t?t.serializeAttribute:void 0;"string"==typeof i&&(i=[i]);try{n=e.event.target?(0,o.R)(e.event.target,i):(0,o.R)(e.event,i)}catch(s){n="<unknown>"}0!==n.length&&(0,r.Gd)().addBreadcrumb({category:`ui.${e.name}`,message:n},{event:e.event,name:e.name,global:e.global})}return e}(this.options.dom)),this.options.xhr&&(0,i.o)("xhr",l),this.options.fetch&&(0,i.o)("fetch",p),this.options.history&&(0,i.o)("history",h)}}function f(t){var e={category:"console",data:{arguments:t.args,logger:"console"},level:(0,s.VT)(t.level),message:(0,a.nK)(t.args," ")};if("assert"===t.level){if(!1!==t.args[0])return;e.message=`Assertion failed: ${(0,a.nK)(t.args.slice(1)," ")||"console.assert"}`,e.data.arguments=t.args.slice(1)}(0,r.Gd)().addBreadcrumb(e,{input:t.args,level:t.level})}function l(t){if(t.endTimestamp){if(t.xhr.__sentry_own_request__)return;const{method:e,url:n,status_code:i,body:o}=t.xhr.__sentry_xhr__||{};(0,r.Gd)().addBreadcrumb({category:"xhr",data:{method:e,url:n,status_code:i},type:"http"},{xhr:t.xhr,input:o})}else;}function p(t){t.endTimestamp&&(t.fetchData.url.match(/sentry_key/)&&"POST"===t.fetchData.method||(t.error?(0,r.Gd)().addBreadcrumb({category:"fetch",data:t.fetchData,level:"error",type:"http"},{data:t.error,input:t.args}):(0,r.Gd)().addBreadcrumb({category:"fetch",data:{...t.fetchData,status_code:t.response.status},type:"http"},{input:t.args,response:t.response})))}function h(t){var e=(0,u.R)();let n=t.from,i=t.to;var o=(0,c.en)(e.location.href);let s=(0,c.en)(n);var a=(0,c.en)(i);s.path||(s=o),o.protocol===a.protocol&&o.host===a.host&&(i=a.relative),o.protocol===s.protocol&&o.host===s.host&&(n=s.relative),(0,r.Gd)().addBreadcrumb({category:"navigation",data:{from:n,to:i}})}_.__initStatic()},184:function(t,e,n){n.d(e,{I:function(){return i}});var r=n(8536);class i{constructor(){i.prototype.__init.call(this)}static __initStatic(){this.id="Dedupe"}__init(){this.name=i.id}setupOnce(t,e){var n=t=>{var n=e().getIntegration(i);if(n){try{if(function(t,e){if(!e)return!1;if(function(t,e){var n=t.message,r=e.message;if(!n&&!r)return!1;if(n&&!r||!n&&r)return!1;if(n!==r)return!1;if(!s(t,e))return!1;if(!o(t,e))return!1;return!0}(t,e))return!0;if(function(t,e){var n=a(e),r=a(t);if(!n||!r)return!1;if(n.type!==r.type||n.value!==r.value)return!1;if(!s(t,e))return!1;if(!o(t,e))return!1;return!0}(t,e))return!0;return!1}(t,n._previousEvent))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Event dropped due to being a duplicate of previously captured event."),null}catch(u){return n._previousEvent=t}return n._previousEvent=t}return t};n.id=this.name,t(n)}}function o(t,e){let n=u(t),r=u(e);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(n=n,r=r,r.length!==n.length)return!1;for(let s=0;s<r.length;s++){var i=r[s],o=n[s];if(i.filename!==o.filename||i.lineno!==o.lineno||i.colno!==o.colno||i.function!==o.function)return!1}return!0}function s(t,e){let n=t.fingerprint,r=e.fingerprint;if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;n=n,r=r;try{return!(n.join("")!==r.join(""))}catch(i){return!1}}function a(t){return t.exception&&t.exception.values&&t.exception.values[0]}function u(t){var e=t.exception;if(e)try{return e.values[0].stacktrace.frames}catch(n){return}}i.__initStatic()},1228:function(t,e,n){n.d(e,{d:function(){return _}});var r=n(8585),i=n(4005),o=n(1757),s=n(4194),a=n(8536),u=n(3699),c=n(1988),d=n(2634);class _{static __initStatic(){this.id="GlobalHandlers"}__init(){this.name=_.id}__init2(){this._installFunc={onerror:f,onunhandledrejection:l}}constructor(t){_.prototype.__init.call(this),_.prototype.__init2.call(this),this._options={onerror:!0,onunhandledrejection:!0,...t}}setupOnce(){Error.stackTraceLimit=50;var t,e=this._options;for(var n in e){var r=this._installFunc[n];r&&e[n]&&(t=n,("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&a.kg.log(`Global Handler attached: ${t}`),r(),this._installFunc[n]=void 0)}}}function f(){(0,i.o)("error",(t=>{const[e,n,r]=v();if(!e.getIntegration(_))return;const{msg:i,url:s,line:a,column:u,error:f}=t;if(!((0,d.Wz)()||f&&f.__sentry_own_request__)){var l=void 0===f&&(0,o.HD)(i)?function(t,e,n,r){var i=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;let s=(0,o.VW)(t)?t.message:t,a="Error";var u=s.match(i);u&&(a=u[1],s=u[2]);return p({exception:{values:[{type:a,value:s}]}},e,n,r)}(i,s,a,u):p((0,c.ME)(n,f||i,void 0,r,!1),s,a,u);l.level="error",h(e,f,l,"onerror")}}))}function l(){(0,i.o)("unhandledrejection",(t=>{const[e,n,r]=v();if(!e.getIntegration(_))return;let i=t;try{"reason"in t?i=t.reason:"detail"in t&&"reason"in t.detail&&(i=t.detail.reason)}catch(a){}if((0,d.Wz)()||i&&i.__sentry_own_request__)return!0;var s=(0,o.pt)(i)?{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(i)}`}]}}:(0,c.ME)(n,i,void 0,r,!0);s.level="error",h(e,i,s,"onunhandledrejection")}))}function p(t,e,n,r){var i=t.exception=t.exception||{},a=i.values=i.values||[],u=a[0]=a[0]||{},c=u.stacktrace=u.stacktrace||{},d=c.frames=c.frames||[],_=isNaN(parseInt(r,10))?void 0:r,f=isNaN(parseInt(n,10))?void 0:n,l=(0,o.HD)(e)&&e.length>0?e:(0,s.l)();return 0===d.length&&d.push({colno:_,filename:l,function:"?",in_app:!0,lineno:f}),t}function h(t,e,n,r){(0,u.EG)(n,{handled:!1,type:r}),t.captureEvent(n,{originalException:e})}function v(){var t=(0,r.Gd)(),e=t.getClient(),n=e&&e.getOptions()||{stackParser:()=>[],attachStacktrace:!1};return[t,n.stackParser,n.attachStacktrace]}_.__initStatic()},2605:function(t,e,n){n.d(e,{q:function(){return s}});var r=n(1684),i=n(8585),o=(0,n(5907).R)();class s{constructor(){s.prototype.__init.call(this)}static __initStatic(){this.id="HttpContext"}__init(){this.name=s.id}setupOnce(){(0,r.c)((t=>{if((0,i.Gd)().getIntegration(s)){if(!o.navigator&&!o.location&&!o.document)return t;var e=t.request&&t.request.url||o.location&&o.location.href;const{referrer:r}=o.document||{},{userAgent:i}=o.navigator||{};var n={...e&&{url:e},headers:{...t.request&&t.request.headers,...r&&{Referer:r},...i&&{"User-Agent":i}}};return{...t,request:n}}return t}))}}s.__initStatic()},3440:function(t,e,n){n.d(e,{iP:function(){return a}});var r=n(8585),i=n(1684),o=n(1757),s=n(1988);class a{static __initStatic(){this.id="LinkedErrors"}__init(){this.name=a.id}constructor(t={}){a.prototype.__init.call(this),this._key=t.key||"cause",this._limit=t.limit||5}setupOnce(){var t=(0,r.Gd)().getClient();t&&(0,i.c)(((e,n)=>{var i=(0,r.Gd)().getIntegration(a);return i?function(t,e,n,r,i){if(!(r.exception&&r.exception.values&&i&&(0,o.V9)(i.originalException,Error)))return r;var s=u(t,n,i.originalException,e);return r.exception.values=[...s,...r.exception.values],r}(t.getOptions().stackParser,i._key,i._limit,e,n):e}))}}function u(t,e,n,r,i=[]){if(!(0,o.V9)(n[r],Error)||i.length+1>=e)return i;var a=(0,s.GJ)(t,n[r]);return u(t,e,n[r],r,[a,...i])}a.__initStatic()},3399:function(t,e,n){n.d(e,{p:function(){return u}});var r=n(5907),i=n(1995),o=n(9038),s=n(2634),a=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"];class u{static __initStatic(){this.id="TryCatch"}__init(){this.name=u.id}constructor(t){u.prototype.__init.call(this),this._options={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,...t}}setupOnce(){var t=(0,r.R)();this._options.setTimeout&&(0,i.hl)(t,"setTimeout",c),this._options.setInterval&&(0,i.hl)(t,"setInterval",c),this._options.requestAnimationFrame&&(0,i.hl)(t,"requestAnimationFrame",d),this._options.XMLHttpRequest&&"XMLHttpRequest"in t&&(0,i.hl)(XMLHttpRequest.prototype,"send",_);var e=this._options.eventTarget;e&&(Array.isArray(e)?e:a).forEach(f)}}function c(t){return function(...e){var n=e[0];return e[0]=(0,s.re)(n,{mechanism:{data:{function:(0,o.$P)(t)},handled:!0,type:"instrument"}}),t.apply(this,e)}}function d(t){return function(e){return t.apply(this,[(0,s.re)(e,{mechanism:{data:{function:"requestAnimationFrame",handler:(0,o.$P)(t)},handled:!0,type:"instrument"}})])}}function _(t){return function(...e){var n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach((t=>{t in n&&"function"==typeof n[t]&&(0,i.hl)(n,t,(function(e){var n={mechanism:{data:{function:t,handler:(0,o.$P)(e)},handled:!0,type:"instrument"}},r=(0,i.HK)(e);return r&&(n.mechanism.data.handler=(0,o.$P)(r)),(0,s.re)(e,n)}))})),t.apply(this,e)}}function f(t){var e=(0,r.R)(),n=e[t]&&e[t].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,i.hl)(n,"addEventListener",(function(e){return function(n,r,i){try{"function"==typeof r.handleEvent&&(r.handleEvent=(0,s.re)(r.handleEvent,{mechanism:{data:{function:"handleEvent",handler:(0,o.$P)(r),target:t},handled:!0,type:"instrument"}}))}catch(a){}return e.apply(this,[n,(0,s.re)(r,{mechanism:{data:{function:"addEventListener",handler:(0,o.$P)(r),target:t},handled:!0,type:"instrument"}}),i])}})),(0,i.hl)(n,"removeEventListener",(function(t){return function(e,n,r){var i=n;try{var o=i&&i.__sentry_wrapped__;o&&t.call(this,e,o,r)}catch(s){}return t.call(this,e,i,r)}})))}u.__initStatic()},2456:function(t,e,n){n.d(e,{yl:function(){return T},S1:function(){return k}});var r=n(1061),i=n(6286),o=n(8889),s=n(6853),a=n(8585),u=n(5907),c=n(9038),d=n(9798),_=n(8536),f=n(7946),l=n(4005),p=n(2314),h=n(2224),v=n(3399),g=n(8356),y=n(1228),m=n(3440),E=n(184),S=n(2605),b=n(6149),x=n(6144),w=[new r.QD,new i.c,new v.p,new g.O,new y.d,new m.iP,new E.I,new S.q];function k(t={}){if(void 0===t.defaultIntegrations&&(t.defaultIntegrations=w),void 0===t.release){var e=(0,u.R)();e.SENTRY_RELEASE&&e.SENTRY_RELEASE.id&&(t.release=e.SENTRY_RELEASE.id)}void 0===t.autoSessionTracking&&(t.autoSessionTracking=!0),void 0===t.sendClientReports&&(t.sendClientReports=!0);var n={...t,stackParser:(0,c.Sq)(t.stackParser||h.Dt),integrations:(0,o.m8)(t),transport:t.transport||((0,d.Ak)()?b.f:x.K)};(0,s.M)(p.R,n),t.autoSessionTracking&&function(){if(void 0===(0,u.R)().document)return void(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&_.kg.warn("Session tracking in non-browser environment with @sentry/browser is not supported."));var t=(0,a.Gd)();if(!t.captureSession)return;D(t),(0,l.o)("history",(({from:t,to:e})=>{void 0!==t&&t!==e&&D((0,a.Gd)())}))}()}function T(t){var e=(0,a.Gd)().getClient();return e?e.flush(t):(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&_.kg.warn("Cannot flush events. No client defined."),(0,f.WD)(!1))}function D(t){t.startSession({ignoreDuration:!0}),t.captureSession()}},2224:function(t,e,n){n.d(e,{Dt:function(){return f}});var r=n(9038),i="?";function o(t,e,n,r){var i={filename:t,function:e,in_app:!0};return void 0!==n&&(i.lineno=n),void 0!==r&&(i.colno=r),i}var s=/^\s*at (?:(.*?) ?\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,a=/\((\S*)(?::(\d+))(?::(\d+))\)/,u=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,c=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,d=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,_=[[30,t=>{var e=s.exec(t);if(e){if(e[2]&&0===e[2].indexOf("eval")){var n=a.exec(e[2]);n&&(e[2]=n[1],e[3]=n[2],e[4]=n[3])}const[t,r]=l(e[1]||i,e[2]);return o(r,t,e[3]?+e[3]:void 0,e[4]?+e[4]:void 0)}}],[50,t=>{var e=u.exec(t);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){var n=c.exec(e[3]);n&&(e[1]=e[1]||"eval",e[3]=n[1],e[4]=n[2],e[5]="")}let t=e[3],r=e[1]||i;return[r,t]=l(r,t),o(t,r,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}}],[40,t=>{var e=d.exec(t);return e?o(e[2],e[1]||i,+e[3],e[4]?+e[4]:void 0):void 0}]],f=(0,r.pE)(..._),l=(t,e)=>{var n=-1!==t.indexOf("safari-extension"),r=-1!==t.indexOf("safari-web-extension");return n||r?[-1!==t.indexOf("@")?t.split("@")[0]:i,n?`safari-extension:${e}`:`safari-web-extension:${e}`]:[t,e]}},6149:function(t,e,n){n.d(e,{f:function(){return o}});var r=n(1518),i=n(5854);function o(t,e=(0,i.x)()){return(0,r.q)(t,(function(n){var r={body:n.body,method:"POST",referrerPolicy:"origin",headers:t.headers,...t.fetchOptions};return e(t.url,r).then((t=>({statusCode:t.status,headers:{"x-sentry-rate-limits":t.headers.get("X-Sentry-Rate-Limits"),"retry-after":t.headers.get("Retry-After")}})))}))}},5854:function(t,e,n){n.d(e,{x:function(){return u},z:function(){return c}});var r=n(5907),i=n(9798),o=n(8536),s=(0,r.R)();let a;function u(){if(a)return a;if((0,i.Du)(s.fetch))return a=s.fetch.bind(s);var t=s.document;let e=s.fetch;if(t&&"function"==typeof t.createElement)try{var n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n);var r=n.contentWindow;r&&r.fetch&&(e=r.fetch),t.head.removeChild(n)}catch(u){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",u)}return a=e.bind(s)}function c(t,e){if("[object Navigator]"===Object.prototype.toString.call(s&&s.navigator)&&"function"==typeof s.navigator.sendBeacon)s.navigator.sendBeacon.bind(s.navigator)(t,e);else if((0,i.Ak)()){u()(t,{body:e,method:"POST",credentials:"omit",keepalive:!0}).then(null,(t=>{("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.error(t)}))}}},6144:function(t,e,n){n.d(e,{K:function(){return o}});var r=n(1518),i=n(7946);function o(t){return(0,r.q)(t,(function(e){return new i.cW(((n,r)=>{var i=new XMLHttpRequest;for(var o in i.onerror=r,i.onreadystatechange=()=>{4===i.readyState&&n({statusCode:i.status,headers:{"x-sentry-rate-limits":i.getResponseHeader("X-Sentry-Rate-Limits"),"retry-after":i.getResponseHeader("Retry-After")}})},i.open("POST",t.url),t.headers)Object.prototype.hasOwnProperty.call(t.headers,o)&&i.setRequestHeader(o,t.headers[o]);i.send(e.body)}))}))}},4911:function(t,e,n){n.d(e,{U:function(){return o}});var r=n(1995);function i(t){var e=t.protocol?`${t.protocol}:`:"",n=t.port?`:${t.port}`:"";return`${e}//${t.host}${n}${t.path?`/${t.path}`:""}/api/`}function o(t,e){return e||`${function(t){return`${i(t)}${t.projectId}/envelope/`}(t)}?${function(t){return(0,r._j)({sentry_key:t.publicKey,sentry_version:"7"})}(t)}`}},9849:function(t,e,n){n.d(e,{W:function(){return m}});var r=n(2430),i=n(1684),o=n(3135),s=n(8536),a=n(3699),u=n(1757),c=n(7946),d=n(6894),_=n(7790),f=n(8035),l=n(9660),p=n(4388),h=n(4911),v=n(3055),g=n(8889),y="Not capturing exception because it's already been captured.";class m{__init(){this._integrations={}}__init2(){this._integrationsInitialized=!1}__init3(){this._numProcessing=0}__init4(){this._outcomes={}}constructor(t){if(m.prototype.__init.call(this),m.prototype.__init2.call(this),m.prototype.__init3.call(this),m.prototype.__init4.call(this),this._options=t,t.dsn){this._dsn=(0,o.vK)(t.dsn);var e=(0,h.U)(this._dsn,t.tunnel);this._transport=t.transport({recordDroppedEvent:this.recordDroppedEvent.bind(this),...t.transportOptions,url:e})}else("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn("No DSN provided, client will not do anything.")}captureException(t,e,n){if((0,a.YO)(t))return void(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.log(y));let r=e&&e.event_id;return this._process(this.eventFromException(t,e).then((t=>this._captureEvent(t,e,n))).then((t=>{r=t}))),r}captureMessage(t,e,n,r){let i=n&&n.event_id;var o=(0,u.pt)(t)?this.eventFromMessage(String(t),e,n):this.eventFromException(t,n);return this._process(o.then((t=>this._captureEvent(t,n,r))).then((t=>{i=t}))),i}captureEvent(t,e,n){if(e&&e.originalException&&(0,a.YO)(e.originalException))return void(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.log(y));let r=e&&e.event_id;return this._process(this._captureEvent(t,e,n).then((t=>{r=t}))),r}captureSession(t){this._isEnabled()?"string"!=typeof t.release?("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn("Discarded session because of missing or non-string release"):(this.sendSession(t),(0,r.CT)(t,{init:!1})):("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn("SDK not enabled, will not capture session.")}getDsn(){return this._dsn}getOptions(){return this._options}getTransport(){return this._transport}flush(t){var e=this._transport;return e?this._isClientDoneProcessing(t).then((n=>e.flush(t).then((t=>n&&t)))):(0,c.WD)(!0)}close(t){return this.flush(t).then((t=>(this.getOptions().enabled=!1,t)))}setupIntegrations(){this._isEnabled()&&!this._integrationsInitialized&&(this._integrations=(0,g.q4)(this._options.integrations),this._integrationsInitialized=!0)}getIntegrationById(t){return this._integrations[t]}getIntegration(t){try{return this._integrations[t.id]||null}catch(e){return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn(`Cannot retrieve integration ${t.id} from the current Client`),null}}sendEvent(t,e={}){if(this._dsn){let r=(0,v.M)(t,this._dsn,this._options._metadata,this._options.tunnel);for(var n of e.attachments||[])r=(0,d.BO)(r,(0,d.zQ)(n,this._options.transportOptions&&this._options.transportOptions.textEncoder));this._sendEnvelope(r)}}sendSession(t){if(this._dsn){var e=(0,v.Q)(t,this._dsn,this._options._metadata,this._options.tunnel);this._sendEnvelope(e)}}recordDroppedEvent(t,e){if(this._options.sendClientReports){var n=`${t}:${e}`;("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.log(`Adding outcome: "${n}"`),this._outcomes[n]=this._outcomes[n]+1||1}}_updateSessionFromEvent(t,e){let n=!1,i=!1;var o=e.exception&&e.exception.values;if(o)for(var s of(i=!0,o)){var a=s.mechanism;if(a&&!1===a.handled){n=!0;break}}var u="ok"===t.status;(u&&0===t.errors||u&&n)&&((0,r.CT)(t,{...n&&{status:"crashed"},errors:t.errors||Number(i||n)}),this.captureSession(t))}_isClientDoneProcessing(t){return new c.cW((e=>{let n=0;var r=setInterval((()=>{0==this._numProcessing?(clearInterval(r),e(!0)):(n+=1,t&&n>=t&&(clearInterval(r),e(!1)))}),1)}))}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._dsn}_prepareEvent(t,e,n){const{normalizeDepth:r=3,normalizeMaxBreadth:o=1e3}=this.getOptions();var s={...t,event_id:t.event_id||e.event_id||(0,a.DM)(),timestamp:t.timestamp||(0,_.yW)()};this._applyClientOptions(s),this._applyIntegrationsMetadata(s);let u=n;e.captureContext&&(u=i.s.clone(u).update(e.captureContext));let d=(0,c.WD)(s);if(u){var f=[...e.attachments||[],...u.getAttachments()];f.length&&(e.attachments=f),d=u.applyToEvent(s,e)}return d.then((t=>"number"==typeof r&&r>0?this._normalizeEvent(t,r,o):t))}_normalizeEvent(t,e,n){if(!t)return null;var r={...t,...t.breadcrumbs&&{breadcrumbs:t.breadcrumbs.map((t=>({...t,...t.data&&{data:(0,f.Fv)(t.data,e,n)}})))},...t.user&&{user:(0,f.Fv)(t.user,e,n)},...t.contexts&&{contexts:(0,f.Fv)(t.contexts,e,n)},...t.extra&&{extra:(0,f.Fv)(t.extra,e,n)}};return t.contexts&&t.contexts.trace&&r.contexts&&(r.contexts.trace=t.contexts.trace,t.contexts.trace.data&&(r.contexts.trace.data=(0,f.Fv)(t.contexts.trace.data,e,n))),t.spans&&(r.spans=t.spans.map((t=>(t.data&&(t.data=(0,f.Fv)(t.data,e,n)),t)))),r}_applyClientOptions(t){var e=this.getOptions();const{environment:n,release:r,dist:i,maxValueLength:o=250}=e;"environment"in t||(t.environment="environment"in e?n:"production"),void 0===t.release&&void 0!==r&&(t.release=r),void 0===t.dist&&void 0!==i&&(t.dist=i),t.message&&(t.message=(0,l.$G)(t.message,o));var s=t.exception&&t.exception.values&&t.exception.values[0];s&&s.value&&(s.value=(0,l.$G)(s.value,o));var a=t.request;a&&a.url&&(a.url=(0,l.$G)(a.url,o))}_applyIntegrationsMetadata(t){var e=Object.keys(this._integrations);e.length>0&&(t.sdk=t.sdk||{},t.sdk.integrations=[...t.sdk.integrations||[],...e])}_captureEvent(t,e={},n){return this._processEvent(t,e,n).then((t=>t.event_id),(t=>{("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn(t)}))}_processEvent(t,e,n){const{beforeSend:r,sampleRate:i}=this.getOptions();if(!this._isEnabled())return(0,c.$2)(new p.b("SDK not enabled, will not capture event."));var o="transaction"===t.type;return!o&&"number"==typeof i&&Math.random()>i?(this.recordDroppedEvent("sample_rate","error"),(0,c.$2)(new p.b(`Discarding event because it's not included in the random sample (sampling rate = ${i})`))):this._prepareEvent(t,e,n).then((n=>{if(null===n)throw this.recordDroppedEvent("event_processor",t.type||"error"),new p.b("An event processor returned null, will not send event.");return e.data&&!0===e.data.__sentry__||o||!r?n:function(t){var e="`beforeSend` method has to return `null` or a valid event.";if((0,u.J8)(t))return t.then((t=>{if(!(0,u.PO)(t)&&null!==t)throw new p.b(e);return t}),(t=>{throw new p.b(`beforeSend rejected with ${t}`)}));if(!(0,u.PO)(t)&&null!==t)throw new p.b(e);return t}(r(n,e))})).then((r=>{if(null===r)throw this.recordDroppedEvent("before_send",t.type||"error"),new p.b("`beforeSend` returned `null`, will not send event.");var i=n&&n.getSession();return!o&&i&&this._updateSessionFromEvent(i,r),this.sendEvent(r,e),r})).then(null,(t=>{if(t instanceof p.b)throw t;throw this.captureException(t,{data:{__sentry__:!0},originalException:t}),new p.b(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${t}`)}))}_process(t){this._numProcessing+=1,t.then((t=>(this._numProcessing-=1,t)),(t=>(this._numProcessing-=1,t)))}_sendEnvelope(t){this._transport&&this._dsn?this._transport.send(t).then(null,(t=>{("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.error("Error while sending event:",t)})):("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.error("Transport disabled")}_clearOutcomes(){var t=this._outcomes;return this._outcomes={},Object.keys(t).map((e=>{const[n,r]=e.split(":");return{reason:n,category:r,quantity:t[e]}}))}}},3055:function(t,e,n){n.d(e,{M:function(){return c},Q:function(){return u}});var r=n(3135),i=n(6894),o=n(6990),s=n(1995);function a(t){if(!t||!t.sdk)return;const{name:e,version:n}=t.sdk;return{name:e,version:n}}function u(t,e,n,o){var s=a(n),u={sent_at:(new Date).toISOString(),...s&&{sdk:s},...!!o&&{dsn:(0,r.RA)(e)}},c="aggregates"in t?[{type:"sessions"},t]:[{type:"session"},t];return(0,i.Jd)(u,[c])}function c(t,e,n,u){var c=a(n),d=t.type||"event";const{transactionSampling:_}=t.sdkProcessingMetadata||{},{method:f,rate:l}=_||{};!function(t,e){e&&(t.sdk=t.sdk||{},t.sdk.name=t.sdk.name||e.name,t.sdk.version=t.sdk.version||e.version,t.sdk.integrations=[...t.sdk.integrations||[],...e.integrations||[]],t.sdk.packages=[...t.sdk.packages||[],...e.packages||[]])}(t,n&&n.sdk);var p=function(t,e,n,i){var a=t.sdkProcessingMetadata&&t.sdkProcessingMetadata.baggage,u=a&&(0,o.Hk)(a);return{event_id:t.event_id,sent_at:(new Date).toISOString(),...e&&{sdk:e},...!!n&&{dsn:(0,r.RA)(i)},..."transaction"===t.type&&u&&{trace:(0,s.Jr)({...u})}}}(t,c,u,e);delete t.sdkProcessingMetadata;var h=[{type:d,sample_rates:[{id:f,rate:l}]},t];return(0,i.Jd)(p,[h])}},8889:function(t,e,n){n.d(e,{m8:function(){return u},q4:function(){return c}});var r=n(1684),i=n(8585),o=n(8536),s=[];function a(t){return t.reduce(((t,e)=>(t.every((t=>e.name!==t.name))&&t.push(e),t)),[])}function u(t){var e=t.defaultIntegrations&&[...t.defaultIntegrations]||[],n=t.integrations;let r=[...a(e)];Array.isArray(n)?r=[...r.filter((t=>n.every((e=>e.name!==t.name)))),...a(n)]:"function"==typeof n&&(r=n(r),r=Array.isArray(r)?r:[r]);var i=r.map((t=>t.name)),o="Debug";return-1!==i.indexOf(o)&&r.push(...r.splice(i.indexOf(o),1)),r}function c(t){var e={};return t.forEach((t=>{e[t.name]=t,-1===s.indexOf(t.name)&&(t.setupOnce(r.c,i.Gd),s.push(t.name),("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.log(`Integration installed: ${t.name}`))})),e}},6286:function(t,e,n){n.d(e,{c:function(){return o}});var r=n(1995);let i;class o{constructor(){o.prototype.__init.call(this)}static __initStatic(){this.id="FunctionToString"}__init(){this.name=o.id}setupOnce(){i=Function.prototype.toString,Function.prototype.toString=function(...t){var e=(0,r.HK)(this)||this;return i.apply(e,t)}}}o.__initStatic()},1061:function(t,e,n){n.d(e,{QD:function(){return a}});var r=n(8536),i=n(3699),o=n(9660),s=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/];class a{static __initStatic(){this.id="InboundFilters"}__init(){this.name=a.id}constructor(t={}){this._options=t,a.prototype.__init.call(this)}setupOnce(t,e){var n=t=>{var n=e();if(n){var c=n.getIntegration(a);if(c){var d=n.getClient(),_=d?d.getOptions():{},f=function(t={},e={}){return{allowUrls:[...t.allowUrls||[],...e.allowUrls||[]],denyUrls:[...t.denyUrls||[],...e.denyUrls||[]],ignoreErrors:[...t.ignoreErrors||[],...e.ignoreErrors||[],...s],ignoreInternal:void 0===t.ignoreInternal||t.ignoreInternal}}(c._options,_);return function(t,e){if(e.ignoreInternal&&function(t){try{return"SentryError"===t.exception.values[0].type}catch(e){}return!1}(t))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being internal Sentry Error.\nEvent: ${(0,i.jH)(t)}`),!0;if(function(t,e){if(!e||!e.length)return!1;return function(t){if(t.message)return[t.message];if(t.exception)try{const{type:e="",value:n=""}=t.exception.values&&t.exception.values[0]||{};return[`${n}`,`${e}: ${n}`]}catch(e){return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Cannot extract message for event ${(0,i.jH)(t)}`),[]}return[]}(t).some((t=>e.some((e=>(0,o.zC)(t,e)))))}(t,e.ignoreErrors))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${(0,i.jH)(t)}`),!0;if(function(t,e){if(!e||!e.length)return!1;var n=u(t);return!!n&&e.some((t=>(0,o.zC)(n,t)))}(t,e.denyUrls))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${(0,i.jH)(t)}.\nUrl: ${u(t)}`),!0;if(!function(t,e){if(!e||!e.length)return!0;var n=u(t);return!n||e.some((t=>(0,o.zC)(n,t)))}(t,e.allowUrls))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${(0,i.jH)(t)}.\nUrl: ${u(t)}`),!0;return!1}(t,f)?null:t}}return t};n.id=this.name,t(n)}}function u(t){try{let n;try{n=t.exception.values[0].stacktrace.frames}catch(e){}return n?function(t=[]){for(let n=t.length-1;n>=0;n--){var e=t[n];if(e&&"<anonymous>"!==e.filename&&"[native code]"!==e.filename)return e.filename||null}return null}(n):null}catch(n){return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Cannot extract url for event ${(0,i.jH)(t)}`),null}}a.__initStatic()},6853:function(t,e,n){n.d(e,{M:function(){return o}});var r=n(8585),i=n(8536);function o(t,e){!0===e.debug&&("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?i.kg.enable():console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle."));var n=(0,r.Gd)(),o=n.getScope();o&&o.update(e.initialScope);var s=new t(e);n.bindClient(s)}},1518:function(t,e,n){n.d(e,{q:function(){return c}});var r=n(8963),i=n(6894),o=n(1630),s=n(7946),a=n(8536),u=n(4388);function c(t,e,n=(0,r.x)(t.bufferSize||30)){let c={};return{send:function(r){var d=[];if((0,i.gv)(r,((e,n)=>{var r=(0,i.mL)(n);(0,o.Q)(c,r)?t.recordDroppedEvent("ratelimit_backoff",r):d.push(e)})),0===d.length)return(0,s.WD)();var _=(0,i.Jd)(r[0],d),f=e=>{(0,i.gv)(_,((n,r)=>{t.recordDroppedEvent(e,(0,i.mL)(r))}))};return n.add((()=>e({body:(0,i.V$)(_,t.textEncoder)}).then((t=>{void 0!==t.statusCode&&(t.statusCode<200||t.statusCode>=300)&&("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&a.kg.warn(`Sentry responded with status code ${t.statusCode} to sent event.`),c=(0,o.WG)(c,t)}),(t=>{("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&a.kg.error("Failed while sending event:",t),f("network_error")})))).then((t=>t),(t=>{if(t instanceof u.b)return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&a.kg.error("Skipped sending event due to full buffer"),f("queue_overflow"),(0,s.WD)();throw t}))},flush:t=>n.drain(t)}}},1476:function(t,e,n){n.d(e,{J:function(){return r}});var r="7.5.1"},2483:function(t,e,n){n.d(e,{Tb:function(){return i},$e:function(){return o}});var r=n(8585);function i(t,e){return(0,r.Gd)().captureException(t,{captureContext:e})}function o(t){(0,r.Gd)().withScope(t)}},8585:function(t,e,n){n.d(e,{Gd:function(){return p}});var r=n(3699),i=n(7790),o=n(8536),s=n(5907),a=n(7392),u=n(1684),c=n(2430),d=100;class _{__init(){this._stack=[{}]}constructor(t,e=new u.s,n=4){this._version=n,_.prototype.__init.call(this),this.getStackTop().scope=e,t&&this.bindClient(t)}isOlderThan(t){return this._version<t}bindClient(t){this.getStackTop().client=t,t&&t.setupIntegrations&&t.setupIntegrations()}pushScope(){var t=u.s.clone(this.getScope());return this.getStack().push({client:this.getClient(),scope:t}),t}popScope(){return!(this.getStack().length<=1)&&!!this.getStack().pop()}withScope(t){var e=this.pushScope();try{t(e)}finally{this.popScope()}}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getStack(){return this._stack}getStackTop(){return this._stack[this._stack.length-1]}captureException(t,e){var n=this._lastEventId=e&&e.event_id?e.event_id:(0,r.DM)(),i=new Error("Sentry syntheticException");return this._withClient(((r,o)=>{r.captureException(t,{originalException:t,syntheticException:i,...e,event_id:n},o)})),n}captureMessage(t,e,n){var i=this._lastEventId=n&&n.event_id?n.event_id:(0,r.DM)(),o=new Error(t);return this._withClient(((r,s)=>{r.captureMessage(t,e,{originalException:t,syntheticException:o,...n,event_id:i},s)})),i}captureEvent(t,e){var n=e&&e.event_id?e.event_id:(0,r.DM)();return"transaction"!==t.type&&(this._lastEventId=n),this._withClient(((r,i)=>{r.captureEvent(t,{...e,event_id:n},i)})),n}lastEventId(){return this._lastEventId}addBreadcrumb(t,e){const{scope:n,client:r}=this.getStackTop();if(!n||!r)return;const{beforeBreadcrumb:s=null,maxBreadcrumbs:a=d}=r.getOptions&&r.getOptions()||{};if(!(a<=0)){var u={timestamp:(0,i.yW)(),...t},c=s?(0,o.Cf)((()=>s(u,e))):u;null!==c&&n.addBreadcrumb(c,a)}}setUser(t){var e=this.getScope();e&&e.setUser(t)}setTags(t){var e=this.getScope();e&&e.setTags(t)}setExtras(t){var e=this.getScope();e&&e.setExtras(t)}setTag(t,e){var n=this.getScope();n&&n.setTag(t,e)}setExtra(t,e){var n=this.getScope();n&&n.setExtra(t,e)}setContext(t,e){var n=this.getScope();n&&n.setContext(t,e)}configureScope(t){const{scope:e,client:n}=this.getStackTop();e&&n&&t(e)}run(t){var e=l(this);try{t(this)}finally{l(e)}}getIntegration(t){var e=this.getClient();if(!e)return null;try{return e.getIntegration(t)}catch(n){return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.warn(`Cannot retrieve integration ${t.id} from the current Hub`),null}}startTransaction(t,e){return this._callExtensionMethod("startTransaction",t,e)}traceHeaders(){return this._callExtensionMethod("traceHeaders")}captureSession(t=!1){if(t)return this.endSession();this._sendSessionUpdate()}endSession(){var t=this.getStackTop(),e=t&&t.scope,n=e&&e.getSession();n&&(0,c.RJ)(n),this._sendSessionUpdate(),e&&e.setSession()}startSession(t){const{scope:e,client:n}=this.getStackTop(),{release:r,environment:i}=n&&n.getOptions()||{};var o=(0,s.R)();const{userAgent:a}=o.navigator||{};var u=(0,c.Hv)({release:r,environment:i,...e&&{user:e.getUser()},...a&&{userAgent:a},...t});if(e){var d=e.getSession&&e.getSession();d&&"ok"===d.status&&(0,c.CT)(d,{status:"exited"}),this.endSession(),e.setSession(u)}return u}shouldSendDefaultPii(){var t=this.getClient(),e=t&&t.getOptions();return Boolean(e&&e.sendDefaultPii)}_sendSessionUpdate(){const{scope:t,client:e}=this.getStackTop();if(t){var n=t.getSession();n&&e&&e.captureSession&&e.captureSession(n)}}_withClient(t){const{scope:e,client:n}=this.getStackTop();n&&t(n,e)}_callExtensionMethod(t,...e){var n=f().__SENTRY__;if(n&&n.extensions&&"function"==typeof n.extensions[t])return n.extensions[t].apply(this,e);("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.warn(`Extension method ${t} couldn't be found, doing nothing.`)}}function f(){var t=(0,s.R)();return t.__SENTRY__=t.__SENTRY__||{extensions:{},hub:void 0},t}function l(t){var e=f(),n=v(e);return g(e,t),n}function p(){var t=f();return h(t)&&!v(t).isOlderThan(4)||g(t,new _),(0,a.KV)()?function(t){try{var e=f().__SENTRY__,n=e&&e.extensions&&e.extensions.domain&&e.extensions.domain.active;if(!n)return v(t);if(!h(n)||v(n).isOlderThan(4)){var r=v(t).getStackTop();g(n,new _(r.client,u.s.clone(r.scope)))}return v(n)}catch(i){return v(t)}}(t):v(t)}function h(t){return!!(t&&t.__SENTRY__&&t.__SENTRY__.hub)}function v(t){return(0,s.Y)("hub",(()=>new _),t)}function g(t,e){return!!t&&((t.__SENTRY__=t.__SENTRY__||{}).hub=e,!0)}},1684:function(t,e,n){n.d(e,{s:function(){return c},c:function(){return _}});var r=n(1757),i=n(7790),o=n(7946),s=n(8536),a=n(5907),u=n(2430);class c{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={}}static clone(t){var e=new c;return t&&(e._breadcrumbs=[...t._breadcrumbs],e._tags={...t._tags},e._extra={...t._extra},e._contexts={...t._contexts},e._user=t._user,e._level=t._level,e._span=t._span,e._session=t._session,e._transactionName=t._transactionName,e._fingerprint=t._fingerprint,e._eventProcessors=[...t._eventProcessors],e._requestSession=t._requestSession,e._attachments=[...t._attachments]),e}addScopeListener(t){this._scopeListeners.push(t)}addEventProcessor(t){return this._eventProcessors.push(t),this}setUser(t){return this._user=t||{},this._session&&(0,u.CT)(this._session,{user:t}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(t){return this._requestSession=t,this}setTags(t){return this._tags={...this._tags,...t},this._notifyScopeListeners(),this}setTag(t,e){return this._tags={...this._tags,[t]:e},this._notifyScopeListeners(),this}setExtras(t){return this._extra={...this._extra,...t},this._notifyScopeListeners(),this}setExtra(t,e){return this._extra={...this._extra,[t]:e},this._notifyScopeListeners(),this}setFingerprint(t){return this._fingerprint=t,this._notifyScopeListeners(),this}setLevel(t){return this._level=t,this._notifyScopeListeners(),this}setTransactionName(t){return this._transactionName=t,this._notifyScopeListeners(),this}setContext(t,e){return null===e?delete this._contexts[t]:this._contexts={...this._contexts,[t]:e},this._notifyScopeListeners(),this}setSpan(t){return this._span=t,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){var t=this.getSpan();return t&&t.transaction}setSession(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;if("function"==typeof t){var e=t(this);return e instanceof c?e:this}return t instanceof c?(this._tags={...this._tags,...t._tags},this._extra={...this._extra,...t._extra},this._contexts={...this._contexts,...t._contexts},t._user&&Object.keys(t._user).length&&(this._user=t._user),t._level&&(this._level=t._level),t._fingerprint&&(this._fingerprint=t._fingerprint),t._requestSession&&(this._requestSession=t._requestSession)):(0,r.PO)(t)&&(t=t,this._tags={...this._tags,...t.tags},this._extra={...this._extra,...t.extra},this._contexts={...this._contexts,...t.contexts},t.user&&(this._user=t.user),t.level&&(this._level=t.level),t.fingerprint&&(this._fingerprint=t.fingerprint),t.requestSession&&(this._requestSession=t.requestSession)),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this._attachments=[],this}addBreadcrumb(t,e){var n="number"==typeof e?Math.min(e,100):100;if(n<=0)return this;var r={timestamp:(0,i.yW)(),...t};return this._breadcrumbs=[...this._breadcrumbs,r].slice(-n),this._notifyScopeListeners(),this}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}getAttachments(){return this._attachments}clearAttachments(){return this._attachments=[],this}applyToEvent(t,e={}){if(this._extra&&Object.keys(this._extra).length&&(t.extra={...this._extra,...t.extra}),this._tags&&Object.keys(this._tags).length&&(t.tags={...this._tags,...t.tags}),this._user&&Object.keys(this._user).length&&(t.user={...this._user,...t.user}),this._contexts&&Object.keys(this._contexts).length&&(t.contexts={...this._contexts,...t.contexts}),this._level&&(t.level=this._level),this._transactionName&&(t.transaction=this._transactionName),this._span){t.contexts={trace:this._span.getTraceContext(),...t.contexts};var n=this._span.transaction&&this._span.transaction.name;n&&(t.tags={transaction:n,...t.tags})}return this._applyFingerprint(t),t.breadcrumbs=[...t.breadcrumbs||[],...this._breadcrumbs],t.breadcrumbs=t.breadcrumbs.length>0?t.breadcrumbs:void 0,t.sdkProcessingMetadata={...t.sdkProcessingMetadata,...this._sdkProcessingMetadata},this._notifyEventProcessors([...d(),...this._eventProcessors],t,e)}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata={...this._sdkProcessingMetadata,...t},this}_notifyEventProcessors(t,e,n,i=0){return new o.cW(((o,a)=>{var u=t[i];if(null===e||"function"!=typeof u)o(e);else{var c=u({...e},n);("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&u.id&&null===c&&s.kg.log(`Event processor "${u.id}" dropped event`),(0,r.J8)(c)?c.then((e=>this._notifyEventProcessors(t,e,n,i+1).then(o))).then(null,a):this._notifyEventProcessors(t,c,n,i+1).then(o).then(null,a)}}))}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((t=>{t(this)})),this._notifyingListeners=!1)}_applyFingerprint(t){t.fingerprint=t.fingerprint?Array.isArray(t.fingerprint)?t.fingerprint:[t.fingerprint]:[],this._fingerprint&&(t.fingerprint=t.fingerprint.concat(this._fingerprint)),t.fingerprint&&!t.fingerprint.length&&delete t.fingerprint}}function d(){return(0,a.Y)("globalEventProcessors",(()=>[]))}function _(t){d().push(t)}},2430:function(t,e,n){n.d(e,{RJ:function(){return u},Hv:function(){return s},CT:function(){return a}});var r=n(7790),i=n(3699),o=n(1995);function s(t){var e=(0,r.ph)(),n={sid:(0,i.DM)(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>function(t){return(0,o.Jr)({sid:`${t.sid}`,init:t.init,started:new Date(1e3*t.started).toISOString(),timestamp:new Date(1e3*t.timestamp).toISOString(),status:t.status,errors:t.errors,did:"number"==typeof t.did||"string"==typeof t.did?`${t.did}`:void 0,duration:t.duration,attrs:{release:t.release,environment:t.environment,ip_address:t.ipAddress,user_agent:t.userAgent}})}(n)};return t&&a(n,t),n}function a(t,e={}){if(e.user&&(!t.ipAddress&&e.user.ip_address&&(t.ipAddress=e.user.ip_address),t.did||e.did||(t.did=e.user.id||e.user.email||e.user.username)),t.timestamp=e.timestamp||(0,r.ph)(),e.ignoreDuration&&(t.ignoreDuration=e.ignoreDuration),e.sid&&(t.sid=32===e.sid.length?e.sid:(0,i.DM)()),void 0!==e.init&&(t.init=e.init),!t.did&&e.did&&(t.did=`${e.did}`),"number"==typeof e.started&&(t.started=e.started),t.ignoreDuration)t.duration=void 0;else if("number"==typeof e.duration)t.duration=e.duration;else{var n=t.timestamp-t.started;t.duration=n>=0?n:0}e.release&&(t.release=e.release),e.environment&&(t.environment=e.environment),!t.ipAddress&&e.ipAddress&&(t.ipAddress=e.ipAddress),!t.userAgent&&e.userAgent&&(t.userAgent=e.userAgent),"number"==typeof e.errors&&(t.errors=e.errors),e.status&&(t.status=e.status)}function u(t,e){let n={};e?n={status:e}:"ok"===t.status&&(n={status:"exited"}),a(t,n)}},6990:function(t,e,n){n.d(e,{Hk:function(){return r}});function r(t){return t[0]}},4194:function(t,e,n){n.d(e,{l:function(){return a},R:function(){return o}});var r=n(5907),i=n(1757);function o(t,e){try{let i=t;var n=[];let o=0,a=0;var r=" > ".length;let u;for(;i&&o++<5&&(u=s(i,e),!("html"===u||o>1&&a+n.length*r+u.length>=80));)n.push(u),a+=u.length,i=i.parentNode;return n.reverse().join(" > ")}catch(i){return"<unknown>"}}function s(t,e){var n=t,r=[];let o,s,a,u,c;if(!n||!n.tagName)return"";r.push(n.tagName.toLowerCase());var d=e&&e.length?e.filter((t=>n.getAttribute(t))).map((t=>[t,n.getAttribute(t)])):null;if(d&&d.length)d.forEach((t=>{r.push(`[${t[0]}="${t[1]}"]`)}));else if(n.id&&r.push(`#${n.id}`),o=n.className,o&&(0,i.HD)(o))for(s=o.split(/\s+/),c=0;c<s.length;c++)r.push(`.${s[c]}`);var _=["type","name","title","alt"];for(c=0;c<_.length;c++)a=_[c],u=n.getAttribute(a),u&&r.push(`[${a}="${u}"]`);return r.join("")}function a(){var t=(0,r.R)();try{return t.document.location.href}catch(e){return""}}},250:function(t,e,n){n.d(e,{y:function(){return o}});var r=n(6894),i=n(7790);function o(t,e,n){var o=[{type:"client_report"},{timestamp:n||(0,i.yW)(),discarded_events:t}];return(0,r.Jd)(e?{dsn:e}:{},[o])}},3135:function(t,e,n){n.d(e,{RA:function(){return o},vK:function(){return u}});var r=n(4388),i=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w.-]+)(?::(\d+))?\/(.+)/;function o(t,e=!1){const{host:n,path:r,pass:i,port:o,projectId:s,protocol:a,publicKey:u}=t;return`${a}://${u}${e&&i?`:${i}`:""}@${n}${o?`:${o}`:""}/${r?`${r}/`:r}${s}`}function s(t){var e=i.exec(t);if(!e)throw new r.b(`Invalid Sentry Dsn: ${t}`);const[n,o,s="",u,c="",d]=e.slice(1);let _="",f=d;var l=f.split("/");if(l.length>1&&(_=l.slice(0,-1).join("/"),f=l.pop()),f){var p=f.match(/^\d+/);p&&(f=p[0])}return a({host:u,pass:s,path:_,projectId:f,port:c,protocol:n,publicKey:o})}function a(t){return{protocol:t.protocol,publicKey:t.publicKey||"",pass:t.pass||"",host:t.host,port:t.port||"",path:t.path||"",projectId:t.projectId}}function u(t){var e="string"==typeof t?s(t):a(t);return function(t){if("undefined"!=typeof __SENTRY_DEBUG__&&!__SENTRY_DEBUG__)return;const{port:e,projectId:n,protocol:i}=t;if(["protocol","publicKey","host","projectId"].forEach((e=>{if(!t[e])throw new r.b(`Invalid Sentry Dsn: ${e} missing`)})),!n.match(/^\d+$/))throw new r.b(`Invalid Sentry Dsn: Invalid projectId ${n}`);if(!function(t){return"http"===t||"https"===t}(i))throw new r.b(`Invalid Sentry Dsn: Invalid protocol ${i}`);if(e&&isNaN(parseInt(e,10)))throw new r.b(`Invalid Sentry Dsn: Invalid port ${e}`)}(e),e}},4285:function(t,e,n){function r(){return"undefined"!=typeof __SENTRY_BROWSER_BUNDLE__&&!!__SENTRY_BROWSER_BUNDLE__}n.d(e,{n:function(){return r}})},6894:function(t,e,n){n.d(e,{BO:function(){return o},zQ:function(){return c},Jd:function(){return i},mL:function(){return _},gv:function(){return s},V$:function(){return u}});var r=n(1995);function i(t,e=[]){return[t,e]}function o(t,e){const[n,r]=t;return[n,[...r,e]]}function s(t,e){t[1].forEach((t=>{var n=t[0].type;e(t,n)}))}function a(t,e){return(e||new TextEncoder).encode(t)}function u(t,e){const[n,r]=t;let i=JSON.stringify(n);function o(t){"string"==typeof i?i="string"==typeof t?i+t:[a(i,e),t]:i.push("string"==typeof t?a(t,e):t)}for(var s of r){const[t,e]=s;o(`\n${JSON.stringify(t)}\n`),o("string"==typeof e||e instanceof Uint8Array?e:JSON.stringify(e))}return"string"==typeof i?i:function(t){var e=t.reduce(((t,e)=>t+e.length),0),n=new Uint8Array(e);let r=0;for(var i of t)n.set(i,r),r+=i.length;return n}(i)}function c(t,e){var n="string"==typeof t.data?a(t.data,e):t.data;return[(0,r.Jr)({type:"attachment",length:n.length,filename:t.filename,content_type:t.contentType,attachment_type:t.attachmentType}),n]}var d={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default"};function _(t){return d[t]}},4388:function(t,e,n){n.d(e,{b:function(){return r}});class r extends Error{constructor(t){super(t),this.message=t,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}}},5907:function(t,e,n){n.d(e,{R:function(){return o},Y:function(){return s}});var r=n(7392),i={};function o(){return(0,r.KV)()||"undefined"!=typeof window?window:"undefined"!=typeof self?self:i}function s(t,e,n){var r=n||o(),i=r.__SENTRY__=r.__SENTRY__||{};return i[t]||(i[t]=e())}},4005:function(t,e,n){n.d(e,{o:function(){return l}});var r=n(5907),i=n(1757),o=n(8536),s=n(1995),a=n(9038),u=n(9798),c=(0,r.R)(),d={},_={};function f(t){if(!_[t])switch(_[t]=!0,t){case"console":!function(){if(!("console"in c))return;o.RU.forEach((function(t){t in c.console&&(0,s.hl)(c.console,t,(function(e){return function(...n){p("console",{args:n,level:t}),e&&e.apply(c.console,n)}}))}))}();break;case"dom":!function(){if(!("document"in c))return;var t=p.bind(null,"dom"),e=E(t,!0);c.document.addEventListener("click",e,!1),c.document.addEventListener("keypress",e,!1),["EventTarget","Node"].forEach((e=>{var n=c[e]&&c[e].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,s.hl)(n,"addEventListener",(function(e){return function(n,r,i){if("click"===n||"keypress"==n)try{var o=this,s=o.__sentry_instrumentation_handlers__=o.__sentry_instrumentation_handlers__||{},a=s[n]=s[n]||{refCount:0};if(!a.handler){var u=E(t);a.handler=u,e.call(this,n,u,i)}a.refCount+=1}catch(c){}return e.call(this,n,r,i)}})),(0,s.hl)(n,"removeEventListener",(function(t){return function(e,n,r){if("click"===e||"keypress"==e)try{var i=this,o=i.__sentry_instrumentation_handlers__||{},s=o[e];s&&(s.refCount-=1,s.refCount<=0&&(t.call(this,e,s.handler,r),s.handler=void 0,delete o[e]),0===Object.keys(o).length&&delete i.__sentry_instrumentation_handlers__)}catch(a){}return t.call(this,e,n,r)}})))}))}();break;case"xhr":!function(){if(!("XMLHttpRequest"in c))return;var t=XMLHttpRequest.prototype;(0,s.hl)(t,"open",(function(t){return function(...e){var n=this,r=e[1],o=n.__sentry_xhr__={method:(0,i.HD)(e[0])?e[0].toUpperCase():e[0],url:e[1]};(0,i.HD)(r)&&"POST"===o.method&&r.match(/sentry_key/)&&(n.__sentry_own_request__=!0);var a=function(){if(4===n.readyState){try{o.status_code=n.status}catch(t){}p("xhr",{args:e,endTimestamp:Date.now(),startTimestamp:Date.now(),xhr:n})}};return"onreadystatechange"in n&&"function"==typeof n.onreadystatechange?(0,s.hl)(n,"onreadystatechange",(function(t){return function(...e){return a(),t.apply(n,e)}})):n.addEventListener("readystatechange",a),t.apply(n,e)}})),(0,s.hl)(t,"send",(function(t){return function(...e){return this.__sentry_xhr__&&void 0!==e[0]&&(this.__sentry_xhr__.body=e[0]),p("xhr",{args:e,startTimestamp:Date.now(),xhr:this}),t.apply(this,e)}}))}();break;case"fetch":!function(){if(!(0,u.t$)())return;(0,s.hl)(c,"fetch",(function(t){return function(...e){var n={args:e,fetchData:{method:h(e),url:v(e)},startTimestamp:Date.now()};return p("fetch",{...n}),t.apply(c,e).then((t=>(p("fetch",{...n,endTimestamp:Date.now(),response:t}),t)),(t=>{throw p("fetch",{...n,endTimestamp:Date.now(),error:t}),t}))}}))}();break;case"history":!function(){if(!(0,u.Bf)())return;var t=c.onpopstate;function e(t){return function(...e){var n=e.length>2?e[2]:void 0;if(n){var r=g,i=String(n);g=i,p("history",{from:r,to:i})}return t.apply(this,e)}}c.onpopstate=function(...e){var n=c.location.href,r=g;if(g=n,p("history",{from:r,to:n}),t)try{return t.apply(this,e)}catch(i){}},(0,s.hl)(c.history,"pushState",e),(0,s.hl)(c.history,"replaceState",e)}();break;case"error":S=c.onerror,c.onerror=function(t,e,n,r,i){return p("error",{column:r,error:i,line:n,msg:t,url:e}),!!S&&S.apply(this,arguments)};break;case"unhandledrejection":b=c.onunhandledrejection,c.onunhandledrejection=function(t){return p("unhandledrejection",t),!b||b.apply(this,arguments)};break;default:return void(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.warn("unknown instrumentation type:",t))}}function l(t,e){d[t]=d[t]||[],d[t].push(e),f(t)}function p(t,e){if(t&&d[t])for(var n of d[t]||[])try{n(e)}catch(r){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.error(`Error while triggering instrumentation handler.\nType: ${t}\nName: ${(0,a.$P)(n)}\nError:`,r)}}function h(t=[]){return"Request"in c&&(0,i.V9)(t[0],Request)&&t[0].method?String(t[0].method).toUpperCase():t[1]&&t[1].method?String(t[1].method).toUpperCase():"GET"}function v(t=[]){return"string"==typeof t[0]?t[0]:"Request"in c&&(0,i.V9)(t[0],Request)?t[0].url:String(t[0])}let g;let y,m;function E(t,e=!1){return n=>{if(n&&m!==n&&!function(t){if("keypress"!==t.type)return!1;try{var e=t.target;if(!e||!e.tagName)return!0;if("INPUT"===e.tagName||"TEXTAREA"===e.tagName||e.isContentEditable)return!1}catch(n){}return!0}(n)){var r="keypress"===n.type?"input":n.type;(void 0===y||function(t,e){if(!t)return!0;if(t.type!==e.type)return!0;try{if(t.target!==e.target)return!0}catch(n){}return!1}(m,n))&&(t({event:n,name:r,global:e}),m=n),clearTimeout(y),y=c.setTimeout((()=>{y=void 0}),1e3)}}}let S=null;let b=null},1757:function(t,e,n){n.d(e,{TX:function(){return a},fm:function(){return u},kK:function(){return l},VZ:function(){return i},VW:function(){return s},cO:function(){return f},V9:function(){return y},i2:function(){return g},PO:function(){return _},pt:function(){return d},Kj:function(){return p},HD:function(){return c},Cy:function(){return v},J8:function(){return h}});var r=Object.prototype.toString;function i(t){switch(r.call(t)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return y(t,Error)}}function o(t,e){return r.call(t)===`[object ${e}]`}function s(t){return o(t,"ErrorEvent")}function a(t){return o(t,"DOMError")}function u(t){return o(t,"DOMException")}function c(t){return o(t,"String")}function d(t){return null===t||"object"!=typeof t&&"function"!=typeof t}function _(t){return o(t,"Object")}function f(t){return"undefined"!=typeof Event&&y(t,Event)}function l(t){return"undefined"!=typeof Element&&y(t,Element)}function p(t){return o(t,"RegExp")}function h(t){return Boolean(t&&t.then&&"function"==typeof t.then)}function v(t){return _(t)&&"nativeEvent"in t&&"preventDefault"in t&&"stopPropagation"in t}function g(t){return"number"==typeof t&&t!=t}function y(t,e){try{return t instanceof e}catch(n){return!1}}},8536:function(t,e,n){n.d(e,{RU:function(){return o},Cf:function(){return s},kg:function(){return u}});var r=n(5907),i=(0,r.R)(),o=["debug","info","warn","error","log","assert","trace"];function s(t){var e=(0,r.R)();if(!("console"in e))return t();var n=e.console,i={};o.forEach((t=>{var r=n[t]&&n[t].__sentry_original__;t in e.console&&r&&(i[t]=n[t],n[t]=r)}));try{return t()}finally{Object.keys(i).forEach((t=>{n[t]=i[t]}))}}function a(){let t=!1;var e={enable:()=>{t=!0},disable:()=>{t=!1}};return"undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?o.forEach((n=>{e[n]=(...e)=>{t&&s((()=>{i.console[n](`Sentry Logger [${n}]:`,...e)}))}})):o.forEach((t=>{e[t]=()=>{}})),e}let u;u="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?(0,r.Y)("logger",a):a()},4048:function(t,e,n){function r(){var t="function"==typeof WeakSet,e=t?new WeakSet:[];return[function(n){if(t)return!!e.has(n)||(e.add(n),!1);for(let t=0;t<e.length;t++){if(e[t]===n)return!0}return e.push(n),!1},function(n){if(t)e.delete(n);else for(let t=0;t<e.length;t++)if(e[t]===n){e.splice(t,1);break}}]}n.d(e,{i:function(){return r}})},3699:function(t,e,n){n.d(e,{EG:function(){return d},Db:function(){return c},YO:function(){return _},jH:function(){return u},en:function(){return s},DM:function(){return o}});var r=n(5907),i=n(1995);function o(){var t=(0,r.R)(),e=t.crypto||t.msCrypto;if(void 0!==e&&e.getRandomValues){var n=new Uint16Array(8);e.getRandomValues(n),n[3]=4095&n[3]|16384,n[4]=16383&n[4]|32768;var i=t=>{let e=t.toString(16);for(;e.length<4;)e=`0${e}`;return e};return i(n[0])+i(n[1])+i(n[2])+i(n[3])+i(n[4])+i(n[5])+i(n[6])+i(n[7])}return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,(t=>{var e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)}))}function s(t){if(!t)return{};var e=t.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)return{};var n=e[6]||"",r=e[8]||"";return{host:e[4],path:e[5],protocol:e[2],relative:e[5]+n+r}}function a(t){return t.exception&&t.exception.values?t.exception.values[0]:void 0}function u(t){const{message:e,event_id:n}=t;if(e)return e;var r=a(t);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"<unknown>":n||"<unknown>"}function c(t,e,n){var r=t.exception=t.exception||{},i=r.values=r.values||[],o=i[0]=i[0]||{};o.value||(o.value=e||""),o.type||(o.type=n||"Error")}function d(t,e){var n=a(t);if(n){var r=n.mechanism;if(n.mechanism={type:"generic",handled:!0,...r,...e},e&&"data"in e){var i={...r&&r.data,...e.data};n.mechanism.data=i}}}function _(t){if(t&&t.__sentry_captured__)return!0;try{(0,i.xp)(t,"__sentry_captured__",!0)}catch(e){}return!1}},7392:function(t,e,n){n.d(e,{l$:function(){return o},KV:function(){return i}});var r=n(4285);function i(){return!(0,r.n)()&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0)}function o(t,e){return t.require(e)}t=n.hmd(t)},8035:function(t,e,n){n.d(e,{Fv:function(){return a},Qy:function(){return u}});var r=n(1757),i=n(4048),o=n(1995),s=n(9038);function a(t,e=1/0,n=1/0){try{return c("",t,e,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function u(t,e=3,n=102400){var r,i=a(t,e);return r=i,function(t){return~-encodeURI(t).split(/%..|./).length}(JSON.stringify(r))>n?u(t,e-1,n):i}function c(t,e,n=1/0,a=1/0,u=(0,i.i)()){const[d,_]=u;if(null===e||["number","boolean","string"].includes(typeof e)&&!(0,r.i2)(e))return e;var f=function(t,e){try{return"domain"===t&&e&&"object"==typeof e&&e._events?"[Domain]":"domainEmitter"===t?"[DomainEmitter]":"undefined"!=typeof window&&e===window?"[Global]":"undefined"!=typeof window&&e===window?"[Window]":"undefined"!=typeof document&&e===document?"[Document]":(0,r.Cy)(e)?"[SyntheticEvent]":"number"==typeof e&&e!=e?"[NaN]":void 0===e?"[undefined]":"function"==typeof e?`[Function: ${(0,s.$P)(e)}]`:"symbol"==typeof e?`[${String(e)}]`:"bigint"==typeof e?`[BigInt: ${String(e)}]`:`[object ${Object.getPrototypeOf(e).constructor.name}]`}catch(n){return`**non-serializable** (${n})`}}(t,e);if(!f.startsWith("[object "))return f;if(e.__sentry_skip_normalization__)return e;if(0===n)return f.replace("object ","");if(d(e))return"[Circular ~]";var l=e;if(l&&"function"==typeof l.toJSON)try{return c("",l.toJSON(),n-1,a,u)}catch(m){}var p=Array.isArray(e)?[]:{};let h=0;var v=(0,o.Sh)(e);for(var g in v)if(Object.prototype.hasOwnProperty.call(v,g)){if(h>=a){p[g]="[MaxProperties ~]";break}var y=v[g];p[g]=c(g,y,n-1,a,u),h+=1}return _(e),p}},1995:function(t,e,n){n.d(e,{xp:function(){return a},Sh:function(){return _},Jr:function(){return h},zf:function(){return p},hl:function(){return s},HK:function(){return c},$Q:function(){return u},_j:function(){return d}});var r=n(4194),i=n(1757),o=n(9660);function s(t,e,n){if(e in t){var r=t[e],i=n(r);if("function"==typeof i)try{u(i,r)}catch(o){}t[e]=i}}function a(t,e,n){Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0})}function u(t,e){var n=e.prototype||{};t.prototype=e.prototype=n,a(t,"__sentry_original__",e)}function c(t){return t.__sentry_original__}function d(t){return Object.keys(t).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`)).join("&")}function _(t){if((0,i.VZ)(t))return{message:t.message,name:t.name,stack:t.stack,...l(t)};if((0,i.cO)(t)){var e={type:t.type,target:f(t.target),currentTarget:f(t.currentTarget),...l(t)};return"undefined"!=typeof CustomEvent&&(0,i.V9)(t,CustomEvent)&&(e.detail=t.detail),e}return t}function f(t){try{return(0,i.kK)(t)?(0,r.R)(t):Object.prototype.toString.call(t)}catch(e){return"<unknown>"}}function l(t){if("object"==typeof t&&null!==t){var e={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}return{}}function p(t,e=40){var n=Object.keys(_(t));if(n.sort(),!n.length)return"[object has no keys]";if(n[0].length>=e)return(0,o.$G)(n[0],e);for(let i=n.length;i>0;i--){var r=n.slice(0,i).join(", ");if(!(r.length>e))return i===n.length?r:(0,o.$G)(r,e)}return""}function h(t){return v(t,new Map)}function v(t,e){if((0,i.PO)(t)){if(void 0!==(o=e.get(t)))return o;var n={};for(var r of(e.set(t,n),Object.keys(t)))void 0!==t[r]&&(n[r]=v(t[r],e));return n}if(Array.isArray(t)){var o;if(void 0!==(o=e.get(t)))return o;n=[];return e.set(t,n),t.forEach((t=>{n.push(v(t,e))})),n}return t}},8963:function(t,e,n){n.d(e,{x:function(){return o}});var r=n(4388),i=n(7946);function o(t){var e=[];function n(t){return e.splice(e.indexOf(t),1)[0]}return{$:e,add:function(o){if(!(void 0===t||e.length<t))return(0,i.$2)(new r.b("Not adding Promise due to buffer limit reached."));var s=o();return-1===e.indexOf(s)&&e.push(s),s.then((()=>n(s))).then(null,(()=>n(s).then(null,(()=>{})))),s},drain:function(t){return new i.cW(((n,r)=>{let o=e.length;if(!o)return n(!0);var s=setTimeout((()=>{t&&t>0&&n(!1)}),t);e.forEach((t=>{(0,i.WD)(t).then((()=>{--o||(clearTimeout(s),n(!0))}),r)}))}))}}}},1630:function(t,e,n){n.d(e,{Q:function(){return r},WG:function(){return i}});function r(t,e,n=Date.now()){return function(t,e){return t[e]||t.all||0}(t,e)>n}function i(t,{statusCode:e,headers:n},r=Date.now()){var i={...t},o=n&&n["x-sentry-rate-limits"],s=n&&n["retry-after"];if(o)for(var a of o.trim().split(",")){const[t,e]=a.split(":",2);var u=parseInt(t,10),c=1e3*(isNaN(u)?60:u);if(e)for(var d of e.split(";"))i[d]=r+c;else i.all=r+c}else s?i.all=r+function(t,e=Date.now()){var n=parseInt(`${t}`,10);if(!isNaN(n))return 1e3*n;var r=Date.parse(`${t}`);return isNaN(r)?6e4:r-e}(s,r):429===e&&(i.all=r+6e4);return i}},8653:function(t,e,n){n.d(e,{VT:function(){return i}});var r=["fatal","error","warning","log","info","debug"];function i(t){return"warn"===t?"warning":r.includes(t)?t:"log"}},9038:function(t,e,n){n.d(e,{pE:function(){return r},$P:function(){return s},Sq:function(){return i}});function r(...t){var e=t.sort(((t,e)=>t[0]-e[0])).map((t=>t[1]));return(t,n=0)=>{var r=[];for(var i of t.split("\n").slice(n))for(var o of e){var s=o(i);if(s){r.push(s);break}}return function(t){if(!t.length)return[];let e=t;var n=e[0].function||"",r=e[e.length-1].function||"";-1===n.indexOf("captureMessage")&&-1===n.indexOf("captureException")||(e=e.slice(1));-1!==r.indexOf("sentryWrapped")&&(e=e.slice(0,-1));return e.slice(0,50).map((t=>({...t,filename:t.filename||e[0].filename,function:t.function||"?"}))).reverse()}(r)}}function i(t){return Array.isArray(t)?r(...t):t}var o="<anonymous>";function s(t){try{return t&&"function"==typeof t&&t.name||o}catch(e){return o}}},9660:function(t,e,n){n.d(e,{zC:function(){return s},nK:function(){return o},$G:function(){return i}});var r=n(1757);function i(t,e=0){return"string"!=typeof t||0===e||t.length<=e?t:`${t.substr(0,e)}...`}function o(t,e){if(!Array.isArray(t))return"";var n=[];for(let o=0;o<t.length;o++){var r=t[o];try{n.push(String(r))}catch(i){n.push("[value cannot be serialized]")}}return n.join(e)}function s(t,e){return!!(0,r.HD)(t)&&((0,r.Kj)(e)?e.test(t):"string"==typeof e&&-1!==t.indexOf(e))}},9798:function(t,e,n){n.d(e,{Du:function(){return s},Ak:function(){return o},Bf:function(){return u},t$:function(){return a}});var r=n(5907),i=n(8536);function o(){if(!("fetch"in(0,r.R)()))return!1;try{return new Headers,new Request(""),new Response,!0}catch(t){return!1}}function s(t){return t&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(t.toString())}function a(){if(!o())return!1;var t=(0,r.R)();if(s(t.fetch))return!0;let e=!1;var n=t.document;if(n&&"function"==typeof n.createElement)try{var a=n.createElement("iframe");a.hidden=!0,n.head.appendChild(a),a.contentWindow&&a.contentWindow.fetch&&(e=s(a.contentWindow.fetch)),n.head.removeChild(a)}catch(u){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.kg.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",u)}return e}function u(){var t=(0,r.R)(),e=t.chrome,n=e&&e.app&&e.app.runtime,i="history"in t&&!!t.history.pushState&&!!t.history.replaceState;return!n&&i}},7946:function(t,e,n){n.d(e,{cW:function(){return a},$2:function(){return s},WD:function(){return o}});var r,i=n(1757);function o(t){return new a((e=>{e(t)}))}function s(t){return new a(((e,n)=>{n(t)}))}!function(t){t[t.PENDING=0]="PENDING";t[t.RESOLVED=1]="RESOLVED";t[t.REJECTED=2]="REJECTED"}(r||(r={}));class a{__init(){this._state=r.PENDING}__init2(){this._handlers=[]}constructor(t){a.prototype.__init.call(this),a.prototype.__init2.call(this),a.prototype.__init3.call(this),a.prototype.__init4.call(this),a.prototype.__init5.call(this),a.prototype.__init6.call(this);try{t(this._resolve,this._reject)}catch(e){this._reject(e)}}then(t,e){return new a(((n,r)=>{this._handlers.push([!1,e=>{if(t)try{n(t(e))}catch(i){r(i)}else n(e)},t=>{if(e)try{n(e(t))}catch(i){r(i)}else r(t)}]),this._executeHandlers()}))}catch(t){return this.then((t=>t),t)}finally(t){return new a(((e,n)=>{let r,i;return this.then((e=>{i=!1,r=e,t&&t()}),(e=>{i=!0,r=e,t&&t()})).then((()=>{i?n(r):e(r)}))}))}__init3(){this._resolve=t=>{this._setResult(r.RESOLVED,t)}}__init4(){this._reject=t=>{this._setResult(r.REJECTED,t)}}__init5(){this._setResult=(t,e)=>{this._state===r.PENDING&&((0,i.J8)(e)?e.then(this._resolve,this._reject):(this._state=t,this._value=e,this._executeHandlers()))}}__init6(){this._executeHandlers=()=>{if(this._state!==r.PENDING){var t=this._handlers.slice();this._handlers=[],t.forEach((t=>{t[0]||(this._state===r.RESOLVED&&t[1](this._value),this._state===r.REJECTED&&t[2](this._value),t[0]=!0)}))}}}}},7790:function(t,e,n){n.d(e,{yW:function(){return u},ph:function(){return c}});var r=n(5907),i=n(7392);t=n.hmd(t);var o={nowSeconds:()=>Date.now()/1e3};var s=(0,i.KV)()?function(){try{return(0,i.l$)(t,"perf_hooks").performance}catch(e){return}}():function(){const{performance:t}=(0,r.R)();if(t&&t.now)return{now:()=>t.now(),timeOrigin:Date.now()-t.now()}}(),a=void 0===s?o:{nowSeconds:()=>(s.timeOrigin+s.now())/1e3},u=o.nowSeconds.bind(o),c=a.nowSeconds.bind(a);let d;(()=>{const{performance:t}=(0,r.R)();if(t&&t.now){var e=36e5,n=t.now(),i=Date.now(),o=t.timeOrigin?Math.abs(t.timeOrigin+n-i):e,s=o<e,a=t.timing&&t.timing.navigationStart,u="number"==typeof a?Math.abs(a+n-i):e;return s||u<e?o<=u?(d="timeOrigin",t.timeOrigin):(d="navigationStart",a):(d="dateNow",i)}d="none"})()},6989:function(t){t.exports=window.wp.apiFetch},2694:function(t){t.exports=window.wp.hooks}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={id:r,loaded:!1,exports:{}};return t[r](o,o.exports,n),o.loaded=!0,o.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.hmd=function(t){return(t=Object.create(t)).children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};!function(){n.r(r);var t,e=n(2456),i=n(2483),o=n(6989),s=n.n(o),a=n(2694);const u="true"===(null===(t=window.A8C_ETK_ErrorReporting_Config)||void 0===t?void 0:t.shouldActivateSentry),c=window._jsErr||[],d=window._headJsErrorHandler;u?(e.S1({dsn:"https://658ae291b00242148af6b76494d4a49a@o248881.ingest.sentry.io/5876245",release:"wpcom-test-01"}),(0,a.addAction)("editor.ErrorBoundary.errorLogged","etk/error-reporting",(t=>{i.Tb(t)})),c.forEach((t=>i.Tb(t))),e.yl().then((()=>delete window._jsErr))):function(){const t=t=>{let{error:e}=t;if(!e)return;const n={message:e.message,trace:e.stack,url:document.location.href,feature:"wp-admin"};return s()({global:!0,path:"/rest/v1.1/js-error",method:"POST",data:{error:JSON.stringify(n)}}).catch((()=>console.error("Error: Unable to record the error in Logstash.")))};window.addEventListener("error",t),Promise.allSettled(c.map(t)).then((()=>delete window._jsErr))}(),window.removeEventListener("error",d),delete window._headJsErrorHandler}(),window.EditingToolkit=r}();
|
2 |
//# sourceMappingURL=error-reporting.min.js.map
|
1 |
+
!function(){"use strict";var t={2314:function(t,e,n){n.d(e,{R:function(){return g}});var r=n(9849),i=n(1476),o=n(8585),s=n(4911),a=n(5907),u=n(3699),c=n(8536),d=n(250),_=n(3135),f=n(6894),l=n(1988),p=n(8356),h=n(5854),v=(0,a.R)();class g extends r.W{constructor(t){t._metadata=t._metadata||{},t._metadata.sdk=t._metadata.sdk||{name:"sentry.javascript.browser",packages:[{name:"npm:@sentry/browser",version:i.J}],version:i.J},super(t),t.sendClientReports&&v.document&&v.document.addEventListener("visibilitychange",(()=>{"hidden"===v.document.visibilityState&&this._flushOutcomes()}))}eventFromException(t,e){return(0,l.dr)(this._options.stackParser,t,e,this._options.attachStacktrace)}eventFromMessage(t,e="info",n){return(0,l.aB)(this._options.stackParser,t,e,n,this._options.attachStacktrace)}sendEvent(t,e){var n=this.getIntegrationById(p.p);n&&n.options&&n.options.sentry&&(0,o.Gd)().addBreadcrumb({category:"sentry."+("transaction"===t.type?"transaction":"event"),event_id:t.event_id,level:t.level,message:(0,u.jH)(t)},{event:t}),super.sendEvent(t,e)}_prepareEvent(t,e,n){return t.platform=t.platform||"javascript",super._prepareEvent(t,e,n)}_flushOutcomes(){var t=this._clearOutcomes();if(0!==t.length)if(this._dsn){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&c.kg.log("Sending outcomes:",t);var e=(0,s.U)(this._dsn,this._options.tunnel),n=(0,d.y)(t,this._options.tunnel&&(0,_.RA)(this._dsn));try{(0,h.z)(e,(0,f.V$)(n))}catch(r){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&c.kg.error(r)}}else("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&c.kg.log("No dsn provided, will not send outcomes");else("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&c.kg.log("No outcomes to send")}}},1988:function(t,e,n){n.d(e,{dr:function(){return l},aB:function(){return p},ME:function(){return h},GJ:function(){return u}});var r=n(1757),i=n(1995),o=n(8035),s=n(3699),a=n(7946);function u(t,e){var n=d(t,e),r={type:e&&e.name,value:f(e)};return n.length&&(r.stacktrace={frames:n}),void 0===r.type&&""===r.value&&(r.value="Unrecoverable error caught"),r}function c(t,e){return{exception:{values:[u(t,e)]}}}function d(t,e){var n=e.stacktrace||e.stack||"",r=function(t){if(t){if("number"==typeof t.framesToPop)return t.framesToPop;if(_.test(t.message))return 1}return 0}(e);try{return t(n,r)}catch(i){}return[]}var _=/Minified React error #\d+;/i;function f(t){var e=t&&t.message;return e?e.error&&"string"==typeof e.error.message?e.error.message:e:"No error message"}function l(t,e,n,r){var i=h(t,e,n&&n.syntheticException||void 0,r);return(0,s.EG)(i),i.level="error",n&&n.event_id&&(i.event_id=n.event_id),(0,a.WD)(i)}function p(t,e,n="info",r,i){var o=v(t,e,r&&r.syntheticException||void 0,i);return o.level=n,r&&r.event_id&&(o.event_id=r.event_id),(0,a.WD)(o)}function h(t,e,n,a,u){let _;if((0,r.VW)(e)&&e.error)return c(t,e.error);if((0,r.TX)(e)||(0,r.fm)(e)){var f=e;if("stack"in e)_=c(t,e);else{var l=f.name||((0,r.TX)(f)?"DOMError":"DOMException"),p=f.message?`${l}: ${f.message}`:l;_=v(t,p,n,a),(0,s.Db)(_,p)}return"code"in f&&(_.tags={..._.tags,"DOMException.code":`${f.code}`}),_}return(0,r.VZ)(e)?c(t,e):(0,r.PO)(e)||(0,r.cO)(e)?(_=function(t,e,n,s){var a={exception:{values:[{type:(0,r.cO)(e)?e.constructor.name:s?"UnhandledRejection":"Error",value:`Non-Error ${s?"promise rejection":"exception"} captured with keys: ${(0,i.zf)(e)}`}]},extra:{__serialized__:(0,o.Qy)(e)}};if(n){var u=d(t,n);u.length&&(a.exception.values[0].stacktrace={frames:u})}return a}(t,e,n,u),(0,s.EG)(_,{synthetic:!0}),_):(_=v(t,e,n,a),(0,s.Db)(_,`${e}`,void 0),(0,s.EG)(_,{synthetic:!0}),_)}function v(t,e,n,r){var i={message:e};if(r&&n){var o=d(t,n);o.length&&(i.exception={values:[{value:e,stacktrace:{frames:o}}]})}return i}},2634:function(t,e,n){n.d(e,{Wz:function(){return a},re:function(){return c}});var r=n(2483),i=n(1995),o=n(3699);let s=0;function a(){return s>0}function u(){s+=1,setTimeout((()=>{s-=1}))}function c(t,e={},n){if("function"!=typeof t)return t;try{var s=t.__sentry_wrapped__;if(s)return s;if((0,i.HK)(t))return t}catch(_){return t}var a=function(){var i=Array.prototype.slice.call(arguments);try{n&&"function"==typeof n&&n.apply(this,arguments);var s=i.map((t=>c(t,e)));return t.apply(this,s)}catch(a){throw u(),(0,r.$e)((t=>{t.addEventProcessor((t=>(e.mechanism&&((0,o.Db)(t,void 0,void 0),(0,o.EG)(t,e.mechanism)),t.extra={...t.extra,arguments:i},t))),(0,r.Tb)(a)})),a}};try{for(var d in t)Object.prototype.hasOwnProperty.call(t,d)&&(a[d]=t[d])}catch(f){}(0,i.$Q)(a,t),(0,i.xp)(t,"__sentry_wrapped__",a);try{Object.getOwnPropertyDescriptor(a,"name").configurable&&Object.defineProperty(a,"name",{get:()=>t.name})}catch(f){}return a}},8356:function(t,e,n){n.d(e,{p:function(){return d},O:function(){return _}});var r=n(8585),i=n(4005),o=n(4194),s=n(8653),a=n(9660),u=n(5907),c=n(3699),d="Breadcrumbs";class _{static __initStatic(){this.id=d}__init(){this.name=_.id}constructor(t){_.prototype.__init.call(this),this.options={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...t}}setupOnce(){this.options.console&&(0,i.o)("console",f),this.options.dom&&(0,i.o)("dom",function(t){function e(e){let n,i="object"==typeof t?t.serializeAttribute:void 0;"string"==typeof i&&(i=[i]);try{n=e.event.target?(0,o.R)(e.event.target,i):(0,o.R)(e.event,i)}catch(s){n="<unknown>"}0!==n.length&&(0,r.Gd)().addBreadcrumb({category:`ui.${e.name}`,message:n},{event:e.event,name:e.name,global:e.global})}return e}(this.options.dom)),this.options.xhr&&(0,i.o)("xhr",l),this.options.fetch&&(0,i.o)("fetch",p),this.options.history&&(0,i.o)("history",h)}}function f(t){var e={category:"console",data:{arguments:t.args,logger:"console"},level:(0,s.VT)(t.level),message:(0,a.nK)(t.args," ")};if("assert"===t.level){if(!1!==t.args[0])return;e.message=`Assertion failed: ${(0,a.nK)(t.args.slice(1)," ")||"console.assert"}`,e.data.arguments=t.args.slice(1)}(0,r.Gd)().addBreadcrumb(e,{input:t.args,level:t.level})}function l(t){if(t.endTimestamp){if(t.xhr.__sentry_own_request__)return;const{method:e,url:n,status_code:i,body:o}=t.xhr.__sentry_xhr__||{};(0,r.Gd)().addBreadcrumb({category:"xhr",data:{method:e,url:n,status_code:i},type:"http"},{xhr:t.xhr,input:o})}else;}function p(t){t.endTimestamp&&(t.fetchData.url.match(/sentry_key/)&&"POST"===t.fetchData.method||(t.error?(0,r.Gd)().addBreadcrumb({category:"fetch",data:t.fetchData,level:"error",type:"http"},{data:t.error,input:t.args}):(0,r.Gd)().addBreadcrumb({category:"fetch",data:{...t.fetchData,status_code:t.response.status},type:"http"},{input:t.args,response:t.response})))}function h(t){var e=(0,u.R)();let n=t.from,i=t.to;var o=(0,c.en)(e.location.href);let s=(0,c.en)(n);var a=(0,c.en)(i);s.path||(s=o),o.protocol===a.protocol&&o.host===a.host&&(i=a.relative),o.protocol===s.protocol&&o.host===s.host&&(n=s.relative),(0,r.Gd)().addBreadcrumb({category:"navigation",data:{from:n,to:i}})}_.__initStatic()},184:function(t,e,n){n.d(e,{I:function(){return i}});var r=n(8536);class i{constructor(){i.prototype.__init.call(this)}static __initStatic(){this.id="Dedupe"}__init(){this.name=i.id}setupOnce(t,e){var n=t=>{var n=e().getIntegration(i);if(n){try{if(function(t,e){if(!e)return!1;if(function(t,e){var n=t.message,r=e.message;if(!n&&!r)return!1;if(n&&!r||!n&&r)return!1;if(n!==r)return!1;if(!s(t,e))return!1;if(!o(t,e))return!1;return!0}(t,e))return!0;if(function(t,e){var n=a(e),r=a(t);if(!n||!r)return!1;if(n.type!==r.type||n.value!==r.value)return!1;if(!s(t,e))return!1;if(!o(t,e))return!1;return!0}(t,e))return!0;return!1}(t,n._previousEvent))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Event dropped due to being a duplicate of previously captured event."),null}catch(u){return n._previousEvent=t}return n._previousEvent=t}return t};n.id=this.name,t(n)}}function o(t,e){let n=u(t),r=u(e);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(n=n,r=r,r.length!==n.length)return!1;for(let s=0;s<r.length;s++){var i=r[s],o=n[s];if(i.filename!==o.filename||i.lineno!==o.lineno||i.colno!==o.colno||i.function!==o.function)return!1}return!0}function s(t,e){let n=t.fingerprint,r=e.fingerprint;if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;n=n,r=r;try{return!(n.join("")!==r.join(""))}catch(i){return!1}}function a(t){return t.exception&&t.exception.values&&t.exception.values[0]}function u(t){var e=t.exception;if(e)try{return e.values[0].stacktrace.frames}catch(n){return}}i.__initStatic()},1228:function(t,e,n){n.d(e,{d:function(){return _}});var r=n(8585),i=n(4005),o=n(1757),s=n(4194),a=n(8536),u=n(3699),c=n(1988),d=n(2634);class _{static __initStatic(){this.id="GlobalHandlers"}__init(){this.name=_.id}__init2(){this._installFunc={onerror:f,onunhandledrejection:l}}constructor(t){_.prototype.__init.call(this),_.prototype.__init2.call(this),this._options={onerror:!0,onunhandledrejection:!0,...t}}setupOnce(){Error.stackTraceLimit=50;var t,e=this._options;for(var n in e){var r=this._installFunc[n];r&&e[n]&&(t=n,("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&a.kg.log(`Global Handler attached: ${t}`),r(),this._installFunc[n]=void 0)}}}function f(){(0,i.o)("error",(t=>{const[e,n,r]=v();if(!e.getIntegration(_))return;const{msg:i,url:s,line:a,column:u,error:f}=t;if(!((0,d.Wz)()||f&&f.__sentry_own_request__)){var l=void 0===f&&(0,o.HD)(i)?function(t,e,n,r){var i=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;let s=(0,o.VW)(t)?t.message:t,a="Error";var u=s.match(i);u&&(a=u[1],s=u[2]);return p({exception:{values:[{type:a,value:s}]}},e,n,r)}(i,s,a,u):p((0,c.ME)(n,f||i,void 0,r,!1),s,a,u);l.level="error",h(e,f,l,"onerror")}}))}function l(){(0,i.o)("unhandledrejection",(t=>{const[e,n,r]=v();if(!e.getIntegration(_))return;let i=t;try{"reason"in t?i=t.reason:"detail"in t&&"reason"in t.detail&&(i=t.detail.reason)}catch(a){}if((0,d.Wz)()||i&&i.__sentry_own_request__)return!0;var s=(0,o.pt)(i)?{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(i)}`}]}}:(0,c.ME)(n,i,void 0,r,!0);s.level="error",h(e,i,s,"onunhandledrejection")}))}function p(t,e,n,r){var i=t.exception=t.exception||{},a=i.values=i.values||[],u=a[0]=a[0]||{},c=u.stacktrace=u.stacktrace||{},d=c.frames=c.frames||[],_=isNaN(parseInt(r,10))?void 0:r,f=isNaN(parseInt(n,10))?void 0:n,l=(0,o.HD)(e)&&e.length>0?e:(0,s.l)();return 0===d.length&&d.push({colno:_,filename:l,function:"?",in_app:!0,lineno:f}),t}function h(t,e,n,r){(0,u.EG)(n,{handled:!1,type:r}),t.captureEvent(n,{originalException:e})}function v(){var t=(0,r.Gd)(),e=t.getClient(),n=e&&e.getOptions()||{stackParser:()=>[],attachStacktrace:!1};return[t,n.stackParser,n.attachStacktrace]}_.__initStatic()},2605:function(t,e,n){n.d(e,{q:function(){return s}});var r=n(1684),i=n(8585),o=(0,n(5907).R)();class s{constructor(){s.prototype.__init.call(this)}static __initStatic(){this.id="HttpContext"}__init(){this.name=s.id}setupOnce(){(0,r.c)((t=>{if((0,i.Gd)().getIntegration(s)){if(!o.navigator&&!o.location&&!o.document)return t;var e=t.request&&t.request.url||o.location&&o.location.href;const{referrer:r}=o.document||{},{userAgent:i}=o.navigator||{};var n={...e&&{url:e},headers:{...t.request&&t.request.headers,...r&&{Referer:r},...i&&{"User-Agent":i}}};return{...t,request:n}}return t}))}}s.__initStatic()},3440:function(t,e,n){n.d(e,{iP:function(){return a}});var r=n(8585),i=n(1684),o=n(1757),s=n(1988);class a{static __initStatic(){this.id="LinkedErrors"}__init(){this.name=a.id}constructor(t={}){a.prototype.__init.call(this),this._key=t.key||"cause",this._limit=t.limit||5}setupOnce(){var t=(0,r.Gd)().getClient();t&&(0,i.c)(((e,n)=>{var i=(0,r.Gd)().getIntegration(a);return i?function(t,e,n,r,i){if(!(r.exception&&r.exception.values&&i&&(0,o.V9)(i.originalException,Error)))return r;var s=u(t,n,i.originalException,e);return r.exception.values=[...s,...r.exception.values],r}(t.getOptions().stackParser,i._key,i._limit,e,n):e}))}}function u(t,e,n,r,i=[]){if(!(0,o.V9)(n[r],Error)||i.length+1>=e)return i;var a=(0,s.GJ)(t,n[r]);return u(t,e,n[r],r,[a,...i])}a.__initStatic()},3399:function(t,e,n){n.d(e,{p:function(){return u}});var r=n(5907),i=n(1995),o=n(9038),s=n(2634),a=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"];class u{static __initStatic(){this.id="TryCatch"}__init(){this.name=u.id}constructor(t){u.prototype.__init.call(this),this._options={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,...t}}setupOnce(){var t=(0,r.R)();this._options.setTimeout&&(0,i.hl)(t,"setTimeout",c),this._options.setInterval&&(0,i.hl)(t,"setInterval",c),this._options.requestAnimationFrame&&(0,i.hl)(t,"requestAnimationFrame",d),this._options.XMLHttpRequest&&"XMLHttpRequest"in t&&(0,i.hl)(XMLHttpRequest.prototype,"send",_);var e=this._options.eventTarget;e&&(Array.isArray(e)?e:a).forEach(f)}}function c(t){return function(...e){var n=e[0];return e[0]=(0,s.re)(n,{mechanism:{data:{function:(0,o.$P)(t)},handled:!0,type:"instrument"}}),t.apply(this,e)}}function d(t){return function(e){return t.apply(this,[(0,s.re)(e,{mechanism:{data:{function:"requestAnimationFrame",handler:(0,o.$P)(t)},handled:!0,type:"instrument"}})])}}function _(t){return function(...e){var n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach((t=>{t in n&&"function"==typeof n[t]&&(0,i.hl)(n,t,(function(e){var n={mechanism:{data:{function:t,handler:(0,o.$P)(e)},handled:!0,type:"instrument"}},r=(0,i.HK)(e);return r&&(n.mechanism.data.handler=(0,o.$P)(r)),(0,s.re)(e,n)}))})),t.apply(this,e)}}function f(t){var e=(0,r.R)(),n=e[t]&&e[t].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,i.hl)(n,"addEventListener",(function(e){return function(n,r,i){try{"function"==typeof r.handleEvent&&(r.handleEvent=(0,s.re)(r.handleEvent,{mechanism:{data:{function:"handleEvent",handler:(0,o.$P)(r),target:t},handled:!0,type:"instrument"}}))}catch(a){}return e.apply(this,[n,(0,s.re)(r,{mechanism:{data:{function:"addEventListener",handler:(0,o.$P)(r),target:t},handled:!0,type:"instrument"}}),i])}})),(0,i.hl)(n,"removeEventListener",(function(t){return function(e,n,r){var i=n;try{var o=i&&i.__sentry_wrapped__;o&&t.call(this,e,o,r)}catch(s){}return t.call(this,e,i,r)}})))}u.__initStatic()},2456:function(t,e,n){n.d(e,{yl:function(){return T},S1:function(){return k}});var r=n(1061),i=n(6286),o=n(8889),s=n(6853),a=n(8585),u=n(5907),c=n(9038),d=n(9798),_=n(8536),f=n(7946),l=n(4005),p=n(2314),h=n(2224),v=n(3399),g=n(8356),y=n(1228),m=n(3440),E=n(184),S=n(2605),b=n(6149),x=n(6144),w=[new r.QD,new i.c,new v.p,new g.O,new y.d,new m.iP,new E.I,new S.q];function k(t={}){if(void 0===t.defaultIntegrations&&(t.defaultIntegrations=w),void 0===t.release){var e=(0,u.R)();e.SENTRY_RELEASE&&e.SENTRY_RELEASE.id&&(t.release=e.SENTRY_RELEASE.id)}void 0===t.autoSessionTracking&&(t.autoSessionTracking=!0),void 0===t.sendClientReports&&(t.sendClientReports=!0);var n={...t,stackParser:(0,c.Sq)(t.stackParser||h.Dt),integrations:(0,o.m8)(t),transport:t.transport||((0,d.Ak)()?b.f:x.K)};(0,s.M)(p.R,n),t.autoSessionTracking&&function(){if(void 0===(0,u.R)().document)return void(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&_.kg.warn("Session tracking in non-browser environment with @sentry/browser is not supported."));var t=(0,a.Gd)();if(!t.captureSession)return;D(t),(0,l.o)("history",(({from:t,to:e})=>{void 0!==t&&t!==e&&D((0,a.Gd)())}))}()}function T(t){var e=(0,a.Gd)().getClient();return e?e.flush(t):(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&_.kg.warn("Cannot flush events. No client defined."),(0,f.WD)(!1))}function D(t){t.startSession({ignoreDuration:!0}),t.captureSession()}},2224:function(t,e,n){n.d(e,{Dt:function(){return f}});var r=n(9038),i="?";function o(t,e,n,r){var i={filename:t,function:e,in_app:!0};return void 0!==n&&(i.lineno=n),void 0!==r&&(i.colno=r),i}var s=/^\s*at (?:(.*?) ?\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,a=/\((\S*)(?::(\d+))(?::(\d+))\)/,u=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,c=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,d=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,_=[[30,t=>{var e=s.exec(t);if(e){if(e[2]&&0===e[2].indexOf("eval")){var n=a.exec(e[2]);n&&(e[2]=n[1],e[3]=n[2],e[4]=n[3])}const[t,r]=l(e[1]||i,e[2]);return o(r,t,e[3]?+e[3]:void 0,e[4]?+e[4]:void 0)}}],[50,t=>{var e=u.exec(t);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){var n=c.exec(e[3]);n&&(e[1]=e[1]||"eval",e[3]=n[1],e[4]=n[2],e[5]="")}let t=e[3],r=e[1]||i;return[r,t]=l(r,t),o(t,r,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}}],[40,t=>{var e=d.exec(t);return e?o(e[2],e[1]||i,+e[3],e[4]?+e[4]:void 0):void 0}]],f=(0,r.pE)(..._),l=(t,e)=>{var n=-1!==t.indexOf("safari-extension"),r=-1!==t.indexOf("safari-web-extension");return n||r?[-1!==t.indexOf("@")?t.split("@")[0]:i,n?`safari-extension:${e}`:`safari-web-extension:${e}`]:[t,e]}},6149:function(t,e,n){n.d(e,{f:function(){return o}});var r=n(1518),i=n(5854);function o(t,e=(0,i.x)()){return(0,r.q)(t,(function(n){var r={body:n.body,method:"POST",referrerPolicy:"origin",headers:t.headers,...t.fetchOptions};return e(t.url,r).then((t=>({statusCode:t.status,headers:{"x-sentry-rate-limits":t.headers.get("X-Sentry-Rate-Limits"),"retry-after":t.headers.get("Retry-After")}})))}))}},5854:function(t,e,n){n.d(e,{x:function(){return u},z:function(){return c}});var r=n(5907),i=n(9798),o=n(8536),s=(0,r.R)();let a;function u(){if(a)return a;if((0,i.Du)(s.fetch))return a=s.fetch.bind(s);var t=s.document;let e=s.fetch;if(t&&"function"==typeof t.createElement)try{var n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n);var r=n.contentWindow;r&&r.fetch&&(e=r.fetch),t.head.removeChild(n)}catch(u){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",u)}return a=e.bind(s)}function c(t,e){if("[object Navigator]"===Object.prototype.toString.call(s&&s.navigator)&&"function"==typeof s.navigator.sendBeacon)s.navigator.sendBeacon.bind(s.navigator)(t,e);else if((0,i.Ak)()){u()(t,{body:e,method:"POST",credentials:"omit",keepalive:!0}).then(null,(t=>{("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.error(t)}))}}},6144:function(t,e,n){n.d(e,{K:function(){return o}});var r=n(1518),i=n(7946);function o(t){return(0,r.q)(t,(function(e){return new i.cW(((n,r)=>{var i=new XMLHttpRequest;for(var o in i.onerror=r,i.onreadystatechange=()=>{4===i.readyState&&n({statusCode:i.status,headers:{"x-sentry-rate-limits":i.getResponseHeader("X-Sentry-Rate-Limits"),"retry-after":i.getResponseHeader("Retry-After")}})},i.open("POST",t.url),t.headers)Object.prototype.hasOwnProperty.call(t.headers,o)&&i.setRequestHeader(o,t.headers[o]);i.send(e.body)}))}))}},4911:function(t,e,n){n.d(e,{U:function(){return o}});var r=n(1995);function i(t){var e=t.protocol?`${t.protocol}:`:"",n=t.port?`:${t.port}`:"";return`${e}//${t.host}${n}${t.path?`/${t.path}`:""}/api/`}function o(t,e){return e||`${function(t){return`${i(t)}${t.projectId}/envelope/`}(t)}?${function(t){return(0,r._j)({sentry_key:t.publicKey,sentry_version:"7"})}(t)}`}},9849:function(t,e,n){n.d(e,{W:function(){return m}});var r=n(2430),i=n(1684),o=n(3135),s=n(8536),a=n(3699),u=n(1757),c=n(7946),d=n(6894),_=n(7790),f=n(8035),l=n(9660),p=n(4388),h=n(4911),v=n(3055),g=n(8889),y="Not capturing exception because it's already been captured.";class m{__init(){this._integrations={}}__init2(){this._integrationsInitialized=!1}__init3(){this._numProcessing=0}__init4(){this._outcomes={}}constructor(t){if(m.prototype.__init.call(this),m.prototype.__init2.call(this),m.prototype.__init3.call(this),m.prototype.__init4.call(this),this._options=t,t.dsn){this._dsn=(0,o.vK)(t.dsn);var e=(0,h.U)(this._dsn,t.tunnel);this._transport=t.transport({recordDroppedEvent:this.recordDroppedEvent.bind(this),...t.transportOptions,url:e})}else("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn("No DSN provided, client will not do anything.")}captureException(t,e,n){if((0,a.YO)(t))return void(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.log(y));let r=e&&e.event_id;return this._process(this.eventFromException(t,e).then((t=>this._captureEvent(t,e,n))).then((t=>{r=t}))),r}captureMessage(t,e,n,r){let i=n&&n.event_id;var o=(0,u.pt)(t)?this.eventFromMessage(String(t),e,n):this.eventFromException(t,n);return this._process(o.then((t=>this._captureEvent(t,n,r))).then((t=>{i=t}))),i}captureEvent(t,e,n){if(e&&e.originalException&&(0,a.YO)(e.originalException))return void(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.log(y));let r=e&&e.event_id;return this._process(this._captureEvent(t,e,n).then((t=>{r=t}))),r}captureSession(t){this._isEnabled()?"string"!=typeof t.release?("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn("Discarded session because of missing or non-string release"):(this.sendSession(t),(0,r.CT)(t,{init:!1})):("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn("SDK not enabled, will not capture session.")}getDsn(){return this._dsn}getOptions(){return this._options}getTransport(){return this._transport}flush(t){var e=this._transport;return e?this._isClientDoneProcessing(t).then((n=>e.flush(t).then((t=>n&&t)))):(0,c.WD)(!0)}close(t){return this.flush(t).then((t=>(this.getOptions().enabled=!1,t)))}setupIntegrations(){this._isEnabled()&&!this._integrationsInitialized&&(this._integrations=(0,g.q4)(this._options.integrations),this._integrationsInitialized=!0)}getIntegrationById(t){return this._integrations[t]}getIntegration(t){try{return this._integrations[t.id]||null}catch(e){return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn(`Cannot retrieve integration ${t.id} from the current Client`),null}}sendEvent(t,e={}){if(this._dsn){let r=(0,v.M)(t,this._dsn,this._options._metadata,this._options.tunnel);for(var n of e.attachments||[])r=(0,d.BO)(r,(0,d.zQ)(n,this._options.transportOptions&&this._options.transportOptions.textEncoder));this._sendEnvelope(r)}}sendSession(t){if(this._dsn){var e=(0,v.Q)(t,this._dsn,this._options._metadata,this._options.tunnel);this._sendEnvelope(e)}}recordDroppedEvent(t,e){if(this._options.sendClientReports){var n=`${t}:${e}`;("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.log(`Adding outcome: "${n}"`),this._outcomes[n]=this._outcomes[n]+1||1}}_updateSessionFromEvent(t,e){let n=!1,i=!1;var o=e.exception&&e.exception.values;if(o)for(var s of(i=!0,o)){var a=s.mechanism;if(a&&!1===a.handled){n=!0;break}}var u="ok"===t.status;(u&&0===t.errors||u&&n)&&((0,r.CT)(t,{...n&&{status:"crashed"},errors:t.errors||Number(i||n)}),this.captureSession(t))}_isClientDoneProcessing(t){return new c.cW((e=>{let n=0;var r=setInterval((()=>{0==this._numProcessing?(clearInterval(r),e(!0)):(n+=1,t&&n>=t&&(clearInterval(r),e(!1)))}),1)}))}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._dsn}_prepareEvent(t,e,n){const{normalizeDepth:r=3,normalizeMaxBreadth:o=1e3}=this.getOptions();var s={...t,event_id:t.event_id||e.event_id||(0,a.DM)(),timestamp:t.timestamp||(0,_.yW)()};this._applyClientOptions(s),this._applyIntegrationsMetadata(s);let u=n;e.captureContext&&(u=i.s.clone(u).update(e.captureContext));let d=(0,c.WD)(s);if(u){var f=[...e.attachments||[],...u.getAttachments()];f.length&&(e.attachments=f),d=u.applyToEvent(s,e)}return d.then((t=>"number"==typeof r&&r>0?this._normalizeEvent(t,r,o):t))}_normalizeEvent(t,e,n){if(!t)return null;var r={...t,...t.breadcrumbs&&{breadcrumbs:t.breadcrumbs.map((t=>({...t,...t.data&&{data:(0,f.Fv)(t.data,e,n)}})))},...t.user&&{user:(0,f.Fv)(t.user,e,n)},...t.contexts&&{contexts:(0,f.Fv)(t.contexts,e,n)},...t.extra&&{extra:(0,f.Fv)(t.extra,e,n)}};return t.contexts&&t.contexts.trace&&r.contexts&&(r.contexts.trace=t.contexts.trace,t.contexts.trace.data&&(r.contexts.trace.data=(0,f.Fv)(t.contexts.trace.data,e,n))),t.spans&&(r.spans=t.spans.map((t=>(t.data&&(t.data=(0,f.Fv)(t.data,e,n)),t)))),r}_applyClientOptions(t){var e=this.getOptions();const{environment:n,release:r,dist:i,maxValueLength:o=250}=e;"environment"in t||(t.environment="environment"in e?n:"production"),void 0===t.release&&void 0!==r&&(t.release=r),void 0===t.dist&&void 0!==i&&(t.dist=i),t.message&&(t.message=(0,l.$G)(t.message,o));var s=t.exception&&t.exception.values&&t.exception.values[0];s&&s.value&&(s.value=(0,l.$G)(s.value,o));var a=t.request;a&&a.url&&(a.url=(0,l.$G)(a.url,o))}_applyIntegrationsMetadata(t){var e=Object.keys(this._integrations);e.length>0&&(t.sdk=t.sdk||{},t.sdk.integrations=[...t.sdk.integrations||[],...e])}_captureEvent(t,e={},n){return this._processEvent(t,e,n).then((t=>t.event_id),(t=>{("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn(t)}))}_processEvent(t,e,n){const{beforeSend:r,sampleRate:i}=this.getOptions();if(!this._isEnabled())return(0,c.$2)(new p.b("SDK not enabled, will not capture event."));var o="transaction"===t.type;return!o&&"number"==typeof i&&Math.random()>i?(this.recordDroppedEvent("sample_rate","error"),(0,c.$2)(new p.b(`Discarding event because it's not included in the random sample (sampling rate = ${i})`))):this._prepareEvent(t,e,n).then((n=>{if(null===n)throw this.recordDroppedEvent("event_processor",t.type||"error"),new p.b("An event processor returned null, will not send event.");return e.data&&!0===e.data.__sentry__||o||!r?n:function(t){var e="`beforeSend` method has to return `null` or a valid event.";if((0,u.J8)(t))return t.then((t=>{if(!(0,u.PO)(t)&&null!==t)throw new p.b(e);return t}),(t=>{throw new p.b(`beforeSend rejected with ${t}`)}));if(!(0,u.PO)(t)&&null!==t)throw new p.b(e);return t}(r(n,e))})).then((r=>{if(null===r)throw this.recordDroppedEvent("before_send",t.type||"error"),new p.b("`beforeSend` returned `null`, will not send event.");var i=n&&n.getSession();return!o&&i&&this._updateSessionFromEvent(i,r),this.sendEvent(r,e),r})).then(null,(t=>{if(t instanceof p.b)throw t;throw this.captureException(t,{data:{__sentry__:!0},originalException:t}),new p.b(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${t}`)}))}_process(t){this._numProcessing+=1,t.then((t=>(this._numProcessing-=1,t)),(t=>(this._numProcessing-=1,t)))}_sendEnvelope(t){this._transport&&this._dsn?this._transport.send(t).then(null,(t=>{("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.error("Error while sending event:",t)})):("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.error("Transport disabled")}_clearOutcomes(){var t=this._outcomes;return this._outcomes={},Object.keys(t).map((e=>{const[n,r]=e.split(":");return{reason:n,category:r,quantity:t[e]}}))}}},3055:function(t,e,n){n.d(e,{M:function(){return c},Q:function(){return u}});var r=n(3135),i=n(6894),o=n(6990),s=n(1995);function a(t){if(!t||!t.sdk)return;const{name:e,version:n}=t.sdk;return{name:e,version:n}}function u(t,e,n,o){var s=a(n),u={sent_at:(new Date).toISOString(),...s&&{sdk:s},...!!o&&{dsn:(0,r.RA)(e)}},c="aggregates"in t?[{type:"sessions"},t]:[{type:"session"},t];return(0,i.Jd)(u,[c])}function c(t,e,n,u){var c=a(n),d=t.type||"event";const{transactionSampling:_}=t.sdkProcessingMetadata||{},{method:f,rate:l}=_||{};!function(t,e){e&&(t.sdk=t.sdk||{},t.sdk.name=t.sdk.name||e.name,t.sdk.version=t.sdk.version||e.version,t.sdk.integrations=[...t.sdk.integrations||[],...e.integrations||[]],t.sdk.packages=[...t.sdk.packages||[],...e.packages||[]])}(t,n&&n.sdk);var p=function(t,e,n,i){var a=t.sdkProcessingMetadata&&t.sdkProcessingMetadata.baggage,u=a&&(0,o.Hk)(a);return{event_id:t.event_id,sent_at:(new Date).toISOString(),...e&&{sdk:e},...!!n&&{dsn:(0,r.RA)(i)},..."transaction"===t.type&&u&&{trace:(0,s.Jr)({...u})}}}(t,c,u,e);delete t.sdkProcessingMetadata;var h=[{type:d,sample_rates:[{id:f,rate:l}]},t];return(0,i.Jd)(p,[h])}},8889:function(t,e,n){n.d(e,{m8:function(){return u},q4:function(){return c}});var r=n(1684),i=n(8585),o=n(8536),s=[];function a(t){return t.reduce(((t,e)=>(t.every((t=>e.name!==t.name))&&t.push(e),t)),[])}function u(t){var e=t.defaultIntegrations&&[...t.defaultIntegrations]||[],n=t.integrations;let r=[...a(e)];Array.isArray(n)?r=[...r.filter((t=>n.every((e=>e.name!==t.name)))),...a(n)]:"function"==typeof n&&(r=n(r),r=Array.isArray(r)?r:[r]);var i=r.map((t=>t.name)),o="Debug";return-1!==i.indexOf(o)&&r.push(...r.splice(i.indexOf(o),1)),r}function c(t){var e={};return t.forEach((t=>{e[t.name]=t,-1===s.indexOf(t.name)&&(t.setupOnce(r.c,i.Gd),s.push(t.name),("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.log(`Integration installed: ${t.name}`))})),e}},6286:function(t,e,n){n.d(e,{c:function(){return o}});var r=n(1995);let i;class o{constructor(){o.prototype.__init.call(this)}static __initStatic(){this.id="FunctionToString"}__init(){this.name=o.id}setupOnce(){i=Function.prototype.toString,Function.prototype.toString=function(...t){var e=(0,r.HK)(this)||this;return i.apply(e,t)}}}o.__initStatic()},1061:function(t,e,n){n.d(e,{QD:function(){return a}});var r=n(8536),i=n(3699),o=n(9660),s=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/];class a{static __initStatic(){this.id="InboundFilters"}__init(){this.name=a.id}constructor(t={}){this._options=t,a.prototype.__init.call(this)}setupOnce(t,e){var n=t=>{var n=e();if(n){var c=n.getIntegration(a);if(c){var d=n.getClient(),_=d?d.getOptions():{},f=function(t={},e={}){return{allowUrls:[...t.allowUrls||[],...e.allowUrls||[]],denyUrls:[...t.denyUrls||[],...e.denyUrls||[]],ignoreErrors:[...t.ignoreErrors||[],...e.ignoreErrors||[],...s],ignoreInternal:void 0===t.ignoreInternal||t.ignoreInternal}}(c._options,_);return function(t,e){if(e.ignoreInternal&&function(t){try{return"SentryError"===t.exception.values[0].type}catch(e){}return!1}(t))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being internal Sentry Error.\nEvent: ${(0,i.jH)(t)}`),!0;if(function(t,e){if(!e||!e.length)return!1;return function(t){if(t.message)return[t.message];if(t.exception)try{const{type:e="",value:n=""}=t.exception.values&&t.exception.values[0]||{};return[`${n}`,`${e}: ${n}`]}catch(e){return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Cannot extract message for event ${(0,i.jH)(t)}`),[]}return[]}(t).some((t=>e.some((e=>(0,o.zC)(t,e)))))}(t,e.ignoreErrors))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${(0,i.jH)(t)}`),!0;if(function(t,e){if(!e||!e.length)return!1;var n=u(t);return!!n&&e.some((t=>(0,o.zC)(n,t)))}(t,e.denyUrls))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${(0,i.jH)(t)}.\nUrl: ${u(t)}`),!0;if(!function(t,e){if(!e||!e.length)return!0;var n=u(t);return!n||e.some((t=>(0,o.zC)(n,t)))}(t,e.allowUrls))return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${(0,i.jH)(t)}.\nUrl: ${u(t)}`),!0;return!1}(t,f)?null:t}}return t};n.id=this.name,t(n)}}function u(t){try{let n;try{n=t.exception.values[0].stacktrace.frames}catch(e){}return n?function(t=[]){for(let n=t.length-1;n>=0;n--){var e=t[n];if(e&&"<anonymous>"!==e.filename&&"[native code]"!==e.filename)return e.filename||null}return null}(n):null}catch(n){return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Cannot extract url for event ${(0,i.jH)(t)}`),null}}a.__initStatic()},6853:function(t,e,n){n.d(e,{M:function(){return o}});var r=n(8585),i=n(8536);function o(t,e){!0===e.debug&&("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?i.kg.enable():console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle."));var n=(0,r.Gd)(),o=n.getScope();o&&o.update(e.initialScope);var s=new t(e);n.bindClient(s)}},1518:function(t,e,n){n.d(e,{q:function(){return c}});var r=n(8963),i=n(6894),o=n(1630),s=n(7946),a=n(8536),u=n(4388);function c(t,e,n=(0,r.x)(t.bufferSize||30)){let c={};return{send:function(r){var d=[];if((0,i.gv)(r,((e,n)=>{var r=(0,i.mL)(n);(0,o.Q)(c,r)?t.recordDroppedEvent("ratelimit_backoff",r):d.push(e)})),0===d.length)return(0,s.WD)();var _=(0,i.Jd)(r[0],d),f=e=>{(0,i.gv)(_,((n,r)=>{t.recordDroppedEvent(e,(0,i.mL)(r))}))};return n.add((()=>e({body:(0,i.V$)(_,t.textEncoder)}).then((t=>{void 0!==t.statusCode&&(t.statusCode<200||t.statusCode>=300)&&("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&a.kg.warn(`Sentry responded with status code ${t.statusCode} to sent event.`),c=(0,o.WG)(c,t)}),(t=>{("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&a.kg.error("Failed while sending event:",t),f("network_error")})))).then((t=>t),(t=>{if(t instanceof u.b)return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&a.kg.error("Skipped sending event due to full buffer"),f("queue_overflow"),(0,s.WD)();throw t}))},flush:t=>n.drain(t)}}},1476:function(t,e,n){n.d(e,{J:function(){return r}});var r="7.5.1"},2483:function(t,e,n){n.d(e,{Tb:function(){return i},$e:function(){return o}});var r=n(8585);function i(t,e){return(0,r.Gd)().captureException(t,{captureContext:e})}function o(t){(0,r.Gd)().withScope(t)}},8585:function(t,e,n){n.d(e,{Gd:function(){return p}});var r=n(3699),i=n(7790),o=n(8536),s=n(5907),a=n(7392),u=n(1684),c=n(2430),d=100;class _{__init(){this._stack=[{}]}constructor(t,e=new u.s,n=4){this._version=n,_.prototype.__init.call(this),this.getStackTop().scope=e,t&&this.bindClient(t)}isOlderThan(t){return this._version<t}bindClient(t){this.getStackTop().client=t,t&&t.setupIntegrations&&t.setupIntegrations()}pushScope(){var t=u.s.clone(this.getScope());return this.getStack().push({client:this.getClient(),scope:t}),t}popScope(){return!(this.getStack().length<=1)&&!!this.getStack().pop()}withScope(t){var e=this.pushScope();try{t(e)}finally{this.popScope()}}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getStack(){return this._stack}getStackTop(){return this._stack[this._stack.length-1]}captureException(t,e){var n=this._lastEventId=e&&e.event_id?e.event_id:(0,r.DM)(),i=new Error("Sentry syntheticException");return this._withClient(((r,o)=>{r.captureException(t,{originalException:t,syntheticException:i,...e,event_id:n},o)})),n}captureMessage(t,e,n){var i=this._lastEventId=n&&n.event_id?n.event_id:(0,r.DM)(),o=new Error(t);return this._withClient(((r,s)=>{r.captureMessage(t,e,{originalException:t,syntheticException:o,...n,event_id:i},s)})),i}captureEvent(t,e){var n=e&&e.event_id?e.event_id:(0,r.DM)();return"transaction"!==t.type&&(this._lastEventId=n),this._withClient(((r,i)=>{r.captureEvent(t,{...e,event_id:n},i)})),n}lastEventId(){return this._lastEventId}addBreadcrumb(t,e){const{scope:n,client:r}=this.getStackTop();if(!n||!r)return;const{beforeBreadcrumb:s=null,maxBreadcrumbs:a=d}=r.getOptions&&r.getOptions()||{};if(!(a<=0)){var u={timestamp:(0,i.yW)(),...t},c=s?(0,o.Cf)((()=>s(u,e))):u;null!==c&&n.addBreadcrumb(c,a)}}setUser(t){var e=this.getScope();e&&e.setUser(t)}setTags(t){var e=this.getScope();e&&e.setTags(t)}setExtras(t){var e=this.getScope();e&&e.setExtras(t)}setTag(t,e){var n=this.getScope();n&&n.setTag(t,e)}setExtra(t,e){var n=this.getScope();n&&n.setExtra(t,e)}setContext(t,e){var n=this.getScope();n&&n.setContext(t,e)}configureScope(t){const{scope:e,client:n}=this.getStackTop();e&&n&&t(e)}run(t){var e=l(this);try{t(this)}finally{l(e)}}getIntegration(t){var e=this.getClient();if(!e)return null;try{return e.getIntegration(t)}catch(n){return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.warn(`Cannot retrieve integration ${t.id} from the current Hub`),null}}startTransaction(t,e){return this._callExtensionMethod("startTransaction",t,e)}traceHeaders(){return this._callExtensionMethod("traceHeaders")}captureSession(t=!1){if(t)return this.endSession();this._sendSessionUpdate()}endSession(){var t=this.getStackTop(),e=t&&t.scope,n=e&&e.getSession();n&&(0,c.RJ)(n),this._sendSessionUpdate(),e&&e.setSession()}startSession(t){const{scope:e,client:n}=this.getStackTop(),{release:r,environment:i}=n&&n.getOptions()||{};var o=(0,s.R)();const{userAgent:a}=o.navigator||{};var u=(0,c.Hv)({release:r,environment:i,...e&&{user:e.getUser()},...a&&{userAgent:a},...t});if(e){var d=e.getSession&&e.getSession();d&&"ok"===d.status&&(0,c.CT)(d,{status:"exited"}),this.endSession(),e.setSession(u)}return u}shouldSendDefaultPii(){var t=this.getClient(),e=t&&t.getOptions();return Boolean(e&&e.sendDefaultPii)}_sendSessionUpdate(){const{scope:t,client:e}=this.getStackTop();if(t){var n=t.getSession();n&&e&&e.captureSession&&e.captureSession(n)}}_withClient(t){const{scope:e,client:n}=this.getStackTop();n&&t(n,e)}_callExtensionMethod(t,...e){var n=f().__SENTRY__;if(n&&n.extensions&&"function"==typeof n.extensions[t])return n.extensions[t].apply(this,e);("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.warn(`Extension method ${t} couldn't be found, doing nothing.`)}}function f(){var t=(0,s.R)();return t.__SENTRY__=t.__SENTRY__||{extensions:{},hub:void 0},t}function l(t){var e=f(),n=v(e);return g(e,t),n}function p(){var t=f();return h(t)&&!v(t).isOlderThan(4)||g(t,new _),(0,a.KV)()?function(t){try{var e=f().__SENTRY__,n=e&&e.extensions&&e.extensions.domain&&e.extensions.domain.active;if(!n)return v(t);if(!h(n)||v(n).isOlderThan(4)){var r=v(t).getStackTop();g(n,new _(r.client,u.s.clone(r.scope)))}return v(n)}catch(i){return v(t)}}(t):v(t)}function h(t){return!!(t&&t.__SENTRY__&&t.__SENTRY__.hub)}function v(t){return(0,s.Y)("hub",(()=>new _),t)}function g(t,e){return!!t&&((t.__SENTRY__=t.__SENTRY__||{}).hub=e,!0)}},1684:function(t,e,n){n.d(e,{s:function(){return c},c:function(){return _}});var r=n(1757),i=n(7790),o=n(7946),s=n(8536),a=n(5907),u=n(2430);class c{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={}}static clone(t){var e=new c;return t&&(e._breadcrumbs=[...t._breadcrumbs],e._tags={...t._tags},e._extra={...t._extra},e._contexts={...t._contexts},e._user=t._user,e._level=t._level,e._span=t._span,e._session=t._session,e._transactionName=t._transactionName,e._fingerprint=t._fingerprint,e._eventProcessors=[...t._eventProcessors],e._requestSession=t._requestSession,e._attachments=[...t._attachments]),e}addScopeListener(t){this._scopeListeners.push(t)}addEventProcessor(t){return this._eventProcessors.push(t),this}setUser(t){return this._user=t||{},this._session&&(0,u.CT)(this._session,{user:t}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(t){return this._requestSession=t,this}setTags(t){return this._tags={...this._tags,...t},this._notifyScopeListeners(),this}setTag(t,e){return this._tags={...this._tags,[t]:e},this._notifyScopeListeners(),this}setExtras(t){return this._extra={...this._extra,...t},this._notifyScopeListeners(),this}setExtra(t,e){return this._extra={...this._extra,[t]:e},this._notifyScopeListeners(),this}setFingerprint(t){return this._fingerprint=t,this._notifyScopeListeners(),this}setLevel(t){return this._level=t,this._notifyScopeListeners(),this}setTransactionName(t){return this._transactionName=t,this._notifyScopeListeners(),this}setContext(t,e){return null===e?delete this._contexts[t]:this._contexts={...this._contexts,[t]:e},this._notifyScopeListeners(),this}setSpan(t){return this._span=t,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){var t=this.getSpan();return t&&t.transaction}setSession(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;if("function"==typeof t){var e=t(this);return e instanceof c?e:this}return t instanceof c?(this._tags={...this._tags,...t._tags},this._extra={...this._extra,...t._extra},this._contexts={...this._contexts,...t._contexts},t._user&&Object.keys(t._user).length&&(this._user=t._user),t._level&&(this._level=t._level),t._fingerprint&&(this._fingerprint=t._fingerprint),t._requestSession&&(this._requestSession=t._requestSession)):(0,r.PO)(t)&&(t=t,this._tags={...this._tags,...t.tags},this._extra={...this._extra,...t.extra},this._contexts={...this._contexts,...t.contexts},t.user&&(this._user=t.user),t.level&&(this._level=t.level),t.fingerprint&&(this._fingerprint=t.fingerprint),t.requestSession&&(this._requestSession=t.requestSession)),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this._attachments=[],this}addBreadcrumb(t,e){var n="number"==typeof e?Math.min(e,100):100;if(n<=0)return this;var r={timestamp:(0,i.yW)(),...t};return this._breadcrumbs=[...this._breadcrumbs,r].slice(-n),this._notifyScopeListeners(),this}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}getAttachments(){return this._attachments}clearAttachments(){return this._attachments=[],this}applyToEvent(t,e={}){if(this._extra&&Object.keys(this._extra).length&&(t.extra={...this._extra,...t.extra}),this._tags&&Object.keys(this._tags).length&&(t.tags={...this._tags,...t.tags}),this._user&&Object.keys(this._user).length&&(t.user={...this._user,...t.user}),this._contexts&&Object.keys(this._contexts).length&&(t.contexts={...this._contexts,...t.contexts}),this._level&&(t.level=this._level),this._transactionName&&(t.transaction=this._transactionName),this._span){t.contexts={trace:this._span.getTraceContext(),...t.contexts};var n=this._span.transaction&&this._span.transaction.name;n&&(t.tags={transaction:n,...t.tags})}return this._applyFingerprint(t),t.breadcrumbs=[...t.breadcrumbs||[],...this._breadcrumbs],t.breadcrumbs=t.breadcrumbs.length>0?t.breadcrumbs:void 0,t.sdkProcessingMetadata={...t.sdkProcessingMetadata,...this._sdkProcessingMetadata},this._notifyEventProcessors([...d(),...this._eventProcessors],t,e)}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata={...this._sdkProcessingMetadata,...t},this}_notifyEventProcessors(t,e,n,i=0){return new o.cW(((o,a)=>{var u=t[i];if(null===e||"function"!=typeof u)o(e);else{var c=u({...e},n);("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&u.id&&null===c&&s.kg.log(`Event processor "${u.id}" dropped event`),(0,r.J8)(c)?c.then((e=>this._notifyEventProcessors(t,e,n,i+1).then(o))).then(null,a):this._notifyEventProcessors(t,c,n,i+1).then(o).then(null,a)}}))}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((t=>{t(this)})),this._notifyingListeners=!1)}_applyFingerprint(t){t.fingerprint=t.fingerprint?Array.isArray(t.fingerprint)?t.fingerprint:[t.fingerprint]:[],this._fingerprint&&(t.fingerprint=t.fingerprint.concat(this._fingerprint)),t.fingerprint&&!t.fingerprint.length&&delete t.fingerprint}}function d(){return(0,a.Y)("globalEventProcessors",(()=>[]))}function _(t){d().push(t)}},2430:function(t,e,n){n.d(e,{RJ:function(){return u},Hv:function(){return s},CT:function(){return a}});var r=n(7790),i=n(3699),o=n(1995);function s(t){var e=(0,r.ph)(),n={sid:(0,i.DM)(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>function(t){return(0,o.Jr)({sid:`${t.sid}`,init:t.init,started:new Date(1e3*t.started).toISOString(),timestamp:new Date(1e3*t.timestamp).toISOString(),status:t.status,errors:t.errors,did:"number"==typeof t.did||"string"==typeof t.did?`${t.did}`:void 0,duration:t.duration,attrs:{release:t.release,environment:t.environment,ip_address:t.ipAddress,user_agent:t.userAgent}})}(n)};return t&&a(n,t),n}function a(t,e={}){if(e.user&&(!t.ipAddress&&e.user.ip_address&&(t.ipAddress=e.user.ip_address),t.did||e.did||(t.did=e.user.id||e.user.email||e.user.username)),t.timestamp=e.timestamp||(0,r.ph)(),e.ignoreDuration&&(t.ignoreDuration=e.ignoreDuration),e.sid&&(t.sid=32===e.sid.length?e.sid:(0,i.DM)()),void 0!==e.init&&(t.init=e.init),!t.did&&e.did&&(t.did=`${e.did}`),"number"==typeof e.started&&(t.started=e.started),t.ignoreDuration)t.duration=void 0;else if("number"==typeof e.duration)t.duration=e.duration;else{var n=t.timestamp-t.started;t.duration=n>=0?n:0}e.release&&(t.release=e.release),e.environment&&(t.environment=e.environment),!t.ipAddress&&e.ipAddress&&(t.ipAddress=e.ipAddress),!t.userAgent&&e.userAgent&&(t.userAgent=e.userAgent),"number"==typeof e.errors&&(t.errors=e.errors),e.status&&(t.status=e.status)}function u(t,e){let n={};e?n={status:e}:"ok"===t.status&&(n={status:"exited"}),a(t,n)}},6990:function(t,e,n){n.d(e,{Hk:function(){return r}});function r(t){return t[0]}},4194:function(t,e,n){n.d(e,{l:function(){return a},R:function(){return o}});var r=n(5907),i=n(1757);function o(t,e){try{let i=t;var n=[];let o=0,a=0;var r=" > ".length;let u;for(;i&&o++<5&&(u=s(i,e),!("html"===u||o>1&&a+n.length*r+u.length>=80));)n.push(u),a+=u.length,i=i.parentNode;return n.reverse().join(" > ")}catch(i){return"<unknown>"}}function s(t,e){var n=t,r=[];let o,s,a,u,c;if(!n||!n.tagName)return"";r.push(n.tagName.toLowerCase());var d=e&&e.length?e.filter((t=>n.getAttribute(t))).map((t=>[t,n.getAttribute(t)])):null;if(d&&d.length)d.forEach((t=>{r.push(`[${t[0]}="${t[1]}"]`)}));else if(n.id&&r.push(`#${n.id}`),o=n.className,o&&(0,i.HD)(o))for(s=o.split(/\s+/),c=0;c<s.length;c++)r.push(`.${s[c]}`);var _=["type","name","title","alt"];for(c=0;c<_.length;c++)a=_[c],u=n.getAttribute(a),u&&r.push(`[${a}="${u}"]`);return r.join("")}function a(){var t=(0,r.R)();try{return t.document.location.href}catch(e){return""}}},250:function(t,e,n){n.d(e,{y:function(){return o}});var r=n(6894),i=n(7790);function o(t,e,n){var o=[{type:"client_report"},{timestamp:n||(0,i.yW)(),discarded_events:t}];return(0,r.Jd)(e?{dsn:e}:{},[o])}},3135:function(t,e,n){n.d(e,{RA:function(){return o},vK:function(){return u}});var r=n(4388),i=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w.-]+)(?::(\d+))?\/(.+)/;function o(t,e=!1){const{host:n,path:r,pass:i,port:o,projectId:s,protocol:a,publicKey:u}=t;return`${a}://${u}${e&&i?`:${i}`:""}@${n}${o?`:${o}`:""}/${r?`${r}/`:r}${s}`}function s(t){var e=i.exec(t);if(!e)throw new r.b(`Invalid Sentry Dsn: ${t}`);const[n,o,s="",u,c="",d]=e.slice(1);let _="",f=d;var l=f.split("/");if(l.length>1&&(_=l.slice(0,-1).join("/"),f=l.pop()),f){var p=f.match(/^\d+/);p&&(f=p[0])}return a({host:u,pass:s,path:_,projectId:f,port:c,protocol:n,publicKey:o})}function a(t){return{protocol:t.protocol,publicKey:t.publicKey||"",pass:t.pass||"",host:t.host,port:t.port||"",path:t.path||"",projectId:t.projectId}}function u(t){var e="string"==typeof t?s(t):a(t);return function(t){if("undefined"!=typeof __SENTRY_DEBUG__&&!__SENTRY_DEBUG__)return;const{port:e,projectId:n,protocol:i}=t;if(["protocol","publicKey","host","projectId"].forEach((e=>{if(!t[e])throw new r.b(`Invalid Sentry Dsn: ${e} missing`)})),!n.match(/^\d+$/))throw new r.b(`Invalid Sentry Dsn: Invalid projectId ${n}`);if(!function(t){return"http"===t||"https"===t}(i))throw new r.b(`Invalid Sentry Dsn: Invalid protocol ${i}`);if(e&&isNaN(parseInt(e,10)))throw new r.b(`Invalid Sentry Dsn: Invalid port ${e}`)}(e),e}},4285:function(t,e,n){function r(){return"undefined"!=typeof __SENTRY_BROWSER_BUNDLE__&&!!__SENTRY_BROWSER_BUNDLE__}n.d(e,{n:function(){return r}})},6894:function(t,e,n){n.d(e,{BO:function(){return o},zQ:function(){return c},Jd:function(){return i},mL:function(){return _},gv:function(){return s},V$:function(){return u}});var r=n(1995);function i(t,e=[]){return[t,e]}function o(t,e){const[n,r]=t;return[n,[...r,e]]}function s(t,e){t[1].forEach((t=>{var n=t[0].type;e(t,n)}))}function a(t,e){return(e||new TextEncoder).encode(t)}function u(t,e){const[n,r]=t;let i=JSON.stringify(n);function o(t){"string"==typeof i?i="string"==typeof t?i+t:[a(i,e),t]:i.push("string"==typeof t?a(t,e):t)}for(var s of r){const[t,e]=s;o(`\n${JSON.stringify(t)}\n`),o("string"==typeof e||e instanceof Uint8Array?e:JSON.stringify(e))}return"string"==typeof i?i:function(t){var e=t.reduce(((t,e)=>t+e.length),0),n=new Uint8Array(e);let r=0;for(var i of t)n.set(i,r),r+=i.length;return n}(i)}function c(t,e){var n="string"==typeof t.data?a(t.data,e):t.data;return[(0,r.Jr)({type:"attachment",length:n.length,filename:t.filename,content_type:t.contentType,attachment_type:t.attachmentType}),n]}var d={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default"};function _(t){return d[t]}},4388:function(t,e,n){n.d(e,{b:function(){return r}});class r extends Error{constructor(t){super(t),this.message=t,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}}},5907:function(t,e,n){n.d(e,{R:function(){return o},Y:function(){return s}});var r=n(7392),i={};function o(){return(0,r.KV)()||"undefined"!=typeof window?window:"undefined"!=typeof self?self:i}function s(t,e,n){var r=n||o(),i=r.__SENTRY__=r.__SENTRY__||{};return i[t]||(i[t]=e())}},4005:function(t,e,n){n.d(e,{o:function(){return l}});var r=n(5907),i=n(1757),o=n(8536),s=n(1995),a=n(9038),u=n(9798),c=(0,r.R)(),d={},_={};function f(t){if(!_[t])switch(_[t]=!0,t){case"console":!function(){if(!("console"in c))return;o.RU.forEach((function(t){t in c.console&&(0,s.hl)(c.console,t,(function(e){return function(...n){p("console",{args:n,level:t}),e&&e.apply(c.console,n)}}))}))}();break;case"dom":!function(){if(!("document"in c))return;var t=p.bind(null,"dom"),e=E(t,!0);c.document.addEventListener("click",e,!1),c.document.addEventListener("keypress",e,!1),["EventTarget","Node"].forEach((e=>{var n=c[e]&&c[e].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,s.hl)(n,"addEventListener",(function(e){return function(n,r,i){if("click"===n||"keypress"==n)try{var o=this,s=o.__sentry_instrumentation_handlers__=o.__sentry_instrumentation_handlers__||{},a=s[n]=s[n]||{refCount:0};if(!a.handler){var u=E(t);a.handler=u,e.call(this,n,u,i)}a.refCount+=1}catch(c){}return e.call(this,n,r,i)}})),(0,s.hl)(n,"removeEventListener",(function(t){return function(e,n,r){if("click"===e||"keypress"==e)try{var i=this,o=i.__sentry_instrumentation_handlers__||{},s=o[e];s&&(s.refCount-=1,s.refCount<=0&&(t.call(this,e,s.handler,r),s.handler=void 0,delete o[e]),0===Object.keys(o).length&&delete i.__sentry_instrumentation_handlers__)}catch(a){}return t.call(this,e,n,r)}})))}))}();break;case"xhr":!function(){if(!("XMLHttpRequest"in c))return;var t=XMLHttpRequest.prototype;(0,s.hl)(t,"open",(function(t){return function(...e){var n=this,r=e[1],o=n.__sentry_xhr__={method:(0,i.HD)(e[0])?e[0].toUpperCase():e[0],url:e[1]};(0,i.HD)(r)&&"POST"===o.method&&r.match(/sentry_key/)&&(n.__sentry_own_request__=!0);var a=function(){if(4===n.readyState){try{o.status_code=n.status}catch(t){}p("xhr",{args:e,endTimestamp:Date.now(),startTimestamp:Date.now(),xhr:n})}};return"onreadystatechange"in n&&"function"==typeof n.onreadystatechange?(0,s.hl)(n,"onreadystatechange",(function(t){return function(...e){return a(),t.apply(n,e)}})):n.addEventListener("readystatechange",a),t.apply(n,e)}})),(0,s.hl)(t,"send",(function(t){return function(...e){return this.__sentry_xhr__&&void 0!==e[0]&&(this.__sentry_xhr__.body=e[0]),p("xhr",{args:e,startTimestamp:Date.now(),xhr:this}),t.apply(this,e)}}))}();break;case"fetch":!function(){if(!(0,u.t$)())return;(0,s.hl)(c,"fetch",(function(t){return function(...e){var n={args:e,fetchData:{method:h(e),url:v(e)},startTimestamp:Date.now()};return p("fetch",{...n}),t.apply(c,e).then((t=>(p("fetch",{...n,endTimestamp:Date.now(),response:t}),t)),(t=>{throw p("fetch",{...n,endTimestamp:Date.now(),error:t}),t}))}}))}();break;case"history":!function(){if(!(0,u.Bf)())return;var t=c.onpopstate;function e(t){return function(...e){var n=e.length>2?e[2]:void 0;if(n){var r=g,i=String(n);g=i,p("history",{from:r,to:i})}return t.apply(this,e)}}c.onpopstate=function(...e){var n=c.location.href,r=g;if(g=n,p("history",{from:r,to:n}),t)try{return t.apply(this,e)}catch(i){}},(0,s.hl)(c.history,"pushState",e),(0,s.hl)(c.history,"replaceState",e)}();break;case"error":S=c.onerror,c.onerror=function(t,e,n,r,i){return p("error",{column:r,error:i,line:n,msg:t,url:e}),!!S&&S.apply(this,arguments)};break;case"unhandledrejection":b=c.onunhandledrejection,c.onunhandledrejection=function(t){return p("unhandledrejection",t),!b||b.apply(this,arguments)};break;default:return void(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.warn("unknown instrumentation type:",t))}}function l(t,e){d[t]=d[t]||[],d[t].push(e),f(t)}function p(t,e){if(t&&d[t])for(var n of d[t]||[])try{n(e)}catch(r){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.kg.error(`Error while triggering instrumentation handler.\nType: ${t}\nName: ${(0,a.$P)(n)}\nError:`,r)}}function h(t=[]){return"Request"in c&&(0,i.V9)(t[0],Request)&&t[0].method?String(t[0].method).toUpperCase():t[1]&&t[1].method?String(t[1].method).toUpperCase():"GET"}function v(t=[]){return"string"==typeof t[0]?t[0]:"Request"in c&&(0,i.V9)(t[0],Request)?t[0].url:String(t[0])}let g;let y,m;function E(t,e=!1){return n=>{if(n&&m!==n&&!function(t){if("keypress"!==t.type)return!1;try{var e=t.target;if(!e||!e.tagName)return!0;if("INPUT"===e.tagName||"TEXTAREA"===e.tagName||e.isContentEditable)return!1}catch(n){}return!0}(n)){var r="keypress"===n.type?"input":n.type;(void 0===y||function(t,e){if(!t)return!0;if(t.type!==e.type)return!0;try{if(t.target!==e.target)return!0}catch(n){}return!1}(m,n))&&(t({event:n,name:r,global:e}),m=n),clearTimeout(y),y=c.setTimeout((()=>{y=void 0}),1e3)}}}let S=null;let b=null},1757:function(t,e,n){n.d(e,{TX:function(){return a},fm:function(){return u},kK:function(){return l},VZ:function(){return i},VW:function(){return s},cO:function(){return f},V9:function(){return y},i2:function(){return g},PO:function(){return _},pt:function(){return d},Kj:function(){return p},HD:function(){return c},Cy:function(){return v},J8:function(){return h}});var r=Object.prototype.toString;function i(t){switch(r.call(t)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return y(t,Error)}}function o(t,e){return r.call(t)===`[object ${e}]`}function s(t){return o(t,"ErrorEvent")}function a(t){return o(t,"DOMError")}function u(t){return o(t,"DOMException")}function c(t){return o(t,"String")}function d(t){return null===t||"object"!=typeof t&&"function"!=typeof t}function _(t){return o(t,"Object")}function f(t){return"undefined"!=typeof Event&&y(t,Event)}function l(t){return"undefined"!=typeof Element&&y(t,Element)}function p(t){return o(t,"RegExp")}function h(t){return Boolean(t&&t.then&&"function"==typeof t.then)}function v(t){return _(t)&&"nativeEvent"in t&&"preventDefault"in t&&"stopPropagation"in t}function g(t){return"number"==typeof t&&t!=t}function y(t,e){try{return t instanceof e}catch(n){return!1}}},8536:function(t,e,n){n.d(e,{RU:function(){return o},Cf:function(){return s},kg:function(){return u}});var r=n(5907),i=(0,r.R)(),o=["debug","info","warn","error","log","assert","trace"];function s(t){var e=(0,r.R)();if(!("console"in e))return t();var n=e.console,i={};o.forEach((t=>{var r=n[t]&&n[t].__sentry_original__;t in e.console&&r&&(i[t]=n[t],n[t]=r)}));try{return t()}finally{Object.keys(i).forEach((t=>{n[t]=i[t]}))}}function a(){let t=!1;var e={enable:()=>{t=!0},disable:()=>{t=!1}};return"undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?o.forEach((n=>{e[n]=(...e)=>{t&&s((()=>{i.console[n](`Sentry Logger [${n}]:`,...e)}))}})):o.forEach((t=>{e[t]=()=>{}})),e}let u;u="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?(0,r.Y)("logger",a):a()},4048:function(t,e,n){function r(){var t="function"==typeof WeakSet,e=t?new WeakSet:[];return[function(n){if(t)return!!e.has(n)||(e.add(n),!1);for(let t=0;t<e.length;t++){if(e[t]===n)return!0}return e.push(n),!1},function(n){if(t)e.delete(n);else for(let t=0;t<e.length;t++)if(e[t]===n){e.splice(t,1);break}}]}n.d(e,{i:function(){return r}})},3699:function(t,e,n){n.d(e,{EG:function(){return d},Db:function(){return c},YO:function(){return _},jH:function(){return u},en:function(){return s},DM:function(){return o}});var r=n(5907),i=n(1995);function o(){var t=(0,r.R)(),e=t.crypto||t.msCrypto;if(void 0!==e&&e.getRandomValues){var n=new Uint16Array(8);e.getRandomValues(n),n[3]=4095&n[3]|16384,n[4]=16383&n[4]|32768;var i=t=>{let e=t.toString(16);for(;e.length<4;)e=`0${e}`;return e};return i(n[0])+i(n[1])+i(n[2])+i(n[3])+i(n[4])+i(n[5])+i(n[6])+i(n[7])}return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,(t=>{var e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)}))}function s(t){if(!t)return{};var e=t.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)return{};var n=e[6]||"",r=e[8]||"";return{host:e[4],path:e[5],protocol:e[2],relative:e[5]+n+r}}function a(t){return t.exception&&t.exception.values?t.exception.values[0]:void 0}function u(t){const{message:e,event_id:n}=t;if(e)return e;var r=a(t);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"<unknown>":n||"<unknown>"}function c(t,e,n){var r=t.exception=t.exception||{},i=r.values=r.values||[],o=i[0]=i[0]||{};o.value||(o.value=e||""),o.type||(o.type=n||"Error")}function d(t,e){var n=a(t);if(n){var r=n.mechanism;if(n.mechanism={type:"generic",handled:!0,...r,...e},e&&"data"in e){var i={...r&&r.data,...e.data};n.mechanism.data=i}}}function _(t){if(t&&t.__sentry_captured__)return!0;try{(0,i.xp)(t,"__sentry_captured__",!0)}catch(e){}return!1}},7392:function(t,e,n){n.d(e,{l$:function(){return o},KV:function(){return i}});var r=n(4285);function i(){return!(0,r.n)()&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0)}function o(t,e){return t.require(e)}t=n.hmd(t)},8035:function(t,e,n){n.d(e,{Fv:function(){return a},Qy:function(){return u}});var r=n(1757),i=n(4048),o=n(1995),s=n(9038);function a(t,e=1/0,n=1/0){try{return c("",t,e,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function u(t,e=3,n=102400){var r,i=a(t,e);return r=i,function(t){return~-encodeURI(t).split(/%..|./).length}(JSON.stringify(r))>n?u(t,e-1,n):i}function c(t,e,n=1/0,a=1/0,u=(0,i.i)()){const[d,_]=u;if(null===e||["number","boolean","string"].includes(typeof e)&&!(0,r.i2)(e))return e;var f=function(t,e){try{return"domain"===t&&e&&"object"==typeof e&&e._events?"[Domain]":"domainEmitter"===t?"[DomainEmitter]":"undefined"!=typeof window&&e===window?"[Global]":"undefined"!=typeof window&&e===window?"[Window]":"undefined"!=typeof document&&e===document?"[Document]":(0,r.Cy)(e)?"[SyntheticEvent]":"number"==typeof e&&e!=e?"[NaN]":void 0===e?"[undefined]":"function"==typeof e?`[Function: ${(0,s.$P)(e)}]`:"symbol"==typeof e?`[${String(e)}]`:"bigint"==typeof e?`[BigInt: ${String(e)}]`:`[object ${Object.getPrototypeOf(e).constructor.name}]`}catch(n){return`**non-serializable** (${n})`}}(t,e);if(!f.startsWith("[object "))return f;if(e.__sentry_skip_normalization__)return e;if(0===n)return f.replace("object ","");if(d(e))return"[Circular ~]";var l=e;if(l&&"function"==typeof l.toJSON)try{return c("",l.toJSON(),n-1,a,u)}catch(m){}var p=Array.isArray(e)?[]:{};let h=0;var v=(0,o.Sh)(e);for(var g in v)if(Object.prototype.hasOwnProperty.call(v,g)){if(h>=a){p[g]="[MaxProperties ~]";break}var y=v[g];p[g]=c(g,y,n-1,a,u),h+=1}return _(e),p}},1995:function(t,e,n){n.d(e,{xp:function(){return a},Sh:function(){return _},Jr:function(){return h},zf:function(){return p},hl:function(){return s},HK:function(){return c},$Q:function(){return u},_j:function(){return d}});var r=n(4194),i=n(1757),o=n(9660);function s(t,e,n){if(e in t){var r=t[e],i=n(r);if("function"==typeof i)try{u(i,r)}catch(o){}t[e]=i}}function a(t,e,n){Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0})}function u(t,e){var n=e.prototype||{};t.prototype=e.prototype=n,a(t,"__sentry_original__",e)}function c(t){return t.__sentry_original__}function d(t){return Object.keys(t).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`)).join("&")}function _(t){if((0,i.VZ)(t))return{message:t.message,name:t.name,stack:t.stack,...l(t)};if((0,i.cO)(t)){var e={type:t.type,target:f(t.target),currentTarget:f(t.currentTarget),...l(t)};return"undefined"!=typeof CustomEvent&&(0,i.V9)(t,CustomEvent)&&(e.detail=t.detail),e}return t}function f(t){try{return(0,i.kK)(t)?(0,r.R)(t):Object.prototype.toString.call(t)}catch(e){return"<unknown>"}}function l(t){if("object"==typeof t&&null!==t){var e={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}return{}}function p(t,e=40){var n=Object.keys(_(t));if(n.sort(),!n.length)return"[object has no keys]";if(n[0].length>=e)return(0,o.$G)(n[0],e);for(let i=n.length;i>0;i--){var r=n.slice(0,i).join(", ");if(!(r.length>e))return i===n.length?r:(0,o.$G)(r,e)}return""}function h(t){return v(t,new Map)}function v(t,e){if((0,i.PO)(t)){if(void 0!==(o=e.get(t)))return o;var n={};for(var r of(e.set(t,n),Object.keys(t)))void 0!==t[r]&&(n[r]=v(t[r],e));return n}if(Array.isArray(t)){var o;if(void 0!==(o=e.get(t)))return o;n=[];return e.set(t,n),t.forEach((t=>{n.push(v(t,e))})),n}return t}},8963:function(t,e,n){n.d(e,{x:function(){return o}});var r=n(4388),i=n(7946);function o(t){var e=[];function n(t){return e.splice(e.indexOf(t),1)[0]}return{$:e,add:function(o){if(!(void 0===t||e.length<t))return(0,i.$2)(new r.b("Not adding Promise due to buffer limit reached."));var s=o();return-1===e.indexOf(s)&&e.push(s),s.then((()=>n(s))).then(null,(()=>n(s).then(null,(()=>{})))),s},drain:function(t){return new i.cW(((n,r)=>{let o=e.length;if(!o)return n(!0);var s=setTimeout((()=>{t&&t>0&&n(!1)}),t);e.forEach((t=>{(0,i.WD)(t).then((()=>{--o||(clearTimeout(s),n(!0))}),r)}))}))}}}},1630:function(t,e,n){n.d(e,{Q:function(){return r},WG:function(){return i}});function r(t,e,n=Date.now()){return function(t,e){return t[e]||t.all||0}(t,e)>n}function i(t,{statusCode:e,headers:n},r=Date.now()){var i={...t},o=n&&n["x-sentry-rate-limits"],s=n&&n["retry-after"];if(o)for(var a of o.trim().split(",")){const[t,e]=a.split(":",2);var u=parseInt(t,10),c=1e3*(isNaN(u)?60:u);if(e)for(var d of e.split(";"))i[d]=r+c;else i.all=r+c}else s?i.all=r+function(t,e=Date.now()){var n=parseInt(`${t}`,10);if(!isNaN(n))return 1e3*n;var r=Date.parse(`${t}`);return isNaN(r)?6e4:r-e}(s,r):429===e&&(i.all=r+6e4);return i}},8653:function(t,e,n){n.d(e,{VT:function(){return i}});var r=["fatal","error","warning","log","info","debug"];function i(t){return"warn"===t?"warning":r.includes(t)?t:"log"}},9038:function(t,e,n){n.d(e,{pE:function(){return r},$P:function(){return s},Sq:function(){return i}});function r(...t){var e=t.sort(((t,e)=>t[0]-e[0])).map((t=>t[1]));return(t,n=0)=>{var r=[];for(var i of t.split("\n").slice(n))for(var o of e){var s=o(i);if(s){r.push(s);break}}return function(t){if(!t.length)return[];let e=t;var n=e[0].function||"",r=e[e.length-1].function||"";-1===n.indexOf("captureMessage")&&-1===n.indexOf("captureException")||(e=e.slice(1));-1!==r.indexOf("sentryWrapped")&&(e=e.slice(0,-1));return e.slice(0,50).map((t=>({...t,filename:t.filename||e[0].filename,function:t.function||"?"}))).reverse()}(r)}}function i(t){return Array.isArray(t)?r(...t):t}var o="<anonymous>";function s(t){try{return t&&"function"==typeof t&&t.name||o}catch(e){return o}}},9660:function(t,e,n){n.d(e,{zC:function(){return s},nK:function(){return o},$G:function(){return i}});var r=n(1757);function i(t,e=0){return"string"!=typeof t||0===e||t.length<=e?t:`${t.substr(0,e)}...`}function o(t,e){if(!Array.isArray(t))return"";var n=[];for(let o=0;o<t.length;o++){var r=t[o];try{n.push(String(r))}catch(i){n.push("[value cannot be serialized]")}}return n.join(e)}function s(t,e){return!!(0,r.HD)(t)&&((0,r.Kj)(e)?e.test(t):"string"==typeof e&&-1!==t.indexOf(e))}},9798:function(t,e,n){n.d(e,{Du:function(){return s},Ak:function(){return o},Bf:function(){return u},t$:function(){return a}});var r=n(5907),i=n(8536);function o(){if(!("fetch"in(0,r.R)()))return!1;try{return new Headers,new Request(""),new Response,!0}catch(t){return!1}}function s(t){return t&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(t.toString())}function a(){if(!o())return!1;var t=(0,r.R)();if(s(t.fetch))return!0;let e=!1;var n=t.document;if(n&&"function"==typeof n.createElement)try{var a=n.createElement("iframe");a.hidden=!0,n.head.appendChild(a),a.contentWindow&&a.contentWindow.fetch&&(e=s(a.contentWindow.fetch)),n.head.removeChild(a)}catch(u){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.kg.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",u)}return e}function u(){var t=(0,r.R)(),e=t.chrome,n=e&&e.app&&e.app.runtime,i="history"in t&&!!t.history.pushState&&!!t.history.replaceState;return!n&&i}},7946:function(t,e,n){n.d(e,{cW:function(){return a},$2:function(){return s},WD:function(){return o}});var r,i=n(1757);function o(t){return new a((e=>{e(t)}))}function s(t){return new a(((e,n)=>{n(t)}))}!function(t){t[t.PENDING=0]="PENDING";t[t.RESOLVED=1]="RESOLVED";t[t.REJECTED=2]="REJECTED"}(r||(r={}));class a{__init(){this._state=r.PENDING}__init2(){this._handlers=[]}constructor(t){a.prototype.__init.call(this),a.prototype.__init2.call(this),a.prototype.__init3.call(this),a.prototype.__init4.call(this),a.prototype.__init5.call(this),a.prototype.__init6.call(this);try{t(this._resolve,this._reject)}catch(e){this._reject(e)}}then(t,e){return new a(((n,r)=>{this._handlers.push([!1,e=>{if(t)try{n(t(e))}catch(i){r(i)}else n(e)},t=>{if(e)try{n(e(t))}catch(i){r(i)}else r(t)}]),this._executeHandlers()}))}catch(t){return this.then((t=>t),t)}finally(t){return new a(((e,n)=>{let r,i;return this.then((e=>{i=!1,r=e,t&&t()}),(e=>{i=!0,r=e,t&&t()})).then((()=>{i?n(r):e(r)}))}))}__init3(){this._resolve=t=>{this._setResult(r.RESOLVED,t)}}__init4(){this._reject=t=>{this._setResult(r.REJECTED,t)}}__init5(){this._setResult=(t,e)=>{this._state===r.PENDING&&((0,i.J8)(e)?e.then(this._resolve,this._reject):(this._state=t,this._value=e,this._executeHandlers()))}}__init6(){this._executeHandlers=()=>{if(this._state!==r.PENDING){var t=this._handlers.slice();this._handlers=[],t.forEach((t=>{t[0]||(this._state===r.RESOLVED&&t[1](this._value),this._state===r.REJECTED&&t[2](this._value),t[0]=!0)}))}}}}},7790:function(t,e,n){n.d(e,{yW:function(){return u},ph:function(){return c}});var r=n(5907),i=n(7392);t=n.hmd(t);var o={nowSeconds:()=>Date.now()/1e3};var s=(0,i.KV)()?function(){try{return(0,i.l$)(t,"perf_hooks").performance}catch(e){return}}():function(){const{performance:t}=(0,r.R)();if(t&&t.now)return{now:()=>t.now(),timeOrigin:Date.now()-t.now()}}(),a=void 0===s?o:{nowSeconds:()=>(s.timeOrigin+s.now())/1e3},u=o.nowSeconds.bind(o),c=a.nowSeconds.bind(a);let d;(()=>{const{performance:t}=(0,r.R)();if(t&&t.now){var e=36e5,n=t.now(),i=Date.now(),o=t.timeOrigin?Math.abs(t.timeOrigin+n-i):e,s=o<e,a=t.timing&&t.timing.navigationStart,u="number"==typeof a?Math.abs(a+n-i):e;return s||u<e?o<=u?(d="timeOrigin",t.timeOrigin):(d="navigationStart",a):(d="dateNow",i)}d="none"})()},6989:function(t){t.exports=window.wp.apiFetch},2694:function(t){t.exports=window.wp.hooks}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={id:r,loaded:!1,exports:{}};return t[r](o,o.exports,n),o.loaded=!0,o.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.hmd=function(t){return(t=Object.create(t)).children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};!function(){n.r(r);var t,e=n(2456),i=n(2483),o=n(6989),s=n.n(o),a=n(2694);const u="true"===(null===(t=window.A8C_ETK_ErrorReporting_Config)||void 0===t?void 0:t.shouldActivateSentry),c=window._jsErr||[],d=window._headJsErrorHandler;u?function(){const t=window.A8C_ETK_ErrorReporting_Config.releaseName;e.S1({dsn:"https://658ae291b00242148af6b76494d4a49a@o248881.ingest.sentry.io/5876245",release:t}),(0,a.addAction)("editor.ErrorBoundary.errorLogged","etk/error-reporting",(t=>{i.Tb(t)})),c.forEach((t=>i.Tb(t))),e.yl().then((()=>delete window._jsErr))}():function(){const t=t=>{let{error:e}=t;if(!e)return;const n={message:e.message,trace:e.stack,url:document.location.href,feature:"wp-admin"};return s()({global:!0,path:"/rest/v1.1/js-error",method:"POST",data:{error:JSON.stringify(n)}}).catch((()=>console.error("Error: Unable to record the error in Logstash.")))};window.addEventListener("error",t),Promise.allSettled(c.map(t)).then((()=>delete window._jsErr))}(),window.removeEventListener("error",d),delete window._headJsErrorHandler}(),window.EditingToolkit=r}();
|
2 |
//# sourceMappingURL=error-reporting.min.js.map
|
error-reporting/dist/error-reporting.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"file":"error-reporting.min.js","mappings":"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","sources":["webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/client.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/eventbuilder.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/helpers.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/httpcontext.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/sdk.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/stack-parsers.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/transports/fetch.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/transports/utils.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/transports/xhr.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/api.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/baseclient.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/envelope.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/integration.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/sdk.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/transports/base.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/version.js","webpack://EditingToolkit/../../node_modules/@sentry/hub/esm/exports.js","webpack://EditingToolkit/../../node_modules/@sentry/hub/esm/hub.js","webpack://EditingToolkit/../../node_modules/@sentry/hub/esm/scope.js","webpack://EditingToolkit/../../node_modules/@sentry/hub/esm/session.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/baggage.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/browser.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/clientreport.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/dsn.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/env.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/envelope.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/error.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/global.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/instrument.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/is.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/logger.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/memo.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/misc.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/node.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/normalize.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/object.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/promisebuffer.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/ratelimit.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/severity.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/stacktrace.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/string.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/supports.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/syncpromise.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/time.js","webpack://EditingToolkit/external window [\"wp\",\"apiFetch\"]","webpack://EditingToolkit/external window [\"wp\",\"hooks\"]","webpack://EditingToolkit/webpack/bootstrap","webpack://EditingToolkit/webpack/runtime/compat get default export","webpack://EditingToolkit/webpack/runtime/define property getters","webpack://EditingToolkit/webpack/runtime/harmony module decorator","webpack://EditingToolkit/webpack/runtime/hasOwnProperty shorthand","webpack://EditingToolkit/webpack/runtime/make namespace object","webpack://EditingToolkit/./editing-toolkit-plugin/error-reporting/index.js"],"sourcesContent":["import { BaseClient, SDK_VERSION, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth } from '@sentry/core';\nimport { getGlobalObject, getEventDescription, logger, createClientReportEnvelope, dsnToString, serializeEnvelope } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\nimport { sendReport } from './transports/utils.js';\n\nvar globalObject = getGlobalObject();\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && globalObject.document) {\n globalObject.document.addEventListener('visibilitychange', () => {\n if (globalObject.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint) {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n var breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) ;\n if (\n breadcrumbIntegration &&\n // We check for definedness of `options`, even though it is not strictly necessary, because that access to\n // `.sentry` below does not throw, in case users provided their own integration with id \"Breadcrumbs\" that does\n // not have an`options` field\n breadcrumbIntegration.options &&\n breadcrumbIntegration.options.sentry\n ) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n super.sendEvent(event, hint);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n var outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Sending outcomes:', outcomes);\n\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options.tunnel);\n var envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(e);\n }\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","import { isEvent, extractExceptionKeysForMessage, normalizeToSize, addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n var frames = parseStackFrames(stackParser, ex);\n\n var exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception ).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace || ex.stack || '';\n\n var popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception ) || isDOMException(exception )) {\n var domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n var name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n var objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n stackParser,\n input,\n syntheticException,\n attachStacktrace,\n) {\n var event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","import { withScope, captureException } from '@sentry/core';\nimport { getOriginalFunction, addExceptionTypeValue, addExceptionMechanism, markFunctionWrapped, addNonEnumerableProperty } from '@sentry/utils';\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n ) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n var wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n var wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope) => {\n scope.addEventProcessor((event) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n \n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} \n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\n\nexport { ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, htmlTreeAsString, severityLevelFromString, safeJoin, getGlobalObject, parseUrl } from '@sentry/utils';\n\n/** JSDoc */\n\nvar BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nclass Breadcrumbs {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = BREADCRUMB_INTEGRATION_ID;}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Breadcrumbs.id;}\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n \n\n /**\n * @inheritDoc\n */\n constructor(options) {;Breadcrumbs.prototype.__init.call(this);\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n setupOnce() {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n} Breadcrumbs.__initStatic();\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _domBreadcrumb(dom) {\n function _innerDomBreadcrumb(handlerData) {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target , keyAttrs)\n : htmlTreeAsString(handlerData.event , keyAttrs);\n } catch (e) {\n target = '<unknown>';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _consoleBreadcrumb(handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _xhrBreadcrumb(handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _fetchBreadcrumb(handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: 'error',\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _historyBreadcrumb(handlerData) {\n var global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nclass Dedupe {constructor() { Dedupe.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Dedupe';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Dedupe.id;}\n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcessor = currentEvent => {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n} Dedupe.__initStatic();\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n var previousException = _getExceptionFromEvent(previousEvent);\n var currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n var exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\n/** Global handlers */\nclass GlobalHandlers {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'GlobalHandlers';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = GlobalHandlers.id;}\n\n /** JSDoc */\n \n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n __init2() {this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };}\n\n /** JSDoc */\n constructor(options) {;GlobalHandlers.prototype.__init.call(this);GlobalHandlers.prototype.__init2.call(this);\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n setupOnce() {\n Error.stackTraceLimit = 50;\n var options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n for (var key in options) {\n var installFunc = this._installFunc[key ];\n if (installFunc && options[key ]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key ] = undefined;\n }\n }\n }\n} GlobalHandlers.__initStatic();\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler(\n 'error',\n (data) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n var event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler(\n 'unhandledrejection',\n (e) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n var event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n var ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n var event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n var e = (event.exception = event.exception || {});\n // event.exception.values\n var ev = (e.values = e.values || []);\n // event.exception.values[0]\n var ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n var ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n var ev0sf = (ev0s.frames = ev0s.frames || []);\n\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions() {\n var hub = getCurrentHub();\n var client = hub.getClient();\n var options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\n\nvar global = getGlobalObject();\n\n/** HttpContext integration collects information about HTTP request headers */\nclass HttpContext {constructor() { HttpContext.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'HttpContext';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = HttpContext.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n addGlobalEventProcessor((event) => {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n var url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n var headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n var request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n} HttpContext.__initStatic();\n\nexport { HttpContext };\n//# sourceMappingURL=httpcontext.js.map\n","import { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nclass LinkedErrors {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'LinkedErrors';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = LinkedErrors.id;}\n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n constructor(options = {}) {;LinkedErrors.prototype.__init.call(this);\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n var client = getCurrentHub().getClient();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event, hint) => {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n} LinkedErrors.__initStatic();\n\n/**\n * @inheritDoc\n */\nfunction _handler(\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = _walkErrorTree(parser, limit, hint.originalException , key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nfunction _walkErrorTree(\n parser,\n limit,\n error,\n key,\n stack = [],\n) {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n var exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };\n//# sourceMappingURL=linkederrors.js.map\n","import { getGlobalObject, fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { wrap } from '../helpers.js';\n\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nclass TryCatch {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'TryCatch';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = TryCatch.id;}\n\n /** JSDoc */\n \n\n /**\n * @inheritDoc\n */\n constructor(options) {;TryCatch.prototype.__init.call(this);\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n setupOnce() {\n var global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n var eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n var eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n} TryCatch.__initStatic();\n\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n return function ( ...args) {\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapRAF(original) {\n return function ( callback) {\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n return function ( ...args) {\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n var originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n var global = getGlobalObject() ;\n var proto = global[target] && global[target].prototype;\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original)\n\n {\n return function (\n \n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n ) {\n return function (\n \n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn ;\n try {\n var originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map\n","import { Integrations, getIntegrationsToSetup, initAndBind, getCurrentHub, getReportDialogEndpoint } from '@sentry/core';\nimport { getGlobalObject, stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { wrap as wrap$1 } from './helpers.js';\nimport './integrations/index.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport './transports/index.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\n\nvar defaultIntegrations = [\n new Integrations.InboundFilters(),\n new Integrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(options = {}) {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n options.release = window.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n var clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}, hub = getCurrentHub()) {\n // doesn't work without a document (React Native)\n var global = getGlobalObject();\n if (!global.document) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n var dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n var script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n var injectionPoint = global.document.head || global.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nfunction lastEventId() {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\nfunction wrap(fn) {\n return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n\n if (typeof document === 'undefined') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n var hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };\n//# sourceMappingURL=sdk.js.map\n","import { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n\nvar OPERA10_PRIORITY = 10;\nvar OPERA11_PRIORITY = 20;\nvar CHROME_PRIORITY = 30;\nvar WINJS_PRIORITY = 40;\nvar GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n var frame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chromeRegex =\n /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nvar chrome = line => {\n var parts = chromeRegex.exec(line);\n\n if (parts) {\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n var subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nvar chromeStackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nvar gecko = line => {\n var parts = geckoREgex.exec(line);\n\n if (parts) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n var subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nvar geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nvar winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nvar winjs = line => {\n var parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nvar winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nvar opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nvar opera10 = line => {\n var parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nvar opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nvar opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nvar opera11 = line => {\n var parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nvar opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nvar defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nvar defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nvar extractSafariExtensionDetails = (func, filename) => {\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { createTransport } from '@sentry/core';\nimport { getNativeFetchImplementation } from './utils.js';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeFetchImplementation(),\n) {\n function makeRequest(request) {\n var requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n ...options.fetchOptions,\n };\n\n return nativeFetch(options.url, requestOptions).then(response => ({\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n }));\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","import { getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\n\nvar global = getGlobalObject();\nlet cachedFetchImpl;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * var f = window.fetch;\n * window.fetch = function () {\n * var p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n var document = global.document;\n let fetchImpl = global.fetch;\n if (document && typeof document.createElement === 'function') {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n var contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n }\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nfunction sendReport(url, body) {\n var isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n var hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n var sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n sendBeacon(url, body);\n } else if (supportsFetch()) {\n var fetch = getNativeFetchImplementation();\n fetch(url, {\n body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }).then(null, error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(error);\n });\n }\n}\n\nexport { getNativeFetchImplementation, sendReport };\n//# sourceMappingURL=utils.js.map\n","import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nvar XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nfunction makeXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise((resolve, reject) => {\n var xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (var header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };\n//# sourceMappingURL=xhr.js.map\n","import { urlEncode, makeDsn, dsnToString } from '@sentry/utils';\n\nvar SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n var protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n var port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel) {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n var dsn = makeDsn(dsnLike);\n var endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n var user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { updateSession, Scope } from '@sentry/hub';\nimport { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, uuid4, dateTimestampInSeconds, normalize, truncate, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegrations } from './integration.js';\n\nvar ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n \n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n \n\n /** Array of set up integrations. */\n __init() {this._integrations = {};}\n\n /** Indicates whether this client's integrations have been set up. */\n __init2() {this._integrationsInitialized = false;}\n\n /** Number of calls being processed */\n __init3() {this._numProcessing = 0;}\n\n /** Holds flushable */\n __init4() {this._outcomes = {};}\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {;BaseClient.prototype.__init.call(this);BaseClient.prototype.__init2.call(this);BaseClient.prototype.__init3.call(this);BaseClient.prototype.__init4.call(this);\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options.tunnel);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint, scope) {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n scope,\n ) {\n let eventId = hint && hint.event_id;\n\n var promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n var transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n setupIntegrations() {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n getIntegrationById(integrationId) {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n try {\n return (this._integrations[integration.id] ) || null;\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n if (this._dsn) {\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (var attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n if (this._dsn) {\n var env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category) {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n // With typescript 4.1 we could even use template literal types\n var key = `${reason}:${category}`;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n var exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (var ex of exceptions) {\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n var sessionNonTerminal = session.status === 'ok';\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n var tick = 1;\n\n var interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(event, hint, scope) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = this.getOptions();\n var prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // Collect attachments from the hint and scope\n var attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n _normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n var normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n _applyClientOptions(event) {\n var options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n _applyIntegrationsMetadata(event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(reason);\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, scope) {\n const { beforeSend, sampleRate } = this.getOptions();\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n }\n\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', event.type || 'error');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n var isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n var beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', event.type || 'error');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n var session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason ,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n _sendEnvelope(envelope) {\n if (this._transport && this._dsn) {\n this._transport.send(envelope).then(null, reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Error while sending event:', reason);\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n var outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n \n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { dsnToString, createEnvelope, dropUndefinedKeys, getSentryBaggageItems } from '@sentry/utils';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(metadata) {\n if (!metadata || !metadata.sdk) {\n return;\n }\n const { name, version } = metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n };\n\n var envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var eventType = event.type || 'event';\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n var envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n var eventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n event,\n ];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n var baggage = event.sdkProcessingMetadata && event.sdkProcessingMetadata.baggage;\n var dynamicSamplingContext = baggage && getSentryBaggageItems(baggage);\n\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n ...(event.type === 'transaction' &&\n dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }) ,\n }),\n };\n}\n\nexport { createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n\nvar installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] );\n}\n\n/** Gets integration to install */\nfunction getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n var userIntegrations = options.integrations;\n\n let integrations = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(i => i.name);\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(integrations) {\n var integrationIndex = {};\n\n integrations.forEach(integration => {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Integration installed: ${integration.name}`);\n }\n });\n\n return integrationIndex;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString;\n\n/** Patch toString calls to return proper name for wrapped functions */\nclass FunctionToString {constructor() { FunctionToString.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'FunctionToString';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = FunctionToString.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n originalFunctionToString = Function.prototype.toString;\n\n Function.prototype.toString = function ( ...args) {\n var context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n} FunctionToString.__initStatic();\n\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map\n","import { logger, getEventDescription, isMatchingPattern } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\nclass InboundFilters {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'InboundFilters';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = InboundFilters.id;}\n\n constructor( _options = {}) {;this._options = _options;InboundFilters.prototype.__init.call(this);}\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcess = (event) => {\n var hub = getCurrentHub();\n if (hub) {\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n var options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n} InboundFilters.__initStatic();\n\n/** JSDoc */\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message =>\n ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n );\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n var url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n var url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n\n if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };\n//# sourceMappingURL=inboundfilters.js.map\n","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n\nexport { initAndBind };\n//# sourceMappingURL=sdk.js.map\n","import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, serializeEnvelope, logger, updateRateLimits, SentryError } from '@sentry/utils';\n\nvar DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n) {\n let rateLimits = {};\n\n var flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n var filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n var envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n var filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n var recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (_, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n var requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n },\n error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Failed while sending event:', error);\n recordEnvelopeLoss('network_error');\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Skipped sending event due to full buffer');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","var SDK_VERSION = '7.5.1';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType<Hub[HUB_FUNCTION]>`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n message,\n captureContext,\n) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nfunction startTransaction(\n context,\n customSamplingContext,\n) {\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n","import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, getGlobalObject, getGlobalSingleton, isNodeEnv } from '@sentry/utils';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nvar API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\n\n/**\n * @inheritDoc\n */\nclass Hub {\n /** Is a {@link Layer}[] containing the client and scope */\n __init() {this._stack = [{}];}\n\n /** Contains the last event id of a captured event. */\n \n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n constructor(client, scope = new Scope(), _version = API_VERSION) {;this._version = _version;Hub.prototype.__init.call(this);\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n isOlderThan(version) {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n bindClient(client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n pushScope() {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n withScope(callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /** Returns the scope of the top stack. */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n getStack() {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n ) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n var eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, hint) {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = { timestamp, ...breadcrumb };\n var finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n var scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n var scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n var scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n var scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n var scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n setContext(name, context) {\n var scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n configureScope(callback) {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n run(callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n var client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n startTransaction(context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n captureSession(endSession = false) {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n endSession() {\n var layer = this.getStackTop();\n var scope = layer && layer.scope;\n var session = scope && scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n startSession(context) {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n const { userAgent } = global.navigator || {};\n\n var session = makeSession({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n shouldSendDefaultPii() {\n var client = this.getClient();\n var options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n _sendSessionUpdate() {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n var session = scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n _withClient(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n _callExtensionMethod(method, ...args) {\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n var sentry = getMainCarrier().__SENTRY__;\n var activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n var __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n","import { isPlainObject, dateTimestampInSeconds, getGlobalSingleton, SyncPromise, logger, isThenable } from '@sentry/utils';\nimport { updateSession } from './session.js';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n \n\n /** Callback for client to receive scope changes. */\n \n\n /** Callback list that will be called after {@link applyToEvent}. */\n \n\n /** Array of breadcrumbs. */\n \n\n /** User */\n \n\n /** Tags */\n \n\n /** Extra */\n \n\n /** Contexts */\n \n\n /** Attachments */\n \n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n \n\n /** Fingerprint */\n \n\n /** Severity */\n \n\n /** Transaction Name */\n \n\n /** Span */\n \n\n /** Session */\n \n\n /** Request Mode Session Status */\n \n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n static clone(scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(\n level,\n ) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSpan(span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSpan() {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n var span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n var updatedScope = (captureContext )(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n captureContext = captureContext ;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n var mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getAttachments() {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n applyToEvent(event, hint = {}) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n var transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n _notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n ) {\n return new SyncPromise((resolve, reject) => {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n var result = processor({ ...event }, hint) ;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n\n var session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n var duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { isString } from './is.js';\nimport { logger } from './logger.js';\n\nvar BAGGAGE_HEADER_NAME = 'baggage';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nvar MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/** Create an instance of Baggage */\nfunction createBaggage(initItems, baggageString = '', mutable = true) {\n return [{ ...initItems }, baggageString, mutable];\n}\n\n/** Get a value from baggage */\nfunction getBaggageValue(baggage, key) {\n return baggage[0][key];\n}\n\n/** Add a value to baggage */\nfunction setBaggageValue(baggage, key, value) {\n if (isBaggageMutable(baggage)) {\n baggage[0][key] = value;\n }\n}\n\n/** Check if the Sentry part of the passed baggage (i.e. the first element in the tuple) is empty */\nfunction isSentryBaggageEmpty(baggage) {\n return Object.keys(baggage[0]).length === 0;\n}\n\n/** Returns Sentry specific baggage values */\nfunction getSentryBaggageItems(baggage) {\n return baggage[0];\n}\n\n/**\n * Returns 3rd party baggage string of @param baggage\n * @param baggage\n */\nfunction getThirdPartyBaggage(baggage) {\n return baggage[1];\n}\n\n/**\n * Checks if baggage is mutable\n * @param baggage\n * @returns true if baggage is mutable, else false\n */\nfunction isBaggageMutable(baggage) {\n return baggage[2];\n}\n\n/**\n * Sets the passed baggage immutable\n * @param baggage\n */\nfunction setBaggageImmutable(baggage) {\n baggage[2] = false;\n}\n\n/** Serialize a baggage object */\nfunction serializeBaggage(baggage) {\n return Object.keys(baggage[0]).reduce((prev, key) => {\n var val = baggage[0][key] ;\n var baggageEntry = `${SENTRY_BAGGAGE_KEY_PREFIX}${encodeURIComponent(key)}=${encodeURIComponent(val)}`;\n var newVal = prev === '' ? baggageEntry : `${prev},${baggageEntry}`;\n if (newVal.length > MAX_BAGGAGE_STRING_LENGTH) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Not adding key: ${key} with val: ${val} to baggage due to exceeding baggage size limits.`);\n return prev;\n } else {\n return newVal;\n }\n }, baggage[1]);\n}\n\n/**\n * Parse a baggage header from a string or a string array and return a Baggage object\n *\n * If @param includeThirdPartyEntries is set to true, third party baggage entries are added to the Baggage object\n * (This is necessary for merging potentially pre-existing baggage headers in outgoing requests with\n * our `sentry-` values)\n */\nfunction parseBaggageHeader(\n inputBaggageValue,\n includeThirdPartyEntries = false,\n) {\n // Adding this check here because we got reports of this function failing due to the input value\n // not being a string. This debug log might help us determine what's going on here.\n if ((!Array.isArray(inputBaggageValue) && !isString(inputBaggageValue)) || typeof inputBaggageValue === 'number') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n '[parseBaggageHeader] Received input value of incompatible type: ',\n typeof inputBaggageValue,\n inputBaggageValue,\n );\n\n // Gonna early-return an empty baggage object so that we don't fail later on\n return createBaggage({}, '');\n }\n\n var baggageEntries = (isString(inputBaggageValue) ? inputBaggageValue : inputBaggageValue.join(','))\n .split(',')\n .map(entry => entry.trim())\n .filter(entry => entry !== '' && (includeThirdPartyEntries || SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(entry)));\n\n return baggageEntries.reduce(\n ([baggageObj, baggageString], curr) => {\n const [key, val] = curr.split('=');\n if (SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(key)) {\n var baggageKey = decodeURIComponent(key.split('-')[1]);\n return [\n {\n ...baggageObj,\n [baggageKey]: decodeURIComponent(val),\n },\n baggageString,\n true,\n ];\n } else {\n return [baggageObj, baggageString === '' ? curr : `${baggageString},${curr}`, true];\n }\n },\n [{}, '', true],\n );\n}\n\n/**\n * Merges the baggage header we saved from the incoming request (or meta tag) with\n * a possibly created or modified baggage header by a third party that's been added\n * to the outgoing request header.\n *\n * In case @param headerBaggageString exists, we can safely add the the 3rd party part of @param headerBaggage\n * with our @param incomingBaggage. This is possible because if we modified anything beforehand,\n * it would only affect parts of the sentry baggage (@see Baggage interface).\n *\n * @param incomingBaggage the baggage header of the incoming request that might contain sentry entries\n * @param thirdPartyBaggageHeader possibly existing baggage header string or string[] added from a third\n * party to the request headers\n *\n * @return a merged and serialized baggage string to be propagated with the outgoing request\n */\nfunction mergeAndSerializeBaggage(incomingBaggage, thirdPartyBaggageHeader) {\n if (!incomingBaggage && !thirdPartyBaggageHeader) {\n return '';\n }\n\n var headerBaggage = (thirdPartyBaggageHeader && parseBaggageHeader(thirdPartyBaggageHeader, true)) || undefined;\n var thirdPartyHeaderBaggage = headerBaggage && getThirdPartyBaggage(headerBaggage);\n\n var finalBaggage = createBaggage((incomingBaggage && incomingBaggage[0]) || {}, thirdPartyHeaderBaggage || '');\n return serializeBaggage(finalBaggage);\n}\n\n/**\n * Helper function that takes a raw baggage string (if available) and the processed sentry-trace header\n * data (if available), parses the baggage string and creates a Baggage object\n * If there is no baggage string, it will create an empty Baggage object.\n * In a second step, this functions determines if the created Baggage object should be set immutable\n * to prevent mutation of the Sentry data.\n *\n * Extracted this logic to a function because it's duplicated in a lot of places.\n *\n * @param rawBaggageValue\n * @param sentryTraceHeader\n */\nfunction parseBaggageSetMutability(\n rawBaggageValue,\n sentryTraceHeader,\n) {\n var baggage = parseBaggageHeader(rawBaggageValue || '');\n\n // Because we are always creating a Baggage object by calling `parseBaggageHeader` above\n // (either a filled one or an empty one, even if we didn't get a `baggage` header),\n // we only need to check if we have a sentry-trace header or not. As soon as we have it,\n // we set baggage immutable. In case we don't get a sentry-trace header, we can assume that\n // this SDK is the head of the trace and thus we still permit mutation at this time.\n // There is one exception though, which is that we get a baggage-header with `sentry-`\n // items but NO sentry-trace header. In this case we also set the baggage immutable for now\n // but if smoething like this would ever happen, we should revisit this and determine\n // what this would actually mean for the trace (i.e. is this SDK the head?, what happened\n // before that we don't have a sentry-trace header?, etc)\n (sentryTraceHeader || !isSentryBaggageEmpty(baggage)) && setBaggageImmutable(baggage);\n\n return baggage;\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, createBaggage, getBaggageValue, getSentryBaggageItems, getThirdPartyBaggage, isBaggageMutable, isSentryBaggageEmpty, mergeAndSerializeBaggage, parseBaggageHeader, parseBaggageSetMutability, serializeBaggage, setBaggageImmutable, setBaggageValue };\n//# sourceMappingURL=baggage.js.map\n","import { getGlobalObject } from './global.js';\nimport { isString } from './is.js';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(elem, keyAttrs) {\n \n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n let height = 0;\n let len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n let nextStr;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var elem = el \n\n;\n\n var out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n var global = getGlobalObject();\n try {\n return global.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\nexport { getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n var clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","import { SentryError } from './error.js';\n\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nfunction dsnFromString(str) {\n var match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n var requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nfunction makeDsn(from) {\n var components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n\n/**\n * Changes a Dsn to point to the `relay` server running in the Lambda Extension.\n *\n * This is only used by the serverless integration for AWS Lambda.\n *\n * @param originalDsn The original Dsn of the customer.\n * @returns Dsn pointing to Lambda extension.\n */\nfunction extensionRelayDSN(originalDsn) {\n if (originalDsn === undefined) {\n return undefined;\n }\n\n var dsn = dsnFromString(originalDsn);\n dsn.host = 'localhost';\n dsn.port = '3000';\n dsn.protocol = 'http';\n\n return dsnToString(dsn);\n}\n\nexport { dsnToString, extensionRelayDSN, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { dropUndefinedKeys } from './object.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n var envelopeItems = envelope[1];\n envelopeItems.forEach((envelopeItem) => {\n var envelopeItemType = envelopeItem[0].type;\n callback(envelopeItem, envelopeItemType);\n });\n}\n\nfunction encodeUTF8(input, textEncoder) {\n var utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope, textEncoder) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (var item of items) {\n const [itemHeaders, payload] = item ;\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n append(typeof payload === 'string' || payload instanceof Uint8Array ? payload : JSON.stringify(payload));\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n var totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n var merged = new Uint8Array(totalLength);\n let offset = 0;\n for (var buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(\n attachment,\n textEncoder,\n) {\n var buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nvar ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, envelopeItemTypeToDataCategory, forEachEnvelopeItem, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n \n\n constructor( message) {\n super(message);this.message = message;;\n\n this.name = new.target.prototype.constructor.name;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import { isNodeEnv } from './node.js';\n\n/** Internal */\n\nvar fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nfunction getGlobalObject() {\n return (\n isNodeEnv()\n ? global\n : typeof window !== 'undefined' ? window : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject\n ) ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n var global = (obj || getGlobalObject()) ;\n var __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n var singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=global.js.map\n","import { getGlobalObject } from './global.js';\nimport { isInstanceOf, isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch, supportsHistory } from './supports.js';\n\nvar global = getGlobalObject();\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nvar handlers = {};\nvar instrumented = {};\n\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (var handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod) {\n return function (...args) {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch) {\n return function (...args) {\n var handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n return originalFetch.apply(global, args).then(\n (response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs = []) {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs = []) {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n var xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen) {\n return function ( ...args) {\n var xhr = this;\n var url = args[1];\n var xhrInfo = (xhr.__sentry_xhr__ = {\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function (...readyStateArgs) {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend) {\n return function ( ...args) {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref;\n\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function ( ...args) {\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nvar debounceDuration = 1000;\nlet debounceTimerID;\nlet lastCapturedEvent;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n var target = event.target ;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener = false) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n var name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n var proto = (global )[target] && (global )[target].prototype;\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n \n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n \n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n\nexport { addInstrumentationHandler };\n//# sourceMappingURL=instrument.js.map\n","var objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\nfunction isBuiltin(wat, ty) {\n return objectToString.call(wat) === `[object ${ty}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n","import { getGlobalObject, getGlobalSingleton } from './global.js';\n\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n\nvar CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n var global = getGlobalObject();\n\n if (!('console' in global)) {\n return callback();\n }\n\n var originalConsole = global.console ;\n var wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n var originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n var logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n global.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n var hasWeakSet = typeof WeakSet === 'function';\n var inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n for (let i = 0; i < inner.length; i++) {\n var value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { getGlobalObject } from './global.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n var global = getGlobalObject() ;\n var crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n var pad = (num) => {\n let v = num.toString(16);\n while (v.length < 4) {\n v = `0${v}`;\n }\n return v;\n };\n\n return (\n pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n );\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n var r = (Math.random() * 16) | 0;\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url)\n\n {\n if (!url) {\n return {};\n }\n\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n var firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '<unknown>';\n }\n return eventId || '<unknown>';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n var exception = (event.exception = event.exception || {});\n var values = (exception.values = exception.values || []);\n var firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, parseSemver, parseUrl, stripUrlQueryAndFragment, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n var normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value ;\n }\n\n var stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n var valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n var jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n var normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n var visitable = convertToPlainObject(value );\n\n for (var visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n var visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) ).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n//# sourceMappingURL=normalize.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n var original = source[name] ;\n var wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n var proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n var newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n var extractedProps = {};\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n var keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n var memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (var key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n var buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n * PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n // start the task and add its promise to the queue\n var task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n var capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nvar DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n var headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n var headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nfunction disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, category, now = Date.now()) {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n var updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n var rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n var retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n * <header>,<header>,..\n * where each <header> is of the form\n * <retry_after>: <categories>: <scope>: <reason_code>\n * where\n * <retry_after> is a delay in seconds\n * <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * <category>;<category>;...\n * <scope> is what's being limited (org, project, or key) - ignored by SDK\n * <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (var limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n var headerDelay = parseInt(retryAfter, 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (var category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nvar validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nfunction severityFromString(level) {\n return severityLevelFromString(level) ;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n","import { _optionalChain } from './buildPolyfills';\n\nvar STACKTRACE_LIMIT = 50;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n var sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirst = 0) => {\n var frames = [];\n\n for (var line of stack.split('\\n').slice(skipFirst)) {\n for (var parser of sortedParsers) {\n var frame = parser(line);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n var firstFrameFunction = localStack[0].function || '';\n var lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nvar defaultFunctionName = '<anonymous>';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\nfunction node(getModule) {\n var FILENAME_MATCH = /^\\s*[-]{4,}$/;\n var FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/;\n\n return (line) => {\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n var lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) {\n return undefined;\n }\n\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n var objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '<anonymous>') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || '<anonymous>';\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n var filename = _optionalChain([lineMatch, 'access', _ => _[2], 'optionalAccess', _2 => _2.startsWith, 'call', _3 => _3('file://')]) ? lineMatch[2].substr(7) : lineMatch[2];\n var isNative = lineMatch[5] === 'native';\n var isInternal =\n isNative || (filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\\\') !== 1);\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n var in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');\n\n return {\n filename,\n module: _optionalChain([getModule, 'optionalCall', _4 => _4(filename)]),\n function: functionName,\n lineno: parseInt(lineMatch[3], 10) || undefined,\n colno: parseInt(lineMatch[4], 10) || undefined,\n in_app,\n };\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nexport { createStackParser, getFunctionName, nodeStackLineParser, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n var lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n var output = [];\n for (let i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nfunction isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nfunction escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n\nexport { escapeStringForRegex, isMatchingPattern, safeJoin, snipLine, truncate };\n//# sourceMappingURL=string.js.map\n","import { getGlobalObject } from './global.js';\nimport { logger } from './logger.js';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n var global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n var doc = global.document;\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n var chrome = (global ).chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { isThenable } from './is.js';\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n var PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n var RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n var REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n \n\n constructor(\n executor,\n ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n var cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { getGlobalObject } from './global.js';\nimport { dynamicRequire, isNodeEnv } from './node.js';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nvar timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nvar dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nvar timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nvar timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nvar usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nvar browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n","module.exports = window[\"wp\"][\"apiFetch\"];","module.exports = window[\"wp\"][\"hooks\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as Sentry from '@sentry/browser';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addAction } from '@wordpress/hooks';\n\nconst shouldActivateSentry = window.A8C_ETK_ErrorReporting_Config?.shouldActivateSentry === 'true';\n/**\n * Errors that happened before this script had a chance to load\n * are captured in a global array. See `./index.php`.\n */\nconst headErrors = window._jsErr || [];\nconst headErrorHandler = window._headJsErrorHandler;\n\nfunction activateSentry() {\n\tSentry.init( {\n\t\tdsn: 'https://658ae291b00242148af6b76494d4a49a@o248881.ingest.sentry.io/5876245',\n\t\t// Set tracesSampleRate to 1.0 to capture 100%\n\t\t// of transactions for performance monitoring.\n\t\t// We recommend adjusting this value in production\n\t\trelease: 'wpcom-test-01',\n\t} );\n\n\t// Capture exceptions from Gutenberg React Error Boundaries\n\taddAction( 'editor.ErrorBoundary.errorLogged', 'etk/error-reporting', ( error ) => {\n\t\t// error is the exception's error object\n\t\tSentry.captureException( error );\n\t} );\n\n\t// We still need to report the head errors, if any.\n\theadErrors.forEach( ( error ) => Sentry.captureException( error ) );\n\tSentry.flush().then( () => delete window._jsErr );\n}\n\n// Activate the home-brew error-reporting\nfunction activateHomebrewErrorReporting() {\n\tconst reportError = ( { error } ) => {\n\t\t// Sanitized error event objects do not include a nested error attribute. In\n\t\t// that case, we return early to prevent a needless TypeError when defining\n\t\t// `data`, below. Also, sanitized errors don't include any useful information,\n\t\t// so the sensible thing to do is to completely ignore them.\n\t\tif ( ! error ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst data = {\n\t\t\tmessage: error.message,\n\t\t\ttrace: error.stack,\n\t\t\turl: document.location.href,\n\t\t\tfeature: 'wp-admin',\n\t\t};\n\n\t\treturn (\n\t\t\tapiFetch( {\n\t\t\t\tglobal: true,\n\t\t\t\tpath: '/rest/v1.1/js-error',\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdata: { error: JSON.stringify( data ) },\n\t\t\t} )\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t.catch( () => console.error( 'Error: Unable to record the error in Logstash.' ) )\n\t\t);\n\t};\n\n\twindow.addEventListener( 'error', reportError );\n\n\t// We still need to report the head errors, if any.\n\tPromise.allSettled( headErrors.map( reportError ) ).then( () => delete window._jsErr );\n}\n\nif ( shouldActivateSentry ) {\n\tactivateSentry();\n} else {\n\tactivateHomebrewErrorReporting();\n}\n\n// Remove the head handler as it's not needed anymore after we set the main one above (either Sentry or homebrew)\nwindow.removeEventListener( 'error', headErrorHandler );\ndelete window._headJsErrorHandler;\n"],"names":["globalObject","BrowserClient","constructor","options","_metadata","sdk","name","packages","version","super","sendClientReports","document","addEventListener","visibilityState","this","_flushOutcomes","eventFromException","exception","hint","_options","stackParser","attachStacktrace","eventFromMessage","message","level","sendEvent","event","breadcrumbIntegration","getIntegrationById","sentry","addBreadcrumb","category","type","event_id","_prepareEvent","scope","platform","outcomes","_clearOutcomes","length","_dsn","__SENTRY_DEBUG__","log","url","tunnel","envelope","e","exceptionFromError","ex","frames","parseStackFrames","value","extractMessage","stacktrace","undefined","eventFromError","values","stack","popSize","framesToPop","reactMinifiedRegexp","test","getPopSize","error","eventFromUnknownInput","syntheticException","eventFromString","isUnhandledRejection","domException","tags","code","extra","__serialized__","eventFromPlainObject","synthetic","input","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","setTimeout","wrap","fn","before","wrapper","__sentry_wrapped__","sentryWrapped","args","Array","prototype","slice","call","arguments","apply","wrappedArguments","map","arg","addEventProcessor","mechanism","property","Object","hasOwnProperty","_oO","getOwnPropertyDescriptor","configurable","defineProperty","get","BREADCRUMB_INTEGRATION_ID","Breadcrumbs","static","id","__init","console","dom","fetch","history","xhr","setupOnce","_consoleBreadcrumb","_innerDomBreadcrumb","handlerData","target","keyAttrs","serializeAttribute","global","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","breadcrumb","data","logger","endTimestamp","__sentry_own_request__","method","status_code","body","__sentry_xhr__","fetchData","match","response","status","from","to","parsedLoc","location","href","parsedFrom","parsedTo","path","protocol","host","relative","__initStatic","Dedupe","addGlobalEventProcessor","getCurrentHub","eventProcessor","currentEvent","self","getIntegration","previousEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","_shouldDropEvent","_previousEvent","currentFrames","_getFramesFromEvent","previousFrames","i","frameA","frameB","filename","lineno","colno","function","currentFingerprint","fingerprint","previousFingerprint","join","GlobalHandlers","__init2","_installFunc","onerror","_installGlobalOnErrorHandler","onunhandledrejection","_installGlobalOnUnhandledRejectionHandler","Error","stackTraceLimit","key","installFunc","hub","getHubAndOptions","msg","line","column","ERROR_TYPES_RE","groups","_enhanceEventWithInitialFrame","_eventFromIncompleteOnError","addMechanismAndCapture","reason","detail","String","ev","ev0","ev0s","ev0sf","isNaN","parseInt","push","in_app","handled","captureEvent","originalException","client","getClient","getOptions","HttpContext","navigator","request","referrer","userAgent","headers","Referer","LinkedErrors","_key","_limit","limit","parser","linkedErrors","_walkErrorTree","_handler","DEFAULT_EVENT_TARGET","TryCatch","XMLHttpRequest","eventTarget","requestAnimationFrame","setInterval","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","isArray","forEach","_wrapEventTarget","original","originalCallback","callback","handler","originalSend","prop","wrapOptions","originalFunction","proto","eventName","handleEvent","err","originalRemoveEventListener","wrappedEventHandler","originalEventHandler","defaultIntegrations","init","release","window","SENTRY_RELEASE","autoSessionTracking","clientOptions","integrations","transport","captureSession","startSessionOnHub","startSessionTracking","flush","timeout","startSession","ignoreDuration","UNKNOWN_FUNCTION","createFrame","func","frame","chromeRegex","chromeEvalRegex","geckoREgex","geckoEvalRegex","winjsRegex","defaultStackLineParsers","parts","exec","indexOf","subMatch","extractSafariExtensionDetails","defaultStackParser","isSafariExtension","isSafariWebExtension","split","makeFetchTransport","nativeFetch","requestOptions","referrerPolicy","fetchOptions","then","statusCode","cachedFetchImpl","getNativeFetchImplementation","bind","fetchImpl","createElement","sandbox","hidden","head","appendChild","contentWindow","removeChild","sendReport","toString","sendBeacon","credentials","keepalive","makeXHRTransport","resolve","reject","header","onreadystatechange","readyState","getResponseHeader","open","setRequestHeader","send","getBaseApiEndpoint","dsn","port","getEnvelopeEndpointWithUrlEncodedAuth","projectId","_getIngestEndpoint","sentry_key","publicKey","sentry_version","_encodedAuth","ALREADY_SEEN_ERROR","BaseClient","_integrations","_integrationsInitialized","__init3","_numProcessing","__init4","_outcomes","_transport","recordDroppedEvent","transportOptions","captureException","eventId","_process","_captureEvent","result","captureMessage","promisedEvent","session","_isEnabled","sendSession","getDsn","getTransport","_isClientDoneProcessing","clientFinished","transportFlushed","close","enabled","setupIntegrations","integrationId","integration","env","attachment","attachments","textEncoder","_sendEnvelope","_updateSessionFromEvent","crashed","errored","exceptions","sessionNonTerminal","errors","Number","ticked","interval","clearInterval","normalizeDepth","normalizeMaxBreadth","prepared","timestamp","_applyClientOptions","_applyIntegrationsMetadata","finalScope","captureContext","update","getAttachments","applyToEvent","evt","_normalizeEvent","depth","maxBreadth","normalized","breadcrumbs","b","user","contexts","trace","spans","span","environment","dist","maxValueLength","integrationsArray","keys","_processEvent","finalEvent","beforeSend","sampleRate","isTransaction","Math","random","__sentry__","rv","nullErr","_ensureBeforeSendRv","processedEvent","getSession","promise","quantity","getSdkMetadataForEnvelopeHeader","metadata","createSessionEnvelope","sdkInfo","envelopeHeaders","sent_at","Date","toISOString","envelopeItem","createEventEnvelope","eventType","transactionSampling","sdkProcessingMetadata","samplingMethod","rate","enhanceEventWithSdkInfo","baggage","dynamicSamplingContext","createEventEnvelopeHeaders","eventItem","sample_rates","installedIntegrations","filterDuplicates","reduce","acc","every","accIntegration","getIntegrationsToSetup","userIntegrations","filter","userIntegration","integrationsNames","alwaysLastToRun","splice","integrationIndex","originalFunctionToString","FunctionToString","Function","context","DEFAULT_IGNORE_ERRORS","InboundFilters","eventProcess","internalOptions","allowUrls","denyUrls","ignoreErrors","ignoreInternal","_mergeOptions","_isSentryError","oO","_getPossibleEventMessages","some","pattern","_isIgnoredError","_getEventFilterUrl","_isDeniedUrl","_isAllowedUrl","_getLastValidUrl","initAndBind","clientClass","debug","warn","getScope","initialScope","bindClient","createTransport","makeRequest","buffer","bufferSize","rateLimits","filteredEnvelopeItems","item","envelopeItemDataCategory","filteredEnvelope","recordEnvelopeLoss","_","add","drain","SDK_VERSION","withScope","DEFAULT_BREADCRUMBS","Hub","_stack","_version","getStackTop","isOlderThan","pushScope","getStack","popScope","pop","_lastEventId","_withClient","lastEventId","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","setUser","setTags","setExtras","extras","setTag","setExtra","setContext","configureScope","run","oldHub","makeMain","startTransaction","customSamplingContext","_callExtensionMethod","traceHeaders","endSession","_sendSessionUpdate","layer","setSession","getUser","currentSession","shouldSendDefaultPii","Boolean","sendDefaultPii","getMainCarrier","__SENTRY__","extensions","carrier","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","activeDomain","domain","active","registryHubTopStack","_Oo","getHubFromActiveDomain","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","setLevel","setTransactionName","setSpan","getSpan","getTransaction","transaction","updatedScope","clear","maxCrumbs","min","clearBreadcrumbs","addAttachment","clearAttachments","getTraceContext","transactionName","_applyFingerprint","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","newData","processors","index","processor","final","concat","makeSession","startingTime","sid","started","duration","toJSON","did","attrs","ip_address","ipAddress","user_agent","sessionToJSON","updateSession","email","username","closeSession","getSentryBaggageItems","htmlTreeAsString","elem","currentElem","out","height","len","sepLength","nextStr","_htmlElementAsString","parentNode","reverse","el","className","classes","attr","tagName","toLowerCase","keyAttrPairs","keyAttr","getAttribute","keyAttrPair","allowedAttrs","getLocationHref","createClientReportEnvelope","discarded_events","clientReportItem","DSN_REGEX","dsnToString","withPassword","pass","dsnFromString","str","lastPath","projectMatch","dsnFromComponents","components","makeDsn","component","isValidProtocol","validateDsn","isBrowserBundle","__SENTRY_BROWSER_BUNDLE__","createEnvelope","items","addItemToEnvelope","newItem","forEachEnvelopeItem","envelopeItemType","encodeUTF8","TextEncoder","encode","serializeEnvelope","envHeaders","JSON","stringify","append","next","itemHeaders","payload","Uint8Array","buffers","totalLength","buf","merged","offset","set","concatBuffers","createAttachmentEnvelopeItem","content_type","contentType","attachment_type","attachmentType","ITEM_TYPE_TO_DATA_CATEGORY_MAP","sessions","client_report","user_report","envelopeItemTypeToDataCategory","SentryError","setPrototypeOf","fallbackGlobalObject","getGlobalObject","getGlobalSingleton","creator","obj","handlers","instrumented","instrument","originalConsoleMethod","triggerHandlers","instrumentConsole","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","listener","__sentry_instrumentation_handlers__","handlerForType","refCount","instrumentDOM","xhrproto","originalOpen","xhrInfo","toUpperCase","onreadystatechangeHandler","now","startTimestamp","readyStateArgs","instrumentXHR","originalFetch","getFetchMethod","getFetchUrl","instrumentFetch","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","lastHref","instrumentHistory","_oldOnErrorHandler","_oldOnUnhandledRejectionHandler","addInstrumentationHandler","fetchArgs","Request","debounceTimerID","lastCapturedEvent","globalListener","isContentEditable","shouldSkipDOMEvent","previous","current","shouldShortcircuitPreviousDebounce","clearTimeout","objectToString","isError","wat","isInstanceOf","isBuiltin","ty","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","isSyntheticEvent","base","_e","CONSOLE_LEVELS","consoleSandbox","originalConsole","wrappedLevels","originalWrappedFunc","__sentry_original__","makeLogger","enable","disable","memoBuilder","hasWeakSet","WeakSet","inner","has","delete","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","replace","c","r","parseUrl","query","fragment","getFirstException","getEventDescription","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mergedData","checkOrSetAlreadyCaught","__sentry_captured__","isNodeEnv","process","dynamicRequire","mod","require","normalize","Infinity","maxProperties","visit","ERROR","normalizeToSize","object","maxSize","encodeURI","utf8Length","memo","memoize","unmemoize","includes","stringified","_events","getPrototypeOf","stringifyValue","startsWith","valueWithToJSON","numAdded","visitable","visitKey","visitValue","fill","source","replacementFactory","wrapped","markFunctionWrapped","addNonEnumerableProperty","writable","getOriginalFunction","urlEncode","encodeURIComponent","convertToPlainObject","getOwnProperties","newObj","serializeEventTarget","currentTarget","CustomEvent","extractedProps","extractExceptionKeysForMessage","maxLength","sort","includedKeys","serialized","dropUndefinedKeys","inputValue","_dropUndefinedKeys","Map","memoizationMap","memoVal","returnValue","makePromiseBuffer","remove","task","$","taskProducer","counter","capturedSetTimeout","isRateLimited","limits","all","disabledUntil","updateRateLimits","updatedRateLimits","rateLimitHeader","retryAfterHeader","trim","retryAfter","categories","headerDelay","delay","headerDate","parse","parseRetryAfterHeader","validSeverityLevels","severityLevelFromString","createStackParser","parsers","sortedParsers","a","p","skipFirst","localStack","firstFrameFunction","lastFrameFunction","stripSentryFramesAndReverse","stackParserFromStackParserOptions","defaultFunctionName","getFunctionName","truncate","max","substr","safeJoin","delimiter","output","isMatchingPattern","supportsFetch","Headers","Response","isNativeFetch","supportsNativeFetch","doc","supportsHistory","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","pushState","replaceState","States","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","_state","PENDING","_handlers","executor","__init5","__init6","_resolve","_reject","onfulfilled","onrejected","_executeHandlers","catch","val","finally","onfinally","isRejected","_setResult","RESOLVED","REJECTED","state","_value","cachedHandlers","dateTimestampSource","nowSeconds","platformPerformance","module","performance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","_browserPerformanceTimeOriginMode","threshold","performanceNow","dateNow","timeOriginDelta","abs","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","n","getter","__esModule","d","definition","o","enumerable","hmd","create","children","Symbol","toStringTag","shouldActivateSentry","A8C_ETK_ErrorReporting_Config","headErrors","_jsErr","headErrorHandler","_headJsErrorHandler","Sentry","addAction","reportError","feature","apiFetch","Promise","allSettled","activateHomebrewErrorReporting","removeEventListener"],"sourceRoot":""}
|
1 |
+
{"version":3,"file":"error-reporting.min.js","mappings":"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","sources":["webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/client.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/eventbuilder.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/helpers.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/httpcontext.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/sdk.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/stack-parsers.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/transports/fetch.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/transports/utils.js","webpack://EditingToolkit/../../node_modules/@sentry/browser/esm/transports/xhr.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/api.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/baseclient.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/envelope.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/integration.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/sdk.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/transports/base.js","webpack://EditingToolkit/../../node_modules/@sentry/core/esm/version.js","webpack://EditingToolkit/../../node_modules/@sentry/hub/esm/exports.js","webpack://EditingToolkit/../../node_modules/@sentry/hub/esm/hub.js","webpack://EditingToolkit/../../node_modules/@sentry/hub/esm/scope.js","webpack://EditingToolkit/../../node_modules/@sentry/hub/esm/session.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/baggage.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/browser.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/clientreport.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/dsn.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/env.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/envelope.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/error.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/global.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/instrument.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/is.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/logger.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/memo.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/misc.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/node.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/normalize.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/object.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/promisebuffer.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/ratelimit.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/severity.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/stacktrace.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/string.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/supports.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/syncpromise.js","webpack://EditingToolkit/../../node_modules/@sentry/utils/esm/time.js","webpack://EditingToolkit/external window [\"wp\",\"apiFetch\"]","webpack://EditingToolkit/external window [\"wp\",\"hooks\"]","webpack://EditingToolkit/webpack/bootstrap","webpack://EditingToolkit/webpack/runtime/compat get default export","webpack://EditingToolkit/webpack/runtime/define property getters","webpack://EditingToolkit/webpack/runtime/harmony module decorator","webpack://EditingToolkit/webpack/runtime/hasOwnProperty shorthand","webpack://EditingToolkit/webpack/runtime/make namespace object","webpack://EditingToolkit/./editing-toolkit-plugin/error-reporting/index.js"],"sourcesContent":["import { BaseClient, SDK_VERSION, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth } from '@sentry/core';\nimport { getGlobalObject, getEventDescription, logger, createClientReportEnvelope, dsnToString, serializeEnvelope } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\nimport { sendReport } from './transports/utils.js';\n\nvar globalObject = getGlobalObject();\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && globalObject.document) {\n globalObject.document.addEventListener('visibilitychange', () => {\n if (globalObject.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint) {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n var breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) ;\n if (\n breadcrumbIntegration &&\n // We check for definedness of `options`, even though it is not strictly necessary, because that access to\n // `.sentry` below does not throw, in case users provided their own integration with id \"Breadcrumbs\" that does\n // not have an`options` field\n breadcrumbIntegration.options &&\n breadcrumbIntegration.options.sentry\n ) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n super.sendEvent(event, hint);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n var outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Sending outcomes:', outcomes);\n\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options.tunnel);\n var envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(e);\n }\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","import { isEvent, extractExceptionKeysForMessage, normalizeToSize, addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n var frames = parseStackFrames(stackParser, ex);\n\n var exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception ).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace || ex.stack || '';\n\n var popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception ) || isDOMException(exception )) {\n var domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n var name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n var objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n stackParser,\n input,\n syntheticException,\n attachStacktrace,\n) {\n var event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","import { withScope, captureException } from '@sentry/core';\nimport { getOriginalFunction, addExceptionTypeValue, addExceptionMechanism, markFunctionWrapped, addNonEnumerableProperty } from '@sentry/utils';\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n ) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n var wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n var wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope) => {\n scope.addEventProcessor((event) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n \n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} \n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\n\nexport { ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, htmlTreeAsString, severityLevelFromString, safeJoin, getGlobalObject, parseUrl } from '@sentry/utils';\n\n/** JSDoc */\n\nvar BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nclass Breadcrumbs {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = BREADCRUMB_INTEGRATION_ID;}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Breadcrumbs.id;}\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n \n\n /**\n * @inheritDoc\n */\n constructor(options) {;Breadcrumbs.prototype.__init.call(this);\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n setupOnce() {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n} Breadcrumbs.__initStatic();\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _domBreadcrumb(dom) {\n function _innerDomBreadcrumb(handlerData) {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target , keyAttrs)\n : htmlTreeAsString(handlerData.event , keyAttrs);\n } catch (e) {\n target = '<unknown>';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _consoleBreadcrumb(handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _xhrBreadcrumb(handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _fetchBreadcrumb(handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: 'error',\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _historyBreadcrumb(handlerData) {\n var global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nclass Dedupe {constructor() { Dedupe.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Dedupe';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Dedupe.id;}\n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcessor = currentEvent => {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n} Dedupe.__initStatic();\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n var previousException = _getExceptionFromEvent(previousEvent);\n var currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n var exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\n/** Global handlers */\nclass GlobalHandlers {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'GlobalHandlers';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = GlobalHandlers.id;}\n\n /** JSDoc */\n \n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n __init2() {this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };}\n\n /** JSDoc */\n constructor(options) {;GlobalHandlers.prototype.__init.call(this);GlobalHandlers.prototype.__init2.call(this);\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n setupOnce() {\n Error.stackTraceLimit = 50;\n var options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n for (var key in options) {\n var installFunc = this._installFunc[key ];\n if (installFunc && options[key ]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key ] = undefined;\n }\n }\n }\n} GlobalHandlers.__initStatic();\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler(\n 'error',\n (data) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n var event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler(\n 'unhandledrejection',\n (e) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n var event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n var ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n var event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n var e = (event.exception = event.exception || {});\n // event.exception.values\n var ev = (e.values = e.values || []);\n // event.exception.values[0]\n var ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n var ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n var ev0sf = (ev0s.frames = ev0s.frames || []);\n\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions() {\n var hub = getCurrentHub();\n var client = hub.getClient();\n var options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\n\nvar global = getGlobalObject();\n\n/** HttpContext integration collects information about HTTP request headers */\nclass HttpContext {constructor() { HttpContext.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'HttpContext';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = HttpContext.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n addGlobalEventProcessor((event) => {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n var url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n var headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n var request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n} HttpContext.__initStatic();\n\nexport { HttpContext };\n//# sourceMappingURL=httpcontext.js.map\n","import { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nclass LinkedErrors {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'LinkedErrors';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = LinkedErrors.id;}\n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n constructor(options = {}) {;LinkedErrors.prototype.__init.call(this);\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n var client = getCurrentHub().getClient();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event, hint) => {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n} LinkedErrors.__initStatic();\n\n/**\n * @inheritDoc\n */\nfunction _handler(\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = _walkErrorTree(parser, limit, hint.originalException , key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nfunction _walkErrorTree(\n parser,\n limit,\n error,\n key,\n stack = [],\n) {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n var exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };\n//# sourceMappingURL=linkederrors.js.map\n","import { getGlobalObject, fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { wrap } from '../helpers.js';\n\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nclass TryCatch {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'TryCatch';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = TryCatch.id;}\n\n /** JSDoc */\n \n\n /**\n * @inheritDoc\n */\n constructor(options) {;TryCatch.prototype.__init.call(this);\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n setupOnce() {\n var global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n var eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n var eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n} TryCatch.__initStatic();\n\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n return function ( ...args) {\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapRAF(original) {\n return function ( callback) {\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n return function ( ...args) {\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n var originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n var global = getGlobalObject() ;\n var proto = global[target] && global[target].prototype;\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original)\n\n {\n return function (\n \n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n ) {\n return function (\n \n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn ;\n try {\n var originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map\n","import { Integrations, getIntegrationsToSetup, initAndBind, getCurrentHub, getReportDialogEndpoint } from '@sentry/core';\nimport { getGlobalObject, stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { wrap as wrap$1 } from './helpers.js';\nimport './integrations/index.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport './transports/index.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\n\nvar defaultIntegrations = [\n new Integrations.InboundFilters(),\n new Integrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(options = {}) {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n options.release = window.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n var clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}, hub = getCurrentHub()) {\n // doesn't work without a document (React Native)\n var global = getGlobalObject();\n if (!global.document) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n var dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n var script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n var injectionPoint = global.document.head || global.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nfunction lastEventId() {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\nfunction wrap(fn) {\n return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n\n if (typeof document === 'undefined') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n var hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };\n//# sourceMappingURL=sdk.js.map\n","import { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n\nvar OPERA10_PRIORITY = 10;\nvar OPERA11_PRIORITY = 20;\nvar CHROME_PRIORITY = 30;\nvar WINJS_PRIORITY = 40;\nvar GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n var frame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chromeRegex =\n /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nvar chrome = line => {\n var parts = chromeRegex.exec(line);\n\n if (parts) {\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n var subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nvar chromeStackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nvar gecko = line => {\n var parts = geckoREgex.exec(line);\n\n if (parts) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n var subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nvar geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nvar winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nvar winjs = line => {\n var parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nvar winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nvar opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nvar opera10 = line => {\n var parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nvar opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nvar opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nvar opera11 = line => {\n var parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nvar opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nvar defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nvar defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nvar extractSafariExtensionDetails = (func, filename) => {\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { createTransport } from '@sentry/core';\nimport { getNativeFetchImplementation } from './utils.js';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeFetchImplementation(),\n) {\n function makeRequest(request) {\n var requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n ...options.fetchOptions,\n };\n\n return nativeFetch(options.url, requestOptions).then(response => ({\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n }));\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","import { getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\n\nvar global = getGlobalObject();\nlet cachedFetchImpl;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * var f = window.fetch;\n * window.fetch = function () {\n * var p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n var document = global.document;\n let fetchImpl = global.fetch;\n if (document && typeof document.createElement === 'function') {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n var contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n }\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nfunction sendReport(url, body) {\n var isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n var hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n var sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n sendBeacon(url, body);\n } else if (supportsFetch()) {\n var fetch = getNativeFetchImplementation();\n fetch(url, {\n body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }).then(null, error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(error);\n });\n }\n}\n\nexport { getNativeFetchImplementation, sendReport };\n//# sourceMappingURL=utils.js.map\n","import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nvar XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nfunction makeXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise((resolve, reject) => {\n var xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (var header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };\n//# sourceMappingURL=xhr.js.map\n","import { urlEncode, makeDsn, dsnToString } from '@sentry/utils';\n\nvar SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n var protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n var port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel) {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n var dsn = makeDsn(dsnLike);\n var endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n var user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { updateSession, Scope } from '@sentry/hub';\nimport { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, uuid4, dateTimestampInSeconds, normalize, truncate, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegrations } from './integration.js';\n\nvar ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n \n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n \n\n /** Array of set up integrations. */\n __init() {this._integrations = {};}\n\n /** Indicates whether this client's integrations have been set up. */\n __init2() {this._integrationsInitialized = false;}\n\n /** Number of calls being processed */\n __init3() {this._numProcessing = 0;}\n\n /** Holds flushable */\n __init4() {this._outcomes = {};}\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {;BaseClient.prototype.__init.call(this);BaseClient.prototype.__init2.call(this);BaseClient.prototype.__init3.call(this);BaseClient.prototype.__init4.call(this);\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options.tunnel);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint, scope) {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n scope,\n ) {\n let eventId = hint && hint.event_id;\n\n var promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n var transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n setupIntegrations() {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n getIntegrationById(integrationId) {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n try {\n return (this._integrations[integration.id] ) || null;\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n if (this._dsn) {\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (var attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n if (this._dsn) {\n var env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category) {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n // With typescript 4.1 we could even use template literal types\n var key = `${reason}:${category}`;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n var exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (var ex of exceptions) {\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n var sessionNonTerminal = session.status === 'ok';\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n var tick = 1;\n\n var interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(event, hint, scope) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = this.getOptions();\n var prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // Collect attachments from the hint and scope\n var attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n _normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n var normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n _applyClientOptions(event) {\n var options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n _applyIntegrationsMetadata(event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(reason);\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, scope) {\n const { beforeSend, sampleRate } = this.getOptions();\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n }\n\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', event.type || 'error');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n var isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n var beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', event.type || 'error');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n var session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason ,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n _sendEnvelope(envelope) {\n if (this._transport && this._dsn) {\n this._transport.send(envelope).then(null, reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Error while sending event:', reason);\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n var outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n \n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { dsnToString, createEnvelope, dropUndefinedKeys, getSentryBaggageItems } from '@sentry/utils';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(metadata) {\n if (!metadata || !metadata.sdk) {\n return;\n }\n const { name, version } = metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n };\n\n var envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var eventType = event.type || 'event';\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n var envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n var eventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n event,\n ];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n var baggage = event.sdkProcessingMetadata && event.sdkProcessingMetadata.baggage;\n var dynamicSamplingContext = baggage && getSentryBaggageItems(baggage);\n\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n ...(event.type === 'transaction' &&\n dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }) ,\n }),\n };\n}\n\nexport { createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n\nvar installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] );\n}\n\n/** Gets integration to install */\nfunction getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n var userIntegrations = options.integrations;\n\n let integrations = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(i => i.name);\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(integrations) {\n var integrationIndex = {};\n\n integrations.forEach(integration => {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Integration installed: ${integration.name}`);\n }\n });\n\n return integrationIndex;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString;\n\n/** Patch toString calls to return proper name for wrapped functions */\nclass FunctionToString {constructor() { FunctionToString.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'FunctionToString';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = FunctionToString.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n originalFunctionToString = Function.prototype.toString;\n\n Function.prototype.toString = function ( ...args) {\n var context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n} FunctionToString.__initStatic();\n\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map\n","import { logger, getEventDescription, isMatchingPattern } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\nclass InboundFilters {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'InboundFilters';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = InboundFilters.id;}\n\n constructor( _options = {}) {;this._options = _options;InboundFilters.prototype.__init.call(this);}\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcess = (event) => {\n var hub = getCurrentHub();\n if (hub) {\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n var options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n} InboundFilters.__initStatic();\n\n/** JSDoc */\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message =>\n ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n );\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n var url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n var url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n\n if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };\n//# sourceMappingURL=inboundfilters.js.map\n","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n\nexport { initAndBind };\n//# sourceMappingURL=sdk.js.map\n","import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, serializeEnvelope, logger, updateRateLimits, SentryError } from '@sentry/utils';\n\nvar DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n) {\n let rateLimits = {};\n\n var flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n var filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n var envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n var filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n var recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (_, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n var requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n },\n error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Failed while sending event:', error);\n recordEnvelopeLoss('network_error');\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Skipped sending event due to full buffer');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","var SDK_VERSION = '7.5.1';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType<Hub[HUB_FUNCTION]>`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n message,\n captureContext,\n) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nfunction startTransaction(\n context,\n customSamplingContext,\n) {\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n","import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, getGlobalObject, getGlobalSingleton, isNodeEnv } from '@sentry/utils';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nvar API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\n\n/**\n * @inheritDoc\n */\nclass Hub {\n /** Is a {@link Layer}[] containing the client and scope */\n __init() {this._stack = [{}];}\n\n /** Contains the last event id of a captured event. */\n \n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n constructor(client, scope = new Scope(), _version = API_VERSION) {;this._version = _version;Hub.prototype.__init.call(this);\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n isOlderThan(version) {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n bindClient(client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n pushScope() {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n withScope(callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /** Returns the scope of the top stack. */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n getStack() {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n ) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n var eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, hint) {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = { timestamp, ...breadcrumb };\n var finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n var scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n var scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n var scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n var scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n var scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n setContext(name, context) {\n var scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n configureScope(callback) {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n run(callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n var client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n startTransaction(context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n captureSession(endSession = false) {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n endSession() {\n var layer = this.getStackTop();\n var scope = layer && layer.scope;\n var session = scope && scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n startSession(context) {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n const { userAgent } = global.navigator || {};\n\n var session = makeSession({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n shouldSendDefaultPii() {\n var client = this.getClient();\n var options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n _sendSessionUpdate() {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n var session = scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n _withClient(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n _callExtensionMethod(method, ...args) {\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n var sentry = getMainCarrier().__SENTRY__;\n var activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n var __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n","import { isPlainObject, dateTimestampInSeconds, getGlobalSingleton, SyncPromise, logger, isThenable } from '@sentry/utils';\nimport { updateSession } from './session.js';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n \n\n /** Callback for client to receive scope changes. */\n \n\n /** Callback list that will be called after {@link applyToEvent}. */\n \n\n /** Array of breadcrumbs. */\n \n\n /** User */\n \n\n /** Tags */\n \n\n /** Extra */\n \n\n /** Contexts */\n \n\n /** Attachments */\n \n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n \n\n /** Fingerprint */\n \n\n /** Severity */\n \n\n /** Transaction Name */\n \n\n /** Span */\n \n\n /** Session */\n \n\n /** Request Mode Session Status */\n \n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n static clone(scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(\n level,\n ) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSpan(span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSpan() {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n var span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n var updatedScope = (captureContext )(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n captureContext = captureContext ;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n var mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getAttachments() {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n applyToEvent(event, hint = {}) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n var transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n _notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n ) {\n return new SyncPromise((resolve, reject) => {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n var result = processor({ ...event }, hint) ;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n\n var session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n var duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { isString } from './is.js';\nimport { logger } from './logger.js';\n\nvar BAGGAGE_HEADER_NAME = 'baggage';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nvar MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/** Create an instance of Baggage */\nfunction createBaggage(initItems, baggageString = '', mutable = true) {\n return [{ ...initItems }, baggageString, mutable];\n}\n\n/** Get a value from baggage */\nfunction getBaggageValue(baggage, key) {\n return baggage[0][key];\n}\n\n/** Add a value to baggage */\nfunction setBaggageValue(baggage, key, value) {\n if (isBaggageMutable(baggage)) {\n baggage[0][key] = value;\n }\n}\n\n/** Check if the Sentry part of the passed baggage (i.e. the first element in the tuple) is empty */\nfunction isSentryBaggageEmpty(baggage) {\n return Object.keys(baggage[0]).length === 0;\n}\n\n/** Returns Sentry specific baggage values */\nfunction getSentryBaggageItems(baggage) {\n return baggage[0];\n}\n\n/**\n * Returns 3rd party baggage string of @param baggage\n * @param baggage\n */\nfunction getThirdPartyBaggage(baggage) {\n return baggage[1];\n}\n\n/**\n * Checks if baggage is mutable\n * @param baggage\n * @returns true if baggage is mutable, else false\n */\nfunction isBaggageMutable(baggage) {\n return baggage[2];\n}\n\n/**\n * Sets the passed baggage immutable\n * @param baggage\n */\nfunction setBaggageImmutable(baggage) {\n baggage[2] = false;\n}\n\n/** Serialize a baggage object */\nfunction serializeBaggage(baggage) {\n return Object.keys(baggage[0]).reduce((prev, key) => {\n var val = baggage[0][key] ;\n var baggageEntry = `${SENTRY_BAGGAGE_KEY_PREFIX}${encodeURIComponent(key)}=${encodeURIComponent(val)}`;\n var newVal = prev === '' ? baggageEntry : `${prev},${baggageEntry}`;\n if (newVal.length > MAX_BAGGAGE_STRING_LENGTH) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Not adding key: ${key} with val: ${val} to baggage due to exceeding baggage size limits.`);\n return prev;\n } else {\n return newVal;\n }\n }, baggage[1]);\n}\n\n/**\n * Parse a baggage header from a string or a string array and return a Baggage object\n *\n * If @param includeThirdPartyEntries is set to true, third party baggage entries are added to the Baggage object\n * (This is necessary for merging potentially pre-existing baggage headers in outgoing requests with\n * our `sentry-` values)\n */\nfunction parseBaggageHeader(\n inputBaggageValue,\n includeThirdPartyEntries = false,\n) {\n // Adding this check here because we got reports of this function failing due to the input value\n // not being a string. This debug log might help us determine what's going on here.\n if ((!Array.isArray(inputBaggageValue) && !isString(inputBaggageValue)) || typeof inputBaggageValue === 'number') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n '[parseBaggageHeader] Received input value of incompatible type: ',\n typeof inputBaggageValue,\n inputBaggageValue,\n );\n\n // Gonna early-return an empty baggage object so that we don't fail later on\n return createBaggage({}, '');\n }\n\n var baggageEntries = (isString(inputBaggageValue) ? inputBaggageValue : inputBaggageValue.join(','))\n .split(',')\n .map(entry => entry.trim())\n .filter(entry => entry !== '' && (includeThirdPartyEntries || SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(entry)));\n\n return baggageEntries.reduce(\n ([baggageObj, baggageString], curr) => {\n const [key, val] = curr.split('=');\n if (SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(key)) {\n var baggageKey = decodeURIComponent(key.split('-')[1]);\n return [\n {\n ...baggageObj,\n [baggageKey]: decodeURIComponent(val),\n },\n baggageString,\n true,\n ];\n } else {\n return [baggageObj, baggageString === '' ? curr : `${baggageString},${curr}`, true];\n }\n },\n [{}, '', true],\n );\n}\n\n/**\n * Merges the baggage header we saved from the incoming request (or meta tag) with\n * a possibly created or modified baggage header by a third party that's been added\n * to the outgoing request header.\n *\n * In case @param headerBaggageString exists, we can safely add the the 3rd party part of @param headerBaggage\n * with our @param incomingBaggage. This is possible because if we modified anything beforehand,\n * it would only affect parts of the sentry baggage (@see Baggage interface).\n *\n * @param incomingBaggage the baggage header of the incoming request that might contain sentry entries\n * @param thirdPartyBaggageHeader possibly existing baggage header string or string[] added from a third\n * party to the request headers\n *\n * @return a merged and serialized baggage string to be propagated with the outgoing request\n */\nfunction mergeAndSerializeBaggage(incomingBaggage, thirdPartyBaggageHeader) {\n if (!incomingBaggage && !thirdPartyBaggageHeader) {\n return '';\n }\n\n var headerBaggage = (thirdPartyBaggageHeader && parseBaggageHeader(thirdPartyBaggageHeader, true)) || undefined;\n var thirdPartyHeaderBaggage = headerBaggage && getThirdPartyBaggage(headerBaggage);\n\n var finalBaggage = createBaggage((incomingBaggage && incomingBaggage[0]) || {}, thirdPartyHeaderBaggage || '');\n return serializeBaggage(finalBaggage);\n}\n\n/**\n * Helper function that takes a raw baggage string (if available) and the processed sentry-trace header\n * data (if available), parses the baggage string and creates a Baggage object\n * If there is no baggage string, it will create an empty Baggage object.\n * In a second step, this functions determines if the created Baggage object should be set immutable\n * to prevent mutation of the Sentry data.\n *\n * Extracted this logic to a function because it's duplicated in a lot of places.\n *\n * @param rawBaggageValue\n * @param sentryTraceHeader\n */\nfunction parseBaggageSetMutability(\n rawBaggageValue,\n sentryTraceHeader,\n) {\n var baggage = parseBaggageHeader(rawBaggageValue || '');\n\n // Because we are always creating a Baggage object by calling `parseBaggageHeader` above\n // (either a filled one or an empty one, even if we didn't get a `baggage` header),\n // we only need to check if we have a sentry-trace header or not. As soon as we have it,\n // we set baggage immutable. In case we don't get a sentry-trace header, we can assume that\n // this SDK is the head of the trace and thus we still permit mutation at this time.\n // There is one exception though, which is that we get a baggage-header with `sentry-`\n // items but NO sentry-trace header. In this case we also set the baggage immutable for now\n // but if smoething like this would ever happen, we should revisit this and determine\n // what this would actually mean for the trace (i.e. is this SDK the head?, what happened\n // before that we don't have a sentry-trace header?, etc)\n (sentryTraceHeader || !isSentryBaggageEmpty(baggage)) && setBaggageImmutable(baggage);\n\n return baggage;\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, createBaggage, getBaggageValue, getSentryBaggageItems, getThirdPartyBaggage, isBaggageMutable, isSentryBaggageEmpty, mergeAndSerializeBaggage, parseBaggageHeader, parseBaggageSetMutability, serializeBaggage, setBaggageImmutable, setBaggageValue };\n//# sourceMappingURL=baggage.js.map\n","import { getGlobalObject } from './global.js';\nimport { isString } from './is.js';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(elem, keyAttrs) {\n \n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n let height = 0;\n let len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n let nextStr;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var elem = el \n\n;\n\n var out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n var global = getGlobalObject();\n try {\n return global.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\nexport { getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n var clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","import { SentryError } from './error.js';\n\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nfunction dsnFromString(str) {\n var match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n var requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nfunction makeDsn(from) {\n var components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n\n/**\n * Changes a Dsn to point to the `relay` server running in the Lambda Extension.\n *\n * This is only used by the serverless integration for AWS Lambda.\n *\n * @param originalDsn The original Dsn of the customer.\n * @returns Dsn pointing to Lambda extension.\n */\nfunction extensionRelayDSN(originalDsn) {\n if (originalDsn === undefined) {\n return undefined;\n }\n\n var dsn = dsnFromString(originalDsn);\n dsn.host = 'localhost';\n dsn.port = '3000';\n dsn.protocol = 'http';\n\n return dsnToString(dsn);\n}\n\nexport { dsnToString, extensionRelayDSN, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { dropUndefinedKeys } from './object.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n var envelopeItems = envelope[1];\n envelopeItems.forEach((envelopeItem) => {\n var envelopeItemType = envelopeItem[0].type;\n callback(envelopeItem, envelopeItemType);\n });\n}\n\nfunction encodeUTF8(input, textEncoder) {\n var utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope, textEncoder) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (var item of items) {\n const [itemHeaders, payload] = item ;\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n append(typeof payload === 'string' || payload instanceof Uint8Array ? payload : JSON.stringify(payload));\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n var totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n var merged = new Uint8Array(totalLength);\n let offset = 0;\n for (var buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(\n attachment,\n textEncoder,\n) {\n var buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nvar ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, envelopeItemTypeToDataCategory, forEachEnvelopeItem, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n \n\n constructor( message) {\n super(message);this.message = message;;\n\n this.name = new.target.prototype.constructor.name;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import { isNodeEnv } from './node.js';\n\n/** Internal */\n\nvar fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nfunction getGlobalObject() {\n return (\n isNodeEnv()\n ? global\n : typeof window !== 'undefined' ? window : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject\n ) ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n var global = (obj || getGlobalObject()) ;\n var __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n var singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=global.js.map\n","import { getGlobalObject } from './global.js';\nimport { isInstanceOf, isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch, supportsHistory } from './supports.js';\n\nvar global = getGlobalObject();\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nvar handlers = {};\nvar instrumented = {};\n\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (var handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod) {\n return function (...args) {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch) {\n return function (...args) {\n var handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n return originalFetch.apply(global, args).then(\n (response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs = []) {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs = []) {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n var xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen) {\n return function ( ...args) {\n var xhr = this;\n var url = args[1];\n var xhrInfo = (xhr.__sentry_xhr__ = {\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function (...readyStateArgs) {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend) {\n return function ( ...args) {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref;\n\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function ( ...args) {\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nvar debounceDuration = 1000;\nlet debounceTimerID;\nlet lastCapturedEvent;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n var target = event.target ;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener = false) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n var name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n var proto = (global )[target] && (global )[target].prototype;\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n \n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n \n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n\nexport { addInstrumentationHandler };\n//# sourceMappingURL=instrument.js.map\n","var objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\nfunction isBuiltin(wat, ty) {\n return objectToString.call(wat) === `[object ${ty}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n","import { getGlobalObject, getGlobalSingleton } from './global.js';\n\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n\nvar CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n var global = getGlobalObject();\n\n if (!('console' in global)) {\n return callback();\n }\n\n var originalConsole = global.console ;\n var wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n var originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n var logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n global.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n var hasWeakSet = typeof WeakSet === 'function';\n var inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n for (let i = 0; i < inner.length; i++) {\n var value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { getGlobalObject } from './global.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n var global = getGlobalObject() ;\n var crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n var pad = (num) => {\n let v = num.toString(16);\n while (v.length < 4) {\n v = `0${v}`;\n }\n return v;\n };\n\n return (\n pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n );\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n var r = (Math.random() * 16) | 0;\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url)\n\n {\n if (!url) {\n return {};\n }\n\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n var firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '<unknown>';\n }\n return eventId || '<unknown>';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n var exception = (event.exception = event.exception || {});\n var values = (exception.values = exception.values || []);\n var firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, parseSemver, parseUrl, stripUrlQueryAndFragment, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n var normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value ;\n }\n\n var stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n var valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n var jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n var normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n var visitable = convertToPlainObject(value );\n\n for (var visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n var visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) ).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n//# sourceMappingURL=normalize.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n var original = source[name] ;\n var wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n var proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n var newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n var extractedProps = {};\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n var keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n var memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (var key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n var buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n * PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n // start the task and add its promise to the queue\n var task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n var capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nvar DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n var headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n var headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nfunction disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, category, now = Date.now()) {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n var updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n var rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n var retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n * <header>,<header>,..\n * where each <header> is of the form\n * <retry_after>: <categories>: <scope>: <reason_code>\n * where\n * <retry_after> is a delay in seconds\n * <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * <category>;<category>;...\n * <scope> is what's being limited (org, project, or key) - ignored by SDK\n * <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (var limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n var headerDelay = parseInt(retryAfter, 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (var category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nvar validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nfunction severityFromString(level) {\n return severityLevelFromString(level) ;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n","import { _optionalChain } from './buildPolyfills';\n\nvar STACKTRACE_LIMIT = 50;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n var sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirst = 0) => {\n var frames = [];\n\n for (var line of stack.split('\\n').slice(skipFirst)) {\n for (var parser of sortedParsers) {\n var frame = parser(line);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n var firstFrameFunction = localStack[0].function || '';\n var lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nvar defaultFunctionName = '<anonymous>';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\nfunction node(getModule) {\n var FILENAME_MATCH = /^\\s*[-]{4,}$/;\n var FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/;\n\n return (line) => {\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n var lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) {\n return undefined;\n }\n\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n var objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '<anonymous>') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || '<anonymous>';\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n var filename = _optionalChain([lineMatch, 'access', _ => _[2], 'optionalAccess', _2 => _2.startsWith, 'call', _3 => _3('file://')]) ? lineMatch[2].substr(7) : lineMatch[2];\n var isNative = lineMatch[5] === 'native';\n var isInternal =\n isNative || (filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\\\') !== 1);\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n var in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');\n\n return {\n filename,\n module: _optionalChain([getModule, 'optionalCall', _4 => _4(filename)]),\n function: functionName,\n lineno: parseInt(lineMatch[3], 10) || undefined,\n colno: parseInt(lineMatch[4], 10) || undefined,\n in_app,\n };\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nexport { createStackParser, getFunctionName, nodeStackLineParser, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n var lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n var output = [];\n for (let i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nfunction isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nfunction escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n\nexport { escapeStringForRegex, isMatchingPattern, safeJoin, snipLine, truncate };\n//# sourceMappingURL=string.js.map\n","import { getGlobalObject } from './global.js';\nimport { logger } from './logger.js';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n var global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n var doc = global.document;\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n var chrome = (global ).chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { isThenable } from './is.js';\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n var PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n var RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n var REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n \n\n constructor(\n executor,\n ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n var cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { getGlobalObject } from './global.js';\nimport { dynamicRequire, isNodeEnv } from './node.js';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nvar timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nvar dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nvar timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nvar timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nvar usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nvar browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n","module.exports = window[\"wp\"][\"apiFetch\"];","module.exports = window[\"wp\"][\"hooks\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as Sentry from '@sentry/browser';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addAction } from '@wordpress/hooks';\n\nconst shouldActivateSentry = window.A8C_ETK_ErrorReporting_Config?.shouldActivateSentry === 'true';\n\n/**\n * Errors that happened before this script had a chance to load\n * are captured in a global array. See `./index.php`.\n */\nconst headErrors = window._jsErr || [];\nconst headErrorHandler = window._headJsErrorHandler;\n\nfunction activateSentry() {\n\tconst SENTRY_RELEASE_NAME = window.A8C_ETK_ErrorReporting_Config.releaseName;\n\n\tSentry.init( {\n\t\tdsn: 'https://658ae291b00242148af6b76494d4a49a@o248881.ingest.sentry.io/5876245',\n\t\trelease: SENTRY_RELEASE_NAME,\n\t} );\n\n\t// Capture exceptions from Gutenberg React Error Boundaries\n\taddAction( 'editor.ErrorBoundary.errorLogged', 'etk/error-reporting', ( error ) => {\n\t\t// error is the exception's error object\n\t\tSentry.captureException( error );\n\t} );\n\n\t// We still need to report the head errors, if any.\n\theadErrors.forEach( ( error ) => Sentry.captureException( error ) );\n\tSentry.flush().then( () => delete window._jsErr );\n}\n\n// Activate the home-brew error-reporting\nfunction activateHomebrewErrorReporting() {\n\tconst reportError = ( { error } ) => {\n\t\t// Sanitized error event objects do not include a nested error attribute. In\n\t\t// that case, we return early to prevent a needless TypeError when defining\n\t\t// `data`, below. Also, sanitized errors don't include any useful information,\n\t\t// so the sensible thing to do is to completely ignore them.\n\t\tif ( ! error ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst data = {\n\t\t\tmessage: error.message,\n\t\t\ttrace: error.stack,\n\t\t\turl: document.location.href,\n\t\t\tfeature: 'wp-admin',\n\t\t};\n\n\t\treturn (\n\t\t\tapiFetch( {\n\t\t\t\tglobal: true,\n\t\t\t\tpath: '/rest/v1.1/js-error',\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdata: { error: JSON.stringify( data ) },\n\t\t\t} )\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t.catch( () => console.error( 'Error: Unable to record the error in Logstash.' ) )\n\t\t);\n\t};\n\n\twindow.addEventListener( 'error', reportError );\n\n\t// We still need to report the head errors, if any.\n\tPromise.allSettled( headErrors.map( reportError ) ).then( () => delete window._jsErr );\n}\n\nif ( shouldActivateSentry ) {\n\tactivateSentry();\n} else {\n\tactivateHomebrewErrorReporting();\n}\n\n// Remove the head handler as it's not needed anymore after we set the main one above (either Sentry or homebrew)\nwindow.removeEventListener( 'error', headErrorHandler );\ndelete window._headJsErrorHandler;\n"],"names":["globalObject","BrowserClient","constructor","options","_metadata","sdk","name","packages","version","super","sendClientReports","document","addEventListener","visibilityState","this","_flushOutcomes","eventFromException","exception","hint","_options","stackParser","attachStacktrace","eventFromMessage","message","level","sendEvent","event","breadcrumbIntegration","getIntegrationById","sentry","addBreadcrumb","category","type","event_id","_prepareEvent","scope","platform","outcomes","_clearOutcomes","length","_dsn","__SENTRY_DEBUG__","log","url","tunnel","envelope","e","exceptionFromError","ex","frames","parseStackFrames","value","extractMessage","stacktrace","undefined","eventFromError","values","stack","popSize","framesToPop","reactMinifiedRegexp","test","getPopSize","error","eventFromUnknownInput","syntheticException","eventFromString","isUnhandledRejection","domException","tags","code","extra","__serialized__","eventFromPlainObject","synthetic","input","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","setTimeout","wrap","fn","before","wrapper","__sentry_wrapped__","sentryWrapped","args","Array","prototype","slice","call","arguments","apply","wrappedArguments","map","arg","addEventProcessor","mechanism","property","Object","hasOwnProperty","_oO","getOwnPropertyDescriptor","configurable","defineProperty","get","BREADCRUMB_INTEGRATION_ID","Breadcrumbs","static","id","__init","console","dom","fetch","history","xhr","setupOnce","_consoleBreadcrumb","_innerDomBreadcrumb","handlerData","target","keyAttrs","serializeAttribute","global","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","breadcrumb","data","logger","endTimestamp","__sentry_own_request__","method","status_code","body","__sentry_xhr__","fetchData","match","response","status","from","to","parsedLoc","location","href","parsedFrom","parsedTo","path","protocol","host","relative","__initStatic","Dedupe","addGlobalEventProcessor","getCurrentHub","eventProcessor","currentEvent","self","getIntegration","previousEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","_shouldDropEvent","_previousEvent","currentFrames","_getFramesFromEvent","previousFrames","i","frameA","frameB","filename","lineno","colno","function","currentFingerprint","fingerprint","previousFingerprint","join","GlobalHandlers","__init2","_installFunc","onerror","_installGlobalOnErrorHandler","onunhandledrejection","_installGlobalOnUnhandledRejectionHandler","Error","stackTraceLimit","key","installFunc","hub","getHubAndOptions","msg","line","column","ERROR_TYPES_RE","groups","_enhanceEventWithInitialFrame","_eventFromIncompleteOnError","addMechanismAndCapture","reason","detail","String","ev","ev0","ev0s","ev0sf","isNaN","parseInt","push","in_app","handled","captureEvent","originalException","client","getClient","getOptions","HttpContext","navigator","request","referrer","userAgent","headers","Referer","LinkedErrors","_key","_limit","limit","parser","linkedErrors","_walkErrorTree","_handler","DEFAULT_EVENT_TARGET","TryCatch","XMLHttpRequest","eventTarget","requestAnimationFrame","setInterval","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","isArray","forEach","_wrapEventTarget","original","originalCallback","callback","handler","originalSend","prop","wrapOptions","originalFunction","proto","eventName","handleEvent","err","originalRemoveEventListener","wrappedEventHandler","originalEventHandler","defaultIntegrations","init","release","window","SENTRY_RELEASE","autoSessionTracking","clientOptions","integrations","transport","captureSession","startSessionOnHub","startSessionTracking","flush","timeout","startSession","ignoreDuration","UNKNOWN_FUNCTION","createFrame","func","frame","chromeRegex","chromeEvalRegex","geckoREgex","geckoEvalRegex","winjsRegex","defaultStackLineParsers","parts","exec","indexOf","subMatch","extractSafariExtensionDetails","defaultStackParser","isSafariExtension","isSafariWebExtension","split","makeFetchTransport","nativeFetch","requestOptions","referrerPolicy","fetchOptions","then","statusCode","cachedFetchImpl","getNativeFetchImplementation","bind","fetchImpl","createElement","sandbox","hidden","head","appendChild","contentWindow","removeChild","sendReport","toString","sendBeacon","credentials","keepalive","makeXHRTransport","resolve","reject","header","onreadystatechange","readyState","getResponseHeader","open","setRequestHeader","send","getBaseApiEndpoint","dsn","port","getEnvelopeEndpointWithUrlEncodedAuth","projectId","_getIngestEndpoint","sentry_key","publicKey","sentry_version","_encodedAuth","ALREADY_SEEN_ERROR","BaseClient","_integrations","_integrationsInitialized","__init3","_numProcessing","__init4","_outcomes","_transport","recordDroppedEvent","transportOptions","captureException","eventId","_process","_captureEvent","result","captureMessage","promisedEvent","session","_isEnabled","sendSession","getDsn","getTransport","_isClientDoneProcessing","clientFinished","transportFlushed","close","enabled","setupIntegrations","integrationId","integration","env","attachment","attachments","textEncoder","_sendEnvelope","_updateSessionFromEvent","crashed","errored","exceptions","sessionNonTerminal","errors","Number","ticked","interval","clearInterval","normalizeDepth","normalizeMaxBreadth","prepared","timestamp","_applyClientOptions","_applyIntegrationsMetadata","finalScope","captureContext","update","getAttachments","applyToEvent","evt","_normalizeEvent","depth","maxBreadth","normalized","breadcrumbs","b","user","contexts","trace","spans","span","environment","dist","maxValueLength","integrationsArray","keys","_processEvent","finalEvent","beforeSend","sampleRate","isTransaction","Math","random","__sentry__","rv","nullErr","_ensureBeforeSendRv","processedEvent","getSession","promise","quantity","getSdkMetadataForEnvelopeHeader","metadata","createSessionEnvelope","sdkInfo","envelopeHeaders","sent_at","Date","toISOString","envelopeItem","createEventEnvelope","eventType","transactionSampling","sdkProcessingMetadata","samplingMethod","rate","enhanceEventWithSdkInfo","baggage","dynamicSamplingContext","createEventEnvelopeHeaders","eventItem","sample_rates","installedIntegrations","filterDuplicates","reduce","acc","every","accIntegration","getIntegrationsToSetup","userIntegrations","filter","userIntegration","integrationsNames","alwaysLastToRun","splice","integrationIndex","originalFunctionToString","FunctionToString","Function","context","DEFAULT_IGNORE_ERRORS","InboundFilters","eventProcess","internalOptions","allowUrls","denyUrls","ignoreErrors","ignoreInternal","_mergeOptions","_isSentryError","oO","_getPossibleEventMessages","some","pattern","_isIgnoredError","_getEventFilterUrl","_isDeniedUrl","_isAllowedUrl","_getLastValidUrl","initAndBind","clientClass","debug","warn","getScope","initialScope","bindClient","createTransport","makeRequest","buffer","bufferSize","rateLimits","filteredEnvelopeItems","item","envelopeItemDataCategory","filteredEnvelope","recordEnvelopeLoss","_","add","drain","SDK_VERSION","withScope","DEFAULT_BREADCRUMBS","Hub","_stack","_version","getStackTop","isOlderThan","pushScope","getStack","popScope","pop","_lastEventId","_withClient","lastEventId","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","setUser","setTags","setExtras","extras","setTag","setExtra","setContext","configureScope","run","oldHub","makeMain","startTransaction","customSamplingContext","_callExtensionMethod","traceHeaders","endSession","_sendSessionUpdate","layer","setSession","getUser","currentSession","shouldSendDefaultPii","Boolean","sendDefaultPii","getMainCarrier","__SENTRY__","extensions","carrier","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","activeDomain","domain","active","registryHubTopStack","_Oo","getHubFromActiveDomain","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","setLevel","setTransactionName","setSpan","getSpan","getTransaction","transaction","updatedScope","clear","maxCrumbs","min","clearBreadcrumbs","addAttachment","clearAttachments","getTraceContext","transactionName","_applyFingerprint","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","newData","processors","index","processor","final","concat","makeSession","startingTime","sid","started","duration","toJSON","did","attrs","ip_address","ipAddress","user_agent","sessionToJSON","updateSession","email","username","closeSession","getSentryBaggageItems","htmlTreeAsString","elem","currentElem","out","height","len","sepLength","nextStr","_htmlElementAsString","parentNode","reverse","el","className","classes","attr","tagName","toLowerCase","keyAttrPairs","keyAttr","getAttribute","keyAttrPair","allowedAttrs","getLocationHref","createClientReportEnvelope","discarded_events","clientReportItem","DSN_REGEX","dsnToString","withPassword","pass","dsnFromString","str","lastPath","projectMatch","dsnFromComponents","components","makeDsn","component","isValidProtocol","validateDsn","isBrowserBundle","__SENTRY_BROWSER_BUNDLE__","createEnvelope","items","addItemToEnvelope","newItem","forEachEnvelopeItem","envelopeItemType","encodeUTF8","TextEncoder","encode","serializeEnvelope","envHeaders","JSON","stringify","append","next","itemHeaders","payload","Uint8Array","buffers","totalLength","buf","merged","offset","set","concatBuffers","createAttachmentEnvelopeItem","content_type","contentType","attachment_type","attachmentType","ITEM_TYPE_TO_DATA_CATEGORY_MAP","sessions","client_report","user_report","envelopeItemTypeToDataCategory","SentryError","setPrototypeOf","fallbackGlobalObject","getGlobalObject","getGlobalSingleton","creator","obj","handlers","instrumented","instrument","originalConsoleMethod","triggerHandlers","instrumentConsole","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","listener","__sentry_instrumentation_handlers__","handlerForType","refCount","instrumentDOM","xhrproto","originalOpen","xhrInfo","toUpperCase","onreadystatechangeHandler","now","startTimestamp","readyStateArgs","instrumentXHR","originalFetch","getFetchMethod","getFetchUrl","instrumentFetch","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","lastHref","instrumentHistory","_oldOnErrorHandler","_oldOnUnhandledRejectionHandler","addInstrumentationHandler","fetchArgs","Request","debounceTimerID","lastCapturedEvent","globalListener","isContentEditable","shouldSkipDOMEvent","previous","current","shouldShortcircuitPreviousDebounce","clearTimeout","objectToString","isError","wat","isInstanceOf","isBuiltin","ty","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","isSyntheticEvent","base","_e","CONSOLE_LEVELS","consoleSandbox","originalConsole","wrappedLevels","originalWrappedFunc","__sentry_original__","makeLogger","enable","disable","memoBuilder","hasWeakSet","WeakSet","inner","has","delete","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","replace","c","r","parseUrl","query","fragment","getFirstException","getEventDescription","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mergedData","checkOrSetAlreadyCaught","__sentry_captured__","isNodeEnv","process","dynamicRequire","mod","require","normalize","Infinity","maxProperties","visit","ERROR","normalizeToSize","object","maxSize","encodeURI","utf8Length","memo","memoize","unmemoize","includes","stringified","_events","getPrototypeOf","stringifyValue","startsWith","valueWithToJSON","numAdded","visitable","visitKey","visitValue","fill","source","replacementFactory","wrapped","markFunctionWrapped","addNonEnumerableProperty","writable","getOriginalFunction","urlEncode","encodeURIComponent","convertToPlainObject","getOwnProperties","newObj","serializeEventTarget","currentTarget","CustomEvent","extractedProps","extractExceptionKeysForMessage","maxLength","sort","includedKeys","serialized","dropUndefinedKeys","inputValue","_dropUndefinedKeys","Map","memoizationMap","memoVal","returnValue","makePromiseBuffer","remove","task","$","taskProducer","counter","capturedSetTimeout","isRateLimited","limits","all","disabledUntil","updateRateLimits","updatedRateLimits","rateLimitHeader","retryAfterHeader","trim","retryAfter","categories","headerDelay","delay","headerDate","parse","parseRetryAfterHeader","validSeverityLevels","severityLevelFromString","createStackParser","parsers","sortedParsers","a","p","skipFirst","localStack","firstFrameFunction","lastFrameFunction","stripSentryFramesAndReverse","stackParserFromStackParserOptions","defaultFunctionName","getFunctionName","truncate","max","substr","safeJoin","delimiter","output","isMatchingPattern","supportsFetch","Headers","Response","isNativeFetch","supportsNativeFetch","doc","supportsHistory","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","pushState","replaceState","States","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","_state","PENDING","_handlers","executor","__init5","__init6","_resolve","_reject","onfulfilled","onrejected","_executeHandlers","catch","val","finally","onfinally","isRejected","_setResult","RESOLVED","REJECTED","state","_value","cachedHandlers","dateTimestampSource","nowSeconds","platformPerformance","module","performance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","_browserPerformanceTimeOriginMode","threshold","performanceNow","dateNow","timeOriginDelta","abs","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","n","getter","__esModule","d","definition","o","enumerable","hmd","create","children","Symbol","toStringTag","shouldActivateSentry","A8C_ETK_ErrorReporting_Config","headErrors","_jsErr","headErrorHandler","_headJsErrorHandler","SENTRY_RELEASE_NAME","releaseName","Sentry","addAction","activateSentry","reportError","feature","apiFetch","Promise","allSettled","activateHomebrewErrorReporting","removeEventListener"],"sourceRoot":""}
|
error-reporting/index.js
CHANGED
@@ -3,6 +3,7 @@ import apiFetch from '@wordpress/api-fetch';
|
|
3 |
import { addAction } from '@wordpress/hooks';
|
4 |
|
5 |
const shouldActivateSentry = window.A8C_ETK_ErrorReporting_Config?.shouldActivateSentry === 'true';
|
|
|
6 |
/**
|
7 |
* Errors that happened before this script had a chance to load
|
8 |
* are captured in a global array. See `./index.php`.
|
@@ -11,12 +12,11 @@ const headErrors = window._jsErr || [];
|
|
11 |
const headErrorHandler = window._headJsErrorHandler;
|
12 |
|
13 |
function activateSentry() {
|
|
|
|
|
14 |
Sentry.init( {
|
15 |
dsn: 'https://658ae291b00242148af6b76494d4a49a@o248881.ingest.sentry.io/5876245',
|
16 |
-
|
17 |
-
// of transactions for performance monitoring.
|
18 |
-
// We recommend adjusting this value in production
|
19 |
-
release: 'wpcom-test-01',
|
20 |
} );
|
21 |
|
22 |
// Capture exceptions from Gutenberg React Error Boundaries
|
3 |
import { addAction } from '@wordpress/hooks';
|
4 |
|
5 |
const shouldActivateSentry = window.A8C_ETK_ErrorReporting_Config?.shouldActivateSentry === 'true';
|
6 |
+
|
7 |
/**
|
8 |
* Errors that happened before this script had a chance to load
|
9 |
* are captured in a global array. See `./index.php`.
|
12 |
const headErrorHandler = window._headJsErrorHandler;
|
13 |
|
14 |
function activateSentry() {
|
15 |
+
const SENTRY_RELEASE_NAME = window.A8C_ETK_ErrorReporting_Config.releaseName;
|
16 |
+
|
17 |
Sentry.init( {
|
18 |
dsn: 'https://658ae291b00242148af6b76494d4a49a@o248881.ingest.sentry.io/5876245',
|
19 |
+
release: SENTRY_RELEASE_NAME,
|
|
|
|
|
|
|
20 |
} );
|
21 |
|
22 |
// Capture exceptions from Gutenberg React Error Boundaries
|
error-reporting/index.php
CHANGED
@@ -117,6 +117,7 @@ function enqueue_script() {
|
|
117 |
'A8C_ETK_ErrorReporting_Config',
|
118 |
array(
|
119 |
'shouldActivateSentry' => should_activate_sentry( get_current_user_id(), get_current_blog_id() ) ? 'true' : 'false',
|
|
|
120 |
)
|
121 |
);
|
122 |
}
|
117 |
'A8C_ETK_ErrorReporting_Config',
|
118 |
array(
|
119 |
'shouldActivateSentry' => should_activate_sentry( get_current_user_id(), get_current_blog_id() ) ? 'true' : 'false',
|
120 |
+
'releaseName' => defined( 'WPCOM_DEPLOYED_GIT_HASH' ) ? 'WPCOM_' . WPCOM_DEPLOYED_GIT_HASH : 'WPCOM_NO_RELEASE',
|
121 |
)
|
122 |
);
|
123 |
}
|
full-site-editing-plugin.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Plugin Name: WordPress.com Editing Toolkit
|
4 |
* Description: Enhances your page creation workflow within the Block Editor.
|
5 |
-
* Version: 3.
|
6 |
* Author: Automattic
|
7 |
* Author URI: https://automattic.com/wordpress-plugins/
|
8 |
* License: GPLv2 or later
|
@@ -42,7 +42,7 @@ namespace A8C\FSE;
|
|
42 |
*
|
43 |
* @var string
|
44 |
*/
|
45 |
-
define( 'A8C_ETK_PLUGIN_VERSION', '3.
|
46 |
|
47 |
// Always include these helper files for dotcom FSE.
|
48 |
require_once __DIR__ . '/dotcom-fse/helpers.php';
|
@@ -383,18 +383,9 @@ add_action( 'plugins_loaded', __NAMESPACE__ . '\load_tags_education' );
|
|
383 |
|
384 |
/**
|
385 |
* Help center
|
386 |
-
* At the moment we're
|
387 |
*/
|
388 |
function load_help_center() {
|
389 |
-
// enable help center for all proxied users.
|
390 |
-
$is_proxied = isset( $_SERVER['A8C_PROXIED_REQUEST'] ) ? sanitize_text_field( wp_unslash( $_SERVER['A8C_PROXIED_REQUEST'] ) ) : false || defined( 'A8C_PROXIED_REQUEST' ) && A8C_PROXIED_REQUEST;
|
391 |
-
|
392 |
-
$current_segment = 30; // segment of existing users that will get the help center in %.
|
393 |
-
$user_segment = get_current_user_id() % 100;
|
394 |
-
|
395 |
-
if ( $is_proxied || $user_segment < $current_segment ) {
|
396 |
-
require_once __DIR__ . '/help-center/class-help-center.php';
|
397 |
-
}
|
398 |
}
|
399 |
add_action( 'plugins_loaded', __NAMESPACE__ . '\load_help_center' );
|
400 |
|
2 |
/**
|
3 |
* Plugin Name: WordPress.com Editing Toolkit
|
4 |
* Description: Enhances your page creation workflow within the Block Editor.
|
5 |
+
* Version: 3.39221
|
6 |
* Author: Automattic
|
7 |
* Author URI: https://automattic.com/wordpress-plugins/
|
8 |
* License: GPLv2 or later
|
42 |
*
|
43 |
* @var string
|
44 |
*/
|
45 |
+
define( 'A8C_ETK_PLUGIN_VERSION', '3.39221' );
|
46 |
|
47 |
// Always include these helper files for dotcom FSE.
|
48 |
require_once __DIR__ . '/dotcom-fse/helpers.php';
|
383 |
|
384 |
/**
|
385 |
* Help center
|
386 |
+
* At the moment we're disabling the help center.
|
387 |
*/
|
388 |
function load_help_center() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
389 |
}
|
390 |
add_action( 'plugins_loaded', __NAMESPACE__ . '\load_help_center' );
|
391 |
|
help-center/dist/help-center.asset.php
CHANGED
@@ -1 +1 @@
|
|
1 |
-
<?php return array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-a11y', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-data-controls', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-warning'), 'version' => '
|
1 |
+
<?php return array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-a11y', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-data-controls', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-warning'), 'version' => 'e74c664378804b092135');
|
help-center/dist/help-center.js
CHANGED
@@ -39859,7 +39859,7 @@ function getDistanceBetweenRecs(totalSubs) {
|
|
39859 |
/* harmony export */ "Khp": function() { return /* binding */ WORDADS_SITE_APPROVE_REQUEST_SUCCESS; },
|
39860 |
/* harmony export */ "koV": function() { return /* binding */ WPCOM_HTTP_REQUEST; }
|
39861 |
/* harmony export */ });
|
39862 |
-
/* unused harmony exports ACCOUNT_CLOSE, ACCOUNT_CLOSE_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_DELETE, ACCOUNT_RECOVERY_SETTINGS_DELETE_FAILED, ACCOUNT_RECOVERY_SETTINGS_DELETE_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_FETCH, ACCOUNT_RECOVERY_SETTINGS_FETCH_FAILED, ACCOUNT_RECOVERY_SETTINGS_FETCH_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_RESEND_VALIDATION, ACCOUNT_RECOVERY_SETTINGS_RESEND_VALIDATION_FAILED, ACCOUNT_RECOVERY_SETTINGS_RESEND_VALIDATION_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_UPDATE, ACCOUNT_RECOVERY_SETTINGS_UPDATE_FAILED, ACCOUNT_RECOVERY_SETTINGS_UPDATE_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_VALIDATE_PHONE, ACCOUNT_RECOVERY_SETTINGS_VALIDATE_PHONE_FAILED, ACCOUNT_RECOVERY_SETTINGS_VALIDATE_PHONE_SUCCESS, ACTIVE_PROMOTIONS_RECEIVE, ACTIVE_PROMOTIONS_REQUEST, ACTIVE_PROMOTIONS_REQUEST_FAILURE, ACTIVE_PROMOTIONS_REQUEST_SUCCESS, ACTIVITY_LOG_FILTER_SET, ACTIVITY_LOG_FILTER_UPDATE, ADMIN_MENU_RECEIVE, ADMIN_MENU_REQUEST, ALL_DOMAINS_REQUEST, ALL_DOMAINS_REQUEST_FAILURE, ALL_DOMAINS_REQUEST_SUCCESS, ANALYTICS_MULTI_TRACK, ATOMIC_TRANSFER_REQUEST, ATOMIC_TRANSFER_SET, ATOMIC_TRANSFER_INITIATE_TRANSFER, ATOMIC_TRANSFER_REQUEST_LATEST, ATOMIC_TRANSFER_SET_LATEST, ATOMIC_SOFTWARE_INITIATE_INSTALL, ATOMIC_SOFTWARE_REQUEST_STATUS, ATOMIC_SOFTWARE_SET_STATUS, ATOMIC_SOFTWARE_SET_ERROR, AUTOMATED_TRANSFER_ELIGIBILITY_REQUEST, AUTOMATED_TRANSFER_ELIGIBILITY_UPDATE, AUTOMATED_TRANSFER_INITIATE_WITH_PLUGIN_ZIP, AUTOMATED_TRANSFER_STATUS_REQUEST, AUTOMATED_TRANSFER_STATUS_REQUEST_FAILURE, AUTOMATED_TRANSFER_STATUS_SET, BILLING_RECEIPT_EMAIL_SEND, BILLING_RECEIPT_EMAIL_SEND_FAILURE, BILLING_RECEIPT_EMAIL_SEND_SUCCESS, BILLING_TRANSACTION_ERROR_CLEAR, BILLING_TRANSACTION_RECEIVE, BILLING_TRANSACTION_REQUEST, BILLING_TRANSACTION_REQUEST_FAILURE, BILLING_TRANSACTION_REQUEST_SUCCESS, BILLING_TRANSACTIONS_FILTER_SET_APP, BILLING_TRANSACTIONS_FILTER_SET_MONTH, BILLING_TRANSACTIONS_FILTER_SET_PAGE, BILLING_TRANSACTIONS_FILTER_SET_QUERY, BILLING_TRANSACTIONS_RECEIVE, BILLING_TRANSACTIONS_REQUEST, BILLING_TRANSACTIONS_REQUEST_FAILURE, BILLING_TRANSACTIONS_REQUEST_SUCCESS, BREADCRUMB_RESET_LIST, BREADCRUMB_UPDATE_LIST, BREADCRUMB_APPEND_ITEM, COMMENT_COUNTS_REQUEST, COMMENT_COUNTS_UPDATE, COMMENT_REQUEST, COMMENTS_CHANGE_STATUS, COMMENTS_COUNT_INCREMENT, COMMENTS_COUNT_RECEIVE, COMMENTS_DELETE, COMMENTS_EDIT, COMMENTS_LIKE, COMMENTS_LIST_REQUEST, COMMENTS_QUERY_UPDATE, COMMENTS_RECEIVE, COMMENTS_RECEIVE_ERROR, COMMENTS_REPLY_WRITE, COMMENTS_REQUEST, COMMENTS_SET_ACTIVE_REPLY, COMMENTS_UNLIKE, COMMENTS_UPDATES_RECEIVE, COMMENTS_WRITE, COMMENTS_WRITE_ERROR, CONCIERGE_APPOINTMENT_CANCEL, CONCIERGE_APPOINTMENT_CREATE, CONCIERGE_APPOINTMENT_DETAILS_REQUEST, CONCIERGE_APPOINTMENT_DETAILS_UPDATE, CONCIERGE_APPOINTMENT_RESCHEDULE, CONCIERGE_INITIAL_REQUEST, CONCIERGE_INITIAL_UPDATE, CONCIERGE_SIGNUP_FORM_UPDATE, CONCIERGE_UPDATE_BOOKING_STATUS, CONNECTED_APPLICATION_DELETE, CONNECTED_APPLICATION_DELETE_SUCCESS, CONNECTED_APPLICATIONS_RECEIVE, CONNECTED_APPLICATIONS_REQUEST, CONNECTION_LOST, CONNECTION_RESTORED, CONNECTIONS_SET_EXPANDED_SERVICE, COUNTRIES_DOMAINS_FETCH, COUNTRIES_DOMAINS_UPDATED, COUNTRIES_PAYMENTS_FETCH, COUNTRIES_PAYMENTS_UPDATED, COUNTRIES_SMS_FETCH, COUNTRIES_SMS_UPDATED, COUNTRIES_WOOCOMMERCE_FETCH, COUNTRIES_WOOCOMMERCE_UPDATED, COUNTRY_STATES_RECEIVE, COUNTRY_STATES_REQUEST, COUNTRY_STATES_REQUEST_FAILURE, COUNTRY_STATES_REQUEST_SUCCESS, CURRENT_USER_FETCH, DIRECTLY_ASK_QUESTION, DIRECTLY_INITIALIZATION_ERROR, DIRECTLY_INITIALIZATION_START, DIRECTLY_INITIALIZATION_SUCCESS, DOCUMENT_HEAD_LINK_SET, DOCUMENT_HEAD_META_SET, DOCUMENT_HEAD_TITLE_SET, DOCUMENT_HEAD_UNREAD_COUNT_SET, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_RECEIVE, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_REQUEST, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_REQUEST_FAILURE, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_REQUEST_SUCCESS, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_UPDATE, DOMAIN_MANAGEMENT_WHOIS_RECEIVE, DOMAIN_MANAGEMENT_WHOIS_REQUEST, DOMAIN_MANAGEMENT_WHOIS_REQUEST_FAILURE, DOMAIN_MANAGEMENT_WHOIS_REQUEST_SUCCESS, DOMAIN_MANAGEMENT_WHOIS_SAVE, DOMAIN_MANAGEMENT_WHOIS_SAVE_FAILURE, DOMAIN_MANAGEMENT_WHOIS_SAVE_SUCCESS, DOMAIN_MANAGEMENT_WHOIS_UPDATE, DOMAIN_TRANSFER_ACCEPT, DOMAIN_TRANSFER_ACCEPT_COMPLETED, DOMAIN_TRANSFER_CANCEL_REQUEST, DOMAIN_TRANSFER_CANCEL_REQUEST_COMPLETED, DOMAIN_TRANSFER_CANCEL_REQUEST_FAILED, DOMAIN_TRANSFER_CODE_REQUEST, DOMAIN_TRANSFER_CODE_REQUEST_COMPLETED, DOMAIN_TRANSFER_CODE_REQUEST_FAILED, DOMAIN_TRANSFER_DECLINE, DOMAIN_TRANSFER_DECLINE_COMPLETED, DOMAIN_TRANSFER_IPS_TAG_SAVE, DOMAIN_TRANSFER_UPDATE, DOMAIN_TRANSFER_UPDATE_LOCK, DOMAIN_WAPI_INFO_FETCH, DOMAIN_WAPI_INFO_FETCH_FAILURE, DOMAIN_WAPI_INFO_FETCH_SUCCESS, DOMAINS_DNS_ADD, DOMAINS_DNS_ADD_COMPLETED, DOMAINS_DNS_ADD_FAILED, DOMAINS_DNS_APPLY_TEMPLATE_COMPLETED, DOMAINS_DNS_DELETE, DOMAINS_DNS_DELETE_COMPLETED, DOMAINS_DNS_DELETE_FAILED, DOMAINS_DNS_FETCH, DOMAINS_DNS_FETCH_COMPLETED, DOMAINS_DNS_FETCH_FAILED, DOMAINS_DNS_UPDATE, DOMAINS_DNS_UPDATE_COMPLETED, DOMAINS_DNS_UPDATE_FAILED, DOMAINS_SITE_REDIRECT_FETCH, DOMAINS_SITE_REDIRECT_FETCH_COMPLETED, DOMAINS_SITE_REDIRECT_FETCH_FAILED, DOMAINS_SITE_REDIRECT_NOTICE_CLOSE, DOMAINS_SITE_REDIRECT_UPDATE, DOMAINS_SITE_REDIRECT_UPDATE_COMPLETED, DOMAINS_SITE_REDIRECT_UPDATE_FAILED, DOMAINS_SUGGESTIONS_RECEIVE, DOMAINS_SUGGESTIONS_REQUEST, DOMAINS_SUGGESTIONS_REQUEST_FAILURE, DOMAINS_SUGGESTIONS_REQUEST_SUCCESS, EDITOR_IFRAME_LOADED, EDITOR_TYPE_REQUEST, EDITOR_TYPE_SET, EMAIL_ACCOUNTS_REQUEST, EMAIL_ACCOUNTS_REQUEST_FAILURE, EMAIL_ACCOUNTS_REQUEST_SUCCESS, EMAIL_FORWARDING_REQUEST, EMAIL_FORWARDING_REQUEST_FAILURE, EMAIL_FORWARDING_REQUEST_SUCCESS, EXPORT_ADVANCED_SETTINGS_FETCH, EXPORT_ADVANCED_SETTINGS_FETCH_FAIL, EXPORT_ADVANCED_SETTINGS_RECEIVE, EXPORT_CLEAR, EXPORT_COMPLETE, EXPORT_FAILURE, EXPORT_MEDIA_REQUEST, EXPORT_POST_TYPE_FIELD_SET, EXPORT_POST_TYPE_SET, EXPORT_START_REQUEST, EXPORT_STARTED, EXPORT_STATUS_FETCH, GOOGLE_MY_BUSINESS_STATS_CHANGE_INTERVAL, GOOGLE_MY_BUSINESS_STATS_FAILURE, GOOGLE_MY_BUSINESS_STATS_RECEIVE, GOOGLE_MY_BUSINESS_STATS_REQUEST, GRAVATAR_RECEIVE_IMAGE_FAILURE, GRAVATAR_UPLOAD_RECEIVE, GRAVATAR_UPLOAD_REQUEST, GRAVATAR_UPLOAD_REQUEST_FAILURE, GRAVATAR_UPLOAD_REQUEST_SUCCESS, GSUITE_USERS_REQUEST, GSUITE_USERS_REQUEST_FAILURE, GSUITE_USERS_REQUEST_SUCCESS, GUIDED_TOUR_PAUSE, GUIDED_TOUR_RESUME, GUTENBERG_IFRAME_ELIGIBLE_SET, HELP_CONTACT_FORM_SITE_SELECT, HELP_TICKET_CONFIGURATION_REQUEST, HELP_TICKET_CONFIGURATION_REQUEST_FAILURE, HELP_TICKET_CONFIGURATION_REQUEST_SUCCESS, HOSTING_CLEAR_CACHE_REQUEST, HOSTING_PHP_VERSION_REQUEST, HOSTING_PHP_VERSION_SET, HOSTING_PHP_VERSION_SET_REQUEST, HOSTING_RESTORE_DATABASE_PASSWORD, HOSTING_SFTP_PASSWORD_RESET, HOSTING_SFTP_USER_CREATE, HOSTING_SFTP_USER_UPDATE, HOSTING_SFTP_USERS_REQUEST, HOSTING_SFTP_USERS_SET, HOSTING_STATIC_FILE_404_REQUEST, HOSTING_STATIC_FILE_404_SET, HOSTING_STATIC_FILE_404_SET_REQUEST, I18N_LANGUAGE_NAMES_ADD, I18N_LANGUAGE_NAMES_REQUEST, I18N_LOCALE_SUGGESTIONS_ADD, I18N_LOCALE_SUGGESTIONS_REQUEST, IMAGE_EDITOR_COMPUTED_CROP, IMAGE_EDITOR_CROP, IMAGE_EDITOR_FLIP, IMAGE_EDITOR_IMAGE_HAS_LOADED, IMAGE_EDITOR_ROTATE_COUNTERCLOCKWISE, IMAGE_EDITOR_SET_ASPECT_RATIO, IMAGE_EDITOR_SET_CROP_BOUNDS, IMAGE_EDITOR_SET_DEFAULT_ASPECT_RATIO, IMAGE_EDITOR_SET_FILE_INFO, IMAGE_EDITOR_STATE_RESET, IMAGE_EDITOR_STATE_RESET_ALL, IMMEDIATE_LOGIN_SAVE_INFO, IMPORTS_AUTHORS_SET_MAPPING, IMPORTS_AUTHORS_START_MAPPING, IMPORTS_IMPORT_CANCEL, IMPORTS_IMPORT_LOCK, IMPORTS_IMPORT_RECEIVE, IMPORTS_IMPORT_RESET, IMPORTS_IMPORT_START, IMPORTS_IMPORT_UNLOCK, IMPORTS_START_IMPORTING, IMPORTS_UPLOAD_COMPLETED, IMPORTS_UPLOAD_FAILED, IMPORTS_UPLOAD_SET_PROGRESS, IMPORTS_UPLOAD_START, INLINE_HELP_POPOVER_HIDE, INLINE_HELP_POPOVER_SHOW, INVITE_ACCEPTED, INVITE_RESEND_REQUEST, INVITE_RESEND_REQUEST_FAILURE, INVITE_RESEND_REQUEST_SUCCESS, INVITES_DELETE_REQUEST, INVITES_DELETE_REQUEST_FAILURE, INVITES_DELETE_REQUEST_SUCCESS, INVITES_REQUEST, INVITES_REQUEST_FAILURE, INVITES_REQUEST_SUCCESS, JETPACK_CHECKOUT_UPDATE_SUPPORT_TICKET_RECEIVE, JETPACK_CHECKOUT_UPDATE_SUPPORT_TICKET_REQUEST, JETPACK_CHECKOUT_UPDATE_SUPPORT_TICKET_REQUEST_FAILURE, JETPACK_CHECKOUT_UPDATE_SUPPORT_TICKET_REQUEST_SUCCESS, JETPACK_CONNECTION_STATUS_RECEIVE, JETPACK_CONNECTION_STATUS_REQUEST, JETPACK_CONNECTION_STATUS_REQUEST_FAILURE, JETPACK_CONNECTION_STATUS_REQUEST_SUCCESS, JETPACK_CREDENTIALS_AUTOCONFIGURE, JETPACK_CREDENTIALS_DELETE, JETPACK_CREDENTIALS_GET, JETPACK_CREDENTIALS_GET_FAILURE, JETPACK_CREDENTIALS_GET_SUCCESS, JETPACK_CREDENTIALS_STORE, JETPACK_CREDENTIALS_UPDATE, JETPACK_CREDENTIALS_UPDATE_FAILURE, JETPACK_CREDENTIALS_UPDATE_PROGRESS_START, JETPACK_CREDENTIALS_UPDATE_PROGRESS_UPDATE, JETPACK_CREDENTIALS_UPDATE_RESET, JETPACK_CREDENTIALS_UPDATE_SUCCESS, JETPACK_MODULE_ACTIVATE, JETPACK_MODULE_ACTIVATE_FAILURE, JETPACK_MODULE_ACTIVATE_SUCCESS, JETPACK_MODULE_DEACTIVATE, JETPACK_MODULE_DEACTIVATE_FAILURE, JETPACK_MODULE_DEACTIVATE_SUCCESS, JETPACK_MODULES_RECEIVE, JETPACK_MODULES_REQUEST, JETPACK_MODULES_REQUEST_FAILURE, JETPACK_MODULES_REQUEST_SUCCESS, JETPACK_PARTNER_PORTAL_LICENSE_COUNTS_RECEIVE, JETPACK_PARTNER_PORTAL_LICENSE_COUNTS_REQUEST, JETPACK_PARTNER_PORTAL_LICENSES_RECEIVE, JETPACK_PARTNER_PORTAL_LICENSES_REQUEST, JETPACK_PARTNER_PORTAL_OAUTH_TOKEN_SET, JETPACK_PARTNER_PORTAL_PARTNER_ACTIVE_PARTNER_KEY_UPDATE, JETPACK_PARTNER_PORTAL_PARTNER_RECEIVE, JETPACK_PARTNER_PORTAL_PARTNER_RECEIVE_ERROR, JETPACK_PARTNER_PORTAL_PARTNER_REQUEST, JETPACK_PRODUCT_INSTALL_REQUEST, JETPACK_PRODUCT_INSTALL_STATUS_RECEIVE, JETPACK_PRODUCT_INSTALL_STATUS_REQUEST, JETPACK_REMOTE_INSTALL, JETPACK_REMOTE_INSTALL_FAILURE, JETPACK_REMOTE_INSTALL_SUCCESS, JETPACK_SCAN_ENQUEUE_REQUEST, JETPACK_SCAN_ENQUEUE_REQUEST_FAILURE, JETPACK_SCAN_ENQUEUE_REQUEST_SUCCESS, JETPACK_SCAN_ENQUEUE_UPDATE, JETPACK_SCAN_HISTORY_REQUEST, JETPACK_SCAN_HISTORY_REQUEST_FAILURE, JETPACK_SCAN_HISTORY_REQUEST_SUCCESS, JETPACK_SCAN_HISTORY_UPDATE, JETPACK_SCAN_REQUEST, JETPACK_SCAN_REQUEST_FAILURE, JETPACK_SCAN_REQUEST_SUCCESS, JETPACK_SCAN_THREAT_COUNTS_REQUEST, JETPACK_SCAN_THREAT_COUNTS_REQUEST_FAILURE, JETPACK_SCAN_THREAT_COUNTS_REQUEST_SUCCESS, JETPACK_SCAN_THREAT_COUNTS_UPDATE, JETPACK_SCAN_THREAT_FIX, JETPACK_SCAN_THREAT_IGNORE, JETPACK_SCAN_THREATS_FIX_ALL, JETPACK_SCAN_THREATS_GET_FIX_STATUS, JETPACK_SCAN_UPDATE, JETPACK_SCAN_UPDATE_THREAT, JETPACK_SCAN_UPDATE_THREAT_COMPLETED, JETPACK_SETTINGS_REQUEST, JETPACK_SETTINGS_SAVE, JETPACK_SETTINGS_SAVE_SUCCESS, JETPACK_SETTINGS_UPDATE, JETPACK_SITE_ALERT_THREAT_FIX, JETPACK_SITE_ALERT_THREAT_IGNORE, JETPACK_SYNC_START_ERROR, JETPACK_SYNC_START_REQUEST, JETPACK_SYNC_START_SUCCESS, JETPACK_SYNC_STATUS_ERROR, JETPACK_SYNC_STATUS_REQUEST, JETPACK_SYNC_STATUS_SUCCESS, JETPACK_USER_CONNECTION_CHANGE_OWNER, JETPACK_USER_CONNECTION_DATA_RECEIVE, JETPACK_USER_CONNECTION_DATA_REQUEST, JETPACK_USER_CONNECTION_DATA_REQUEST_FAILURE, JETPACK_USER_CONNECTION_DATA_REQUEST_SUCCESS, JITM_DISMISS, JITM_FETCH, JITM_SET, KEYRING_CONNECTION_DELETE, KEYRING_CONNECTION_DELETE_FAILURE, KEYRING_CONNECTIONS_RECEIVE, KEYRING_CONNECTIONS_REQUEST, KEYRING_CONNECTIONS_REQUEST_FAILURE, KEYRING_CONNECTIONS_REQUEST_SUCCESS, KEYRING_SERVICES_RECEIVE, KEYRING_SERVICES_REQUEST, KEYRING_SERVICES_REQUEST_FAILURE, KEYRING_SERVICES_REQUEST_SUCCESS, LASAGNA_SOCKET_CONNECTED, LASAGNA_SOCKET_DISCONNECTED, LEGAL_REQUEST, LEGAL_SET, LOGIN_AUTH_ACCOUNT_TYPE_REQUEST, LOGIN_AUTH_ACCOUNT_TYPE_REQUEST_FAILURE, LOGIN_AUTH_ACCOUNT_TYPE_REQUEST_SUCCESS, LOGIN_AUTH_ACCOUNT_TYPE_REQUESTING, LOGIN_AUTH_ACCOUNT_TYPE_RESET, LOGIN_EMAIL_SEND, LOGIN_FORM_UPDATE, LOGIN_REQUEST, LOGIN_REQUEST_FAILURE, LOGIN_REQUEST_SUCCESS, MAGIC_LOGIN_HIDE_REQUEST_FORM, MAGIC_LOGIN_HIDE_REQUEST_NOTICE, MAGIC_LOGIN_REQUEST_AUTH_ERROR, MAGIC_LOGIN_REQUEST_AUTH_FETCH, MAGIC_LOGIN_REQUEST_AUTH_SUCCESS, MAGIC_LOGIN_REQUEST_LOGIN_EMAIL_ERROR, MAGIC_LOGIN_REQUEST_LOGIN_EMAIL_FETCH, MAGIC_LOGIN_REQUEST_LOGIN_EMAIL_SUCCESS, MAGIC_LOGIN_RESET_REQUEST_FORM, MAGIC_LOGIN_SHOW_CHECK_YOUR_EMAIL_PAGE, MAGIC_LOGIN_SHOW_INTERSTITIAL_PAGE, MAGIC_LOGIN_SHOW_LINK_EXPIRED, MAILCHIMP_LISTS_LIST, MAILCHIMP_LISTS_RECEIVE, MAILCHIMP_SETTINGS_LIST, MAILCHIMP_SETTINGS_RECEIVE, MAILCHIMP_SETTINGS_UPDATE, MAILCHIMP_SETTINGS_UPDATE_FAILURE, MAILCHIMP_SETTINGS_UPDATE_SUCCESS, MARKETING_CLICK_UPGRADE_NUDGE, MARKETING_JETPACK_SALE_COUPON_FETCH_FAILURE, MARKETING_JETPACK_SALE_COUPON_FETCH, MARKETING_JETPACK_SALE_COUPON_RECEIVE, MARKETPLACE_BILLING_INTERVAL_SELECT, MARKETPLACE_PLUGIN_INSTALLATION_STATE_CHANGE, MARKETPLACE_PRIMARY_DOMAIN_SELECT, MARKETPLACE_QUEUE_PRODUCT_INSTALL, MEDIA_CLEAR_SITE, MEDIA_ERRORS_CLEAR, MEDIA_ITEM_CREATE, MEDIA_ITEM_EDIT, MEDIA_ITEM_ERRORS_CLEAR, MEDIA_ITEM_ERRORS_SET, MEDIA_ITEM_REQUEST, MEDIA_ITEM_REQUEST_FAILURE, MEDIA_ITEM_REQUEST_SUCCESS, MEDIA_LIBRARY_SELECTED_ITEMS_UPDATE, MEDIA_RECEIVE, MEDIA_REQUEST, MEDIA_REQUEST_FAILURE, MEDIA_REQUEST_SUCCESS, MEDIA_SET_NEXT_PAGE_HANDLE, MEDIA_SET_QUERY, MEDIA_SOURCE_CHANGE, MEMBERSHIPS_EARNINGS_GET, MEMBERSHIPS_EARNINGS_RECEIVE, MEMBERSHIPS_PRODUCT_ADD, MEMBERSHIPS_PRODUCT_ADD_FAILURE, MEMBERSHIPS_PRODUCT_DELETE, MEMBERSHIPS_PRODUCT_DELETE_FAILURE, MEMBERSHIPS_PRODUCT_RECEIVE, MEMBERSHIPS_PRODUCT_UPDATE, MEMBERSHIPS_PRODUCT_UPDATE_FAILURE, MEMBERSHIPS_PRODUCTS_LIST, MEMBERSHIPS_PRODUCTS_RECEIVE, MEMBERSHIPS_SETTINGS, MEMBERSHIPS_SETTINGS_RECEIVE, MEMBERSHIPS_SUBSCRIBERS_LIST, MEMBERSHIPS_SUBSCRIBERS_RECEIVE, MEMBERSHIPS_SUBSCRIPTION_STOP, MEMBERSHIPS_SUBSCRIPTION_STOP_FAILURE, MEMBERSHIPS_SUBSCRIPTION_STOP_SUCCESS, MEMBERSHIPS_SUBSCRIPTIONS_LIST_REQUEST, MEMBERSHIPS_SUBSCRIPTIONS_RECEIVE, MY_SITES_SIDEBAR_SECTION_TOGGLE, MY_SITES_SIDEBAR_SECTIONS_COLLAPSE_ALL, NOTICE_CREATE, NOTICE_REMOVE, NOTIFICATION_SETTINGS_FETCH, NOTIFICATION_SETTINGS_FETCH_COMPLETE, NOTIFICATION_SETTINGS_FETCH_FAILED, NOTIFICATION_SETTINGS_REQUEST, NOTIFICATION_SETTINGS_SAVE, NOTIFICATION_SETTINGS_SAVE_COMPLETE, NOTIFICATION_SETTINGS_SAVE_FAILED, NOTIFICATION_SETTINGS_TOGGLE_SETTING, NOTIFICATION_SETTINGS_UPDATE, NOTIFICATIONS_FORCE_REFRESH, NOTIFICATIONS_UNSEEN_COUNT_SET, OAUTH2_CLIENT_DATA_RECEIVE, ORDER_TRANSACTION_FETCH, ORDER_TRANSACTION_FETCH_ERROR, ORDER_TRANSACTION_SET, P2_CONNECTION_DELETE, P2_CONNECTION_DELETE_FAILURE, P2_CONNECTIONS_RECEIVE, P2_CONNECTIONS_REQUEST, P2_CONNECTIONS_REQUEST_FAILURE, P2_CONNECTIONS_REQUEST_SUCCESS, PLANS_RECEIVE, PLANS_REQUEST, PLANS_REQUEST_FAILURE, PLANS_REQUEST_SUCCESS, PLUGIN_ACTIVATE_REQUEST, PLUGIN_ACTIVATE_REQUEST_FAILURE, PLUGIN_ACTIVATE_REQUEST_SUCCESS, PLUGIN_AUTOUPDATE_DISABLE_REQUEST, PLUGIN_AUTOUPDATE_DISABLE_REQUEST_FAILURE, PLUGIN_AUTOUPDATE_DISABLE_REQUEST_SUCCESS, PLUGIN_AUTOUPDATE_ENABLE_REQUEST, PLUGIN_AUTOUPDATE_ENABLE_REQUEST_FAILURE, PLUGIN_AUTOUPDATE_ENABLE_REQUEST_SUCCESS, PLUGIN_DEACTIVATE_REQUEST, PLUGIN_DEACTIVATE_REQUEST_FAILURE, PLUGIN_DEACTIVATE_REQUEST_SUCCESS, PLUGIN_INSTALL_REQUEST, PLUGIN_INSTALL_REQUEST_FAILURE, PLUGIN_INSTALL_REQUEST_SUCCESS, PLUGIN_NOTICES_REMOVE, PLUGIN_REMOVE_REQUEST, PLUGIN_REMOVE_REQUEST_FAILURE, PLUGIN_REMOVE_REQUEST_SUCCESS, PLUGIN_SETUP_ACTIVATE, PLUGIN_SETUP_CONFIGURE, PLUGIN_SETUP_ERROR, PLUGIN_SETUP_FINISH, PLUGIN_SETUP_INSTALL, PLUGIN_SETUP_INSTRUCTIONS_FETCH, PLUGIN_SETUP_INSTRUCTIONS_RECEIVE, PLUGIN_UPDATE_REQUEST, PLUGIN_UPDATE_REQUEST_FAILURE, PLUGIN_UPDATE_REQUEST_SUCCESS, PLUGIN_UPLOAD, PLUGIN_UPLOAD_CLEAR, PLUGIN_UPLOAD_COMPLETE, PLUGIN_UPLOAD_ERROR, PLUGIN_UPLOAD_PROGRESS, PLUGINS_RECEIVE, PLUGINS_REQUEST, PLUGINS_REQUEST_FAILURE, PLUGINS_REQUEST_SUCCESS, PLUGINS_WPORG_LIST_RECEIVE, PLUGINS_WPORG_LIST_REQUEST, PLUGINS_WPORG_PLUGIN_RECEIVE, PLUGINS_WPORG_PLUGIN_REQUEST, POST_RESTORE_SUCCESS, POST_REVISIONS_AUTHORS_REQUEST, POST_REVISIONS_REQUEST, POST_SAVE_FAILURE, POST_STATS_RECEIVE, POST_STATS_REQUEST, POST_STATS_REQUEST_FAILURE, POST_STATS_REQUEST_SUCCESS, POST_TYPES_RECEIVE, POST_TYPES_REQUEST, POST_TYPES_TAXONOMIES_RECEIVE, POST_TYPES_TAXONOMIES_REQUEST, POST_TYPES_TAXONOMIES_REQUEST_FAILURE, POST_TYPES_TAXONOMIES_REQUEST_SUCCESS, PRODUCTS_LIST_RECEIVE, PRODUCTS_LIST_REQUEST, PRODUCTS_LIST_REQUEST_FAILURE, PUBLICIZE_CONNECTION_CREATE, PUBLICIZE_CONNECTION_CREATE_FAILURE, PUBLICIZE_CONNECTION_DELETE, PUBLICIZE_CONNECTION_DELETE_FAILURE, PUBLICIZE_CONNECTION_RECEIVE, PUBLICIZE_CONNECTION_UPDATE, PUBLICIZE_CONNECTION_UPDATE_FAILURE, PUBLICIZE_CONNECTIONS_RECEIVE, PUBLICIZE_CONNECTIONS_REQUEST, PUBLICIZE_CONNECTIONS_REQUEST_FAILURE, PUBLICIZE_CONNECTIONS_REQUEST_SUCCESS, PUBLICIZE_SHARE, PUBLICIZE_SHARE_ACTION_DELETE, PUBLICIZE_SHARE_ACTION_DELETE_FAILURE, PUBLICIZE_SHARE_ACTION_DELETE_SUCCESS, PUBLICIZE_SHARE_ACTION_SCHEDULE, PUBLICIZE_SHARE_ACTION_SCHEDULE_FAILURE, PUBLICIZE_SHARE_ACTION_SCHEDULE_SUCCESS, PUBLICIZE_SHARE_ACTIONS_PUBLISHED_REQUEST, PUBLICIZE_SHARE_ACTIONS_PUBLISHED_REQUEST_FAILURE, PUBLICIZE_SHARE_ACTIONS_PUBLISHED_REQUEST_SUCCESS, PUBLICIZE_SHARE_ACTIONS_SCHEDULED_REQUEST, PUBLICIZE_SHARE_ACTIONS_SCHEDULED_REQUEST_FAILURE, PUBLICIZE_SHARE_ACTIONS_SCHEDULED_REQUEST_SUCCESS, PUBLICIZE_SHARE_DISMISS, PUBLICIZE_SHARE_FAILURE, PUBLICIZE_SHARE_SUCCESS, PURCHASE_CANCELLATION_OFFER_REQUEST, PURCHASE_CANCELLATION_OFFER_REQUEST_FAILURE, PURCHASE_CANCELLATION_OFFER_RECEIVE, PURCHASE_CANCELLATION_OFFER_APPLY, PURCHASE_CANCELLATION_OFFER_APPLY_SUCCESS, PURCHASE_CANCELLATION_OFFER_APPLY_FAILURE, PUSH_NOTIFICATIONS_API_NOT_READY, PUSH_NOTIFICATIONS_API_READY, PUSH_NOTIFICATIONS_AUTHORIZE, PUSH_NOTIFICATIONS_BLOCK, PUSH_NOTIFICATIONS_MUST_PROMPT, PUSH_NOTIFICATIONS_RECEIVE_REGISTER_DEVICE, PUSH_NOTIFICATIONS_RECEIVE_UNREGISTER_DEVICE, PUSH_NOTIFICATIONS_TOGGLE_ENABLED, PUSH_NOTIFICATIONS_TOGGLE_UNBLOCK_INSTRUCTIONS, RECEIPT_FETCH, RECEIPT_FETCH_COMPLETED, RECEIPT_FETCH_FAILED, REWIND_ACTIVATE_FAILURE, REWIND_ACTIVATE_REQUEST, REWIND_ACTIVATE_SUCCESS, REWIND_ACTIVITY_SHARE_REQUEST, REWIND_BACKUP, REWIND_BACKUP_DISMISS, REWIND_BACKUP_DISMISS_PROGRESS, REWIND_BACKUP_PROGRESS_REQUEST, REWIND_BACKUP_REQUEST, REWIND_BACKUP_SITE, REWIND_BACKUP_UPDATE_ERROR, REWIND_BACKUP_UPDATE_PROGRESS, REWIND_BACKUPS_REQUEST, REWIND_BACKUPS_SET, REWIND_CAPABILITIES_REQUEST, REWIND_CAPABILITIES_UPDATE, REWIND_CLONE, REWIND_DEACTIVATE_FAILURE, REWIND_DEACTIVATE_REQUEST, REWIND_DEACTIVATE_SUCCESS, REWIND_POLICIES_REQUEST, REWIND_POLICIES_REQUEST_FAILURE, REWIND_POLICIES_REQUEST_SUCCESS, REWIND_POLICIES_SET, REWIND_RESTORE, REWIND_RESTORE_DISMISS, REWIND_RESTORE_DISMISS_PROGRESS, REWIND_RESTORE_PROGRESS_REQUEST, REWIND_RESTORE_REQUEST, REWIND_RESTORE_UPDATE_PROGRESS, REWIND_SIZE_REQUEST, REWIND_SIZE_REQUEST_FAILURE, REWIND_SIZE_REQUEST_SUCCESS, REWIND_SIZE_SET, REWIND_STATE_REQUEST, REWIND_STATE_UPDATE, ROUTE_CLEAR_LAST_NON_EDITOR, SET_MEDIA_EXPORT_DATA, SIGNUP_COMPLETE_RESET, SIGNUP_CURRENT_FLOW_NAME_SET, SIGNUP_DEPENDENCY_STORE_REMOVE_SITE_SLUG, SIGNUP_DEPENDENCY_STORE_UPDATE, SIGNUP_OPTIONAL_DEPENDENCY_SUGGESTED_USERNAME_SET, SIGNUP_PREVIOUS_FLOW_NAME_SET, SIGNUP_FLOW_ADD_EXCLUDED_STEPS, SIGNUP_FLOW_REMOVE_EXCLUDED_STEPS, SIGNUP_FLOW_RESET_EXCLUDED_STEPS, SIGNUP_PROGRESS_ADD_STEP, SIGNUP_PROGRESS_COMPLETE_STEP, SIGNUP_PROGRESS_INVALIDATE_STEP, SIGNUP_PROGRESS_PROCESS_STEP, SIGNUP_PROGRESS_REMOVE_STEP, SIGNUP_PROGRESS_SAVE_STEP, SIGNUP_PROGRESS_SUBMIT_STEP, SIGNUP_STEPS_DESIGN_TYPE_SET, SIGNUP_STEPS_SITE_GOALS_SET, SIGNUP_STEPS_SITE_TITLE_SET, SIGNUP_STEPS_SITE_TYPE_SET, SIGNUP_STEPS_SITE_VERTICAL_SET, SIGNUP_STEPS_SITE_INFO_COLLECTION_UPDATE, SIGNUP_STEPS_SITE_INFO_UPDATE_CURRENT_INDEX, SIGNUP_STEPS_WEBSITE_CONTENT_INITIALIZE_PAGES, SIGNUP_STEPS_WEBSITE_CONTENT_UPDATE_CURRENT_INDEX, SIGNUP_STEPS_WEBSITE_CONTENT_IMAGE_UPLOAD_STARTED, SIGNUP_STEPS_WEBSITE_CONTENT_IMAGE_UPLOAD_COMPLETED, SIGNUP_STEPS_WEBSITE_FIELD_CHANGED, SIGNUP_STEPS_WEBSITE_CONTENT_IMAGE_UPLOAD_FAILED, SIGNUP_STEPS_WEBSITE_CONTENT_IMAGE_REMOVED, SIGNUP_STEPS_WEBSITE_CONTENT_LOGO_UPLOAD_STARTED, SIGNUP_STEPS_WEBSITE_CONTENT_LOGO_UPLOAD_COMPLETED, SIGNUP_STEPS_WEBSITE_CONTENT_LOGO_UPLOAD_FAILED, SIGNUP_STEPS_SOCIAL_PROFILES_UPDATE, SIGNUP_STEPS_SOCIAL_PROFILES_RESET, SIGNUP_STEPS_WEBSITE_CONTENT_REMOVE_LOGO_URL, SIGNUP_STEPS_USER_EXPERIENCE_SET, SITE_ADDRESS_AVAILABILITY_ERROR, SITE_ADDRESS_AVAILABILITY_ERROR_CLEAR, SITE_ADDRESS_AVAILABILITY_REQUEST, SITE_ADDRESS_AVAILABILITY_SUCCESS, SITE_ADDRESS_CHANGE_REQUEST, SITE_ADDRESS_CHANGE_REQUEST_FAILURE, SITE_ADDRESS_CHANGE_REQUEST_SUCCESS, SITE_CHECKLIST_RECEIVE, SITE_CHECKLIST_REQUEST, SITE_CHECKLIST_TASK_UPDATE, SITE_IMPORTER_IMPORT_FAILURE, SITE_IMPORTER_IMPORT_RESET, SITE_IMPORTER_IMPORT_START, SITE_IMPORTER_IMPORT_SUCCESS, SITE_IMPORTER_IS_SITE_IMPORTABLE_FAILURE, SITE_IMPORTER_IS_SITE_IMPORTABLE_START, SITE_IMPORTER_IS_SITE_IMPORTABLE_SUCCESS, SITE_IMPORTER_VALIDATION_ERROR_SET, SITE_KEYRINGS_DELETE, SITE_KEYRINGS_DELETE_FAILURE, SITE_KEYRINGS_DELETE_SUCCESS, SITE_KEYRINGS_REQUEST, SITE_KEYRINGS_REQUEST_FAILURE, SITE_KEYRINGS_REQUEST_SUCCESS, SITE_KEYRINGS_SAVE_SUCCESS, SITE_KEYRINGS_UPDATE, SITE_KEYRINGS_UPDATE_FAILURE, SITE_KEYRINGS_UPDATE_SUCCESS, SITE_LAUNCH, SITE_PLAN_OWNERSHIP_TRANSFER, SITE_SETTINGS_REQUEST, SITE_SETTINGS_REQUEST_FAILURE, SITE_SETTINGS_REQUEST_SUCCESS, SITE_SETTINGS_SAVE, SITE_SETTINGS_SAVE_FAILURE, SITE_SETTINGS_SAVE_SUCCESS, SITE_STATS_RECEIVE, SITE_STATS_REQUEST, SITE_STATS_REQUEST_FAILURE, SOCIAL_CONNECT_ACCOUNT_REQUEST, SOCIAL_CONNECT_ACCOUNT_REQUEST_FAILURE, SOCIAL_CONNECT_ACCOUNT_REQUEST_SUCCESS, SOCIAL_CREATE_ACCOUNT_REQUEST_FAILURE, SOCIAL_HANDOFF_CONNECT_ACCOUNT, SOCIAL_DISCONNECT_ACCOUNT_REQUEST, SOCIAL_DISCONNECT_ACCOUNT_REQUEST_FAILURE, SOCIAL_DISCONNECT_ACCOUNT_REQUEST_SUCCESS, SOCIAL_LOGIN_REQUEST, SOCIAL_LOGIN_REQUEST_FAILURE, SOCIAL_LOGIN_REQUEST_SUCCESS, STATS_CHART_COUNTS_RECEIVE, STATS_CHART_COUNTS_REQUEST, STATS_RECENT_POST_VIEWS_RECEIVE, STATS_RECENT_POST_VIEWS_REQUEST, STORED_CARDS_ADD_COMPLETED, STORED_CARDS_DELETE, STORED_CARDS_DELETE_COMPLETED, STORED_CARDS_DELETE_FAILED, STORED_CARDS_UPDATE_IS_PRIMARY_COMPLETED, STORED_CARDS_UPDATE_IS_BACKUP_COMPLETED, STORED_CARDS_FETCH, STORED_CARDS_FETCH_COMPLETED, STORED_CARDS_FETCH_FAILED, SUPPORT_ARTICLE_DIALOG_CLOSE, SUPPORT_ARTICLE_DIALOG_OPEN, SUPPORT_SESSION_TRANSITION, TERM_REMOVE, TERMS_RECEIVE, TERMS_REQUEST, TERMS_REQUEST_FAILURE, TERMS_REQUEST_SUCCESS, TIMEZONES_RECEIVE, TIMEZONES_REQUEST, TOS_ACCEPT, TWO_FACTOR_AUTHENTICATION_LOGIN_REQUEST, TWO_FACTOR_AUTHENTICATION_LOGIN_REQUEST_FAILURE, TWO_FACTOR_AUTHENTICATION_LOGIN_REQUEST_SUCCESS, TWO_FACTOR_AUTHENTICATION_SEND_SMS_CODE_REQUEST, TWO_FACTOR_AUTHENTICATION_SEND_SMS_CODE_REQUEST_FAILURE, TWO_FACTOR_AUTHENTICATION_SEND_SMS_CODE_REQUEST_SUCCESS, TWO_FACTOR_AUTHENTICATION_UPDATE_NONCE, URL_ANALYZER_ANALYZE, URL_ANALYZER_ANALYZE_DONE, URL_ANALYZER_ANALYZE_SUCCESS, URL_ANALYZER_ANALYZE_ERROR, URL_ANALYZER_RESET_ERROR, URL_ANALYZER_URL_DATA_UPDATE, USER_LICENSES_RECEIVE, USER_LICENSES_REQUEST, USER_LICENSES_REQUEST_SUCCESS, USER_LICENSES_REQUEST_FAILURE, USER_LICENSES_COUNTS_RECEIVE, USER_LICENSES_COUNTS_REQUEST, USER_LICENSES_COUNTS_REQUEST_SUCCESS, USER_LICENSES_COUNTS_REQUEST_FAILURE, USER_PROFILE_LINKS_ADD, USER_PROFILE_LINKS_ADD_DUPLICATE, USER_PROFILE_LINKS_ADD_FAILURE, USER_PROFILE_LINKS_ADD_MALFORMED, USER_PROFILE_LINKS_ADD_SUCCESS, USER_PROFILE_LINKS_DELETE, USER_PROFILE_LINKS_DELETE_FAILURE, USER_PROFILE_LINKS_DELETE_SUCCESS, USER_PROFILE_LINKS_RECEIVE, USER_PROFILE_LINKS_REQUEST, USER_PROFILE_LINKS_RESET_ERRORS, USER_SETTINGS_REQUEST, USER_SETTINGS_REQUEST_FAILURE, USER_SETTINGS_REQUEST_SUCCESS, USER_SETTINGS_SAVE, USER_SETTINGS_SAVE_FAILURE, USER_SETTINGS_SAVE_SUCCESS, USER_SETTINGS_UNSAVED_CLEAR, USER_SETTINGS_UNSAVED_REMOVE, USER_SETTINGS_UNSAVED_SET, USER_SUGGESTIONS_RECEIVE, USER_SUGGESTIONS_REQUEST, USER_SUGGESTIONS_REQUEST_FAILURE, USER_SUGGESTIONS_REQUEST_SUCCESS, VIDEO_EDITOR_SET_POSTER_URL, VIDEO_EDITOR_SHOW_ERROR, VIDEO_EDITOR_SHOW_UPLOAD_PROGRESS, VIDEO_EDITOR_UPDATE_POSTER, VIDEO_EDITOR_REFRESH_POSTER, WORDADS_EARNINGS_RECEIVE, WORDADS_EARNINGS_REQUEST, WORDADS_SETTINGS_RECEIVE, WORDADS_SETTINGS_REQUEST, WORDADS_SETTINGS_SAVE, WORDADS_SETTINGS_SAVE_FAILURE, WORDADS_SETTINGS_SAVE_SUCCESS, WORDADS_SETTINGS_UPDATE, WORDADS_PAYMENTS_RECEIVE, WORDADS_PAYMENTS_REQUEST, WORDADS_SITE_APPROVE_REQUEST, WORDADS_SITE_APPROVE_REQUEST_DISMISS_ERROR, WORDADS_SITE_APPROVE_REQUEST_DISMISS_SUCCESS, WORDADS_SITE_APPROVE_REQUEST_FAILURE, WORDADS_STATUS_RECEIVE, WORDADS_STATUS_REQUEST */
|
39863 |
/**
|
39864 |
* Any new action type should be added to the set of exports below, with the
|
39865 |
* value mirroring its exported name.
|
@@ -40511,6 +40511,9 @@ const PREVIEW_URL_SET = 'PREVIEW_URL_SET';
|
|
40511 |
const PRODUCTS_LIST_RECEIVE = 'PRODUCTS_LIST_RECEIVE';
|
40512 |
const PRODUCTS_LIST_REQUEST = 'PRODUCTS_LIST_REQUEST';
|
40513 |
const PRODUCTS_LIST_REQUEST_FAILURE = 'PRODUCTS_LIST_REQUEST_FAILURE';
|
|
|
|
|
|
|
40514 |
const PUBLICIZE_CONNECTION_CREATE = 'PUBLICIZE_CONNECTION_CREATE';
|
40515 |
const PUBLICIZE_CONNECTION_CREATE_FAILURE = 'PUBLICIZE_CONNECTION_CREATE_FAILURE';
|
40516 |
const PUBLICIZE_CONNECTION_DELETE = 'PUBLICIZE_CONNECTION_DELETE';
|
@@ -53979,7 +53982,7 @@ const features = {
|
|
53979 |
}
|
53980 |
|
53981 |
if (window.electron && window.electron.features) {
|
53982 |
-
data.features = Object.assign(data.features, window.electron.features);
|
53983 |
}
|
53984 |
|
53985 |
return data;
|
39859 |
/* harmony export */ "Khp": function() { return /* binding */ WORDADS_SITE_APPROVE_REQUEST_SUCCESS; },
|
39860 |
/* harmony export */ "koV": function() { return /* binding */ WPCOM_HTTP_REQUEST; }
|
39861 |
/* harmony export */ });
|
39862 |
+
/* unused harmony exports ACCOUNT_CLOSE, ACCOUNT_CLOSE_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_DELETE, ACCOUNT_RECOVERY_SETTINGS_DELETE_FAILED, ACCOUNT_RECOVERY_SETTINGS_DELETE_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_FETCH, ACCOUNT_RECOVERY_SETTINGS_FETCH_FAILED, ACCOUNT_RECOVERY_SETTINGS_FETCH_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_RESEND_VALIDATION, ACCOUNT_RECOVERY_SETTINGS_RESEND_VALIDATION_FAILED, ACCOUNT_RECOVERY_SETTINGS_RESEND_VALIDATION_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_UPDATE, ACCOUNT_RECOVERY_SETTINGS_UPDATE_FAILED, ACCOUNT_RECOVERY_SETTINGS_UPDATE_SUCCESS, ACCOUNT_RECOVERY_SETTINGS_VALIDATE_PHONE, ACCOUNT_RECOVERY_SETTINGS_VALIDATE_PHONE_FAILED, ACCOUNT_RECOVERY_SETTINGS_VALIDATE_PHONE_SUCCESS, ACTIVE_PROMOTIONS_RECEIVE, ACTIVE_PROMOTIONS_REQUEST, ACTIVE_PROMOTIONS_REQUEST_FAILURE, ACTIVE_PROMOTIONS_REQUEST_SUCCESS, ACTIVITY_LOG_FILTER_SET, ACTIVITY_LOG_FILTER_UPDATE, ADMIN_MENU_RECEIVE, ADMIN_MENU_REQUEST, ALL_DOMAINS_REQUEST, ALL_DOMAINS_REQUEST_FAILURE, ALL_DOMAINS_REQUEST_SUCCESS, ANALYTICS_MULTI_TRACK, ATOMIC_TRANSFER_REQUEST, ATOMIC_TRANSFER_SET, ATOMIC_TRANSFER_INITIATE_TRANSFER, ATOMIC_TRANSFER_REQUEST_LATEST, ATOMIC_TRANSFER_SET_LATEST, ATOMIC_SOFTWARE_INITIATE_INSTALL, ATOMIC_SOFTWARE_REQUEST_STATUS, ATOMIC_SOFTWARE_SET_STATUS, ATOMIC_SOFTWARE_SET_ERROR, AUTOMATED_TRANSFER_ELIGIBILITY_REQUEST, AUTOMATED_TRANSFER_ELIGIBILITY_UPDATE, AUTOMATED_TRANSFER_INITIATE_WITH_PLUGIN_ZIP, AUTOMATED_TRANSFER_STATUS_REQUEST, AUTOMATED_TRANSFER_STATUS_REQUEST_FAILURE, AUTOMATED_TRANSFER_STATUS_SET, BILLING_RECEIPT_EMAIL_SEND, BILLING_RECEIPT_EMAIL_SEND_FAILURE, BILLING_RECEIPT_EMAIL_SEND_SUCCESS, BILLING_TRANSACTION_ERROR_CLEAR, BILLING_TRANSACTION_RECEIVE, BILLING_TRANSACTION_REQUEST, BILLING_TRANSACTION_REQUEST_FAILURE, BILLING_TRANSACTION_REQUEST_SUCCESS, BILLING_TRANSACTIONS_FILTER_SET_APP, BILLING_TRANSACTIONS_FILTER_SET_MONTH, BILLING_TRANSACTIONS_FILTER_SET_PAGE, BILLING_TRANSACTIONS_FILTER_SET_QUERY, BILLING_TRANSACTIONS_RECEIVE, BILLING_TRANSACTIONS_REQUEST, BILLING_TRANSACTIONS_REQUEST_FAILURE, BILLING_TRANSACTIONS_REQUEST_SUCCESS, BREADCRUMB_RESET_LIST, BREADCRUMB_UPDATE_LIST, BREADCRUMB_APPEND_ITEM, COMMENT_COUNTS_REQUEST, COMMENT_COUNTS_UPDATE, COMMENT_REQUEST, COMMENTS_CHANGE_STATUS, COMMENTS_COUNT_INCREMENT, COMMENTS_COUNT_RECEIVE, COMMENTS_DELETE, COMMENTS_EDIT, COMMENTS_LIKE, COMMENTS_LIST_REQUEST, COMMENTS_QUERY_UPDATE, COMMENTS_RECEIVE, COMMENTS_RECEIVE_ERROR, COMMENTS_REPLY_WRITE, COMMENTS_REQUEST, COMMENTS_SET_ACTIVE_REPLY, COMMENTS_UNLIKE, COMMENTS_UPDATES_RECEIVE, COMMENTS_WRITE, COMMENTS_WRITE_ERROR, CONCIERGE_APPOINTMENT_CANCEL, CONCIERGE_APPOINTMENT_CREATE, CONCIERGE_APPOINTMENT_DETAILS_REQUEST, CONCIERGE_APPOINTMENT_DETAILS_UPDATE, CONCIERGE_APPOINTMENT_RESCHEDULE, CONCIERGE_INITIAL_REQUEST, CONCIERGE_INITIAL_UPDATE, CONCIERGE_SIGNUP_FORM_UPDATE, CONCIERGE_UPDATE_BOOKING_STATUS, CONNECTED_APPLICATION_DELETE, CONNECTED_APPLICATION_DELETE_SUCCESS, CONNECTED_APPLICATIONS_RECEIVE, CONNECTED_APPLICATIONS_REQUEST, CONNECTION_LOST, CONNECTION_RESTORED, CONNECTIONS_SET_EXPANDED_SERVICE, COUNTRIES_DOMAINS_FETCH, COUNTRIES_DOMAINS_UPDATED, COUNTRIES_PAYMENTS_FETCH, COUNTRIES_PAYMENTS_UPDATED, COUNTRIES_SMS_FETCH, COUNTRIES_SMS_UPDATED, COUNTRIES_WOOCOMMERCE_FETCH, COUNTRIES_WOOCOMMERCE_UPDATED, COUNTRY_STATES_RECEIVE, COUNTRY_STATES_REQUEST, COUNTRY_STATES_REQUEST_FAILURE, COUNTRY_STATES_REQUEST_SUCCESS, CURRENT_USER_FETCH, DIRECTLY_ASK_QUESTION, DIRECTLY_INITIALIZATION_ERROR, DIRECTLY_INITIALIZATION_START, DIRECTLY_INITIALIZATION_SUCCESS, DOCUMENT_HEAD_LINK_SET, DOCUMENT_HEAD_META_SET, DOCUMENT_HEAD_TITLE_SET, DOCUMENT_HEAD_UNREAD_COUNT_SET, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_RECEIVE, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_REQUEST, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_REQUEST_FAILURE, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_REQUEST_SUCCESS, DOMAIN_MANAGEMENT_CONTACT_DETAILS_CACHE_UPDATE, DOMAIN_MANAGEMENT_WHOIS_RECEIVE, DOMAIN_MANAGEMENT_WHOIS_REQUEST, DOMAIN_MANAGEMENT_WHOIS_REQUEST_FAILURE, DOMAIN_MANAGEMENT_WHOIS_REQUEST_SUCCESS, DOMAIN_MANAGEMENT_WHOIS_SAVE, DOMAIN_MANAGEMENT_WHOIS_SAVE_FAILURE, DOMAIN_MANAGEMENT_WHOIS_SAVE_SUCCESS, DOMAIN_MANAGEMENT_WHOIS_UPDATE, DOMAIN_TRANSFER_ACCEPT, DOMAIN_TRANSFER_ACCEPT_COMPLETED, DOMAIN_TRANSFER_CANCEL_REQUEST, DOMAIN_TRANSFER_CANCEL_REQUEST_COMPLETED, DOMAIN_TRANSFER_CANCEL_REQUEST_FAILED, DOMAIN_TRANSFER_CODE_REQUEST, DOMAIN_TRANSFER_CODE_REQUEST_COMPLETED, DOMAIN_TRANSFER_CODE_REQUEST_FAILED, DOMAIN_TRANSFER_DECLINE, DOMAIN_TRANSFER_DECLINE_COMPLETED, DOMAIN_TRANSFER_IPS_TAG_SAVE, DOMAIN_TRANSFER_UPDATE, DOMAIN_TRANSFER_UPDATE_LOCK, DOMAIN_WAPI_INFO_FETCH, DOMAIN_WAPI_INFO_FETCH_FAILURE, DOMAIN_WAPI_INFO_FETCH_SUCCESS, DOMAINS_DNS_ADD, DOMAINS_DNS_ADD_COMPLETED, DOMAINS_DNS_ADD_FAILED, DOMAINS_DNS_APPLY_TEMPLATE_COMPLETED, DOMAINS_DNS_DELETE, DOMAINS_DNS_DELETE_COMPLETED, DOMAINS_DNS_DELETE_FAILED, DOMAINS_DNS_FETCH, DOMAINS_DNS_FETCH_COMPLETED, DOMAINS_DNS_FETCH_FAILED, DOMAINS_DNS_UPDATE, DOMAINS_DNS_UPDATE_COMPLETED, DOMAINS_DNS_UPDATE_FAILED, DOMAINS_SITE_REDIRECT_FETCH, DOMAINS_SITE_REDIRECT_FETCH_COMPLETED, DOMAINS_SITE_REDIRECT_FETCH_FAILED, DOMAINS_SITE_REDIRECT_NOTICE_CLOSE, DOMAINS_SITE_REDIRECT_UPDATE, DOMAINS_SITE_REDIRECT_UPDATE_COMPLETED, DOMAINS_SITE_REDIRECT_UPDATE_FAILED, DOMAINS_SUGGESTIONS_RECEIVE, DOMAINS_SUGGESTIONS_REQUEST, DOMAINS_SUGGESTIONS_REQUEST_FAILURE, DOMAINS_SUGGESTIONS_REQUEST_SUCCESS, EDITOR_IFRAME_LOADED, EDITOR_TYPE_REQUEST, EDITOR_TYPE_SET, EMAIL_ACCOUNTS_REQUEST, EMAIL_ACCOUNTS_REQUEST_FAILURE, EMAIL_ACCOUNTS_REQUEST_SUCCESS, EMAIL_FORWARDING_REQUEST, EMAIL_FORWARDING_REQUEST_FAILURE, EMAIL_FORWARDING_REQUEST_SUCCESS, EXPORT_ADVANCED_SETTINGS_FETCH, EXPORT_ADVANCED_SETTINGS_FETCH_FAIL, EXPORT_ADVANCED_SETTINGS_RECEIVE, EXPORT_CLEAR, EXPORT_COMPLETE, EXPORT_FAILURE, EXPORT_MEDIA_REQUEST, EXPORT_POST_TYPE_FIELD_SET, EXPORT_POST_TYPE_SET, EXPORT_START_REQUEST, EXPORT_STARTED, EXPORT_STATUS_FETCH, GOOGLE_MY_BUSINESS_STATS_CHANGE_INTERVAL, GOOGLE_MY_BUSINESS_STATS_FAILURE, GOOGLE_MY_BUSINESS_STATS_RECEIVE, GOOGLE_MY_BUSINESS_STATS_REQUEST, GRAVATAR_RECEIVE_IMAGE_FAILURE, GRAVATAR_UPLOAD_RECEIVE, GRAVATAR_UPLOAD_REQUEST, GRAVATAR_UPLOAD_REQUEST_FAILURE, GRAVATAR_UPLOAD_REQUEST_SUCCESS, GSUITE_USERS_REQUEST, GSUITE_USERS_REQUEST_FAILURE, GSUITE_USERS_REQUEST_SUCCESS, GUIDED_TOUR_PAUSE, GUIDED_TOUR_RESUME, GUTENBERG_IFRAME_ELIGIBLE_SET, HELP_CONTACT_FORM_SITE_SELECT, HELP_TICKET_CONFIGURATION_REQUEST, HELP_TICKET_CONFIGURATION_REQUEST_FAILURE, HELP_TICKET_CONFIGURATION_REQUEST_SUCCESS, HOSTING_CLEAR_CACHE_REQUEST, HOSTING_PHP_VERSION_REQUEST, HOSTING_PHP_VERSION_SET, HOSTING_PHP_VERSION_SET_REQUEST, HOSTING_RESTORE_DATABASE_PASSWORD, HOSTING_SFTP_PASSWORD_RESET, HOSTING_SFTP_USER_CREATE, HOSTING_SFTP_USER_UPDATE, HOSTING_SFTP_USERS_REQUEST, HOSTING_SFTP_USERS_SET, HOSTING_STATIC_FILE_404_REQUEST, HOSTING_STATIC_FILE_404_SET, HOSTING_STATIC_FILE_404_SET_REQUEST, I18N_LANGUAGE_NAMES_ADD, I18N_LANGUAGE_NAMES_REQUEST, I18N_LOCALE_SUGGESTIONS_ADD, I18N_LOCALE_SUGGESTIONS_REQUEST, IMAGE_EDITOR_COMPUTED_CROP, IMAGE_EDITOR_CROP, IMAGE_EDITOR_FLIP, IMAGE_EDITOR_IMAGE_HAS_LOADED, IMAGE_EDITOR_ROTATE_COUNTERCLOCKWISE, IMAGE_EDITOR_SET_ASPECT_RATIO, IMAGE_EDITOR_SET_CROP_BOUNDS, IMAGE_EDITOR_SET_DEFAULT_ASPECT_RATIO, IMAGE_EDITOR_SET_FILE_INFO, IMAGE_EDITOR_STATE_RESET, IMAGE_EDITOR_STATE_RESET_ALL, IMMEDIATE_LOGIN_SAVE_INFO, IMPORTS_AUTHORS_SET_MAPPING, IMPORTS_AUTHORS_START_MAPPING, IMPORTS_IMPORT_CANCEL, IMPORTS_IMPORT_LOCK, IMPORTS_IMPORT_RECEIVE, IMPORTS_IMPORT_RESET, IMPORTS_IMPORT_START, IMPORTS_IMPORT_UNLOCK, IMPORTS_START_IMPORTING, IMPORTS_UPLOAD_COMPLETED, IMPORTS_UPLOAD_FAILED, IMPORTS_UPLOAD_SET_PROGRESS, IMPORTS_UPLOAD_START, INLINE_HELP_POPOVER_HIDE, INLINE_HELP_POPOVER_SHOW, INVITE_ACCEPTED, INVITE_RESEND_REQUEST, INVITE_RESEND_REQUEST_FAILURE, INVITE_RESEND_REQUEST_SUCCESS, INVITES_DELETE_REQUEST, INVITES_DELETE_REQUEST_FAILURE, INVITES_DELETE_REQUEST_SUCCESS, INVITES_REQUEST, INVITES_REQUEST_FAILURE, INVITES_REQUEST_SUCCESS, JETPACK_CHECKOUT_UPDATE_SUPPORT_TICKET_RECEIVE, JETPACK_CHECKOUT_UPDATE_SUPPORT_TICKET_REQUEST, JETPACK_CHECKOUT_UPDATE_SUPPORT_TICKET_REQUEST_FAILURE, JETPACK_CHECKOUT_UPDATE_SUPPORT_TICKET_REQUEST_SUCCESS, JETPACK_CONNECTION_STATUS_RECEIVE, JETPACK_CONNECTION_STATUS_REQUEST, JETPACK_CONNECTION_STATUS_REQUEST_FAILURE, JETPACK_CONNECTION_STATUS_REQUEST_SUCCESS, JETPACK_CREDENTIALS_AUTOCONFIGURE, JETPACK_CREDENTIALS_DELETE, JETPACK_CREDENTIALS_GET, JETPACK_CREDENTIALS_GET_FAILURE, JETPACK_CREDENTIALS_GET_SUCCESS, JETPACK_CREDENTIALS_STORE, JETPACK_CREDENTIALS_UPDATE, JETPACK_CREDENTIALS_UPDATE_FAILURE, JETPACK_CREDENTIALS_UPDATE_PROGRESS_START, JETPACK_CREDENTIALS_UPDATE_PROGRESS_UPDATE, JETPACK_CREDENTIALS_UPDATE_RESET, JETPACK_CREDENTIALS_UPDATE_SUCCESS, JETPACK_MODULE_ACTIVATE, JETPACK_MODULE_ACTIVATE_FAILURE, JETPACK_MODULE_ACTIVATE_SUCCESS, JETPACK_MODULE_DEACTIVATE, JETPACK_MODULE_DEACTIVATE_FAILURE, JETPACK_MODULE_DEACTIVATE_SUCCESS, JETPACK_MODULES_RECEIVE, JETPACK_MODULES_REQUEST, JETPACK_MODULES_REQUEST_FAILURE, JETPACK_MODULES_REQUEST_SUCCESS, JETPACK_PARTNER_PORTAL_LICENSE_COUNTS_RECEIVE, JETPACK_PARTNER_PORTAL_LICENSE_COUNTS_REQUEST, JETPACK_PARTNER_PORTAL_LICENSES_RECEIVE, JETPACK_PARTNER_PORTAL_LICENSES_REQUEST, JETPACK_PARTNER_PORTAL_OAUTH_TOKEN_SET, JETPACK_PARTNER_PORTAL_PARTNER_ACTIVE_PARTNER_KEY_UPDATE, JETPACK_PARTNER_PORTAL_PARTNER_RECEIVE, JETPACK_PARTNER_PORTAL_PARTNER_RECEIVE_ERROR, JETPACK_PARTNER_PORTAL_PARTNER_REQUEST, JETPACK_PRODUCT_INSTALL_REQUEST, JETPACK_PRODUCT_INSTALL_STATUS_RECEIVE, JETPACK_PRODUCT_INSTALL_STATUS_REQUEST, JETPACK_REMOTE_INSTALL, JETPACK_REMOTE_INSTALL_FAILURE, JETPACK_REMOTE_INSTALL_SUCCESS, JETPACK_SCAN_ENQUEUE_REQUEST, JETPACK_SCAN_ENQUEUE_REQUEST_FAILURE, JETPACK_SCAN_ENQUEUE_REQUEST_SUCCESS, JETPACK_SCAN_ENQUEUE_UPDATE, JETPACK_SCAN_HISTORY_REQUEST, JETPACK_SCAN_HISTORY_REQUEST_FAILURE, JETPACK_SCAN_HISTORY_REQUEST_SUCCESS, JETPACK_SCAN_HISTORY_UPDATE, JETPACK_SCAN_REQUEST, JETPACK_SCAN_REQUEST_FAILURE, JETPACK_SCAN_REQUEST_SUCCESS, JETPACK_SCAN_THREAT_COUNTS_REQUEST, JETPACK_SCAN_THREAT_COUNTS_REQUEST_FAILURE, JETPACK_SCAN_THREAT_COUNTS_REQUEST_SUCCESS, JETPACK_SCAN_THREAT_COUNTS_UPDATE, JETPACK_SCAN_THREAT_FIX, JETPACK_SCAN_THREAT_IGNORE, JETPACK_SCAN_THREATS_FIX_ALL, JETPACK_SCAN_THREATS_GET_FIX_STATUS, JETPACK_SCAN_UPDATE, JETPACK_SCAN_UPDATE_THREAT, JETPACK_SCAN_UPDATE_THREAT_COMPLETED, JETPACK_SETTINGS_REQUEST, JETPACK_SETTINGS_SAVE, JETPACK_SETTINGS_SAVE_SUCCESS, JETPACK_SETTINGS_UPDATE, JETPACK_SITE_ALERT_THREAT_FIX, JETPACK_SITE_ALERT_THREAT_IGNORE, JETPACK_SYNC_START_ERROR, JETPACK_SYNC_START_REQUEST, JETPACK_SYNC_START_SUCCESS, JETPACK_SYNC_STATUS_ERROR, JETPACK_SYNC_STATUS_REQUEST, JETPACK_SYNC_STATUS_SUCCESS, JETPACK_USER_CONNECTION_CHANGE_OWNER, JETPACK_USER_CONNECTION_DATA_RECEIVE, JETPACK_USER_CONNECTION_DATA_REQUEST, JETPACK_USER_CONNECTION_DATA_REQUEST_FAILURE, JETPACK_USER_CONNECTION_DATA_REQUEST_SUCCESS, JITM_DISMISS, JITM_FETCH, JITM_SET, KEYRING_CONNECTION_DELETE, KEYRING_CONNECTION_DELETE_FAILURE, KEYRING_CONNECTIONS_RECEIVE, KEYRING_CONNECTIONS_REQUEST, KEYRING_CONNECTIONS_REQUEST_FAILURE, KEYRING_CONNECTIONS_REQUEST_SUCCESS, KEYRING_SERVICES_RECEIVE, KEYRING_SERVICES_REQUEST, KEYRING_SERVICES_REQUEST_FAILURE, KEYRING_SERVICES_REQUEST_SUCCESS, LASAGNA_SOCKET_CONNECTED, LASAGNA_SOCKET_DISCONNECTED, LEGAL_REQUEST, LEGAL_SET, LOGIN_AUTH_ACCOUNT_TYPE_REQUEST, LOGIN_AUTH_ACCOUNT_TYPE_REQUEST_FAILURE, LOGIN_AUTH_ACCOUNT_TYPE_REQUEST_SUCCESS, LOGIN_AUTH_ACCOUNT_TYPE_REQUESTING, LOGIN_AUTH_ACCOUNT_TYPE_RESET, LOGIN_EMAIL_SEND, LOGIN_FORM_UPDATE, LOGIN_REQUEST, LOGIN_REQUEST_FAILURE, LOGIN_REQUEST_SUCCESS, MAGIC_LOGIN_HIDE_REQUEST_FORM, MAGIC_LOGIN_HIDE_REQUEST_NOTICE, MAGIC_LOGIN_REQUEST_AUTH_ERROR, MAGIC_LOGIN_REQUEST_AUTH_FETCH, MAGIC_LOGIN_REQUEST_AUTH_SUCCESS, MAGIC_LOGIN_REQUEST_LOGIN_EMAIL_ERROR, MAGIC_LOGIN_REQUEST_LOGIN_EMAIL_FETCH, MAGIC_LOGIN_REQUEST_LOGIN_EMAIL_SUCCESS, MAGIC_LOGIN_RESET_REQUEST_FORM, MAGIC_LOGIN_SHOW_CHECK_YOUR_EMAIL_PAGE, MAGIC_LOGIN_SHOW_INTERSTITIAL_PAGE, MAGIC_LOGIN_SHOW_LINK_EXPIRED, MAILCHIMP_LISTS_LIST, MAILCHIMP_LISTS_RECEIVE, MAILCHIMP_SETTINGS_LIST, MAILCHIMP_SETTINGS_RECEIVE, MAILCHIMP_SETTINGS_UPDATE, MAILCHIMP_SETTINGS_UPDATE_FAILURE, MAILCHIMP_SETTINGS_UPDATE_SUCCESS, MARKETING_CLICK_UPGRADE_NUDGE, MARKETING_JETPACK_SALE_COUPON_FETCH_FAILURE, MARKETING_JETPACK_SALE_COUPON_FETCH, MARKETING_JETPACK_SALE_COUPON_RECEIVE, MARKETPLACE_BILLING_INTERVAL_SELECT, MARKETPLACE_PLUGIN_INSTALLATION_STATE_CHANGE, MARKETPLACE_PRIMARY_DOMAIN_SELECT, MARKETPLACE_QUEUE_PRODUCT_INSTALL, MEDIA_CLEAR_SITE, MEDIA_ERRORS_CLEAR, MEDIA_ITEM_CREATE, MEDIA_ITEM_EDIT, MEDIA_ITEM_ERRORS_CLEAR, MEDIA_ITEM_ERRORS_SET, MEDIA_ITEM_REQUEST, MEDIA_ITEM_REQUEST_FAILURE, MEDIA_ITEM_REQUEST_SUCCESS, MEDIA_LIBRARY_SELECTED_ITEMS_UPDATE, MEDIA_RECEIVE, MEDIA_REQUEST, MEDIA_REQUEST_FAILURE, MEDIA_REQUEST_SUCCESS, MEDIA_SET_NEXT_PAGE_HANDLE, MEDIA_SET_QUERY, MEDIA_SOURCE_CHANGE, MEMBERSHIPS_EARNINGS_GET, MEMBERSHIPS_EARNINGS_RECEIVE, MEMBERSHIPS_PRODUCT_ADD, MEMBERSHIPS_PRODUCT_ADD_FAILURE, MEMBERSHIPS_PRODUCT_DELETE, MEMBERSHIPS_PRODUCT_DELETE_FAILURE, MEMBERSHIPS_PRODUCT_RECEIVE, MEMBERSHIPS_PRODUCT_UPDATE, MEMBERSHIPS_PRODUCT_UPDATE_FAILURE, MEMBERSHIPS_PRODUCTS_LIST, MEMBERSHIPS_PRODUCTS_RECEIVE, MEMBERSHIPS_SETTINGS, MEMBERSHIPS_SETTINGS_RECEIVE, MEMBERSHIPS_SUBSCRIBERS_LIST, MEMBERSHIPS_SUBSCRIBERS_RECEIVE, MEMBERSHIPS_SUBSCRIPTION_STOP, MEMBERSHIPS_SUBSCRIPTION_STOP_FAILURE, MEMBERSHIPS_SUBSCRIPTION_STOP_SUCCESS, MEMBERSHIPS_SUBSCRIPTIONS_LIST_REQUEST, MEMBERSHIPS_SUBSCRIPTIONS_RECEIVE, MY_SITES_SIDEBAR_SECTION_TOGGLE, MY_SITES_SIDEBAR_SECTIONS_COLLAPSE_ALL, NOTICE_CREATE, NOTICE_REMOVE, NOTIFICATION_SETTINGS_FETCH, NOTIFICATION_SETTINGS_FETCH_COMPLETE, NOTIFICATION_SETTINGS_FETCH_FAILED, NOTIFICATION_SETTINGS_REQUEST, NOTIFICATION_SETTINGS_SAVE, NOTIFICATION_SETTINGS_SAVE_COMPLETE, NOTIFICATION_SETTINGS_SAVE_FAILED, NOTIFICATION_SETTINGS_TOGGLE_SETTING, NOTIFICATION_SETTINGS_UPDATE, NOTIFICATIONS_FORCE_REFRESH, NOTIFICATIONS_UNSEEN_COUNT_SET, OAUTH2_CLIENT_DATA_RECEIVE, ORDER_TRANSACTION_FETCH, ORDER_TRANSACTION_FETCH_ERROR, ORDER_TRANSACTION_SET, P2_CONNECTION_DELETE, P2_CONNECTION_DELETE_FAILURE, P2_CONNECTIONS_RECEIVE, P2_CONNECTIONS_REQUEST, P2_CONNECTIONS_REQUEST_FAILURE, P2_CONNECTIONS_REQUEST_SUCCESS, PLANS_RECEIVE, PLANS_REQUEST, PLANS_REQUEST_FAILURE, PLANS_REQUEST_SUCCESS, PLUGIN_ACTIVATE_REQUEST, PLUGIN_ACTIVATE_REQUEST_FAILURE, PLUGIN_ACTIVATE_REQUEST_SUCCESS, PLUGIN_AUTOUPDATE_DISABLE_REQUEST, PLUGIN_AUTOUPDATE_DISABLE_REQUEST_FAILURE, PLUGIN_AUTOUPDATE_DISABLE_REQUEST_SUCCESS, PLUGIN_AUTOUPDATE_ENABLE_REQUEST, PLUGIN_AUTOUPDATE_ENABLE_REQUEST_FAILURE, PLUGIN_AUTOUPDATE_ENABLE_REQUEST_SUCCESS, PLUGIN_DEACTIVATE_REQUEST, PLUGIN_DEACTIVATE_REQUEST_FAILURE, PLUGIN_DEACTIVATE_REQUEST_SUCCESS, PLUGIN_INSTALL_REQUEST, PLUGIN_INSTALL_REQUEST_FAILURE, PLUGIN_INSTALL_REQUEST_SUCCESS, PLUGIN_NOTICES_REMOVE, PLUGIN_REMOVE_REQUEST, PLUGIN_REMOVE_REQUEST_FAILURE, PLUGIN_REMOVE_REQUEST_SUCCESS, PLUGIN_SETUP_ACTIVATE, PLUGIN_SETUP_CONFIGURE, PLUGIN_SETUP_ERROR, PLUGIN_SETUP_FINISH, PLUGIN_SETUP_INSTALL, PLUGIN_SETUP_INSTRUCTIONS_FETCH, PLUGIN_SETUP_INSTRUCTIONS_RECEIVE, PLUGIN_UPDATE_REQUEST, PLUGIN_UPDATE_REQUEST_FAILURE, PLUGIN_UPDATE_REQUEST_SUCCESS, PLUGIN_UPLOAD, PLUGIN_UPLOAD_CLEAR, PLUGIN_UPLOAD_COMPLETE, PLUGIN_UPLOAD_ERROR, PLUGIN_UPLOAD_PROGRESS, PLUGINS_RECEIVE, PLUGINS_REQUEST, PLUGINS_REQUEST_FAILURE, PLUGINS_REQUEST_SUCCESS, PLUGINS_WPORG_LIST_RECEIVE, PLUGINS_WPORG_LIST_REQUEST, PLUGINS_WPORG_PLUGIN_RECEIVE, PLUGINS_WPORG_PLUGIN_REQUEST, POST_RESTORE_SUCCESS, POST_REVISIONS_AUTHORS_REQUEST, POST_REVISIONS_REQUEST, POST_SAVE_FAILURE, POST_STATS_RECEIVE, POST_STATS_REQUEST, POST_STATS_REQUEST_FAILURE, POST_STATS_REQUEST_SUCCESS, POST_TYPES_RECEIVE, POST_TYPES_REQUEST, POST_TYPES_TAXONOMIES_RECEIVE, POST_TYPES_TAXONOMIES_REQUEST, POST_TYPES_TAXONOMIES_REQUEST_FAILURE, POST_TYPES_TAXONOMIES_REQUEST_SUCCESS, PRODUCTS_LIST_RECEIVE, PRODUCTS_LIST_REQUEST, PRODUCTS_LIST_REQUEST_FAILURE, PROMOTE_POST_CAMPAIGNS_FETCH, PROMOTE_POST_CAMPAIGNS_FETCH_DONE, PROMOTE_POST_CAMPAIGN_CANCEL, PUBLICIZE_CONNECTION_CREATE, PUBLICIZE_CONNECTION_CREATE_FAILURE, PUBLICIZE_CONNECTION_DELETE, PUBLICIZE_CONNECTION_DELETE_FAILURE, PUBLICIZE_CONNECTION_RECEIVE, PUBLICIZE_CONNECTION_UPDATE, PUBLICIZE_CONNECTION_UPDATE_FAILURE, PUBLICIZE_CONNECTIONS_RECEIVE, PUBLICIZE_CONNECTIONS_REQUEST, PUBLICIZE_CONNECTIONS_REQUEST_FAILURE, PUBLICIZE_CONNECTIONS_REQUEST_SUCCESS, PUBLICIZE_SHARE, PUBLICIZE_SHARE_ACTION_DELETE, PUBLICIZE_SHARE_ACTION_DELETE_FAILURE, PUBLICIZE_SHARE_ACTION_DELETE_SUCCESS, PUBLICIZE_SHARE_ACTION_SCHEDULE, PUBLICIZE_SHARE_ACTION_SCHEDULE_FAILURE, PUBLICIZE_SHARE_ACTION_SCHEDULE_SUCCESS, PUBLICIZE_SHARE_ACTIONS_PUBLISHED_REQUEST, PUBLICIZE_SHARE_ACTIONS_PUBLISHED_REQUEST_FAILURE, PUBLICIZE_SHARE_ACTIONS_PUBLISHED_REQUEST_SUCCESS, PUBLICIZE_SHARE_ACTIONS_SCHEDULED_REQUEST, PUBLICIZE_SHARE_ACTIONS_SCHEDULED_REQUEST_FAILURE, PUBLICIZE_SHARE_ACTIONS_SCHEDULED_REQUEST_SUCCESS, PUBLICIZE_SHARE_DISMISS, PUBLICIZE_SHARE_FAILURE, PUBLICIZE_SHARE_SUCCESS, PURCHASE_CANCELLATION_OFFER_REQUEST, PURCHASE_CANCELLATION_OFFER_REQUEST_FAILURE, PURCHASE_CANCELLATION_OFFER_RECEIVE, PURCHASE_CANCELLATION_OFFER_APPLY, PURCHASE_CANCELLATION_OFFER_APPLY_SUCCESS, PURCHASE_CANCELLATION_OFFER_APPLY_FAILURE, PUSH_NOTIFICATIONS_API_NOT_READY, PUSH_NOTIFICATIONS_API_READY, PUSH_NOTIFICATIONS_AUTHORIZE, PUSH_NOTIFICATIONS_BLOCK, PUSH_NOTIFICATIONS_MUST_PROMPT, PUSH_NOTIFICATIONS_RECEIVE_REGISTER_DEVICE, PUSH_NOTIFICATIONS_RECEIVE_UNREGISTER_DEVICE, PUSH_NOTIFICATIONS_TOGGLE_ENABLED, PUSH_NOTIFICATIONS_TOGGLE_UNBLOCK_INSTRUCTIONS, RECEIPT_FETCH, RECEIPT_FETCH_COMPLETED, RECEIPT_FETCH_FAILED, REWIND_ACTIVATE_FAILURE, REWIND_ACTIVATE_REQUEST, REWIND_ACTIVATE_SUCCESS, REWIND_ACTIVITY_SHARE_REQUEST, REWIND_BACKUP, REWIND_BACKUP_DISMISS, REWIND_BACKUP_DISMISS_PROGRESS, REWIND_BACKUP_PROGRESS_REQUEST, REWIND_BACKUP_REQUEST, REWIND_BACKUP_SITE, REWIND_BACKUP_UPDATE_ERROR, REWIND_BACKUP_UPDATE_PROGRESS, REWIND_BACKUPS_REQUEST, REWIND_BACKUPS_SET, REWIND_CAPABILITIES_REQUEST, REWIND_CAPABILITIES_UPDATE, REWIND_CLONE, REWIND_DEACTIVATE_FAILURE, REWIND_DEACTIVATE_REQUEST, REWIND_DEACTIVATE_SUCCESS, REWIND_POLICIES_REQUEST, REWIND_POLICIES_REQUEST_FAILURE, REWIND_POLICIES_REQUEST_SUCCESS, REWIND_POLICIES_SET, REWIND_RESTORE, REWIND_RESTORE_DISMISS, REWIND_RESTORE_DISMISS_PROGRESS, REWIND_RESTORE_PROGRESS_REQUEST, REWIND_RESTORE_REQUEST, REWIND_RESTORE_UPDATE_PROGRESS, REWIND_SIZE_REQUEST, REWIND_SIZE_REQUEST_FAILURE, REWIND_SIZE_REQUEST_SUCCESS, REWIND_SIZE_SET, REWIND_STATE_REQUEST, REWIND_STATE_UPDATE, ROUTE_CLEAR_LAST_NON_EDITOR, SET_MEDIA_EXPORT_DATA, SIGNUP_COMPLETE_RESET, SIGNUP_CURRENT_FLOW_NAME_SET, SIGNUP_DEPENDENCY_STORE_REMOVE_SITE_SLUG, SIGNUP_DEPENDENCY_STORE_UPDATE, SIGNUP_OPTIONAL_DEPENDENCY_SUGGESTED_USERNAME_SET, SIGNUP_PREVIOUS_FLOW_NAME_SET, SIGNUP_FLOW_ADD_EXCLUDED_STEPS, SIGNUP_FLOW_REMOVE_EXCLUDED_STEPS, SIGNUP_FLOW_RESET_EXCLUDED_STEPS, SIGNUP_PROGRESS_ADD_STEP, SIGNUP_PROGRESS_COMPLETE_STEP, SIGNUP_PROGRESS_INVALIDATE_STEP, SIGNUP_PROGRESS_PROCESS_STEP, SIGNUP_PROGRESS_REMOVE_STEP, SIGNUP_PROGRESS_SAVE_STEP, SIGNUP_PROGRESS_SUBMIT_STEP, SIGNUP_STEPS_DESIGN_TYPE_SET, SIGNUP_STEPS_SITE_GOALS_SET, SIGNUP_STEPS_SITE_TITLE_SET, SIGNUP_STEPS_SITE_TYPE_SET, SIGNUP_STEPS_SITE_VERTICAL_SET, SIGNUP_STEPS_SITE_INFO_COLLECTION_UPDATE, SIGNUP_STEPS_SITE_INFO_UPDATE_CURRENT_INDEX, SIGNUP_STEPS_WEBSITE_CONTENT_INITIALIZE_PAGES, SIGNUP_STEPS_WEBSITE_CONTENT_UPDATE_CURRENT_INDEX, SIGNUP_STEPS_WEBSITE_CONTENT_IMAGE_UPLOAD_STARTED, SIGNUP_STEPS_WEBSITE_CONTENT_IMAGE_UPLOAD_COMPLETED, SIGNUP_STEPS_WEBSITE_FIELD_CHANGED, SIGNUP_STEPS_WEBSITE_CONTENT_IMAGE_UPLOAD_FAILED, SIGNUP_STEPS_WEBSITE_CONTENT_IMAGE_REMOVED, SIGNUP_STEPS_WEBSITE_CONTENT_LOGO_UPLOAD_STARTED, SIGNUP_STEPS_WEBSITE_CONTENT_LOGO_UPLOAD_COMPLETED, SIGNUP_STEPS_WEBSITE_CONTENT_LOGO_UPLOAD_FAILED, SIGNUP_STEPS_SOCIAL_PROFILES_UPDATE, SIGNUP_STEPS_SOCIAL_PROFILES_RESET, SIGNUP_STEPS_WEBSITE_CONTENT_REMOVE_LOGO_URL, SIGNUP_STEPS_USER_EXPERIENCE_SET, SITE_ADDRESS_AVAILABILITY_ERROR, SITE_ADDRESS_AVAILABILITY_ERROR_CLEAR, SITE_ADDRESS_AVAILABILITY_REQUEST, SITE_ADDRESS_AVAILABILITY_SUCCESS, SITE_ADDRESS_CHANGE_REQUEST, SITE_ADDRESS_CHANGE_REQUEST_FAILURE, SITE_ADDRESS_CHANGE_REQUEST_SUCCESS, SITE_CHECKLIST_RECEIVE, SITE_CHECKLIST_REQUEST, SITE_CHECKLIST_TASK_UPDATE, SITE_IMPORTER_IMPORT_FAILURE, SITE_IMPORTER_IMPORT_RESET, SITE_IMPORTER_IMPORT_START, SITE_IMPORTER_IMPORT_SUCCESS, SITE_IMPORTER_IS_SITE_IMPORTABLE_FAILURE, SITE_IMPORTER_IS_SITE_IMPORTABLE_START, SITE_IMPORTER_IS_SITE_IMPORTABLE_SUCCESS, SITE_IMPORTER_VALIDATION_ERROR_SET, SITE_KEYRINGS_DELETE, SITE_KEYRINGS_DELETE_FAILURE, SITE_KEYRINGS_DELETE_SUCCESS, SITE_KEYRINGS_REQUEST, SITE_KEYRINGS_REQUEST_FAILURE, SITE_KEYRINGS_REQUEST_SUCCESS, SITE_KEYRINGS_SAVE_SUCCESS, SITE_KEYRINGS_UPDATE, SITE_KEYRINGS_UPDATE_FAILURE, SITE_KEYRINGS_UPDATE_SUCCESS, SITE_LAUNCH, SITE_PLAN_OWNERSHIP_TRANSFER, SITE_SETTINGS_REQUEST, SITE_SETTINGS_REQUEST_FAILURE, SITE_SETTINGS_REQUEST_SUCCESS, SITE_SETTINGS_SAVE, SITE_SETTINGS_SAVE_FAILURE, SITE_SETTINGS_SAVE_SUCCESS, SITE_STATS_RECEIVE, SITE_STATS_REQUEST, SITE_STATS_REQUEST_FAILURE, SOCIAL_CONNECT_ACCOUNT_REQUEST, SOCIAL_CONNECT_ACCOUNT_REQUEST_FAILURE, SOCIAL_CONNECT_ACCOUNT_REQUEST_SUCCESS, SOCIAL_CREATE_ACCOUNT_REQUEST_FAILURE, SOCIAL_HANDOFF_CONNECT_ACCOUNT, SOCIAL_DISCONNECT_ACCOUNT_REQUEST, SOCIAL_DISCONNECT_ACCOUNT_REQUEST_FAILURE, SOCIAL_DISCONNECT_ACCOUNT_REQUEST_SUCCESS, SOCIAL_LOGIN_REQUEST, SOCIAL_LOGIN_REQUEST_FAILURE, SOCIAL_LOGIN_REQUEST_SUCCESS, STATS_CHART_COUNTS_RECEIVE, STATS_CHART_COUNTS_REQUEST, STATS_RECENT_POST_VIEWS_RECEIVE, STATS_RECENT_POST_VIEWS_REQUEST, STORED_CARDS_ADD_COMPLETED, STORED_CARDS_DELETE, STORED_CARDS_DELETE_COMPLETED, STORED_CARDS_DELETE_FAILED, STORED_CARDS_UPDATE_IS_PRIMARY_COMPLETED, STORED_CARDS_UPDATE_IS_BACKUP_COMPLETED, STORED_CARDS_FETCH, STORED_CARDS_FETCH_COMPLETED, STORED_CARDS_FETCH_FAILED, SUPPORT_ARTICLE_DIALOG_CLOSE, SUPPORT_ARTICLE_DIALOG_OPEN, SUPPORT_SESSION_TRANSITION, TERM_REMOVE, TERMS_RECEIVE, TERMS_REQUEST, TERMS_REQUEST_FAILURE, TERMS_REQUEST_SUCCESS, TIMEZONES_RECEIVE, TIMEZONES_REQUEST, TOS_ACCEPT, TWO_FACTOR_AUTHENTICATION_LOGIN_REQUEST, TWO_FACTOR_AUTHENTICATION_LOGIN_REQUEST_FAILURE, TWO_FACTOR_AUTHENTICATION_LOGIN_REQUEST_SUCCESS, TWO_FACTOR_AUTHENTICATION_SEND_SMS_CODE_REQUEST, TWO_FACTOR_AUTHENTICATION_SEND_SMS_CODE_REQUEST_FAILURE, TWO_FACTOR_AUTHENTICATION_SEND_SMS_CODE_REQUEST_SUCCESS, TWO_FACTOR_AUTHENTICATION_UPDATE_NONCE, URL_ANALYZER_ANALYZE, URL_ANALYZER_ANALYZE_DONE, URL_ANALYZER_ANALYZE_SUCCESS, URL_ANALYZER_ANALYZE_ERROR, URL_ANALYZER_RESET_ERROR, URL_ANALYZER_URL_DATA_UPDATE, USER_LICENSES_RECEIVE, USER_LICENSES_REQUEST, USER_LICENSES_REQUEST_SUCCESS, USER_LICENSES_REQUEST_FAILURE, USER_LICENSES_COUNTS_RECEIVE, USER_LICENSES_COUNTS_REQUEST, USER_LICENSES_COUNTS_REQUEST_SUCCESS, USER_LICENSES_COUNTS_REQUEST_FAILURE, USER_PROFILE_LINKS_ADD, USER_PROFILE_LINKS_ADD_DUPLICATE, USER_PROFILE_LINKS_ADD_FAILURE, USER_PROFILE_LINKS_ADD_MALFORMED, USER_PROFILE_LINKS_ADD_SUCCESS, USER_PROFILE_LINKS_DELETE, USER_PROFILE_LINKS_DELETE_FAILURE, USER_PROFILE_LINKS_DELETE_SUCCESS, USER_PROFILE_LINKS_RECEIVE, USER_PROFILE_LINKS_REQUEST, USER_PROFILE_LINKS_RESET_ERRORS, USER_SETTINGS_REQUEST, USER_SETTINGS_REQUEST_FAILURE, USER_SETTINGS_REQUEST_SUCCESS, USER_SETTINGS_SAVE, USER_SETTINGS_SAVE_FAILURE, USER_SETTINGS_SAVE_SUCCESS, USER_SETTINGS_UNSAVED_CLEAR, USER_SETTINGS_UNSAVED_REMOVE, USER_SETTINGS_UNSAVED_SET, USER_SUGGESTIONS_RECEIVE, USER_SUGGESTIONS_REQUEST, USER_SUGGESTIONS_REQUEST_FAILURE, USER_SUGGESTIONS_REQUEST_SUCCESS, VIDEO_EDITOR_SET_POSTER_URL, VIDEO_EDITOR_SHOW_ERROR, VIDEO_EDITOR_SHOW_UPLOAD_PROGRESS, VIDEO_EDITOR_UPDATE_POSTER, VIDEO_EDITOR_REFRESH_POSTER, WORDADS_EARNINGS_RECEIVE, WORDADS_EARNINGS_REQUEST, WORDADS_SETTINGS_RECEIVE, WORDADS_SETTINGS_REQUEST, WORDADS_SETTINGS_SAVE, WORDADS_SETTINGS_SAVE_FAILURE, WORDADS_SETTINGS_SAVE_SUCCESS, WORDADS_SETTINGS_UPDATE, WORDADS_PAYMENTS_RECEIVE, WORDADS_PAYMENTS_REQUEST, WORDADS_SITE_APPROVE_REQUEST, WORDADS_SITE_APPROVE_REQUEST_DISMISS_ERROR, WORDADS_SITE_APPROVE_REQUEST_DISMISS_SUCCESS, WORDADS_SITE_APPROVE_REQUEST_FAILURE, WORDADS_STATUS_RECEIVE, WORDADS_STATUS_REQUEST */
|
39863 |
/**
|
39864 |
* Any new action type should be added to the set of exports below, with the
|
39865 |
* value mirroring its exported name.
|
40511 |
const PRODUCTS_LIST_RECEIVE = 'PRODUCTS_LIST_RECEIVE';
|
40512 |
const PRODUCTS_LIST_REQUEST = 'PRODUCTS_LIST_REQUEST';
|
40513 |
const PRODUCTS_LIST_REQUEST_FAILURE = 'PRODUCTS_LIST_REQUEST_FAILURE';
|
40514 |
+
const PROMOTE_POST_CAMPAIGNS_FETCH = 'PROMOTE_POST_CAMPAIGNS_FETCH';
|
40515 |
+
const PROMOTE_POST_CAMPAIGNS_FETCH_DONE = 'PROMOTE_POST_CAMPAIGNS_DONE';
|
40516 |
+
const PROMOTE_POST_CAMPAIGN_CANCEL = 'PROMOTE_POST_CAMPAIGN_CANCEL';
|
40517 |
const PUBLICIZE_CONNECTION_CREATE = 'PUBLICIZE_CONNECTION_CREATE';
|
40518 |
const PUBLICIZE_CONNECTION_CREATE_FAILURE = 'PUBLICIZE_CONNECTION_CREATE_FAILURE';
|
40519 |
const PUBLICIZE_CONNECTION_DELETE = 'PUBLICIZE_CONNECTION_DELETE';
|
53982 |
}
|
53983 |
|
53984 |
if (window.electron && window.electron.features) {
|
53985 |
+
data.features = Object.assign(data.features ?? {}, window.electron.features);
|
53986 |
}
|
53987 |
|
53988 |
return data;
|
help-center/dist/help-center.min.js
CHANGED
@@ -40,7 +40,7 @@ object-assign
|
|
40 |
*
|
41 |
* This source code is licensed under the MIT license found in the
|
42 |
* LICENSE file in the root directory of this source tree.
|
43 |
-
*/function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case l:case f:case i:case a:case s:case d:return e;default:switch(e=e&&e.$$typeof){case c:case p:case m:case g:case u:return e;default:return t}}case o:return t}}}function E(e){return _(e)===f}},14971:function(e,t,n){"use strict";n(86141)},29175:function(e,t,n){"use strict";n.d(t,{VA:function(){return v},AW:function(){return E},F0:function(){return y},rs:function(){return A},s6:function(){return m},LX:function(){return _},k6:function(){return R},TH:function(){return O}});var r=n(81665),o=n(99196),i=n.n(o),s=n(95878),a=n(81549),u=n(61898),c=n(7896),l=n(20099),f=n.n(l),p=(n(14971),n(31461)),d=(n(73463),function(e){var t=(0,a.Z)();return t.displayName=e,t}),h=d("Router-History"),g=function(e){var t=(0,a.Z)();return t.displayName=e,t},m=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&this.unlisten()},n.render=function(){return i().createElement(m.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},i().createElement(h.Provider,{children:this.props.children||null,value:this.props.history}))},t}(i().Component);var v=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,s.PP)(t.props),t}return(0,r.Z)(t,e),t.prototype.render=function(){return i().createElement(y,{history:this.history,children:this.props.children})},t}(i().Component);i().Component;var b={},w=0;function _(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,i=void 0!==o&&o,s=n.strict,a=void 0!==s&&s,u=n.sensitive,c=void 0!==u&&u;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=b[n]||(b[n]={});if(r[e])return r[e];var o=[],i={regexp:f()(e,o,t),keys:o};return w<1e4&&(r[e]=i,w++),i}(n,{end:i,strict:a,sensitive:c}),o=r.regexp,s=r.keys,u=o.exec(e);if(!u)return null;var l=u[0],p=u.slice(1),d=e===l;return i&&!d?null:{path:n,url:"/"===n&&""===l?"/":l,isExact:d,params:s.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return i().createElement(m.Consumer,null,(function(t){t||(0,u.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?_(n.pathname,e.props):t.match,o=(0,c.Z)({},t,{location:n,match:r}),s=e.props,a=s.children,l=s.component,f=s.render;return Array.isArray(a)&&0===a.length&&(a=null),i().createElement(m.Provider,{value:o},o.match?a?"function"==typeof a?a(o):a:l?i().createElement(l,o):f?f(o):null:"function"==typeof a?a(o):null)}))},t}(i().Component);function S(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=S(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function P(e){return"string"==typeof e?e:(0,s.Ep)(e)}function k(e){return function(){(0,u.Z)(!1)}}function I(){}i().Component;var A=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return i().createElement(m.Consumer,null,(function(t){t||(0,u.Z)(!1);var n,r,o=e.props.location||t.location;return i().Children.forEach(e.props.children,(function(e){if(null==r&&i().isValidElement(e)){n=e;var s=e.props.path||e.props.from;r=s?_(o.pathname,(0,c.Z)({},e.props,{path:s})):t.match}})),r?i().cloneElement(n,{location:o,computedMatch:r}):null}))},t}(i().Component);var T=i().useContext;function R(){return T(h)}function O(){return T(m).location}},43292:function(e,t){"use strict";function n(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(o){return"function"==typeof o?o(n,r,e):t(o)}}}}var r=n();r.withExtraArgument=n,t.Z=r},18717:function(e,t,n){"use strict";n.d(t,{md:function(){return p},UY:function(){return l},qC:function(){return f},MT:function(){return c}});var r=n(33028);function o(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var i="function"==typeof Symbol&&Symbol.observable||"@@observable",s=function(){return Math.random().toString(36).substring(7).split("").join(".")},a={INIT:"@@redux/INIT"+s(),REPLACE:"@@redux/REPLACE"+s(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+s()}};function u(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function c(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error(o(0));if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error(o(1));return n(c)(e,t)}if("function"!=typeof e)throw new Error(o(2));var s=e,l=t,f=[],p=f,d=!1;function h(){p===f&&(p=f.slice())}function g(){if(d)throw new Error(o(3));return l}function m(e){if("function"!=typeof e)throw new Error(o(4));if(d)throw new Error(o(5));var t=!0;return h(),p.push(e),function(){if(t){if(d)throw new Error(o(6));t=!1,h();var n=p.indexOf(e);p.splice(n,1),f=null}}}function y(e){if(!u(e))throw new Error(o(7));if(void 0===e.type)throw new Error(o(8));if(d)throw new Error(o(9));try{d=!0,l=s(l,e)}finally{d=!1}for(var t=f=p,n=0;n<t.length;n++){(0,t[n])()}return e}function v(e){if("function"!=typeof e)throw new Error(o(10));s=e,y({type:a.REPLACE})}function b(){var e,t=m;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new Error(o(11));function n(){e.next&&e.next(g())}return n(),{unsubscribe:t(n)}}})[i]=function(){return this},e}return y({type:a.INIT}),(r={dispatch:y,subscribe:m,getState:g,replaceReducer:v})[i]=b,r}function l(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var i=t[r];0,"function"==typeof e[i]&&(n[i]=e[i])}var s,u=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(void 0===n(void 0,{type:a.INIT}))throw new Error(o(12));if(void 0===n(void 0,{type:a.PROBE_UNKNOWN_ACTION()}))throw new Error(o(13))}))}(n)}catch(c){s=c}return function(e,t){if(void 0===e&&(e={}),s)throw s;for(var r=!1,i={},a=0;a<u.length;a++){var c=u[a],l=n[c],f=e[c],p=l(f,t);if(void 0===p){t&&t.type;throw new Error(o(14))}i[c]=p,r=r||p!==f}return(r=r||u.length!==Object.keys(e).length)?i:e}}function f(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function p(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),i=function(){throw new Error(o(15))},s={getState:n.getState,dispatch:function(){return i.apply(void 0,arguments)}},a=t.map((function(e){return e(s)}));return i=f.apply(void 0,a)(n.dispatch),(0,r.Z)((0,r.Z)({},n),{},{dispatch:i})}}}},57245:function(e){"use strict";e.exports=function(e,t){if(t=t.split(":")[0],!(e=+e))return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}},57613:function(e,t){"use strict";function n(e){return"/"===e.charAt(0)}function r(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}t.Z=function(e,t){void 0===t&&(t="");var o,i=e&&e.split("/")||[],s=t&&t.split("/")||[],a=e&&n(e),u=t&&n(t),c=a||u;if(e&&n(e)?s=i:i.length&&(s.pop(),s=s.concat(i)),!s.length)return"/";if(s.length){var l=s[s.length-1];o="."===l||".."===l||""===l}else o=!1;for(var f=0,p=s.length;p>=0;p--){var d=s[p];"."===d?r(s,p):".."===d?(r(s,p),f++):f&&(r(s,p),f--)}if(!c)for(;f--;f)s.unshift("..");!c||""===s[0]||s[0]&&n(s[0])||s.unshift("");var h=s.join("/");return o&&"/"!==h.substr(-1)&&(h+="/"),h}},10547:function(e){"use strict";var t=256,n=[],r=window,o=Math.pow(t,6),i=Math.pow(2,52),s=2*i,a=255,u=Math.random;function c(e){var n,r=e.length,o=this,i=0,s=o.i=o.j=0,u=o.S=[];for(r||(e=[r++]);i<t;)u[i]=i++;for(i=0;i<t;i++)u[i]=u[s=a&s+e[i%r]+(n=u[i])],u[s]=n;(o.g=function(e){for(var n,r=0,i=o.i,s=o.j,u=o.S;e--;)n=u[i=a&i+1],r=r*t+u[a&(u[i]=u[s=a&s+n])+(u[s]=n)];return o.i=i,o.j=s,r})(t)}function l(e,t){var n,r=[],o=(typeof e)[0];if(t&&"o"==o)for(n in e)try{r.push(l(e[n],t-1))}catch(i){}return r.length?r:"s"==o?e:e+"\0"}function f(e,t){for(var n,r=e+"",o=0;o<r.length;)t[a&o]=a&(n^=19*t[a&o])+r.charCodeAt(o++);return d(t)}function p(e){try{return r.crypto.getRandomValues(e=new Uint8Array(t)),d(e)}catch(o){return[+new Date,r,r.navigator&&r.navigator.plugins,r.screen,d(n)]}}function d(e){return String.fromCharCode.apply(0,e)}e.exports=function(r,a){if(a&&!0===a.global)return a.global=!1,Math.random=e.exports(r,a),a.global=!0,Math.random;var u=a&&a.entropy||!1,h=[],g=(f(l(u?[r,d(n)]:0 in arguments?r:p(),3),h),new c(h));return f(d(g.S),n),function(){for(var e=g.g(6),n=o,r=0;e<i;)e=(e+r)*t,n*=t,r=g.g(1);for(;e>=s;)e/=2,n/=2,r>>>=1;return(e+r)/n}},e.exports.resetGlobal=function(){Math.random=u},f(Math.random(),n)},74294:function(e,t,n){"use strict";var r=n(67286),o=n(62680),i=n(99500),s=r("%TypeError%"),a=r("%WeakMap%",!0),u=r("%Map%",!0),c=o("WeakMap.prototype.get",!0),l=o("WeakMap.prototype.set",!0),f=o("WeakMap.prototype.has",!0),p=o("Map.prototype.get",!0),d=o("Map.prototype.set",!0),h=o("Map.prototype.has",!0),g=function(e,t){for(var n,r=e;null!==(n=r.next);r=n)if(n.key===t)return r.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,r={assert:function(e){if(!r.has(e))throw new s("Side channel does not contain "+i(e))},get:function(r){if(a&&r&&("object"==typeof r||"function"==typeof r)){if(e)return c(e,r)}else if(u){if(t)return p(t,r)}else if(n)return function(e,t){var n=g(e,t);return n&&n.value}(n,r)},has:function(r){if(a&&r&&("object"==typeof r||"function"==typeof r)){if(e)return f(e,r)}else if(u){if(t)return h(t,r)}else if(n)return function(e,t){return!!g(e,t)}(n,r);return!1},set:function(r,o){a&&r&&("object"==typeof r||"function"==typeof r)?(e||(e=new a),l(e,r,o)):u?(t||(t=new u),d(t,r,o)):(n||(n={key:{},next:null}),function(e,t,n){var r=g(e,t);r?r.value=n:e.next={key:t,next:e.next,value:n}}(n,r,o))}};return r}},17768:function(e,t,n){var r=n(58749),o=n(87170),i=n(39431),s=n(31035)("socket.io-client");e.exports=t=u;var a=t.managers={};function u(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,o=r(e),u=o.source,c=o.id,l=o.path,f=a[c]&&l in a[c].nsps;return t.forceNew||t["force new connection"]||!1===t.multiplex||f?(s("ignoring socket cache for %s",u),n=i(u,t)):(a[c]||(s("new io instance for %s",u),a[c]=i(u,t)),n=a[c]),o.query&&!t.query&&(t.query=o.query),n.socket(o.path,t)}t.protocol=o.protocol,t.connect=u,t.Manager=n(39431),t.Socket=n(72243)},39431:function(e,t,n){var r=n(44065),o=n(72243),i=n(8023),s=n(87170),a=n(93073),u=n(42150),c=n(31035)("socket.io-client:manager"),l=n(92543),f=n(87911),p=Object.prototype.hasOwnProperty;function d(e,t){if(!(this instanceof d))return new d(e,t);e&&"object"==typeof e&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.nsps={},this.subs=[],this.opts=t,this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor||.5),this.backoff=new f({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this.readyState="closed",this.uri=e,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[];var n=t.parser||s;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this.autoConnect=!1!==t.autoConnect,this.autoConnect&&this.open()}e.exports=d,d.prototype.emitAll=function(){for(var e in this.emit.apply(this,arguments),this.nsps)p.call(this.nsps,e)&&this.nsps[e].emit.apply(this.nsps[e],arguments)},d.prototype.updateSocketIds=function(){for(var e in this.nsps)p.call(this.nsps,e)&&(this.nsps[e].id=this.generateId(e))},d.prototype.generateId=function(e){return("/"===e?"":e+"#")+this.engine.id},i(d.prototype),d.prototype.reconnection=function(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection},d.prototype.reconnectionAttempts=function(e){return arguments.length?(this._reconnectionAttempts=e,this):this._reconnectionAttempts},d.prototype.reconnectionDelay=function(e){return arguments.length?(this._reconnectionDelay=e,this.backoff&&this.backoff.setMin(e),this):this._reconnectionDelay},d.prototype.randomizationFactor=function(e){return arguments.length?(this._randomizationFactor=e,this.backoff&&this.backoff.setJitter(e),this):this._randomizationFactor},d.prototype.reconnectionDelayMax=function(e){return arguments.length?(this._reconnectionDelayMax=e,this.backoff&&this.backoff.setMax(e),this):this._reconnectionDelayMax},d.prototype.timeout=function(e){return arguments.length?(this._timeout=e,this):this._timeout},d.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},d.prototype.open=d.prototype.connect=function(e,t){if(c("readyState %s",this.readyState),~this.readyState.indexOf("open"))return this;c("opening %s",this.uri),this.engine=r(this.uri,this.opts);var n=this.engine,o=this;this.readyState="opening",this.skipReconnect=!1;var i=a(n,"open",(function(){o.onopen(),e&&e()})),s=a(n,"error",(function(t){if(c("connect_error"),o.cleanup(),o.readyState="closed",o.emitAll("connect_error",t),e){var n=new Error("Connection error");n.data=t,e(n)}else o.maybeReconnectOnOpen()}));if(!1!==this._timeout){var u=this._timeout;c("connect attempt will timeout after %d",u);var l=setTimeout((function(){c("connect attempt timed out after %d",u),i.destroy(),n.close(),n.emit("error","timeout"),o.emitAll("connect_timeout",u)}),u);this.subs.push({destroy:function(){clearTimeout(l)}})}return this.subs.push(i),this.subs.push(s),this},d.prototype.onopen=function(){c("open"),this.cleanup(),this.readyState="open",this.emit("open");var e=this.engine;this.subs.push(a(e,"data",u(this,"ondata"))),this.subs.push(a(e,"ping",u(this,"onping"))),this.subs.push(a(e,"pong",u(this,"onpong"))),this.subs.push(a(e,"error",u(this,"onerror"))),this.subs.push(a(e,"close",u(this,"onclose"))),this.subs.push(a(this.decoder,"decoded",u(this,"ondecoded")))},d.prototype.onping=function(){this.lastPing=new Date,this.emitAll("ping")},d.prototype.onpong=function(){this.emitAll("pong",new Date-this.lastPing)},d.prototype.ondata=function(e){this.decoder.add(e)},d.prototype.ondecoded=function(e){this.emit("packet",e)},d.prototype.onerror=function(e){c("error",e),this.emitAll("error",e)},d.prototype.socket=function(e,t){var n=this.nsps[e];if(!n){n=new o(this,e,t),this.nsps[e]=n;var r=this;n.on("connecting",i),n.on("connect",(function(){n.id=r.generateId(e)})),this.autoConnect&&i()}function i(){~l(r.connecting,n)||r.connecting.push(n)}return n},d.prototype.destroy=function(e){var t=l(this.connecting,e);~t&&this.connecting.splice(t,1),this.connecting.length||this.close()},d.prototype.packet=function(e){c("writing packet %j",e);var t=this;e.query&&0===e.type&&(e.nsp+="?"+e.query),t.encoding?t.packetBuffer.push(e):(t.encoding=!0,this.encoder.encode(e,(function(n){for(var r=0;r<n.length;r++)t.engine.write(n[r],e.options);t.encoding=!1,t.processPacketQueue()})))},d.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var e=this.packetBuffer.shift();this.packet(e)}},d.prototype.cleanup=function(){c("cleanup");for(var e=this.subs.length,t=0;t<e;t++){this.subs.shift().destroy()}this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},d.prototype.close=d.prototype.disconnect=function(){c("disconnect"),this.skipReconnect=!0,this.reconnecting=!1,"opening"===this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},d.prototype.onclose=function(e){c("onclose"),this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",e),this._reconnection&&!this.skipReconnect&&this.reconnect()},d.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var e=this;if(this.backoff.attempts>=this._reconnectionAttempts)c("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var t=this.backoff.duration();c("will wait %dms before reconnect attempt",t),this.reconnecting=!0;var n=setTimeout((function(){e.skipReconnect||(c("attempting reconnect"),e.emitAll("reconnect_attempt",e.backoff.attempts),e.emitAll("reconnecting",e.backoff.attempts),e.skipReconnect||e.open((function(t){t?(c("reconnect attempt error"),e.reconnecting=!1,e.reconnect(),e.emitAll("reconnect_error",t.data)):(c("reconnect success"),e.onreconnect())})))}),t);this.subs.push({destroy:function(){clearTimeout(n)}})}},d.prototype.onreconnect=function(){var e=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",e)}},93073:function(e){e.exports=function(e,t,n){return e.on(t,n),{destroy:function(){e.removeListener(t,n)}}}},72243:function(e,t,n){var r=n(87170),o=n(8023),i=n(81396),s=n(93073),a=n(42150),u=n(31035)("socket.io-client:socket"),c=n(54355),l=n(54632);e.exports=d;var f={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},p=o.prototype.emit;function d(e,t,n){this.io=e,this.nsp=t,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,this.flags={},n&&n.query&&(this.query=n.query),this.io.autoConnect&&this.open()}o(d.prototype),d.prototype.subEvents=function(){if(!this.subs){var e=this.io;this.subs=[s(e,"open",a(this,"onopen")),s(e,"packet",a(this,"onpacket")),s(e,"close",a(this,"onclose"))]}},d.prototype.open=d.prototype.connect=function(){return this.connected||(this.subEvents(),this.io.open(),"open"===this.io.readyState&&this.onopen(),this.emit("connecting")),this},d.prototype.send=function(){var e=i(arguments);return e.unshift("message"),this.emit.apply(this,e),this},d.prototype.emit=function(e){if(f.hasOwnProperty(e))return p.apply(this,arguments),this;var t=i(arguments),n={type:(void 0!==this.flags.binary?this.flags.binary:l(t))?r.BINARY_EVENT:r.EVENT,data:t,options:{}};return n.options.compress=!this.flags||!1!==this.flags.compress,"function"==typeof t[t.length-1]&&(u("emitting packet with ack id %d",this.ids),this.acks[this.ids]=t.pop(),n.id=this.ids++),this.connected?this.packet(n):this.sendBuffer.push(n),this.flags={},this},d.prototype.packet=function(e){e.nsp=this.nsp,this.io.packet(e)},d.prototype.onopen=function(){if(u("transport is open - connecting"),"/"!==this.nsp)if(this.query){var e="object"==typeof this.query?c.encode(this.query):this.query;u("sending connect packet with query %s",e),this.packet({type:r.CONNECT,query:e})}else this.packet({type:r.CONNECT})},d.prototype.onclose=function(e){u("close (%s)",e),this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",e)},d.prototype.onpacket=function(e){var t=e.nsp===this.nsp,n=e.type===r.ERROR&&"/"===e.nsp;if(t||n)switch(e.type){case r.CONNECT:this.onconnect();break;case r.EVENT:case r.BINARY_EVENT:this.onevent(e);break;case r.ACK:case r.BINARY_ACK:this.onack(e);break;case r.DISCONNECT:this.ondisconnect();break;case r.ERROR:this.emit("error",e.data)}},d.prototype.onevent=function(e){var t=e.data||[];u("emitting event %j",t),null!=e.id&&(u("attaching ack callback to event"),t.push(this.ack(e.id))),this.connected?p.apply(this,t):this.receiveBuffer.push(t)},d.prototype.ack=function(e){var t=this,n=!1;return function(){if(!n){n=!0;var o=i(arguments);u("sending ack %j",o),t.packet({type:l(o)?r.BINARY_ACK:r.ACK,id:e,data:o})}}},d.prototype.onack=function(e){var t=this.acks[e.id];"function"==typeof t?(u("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),delete this.acks[e.id]):u("bad ack %s",e.id)},d.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},d.prototype.emitBuffered=function(){var e;for(e=0;e<this.receiveBuffer.length;e++)p.apply(this,this.receiveBuffer[e]);for(this.receiveBuffer=[],e=0;e<this.sendBuffer.length;e++)this.packet(this.sendBuffer[e]);this.sendBuffer=[]},d.prototype.ondisconnect=function(){u("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")},d.prototype.destroy=function(){if(this.subs){for(var e=0;e<this.subs.length;e++)this.subs[e].destroy();this.subs=null}this.io.destroy(this)},d.prototype.close=d.prototype.disconnect=function(){return this.connected&&(u("performing disconnect (%s)",this.nsp),this.packet({type:r.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},d.prototype.compress=function(e){return this.flags.compress=e,this},d.prototype.binary=function(e){return this.flags.binary=e,this}},58749:function(e,t,n){var r=n(14243),o=n(31035)("socket.io-client:url");e.exports=function(e,t){var n=e;t=t||"undefined"!=typeof location&&location,null==e&&(e=t.protocol+"//"+t.host);"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?t.protocol+e:t.host+e),/^(https?|wss?):\/\//.test(e)||(o("protocol-less url %s",e),e=void 0!==t?t.protocol+"//"+e:"https://"+e),o("parse %s",e),n=r(e));n.port||(/^(http|ws)$/.test(n.protocol)?n.port="80":/^(http|ws)s$/.test(n.protocol)&&(n.port="443"));n.path=n.path||"/";var i=-1!==n.host.indexOf(":")?"["+n.host+"]":n.host;return n.id=n.protocol+"://"+i+":"+n.port,n.href=n.protocol+"://"+i+(t&&t.port===n.port?"":":"+n.port),n}},8023:function(e){function t(e){if(e)return function(e){for(var n in t.prototype)e[n]=t.prototype[n];return e}(e)}e.exports=t,t.prototype.on=t.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},t.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},t.prototype.off=t.prototype.removeListener=t.prototype.removeAllListeners=t.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var o=0;o<r.length;o++)if((n=r[o])===t||n.fn===t){r.splice(o,1);break}return this},t.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks["$"+e];if(n)for(var r=0,o=(n=n.slice(0)).length;r<o;++r)n[r].apply(this,t);return this},t.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},t.prototype.hasListeners=function(e){return!!this.listeners(e).length}},54146:function(e,t,n){var r=n(81708),o=n(24787),i=Object.prototype.toString,s="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===i.call(Blob),a="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===i.call(File);function u(e,t){if(!e)return e;if(o(e)){var n={_placeholder:!0,num:t.length};return t.push(e),n}if(r(e)){for(var i=new Array(e.length),s=0;s<e.length;s++)i[s]=u(e[s],t);return i}if("object"==typeof e&&!(e instanceof Date)){i={};for(var a in e)i[a]=u(e[a],t);return i}return e}function c(e,t){if(!e)return e;if(e&&e._placeholder)return t[e.num];if(r(e))for(var n=0;n<e.length;n++)e[n]=c(e[n],t);else if("object"==typeof e)for(var o in e)e[o]=c(e[o],t);return e}t.deconstructPacket=function(e){var t=[],n=e.data,r=e;return r.data=u(n,t),r.attachments=t.length,{packet:r,buffers:t}},t.reconstructPacket=function(e,t){return e.data=c(e.data,t),e.attachments=void 0,e},t.removeBlobs=function(e,t){var n=0,i=e;!function e(u,c,l){if(!u)return u;if(s&&u instanceof Blob||a&&u instanceof File){n++;var f=new FileReader;f.onload=function(){l?l[c]=this.result:i=this.result,--n||t(i)},f.readAsArrayBuffer(u)}else if(r(u))for(var p=0;p<u.length;p++)e(u[p],p,u);else if("object"==typeof u&&!o(u))for(var d in u)e(u[d],d,u)}(i),n||t(i)}},87170:function(e,t,n){var r=n(40744)("socket.io-parser"),o=n(2679),i=n(54146),s=n(81708),a=n(24787);function u(){}t.protocol=4,t.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],t.CONNECT=0,t.DISCONNECT=1,t.EVENT=2,t.ACK=3,t.ERROR=4,t.BINARY_EVENT=5,t.BINARY_ACK=6,t.Encoder=u,t.Decoder=f;var c=t.ERROR+'"encode error"';function l(e){var n=""+e.type;if(t.BINARY_EVENT!==e.type&&t.BINARY_ACK!==e.type||(n+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(n+=e.nsp+","),null!=e.id&&(n+=e.id),null!=e.data){var o=function(e){try{return JSON.stringify(e)}catch(t){return!1}}(e.data);if(!1===o)return c;n+=o}return r("encoded %j as %s",e,n),n}function f(){this.reconstructor=null}function p(e){this.reconPack=e,this.buffers=[]}function d(e){return{type:t.ERROR,data:"parser error: "+e}}u.prototype.encode=function(e,n){(r("encoding packet %j",e),t.BINARY_EVENT===e.type||t.BINARY_ACK===e.type)?function(e,t){function n(e){var n=i.deconstructPacket(e),r=l(n.packet),o=n.buffers;o.unshift(r),t(o)}i.removeBlobs(e,n)}(e,n):n([l(e)])},o(f.prototype),f.prototype.add=function(e){var n;if("string"==typeof e)n=function(e){var n=0,o={type:Number(e.charAt(0))};if(null==t.types[o.type])return d("unknown packet type "+o.type);if(t.BINARY_EVENT===o.type||t.BINARY_ACK===o.type){for(var i="";"-"!==e.charAt(++n)&&(i+=e.charAt(n),n!=e.length););if(i!=Number(i)||"-"!==e.charAt(n))throw new Error("Illegal attachments");o.attachments=Number(i)}if("/"===e.charAt(n+1))for(o.nsp="";++n;){if(","===(u=e.charAt(n)))break;if(o.nsp+=u,n===e.length)break}else o.nsp="/";var a=e.charAt(n+1);if(""!==a&&Number(a)==a){for(o.id="";++n;){var u;if(null==(u=e.charAt(n))||Number(u)!=u){--n;break}if(o.id+=e.charAt(n),n===e.length)break}o.id=Number(o.id)}if(e.charAt(++n)){var c=function(e){try{return JSON.parse(e)}catch(t){return!1}}(e.substr(n));if(!(!1!==c&&(o.type===t.ERROR||s(c))))return d("invalid payload");o.data=c}return r("decoded %s as %j",e,o),o}(e),t.BINARY_EVENT===n.type||t.BINARY_ACK===n.type?(this.reconstructor=new p(n),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",n)):this.emit("decoded",n);else{if(!a(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(n=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,this.emit("decoded",n))}},f.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},p.prototype.takeBinaryData=function(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){var t=i.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null},p.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},24787:function(e){e.exports=function(e){return t&&Buffer.isBuffer(e)||n&&(e instanceof ArrayBuffer||function(e){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer}(e))};var t="function"==typeof Buffer&&"function"==typeof Buffer.isBuffer,n="function"==typeof ArrayBuffer},2679:function(e){function t(e){if(e)return function(e){for(var n in t.prototype)e[n]=t.prototype[n];return e}(e)}e.exports=t,t.prototype.on=t.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},t.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},t.prototype.off=t.prototype.removeListener=t.prototype.removeAllListeners=t.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var o=0;o<r.length;o++)if((n=r[o])===t||n.fn===t){r.splice(o,1);break}return this},t.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks["$"+e];if(n)for(var r=0,o=(n=n.slice(0)).length;r<o;++r)n[r].apply(this,t);return this},t.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},t.prototype.hasListeners=function(e){return!!this.listeners(e).length}},81708:function(e){var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},73160:function(e){var t=1e3,n=60*t,r=60*n,o=24*r,i=365.25*o;function s(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}e.exports=function(e,a){a=a||{};var u,c=typeof e;if("string"===c&&e.length>0)return function(e){if((e=String(e)).length>100)return;var s=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(!s)return;var a=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return a*i;case"days":case"day":case"d":return a*o;case"hours":case"hour":case"hrs":case"hr":case"h":return a*r;case"minutes":case"minute":case"mins":case"min":case"m":return a*n;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}(e);if("number"===c&&!1===isNaN(e))return a.long?s(u=e,o,"day")||s(u,r,"hour")||s(u,n,"minute")||s(u,t,"second")||u+" ms":function(e){if(e>=o)return Math.round(e/o)+"d";if(e>=r)return Math.round(e/r)+"h";if(e>=n)return Math.round(e/n)+"m";if(e>=t)return Math.round(e/t)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},23729:function(e,t,n){var r=n(98595),o=n(88120),i=[n(30225)];e.exports=r.createStore(o,i)},30225:function(e,t,n){e.exports=function(){return n(35414),{}}},35414:function(){"object"!=typeof JSON&&(JSON={}),function(){"use strict";var rx_one=/^[\],:{}\s]*$/,rx_two=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rx_three=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rx_four=/(?:^|:|,)(?:\s*\[)+/g,rx_escapable=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,rx_dangerous=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta,rep;function f(e){return e<10?"0"+e:e}function this_value(){return this.valueOf()}function quote(e){return rx_escapable.lastIndex=0,rx_escapable.test(e)?'"'+e.replace(rx_escapable,(function(e){var t=meta[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}))+'"':'"'+e+'"'}function str(e,t){var n,r,o,i,s,a=gap,u=t[e];switch(u&&"object"==typeof u&&"function"==typeof u.toJSON&&(u=u.toJSON(e)),"function"==typeof rep&&(u=rep.call(t,e,u)),typeof u){case"string":return quote(u);case"number":return isFinite(u)?String(u):"null";case"boolean":case"null":return String(u);case"object":if(!u)return"null";if(gap+=indent,s=[],"[object Array]"===Object.prototype.toString.apply(u)){for(i=u.length,n=0;n<i;n+=1)s[n]=str(n,u)||"null";return o=0===s.length?"[]":gap?"[\n"+gap+s.join(",\n"+gap)+"\n"+a+"]":"["+s.join(",")+"]",gap=a,o}if(rep&&"object"==typeof rep)for(i=rep.length,n=0;n<i;n+=1)"string"==typeof rep[n]&&(o=str(r=rep[n],u))&&s.push(quote(r)+(gap?": ":":")+o);else for(r in u)Object.prototype.hasOwnProperty.call(u,r)&&(o=str(r,u))&&s.push(quote(r)+(gap?": ":":")+o);return o=0===s.length?"{}":gap?"{\n"+gap+s.join(",\n"+gap)+"\n"+a+"}":"{"+s.join(",")+"}",gap=a,o}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},Boolean.prototype.toJSON=this_value,Number.prototype.toJSON=this_value,String.prototype.toJSON=this_value),"function"!=typeof JSON.stringify&&(meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(e,t,n){var r;if(gap="",indent="","number"==typeof n)for(r=0;r<n;r+=1)indent+=" ";else"string"==typeof n&&(indent=n);if(rep=t,t&&"function"!=typeof t&&("object"!=typeof t||"number"!=typeof t.length))throw new Error("JSON.stringify");return str("",{"":e})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){var j;function walk(e,t){var n,r,o=e[t];if(o&&"object"==typeof o)for(n in o)Object.prototype.hasOwnProperty.call(o,n)&&(void 0!==(r=walk(o,n))?o[n]=r:delete o[n]);return reviver.call(e,t,o)}if(text=String(text),rx_dangerous.lastIndex=0,rx_dangerous.test(text)&&(text=text.replace(rx_dangerous,(function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}))),rx_one.test(text.replace(rx_two,"@").replace(rx_three,"]").replace(rx_four,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}()},98595:function(e,t,n){var r=n(49511),o=r.slice,i=r.pluck,s=r.each,a=r.bind,u=r.create,c=r.isList,l=r.isFunction,f=r.isObject;e.exports={createStore:d};var p={version:"2.0.12",enabled:!1,get:function(e,t){var n=this.storage.read(this._namespacePrefix+e);return this._deserialize(n,t)},set:function(e,t){return void 0===t?this.remove(e):(this.storage.write(this._namespacePrefix+e,this._serialize(t)),t)},remove:function(e){this.storage.remove(this._namespacePrefix+e)},each:function(e){var t=this;this.storage.each((function(n,r){e.call(t,t._deserialize(n),(r||"").replace(t._namespaceRegexp,""))}))},clearAll:function(){this.storage.clearAll()},hasNamespace:function(e){return this._namespacePrefix=="__storejs_"+e+"_"},createStore:function(){return d.apply(this,arguments)},addPlugin:function(e){this._addPlugin(e)},namespace:function(e){return d(this.storage,this.plugins,e)}};function d(e,t,n){n||(n=""),e&&!c(e)&&(e=[e]),t&&!c(t)&&(t=[t]);var r=n?"__storejs_"+n+"_":"",d=n?new RegExp("^"+r):null;if(!/^[a-zA-Z0-9_\-]*$/.test(n))throw new Error("store.js namespaces can only have alphanumerics + underscores and dashes");var h={_namespacePrefix:r,_namespaceRegexp:d,_testStorage:function(e){try{var t="__storejs__test__";e.write(t,t);var n=e.read(t)===t;return e.remove(t),n}catch(r){return!1}},_assignPluginFnProp:function(e,t){var n=this[t];this[t]=function(){var t=o(arguments,0),r=this;function i(){if(n)return s(arguments,(function(e,n){t[n]=e})),n.apply(r,t)}var a=[i].concat(t);return e.apply(r,a)}},_serialize:function(e){return JSON.stringify(e)},_deserialize:function(e,t){if(!e)return t;var n="";try{n=JSON.parse(e)}catch(r){n=e}return void 0!==n?n:t},_addStorage:function(e){this.enabled||this._testStorage(e)&&(this.storage=e,this.enabled=!0)},_addPlugin:function(e){var t=this;if(c(e))s(e,(function(e){t._addPlugin(e)}));else if(!i(this.plugins,(function(t){return e===t}))){if(this.plugins.push(e),!l(e))throw new Error("Plugins must be function values that return objects");var n=e.call(this);if(!f(n))throw new Error("Plugins must return an object of function properties");s(n,(function(n,r){if(!l(n))throw new Error("Bad plugin property: "+r+" from plugin "+e.name+". Plugins should only return functions.");t._assignPluginFnProp(n,r)}))}},addStorage:function(e){!function(){var e="undefined"==typeof console?null:console;if(e){(e.warn?e.warn:e.log).apply(e,arguments)}}("store.addStorage(storage) is deprecated. Use createStore([storages])"),this._addStorage(e)}},g=u(h,p,{plugins:[]});return g.raw={},s(g,(function(e,t){l(e)&&(g.raw[t]=a(g,e))})),s(e,(function(e){g._addStorage(e)})),s(t,(function(e){g._addPlugin(e)})),g}},49511:function(e){var t=Object.assign?Object.assign:function(e,t,n,r){for(var o=1;o<arguments.length;o++)s(Object(arguments[o]),(function(t,n){e[n]=t}));return e},n=function(){if(Object.create)return function(e,n,r,o){var s=i(arguments,1);return t.apply(this,[Object.create(e)].concat(s))};{function e(){}return function(n,r,o,s){var a=i(arguments,1);return e.prototype=n,t.apply(this,[new e].concat(a))}}}(),r=String.prototype.trim?function(e){return String.prototype.trim.call(e)}:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},o=window;function i(e,t){return Array.prototype.slice.call(e,t||0)}function s(e,t){a(e,(function(e,n){return t(e,n),!1}))}function a(e,t){if(u(e)){for(var n=0;n<e.length;n++)if(t(e[n],n))return e[n]}else for(var r in e)if(e.hasOwnProperty(r)&&t(e[r],r))return e[r]}function u(e){return null!=e&&"function"!=typeof e&&"number"==typeof e.length}e.exports={assign:t,create:n,trim:r,bind:function(e,t){return function(){return t.apply(e,Array.prototype.slice.call(arguments,0))}},slice:i,each:s,map:function(e,t){var n=u(e)?[]:{};return a(e,(function(e,r){return n[r]=t(e,r),!1})),n},pluck:a,isList:u,isFunction:function(e){return e&&"[object Function]"==={}.toString.call(e)},isObject:function(e){return e&&"[object Object]"==={}.toString.call(e)},Global:o}},88120:function(e,t,n){e.exports=[n(19367),n(50026),n(70240),n(65362),n(90109),n(71884)]},65362:function(e,t,n){var r=n(49511),o=r.Global,i=r.trim;e.exports={name:"cookieStorage",read:function(e){if(!e||!c(e))return null;var t="(?:^|.*;\\s*)"+escape(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(s.cookie.replace(new RegExp(t),"$1"))},write:function(e,t){if(!e)return;s.cookie=escape(e)+"="+escape(t)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/"},each:a,remove:u,clearAll:function(){a((function(e,t){u(t)}))}};var s=o.document;function a(e){for(var t=s.cookie.split(/; ?/g),n=t.length-1;n>=0;n--)if(i(t[n])){var r=t[n].split("="),o=unescape(r[0]);e(unescape(r[1]),o)}}function u(e){e&&c(e)&&(s.cookie=escape(e)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function c(e){return new RegExp("(?:^|;\\s*)"+escape(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(s.cookie)}},19367:function(e,t,n){var r=n(49511).Global;function o(){return r.localStorage}function i(e){return o().getItem(e)}e.exports={name:"localStorage",read:i,write:function(e,t){return o().setItem(e,t)},each:function(e){for(var t=o().length-1;t>=0;t--){var n=o().key(t);e(i(n),n)}},remove:function(e){return o().removeItem(e)},clearAll:function(){return o().clear()}}},71884:function(e){e.exports={name:"memoryStorage",read:function(e){return t[e]},write:function(e,n){t[e]=n},each:function(e){for(var n in t)t.hasOwnProperty(n)&&e(t[n],n)},remove:function(e){delete t[e]},clearAll:function(e){t={}}};var t={}},50026:function(e,t,n){var r=n(49511).Global;e.exports={name:"oldFF-globalStorage",read:function(e){return o[e]},write:function(e,t){o[e]=t},each:i,remove:function(e){return o.removeItem(e)},clearAll:function(){i((function(e,t){delete o[e]}))}};var o=r.globalStorage;function i(e){for(var t=o.length-1;t>=0;t--){var n=o.key(t);e(o[n],n)}}},70240:function(e,t,n){var r=n(49511).Global;e.exports={name:"oldIE-userDataStorage",write:function(e,t){if(a)return;var n=c(e);s((function(e){e.setAttribute(n,t),e.save(o)}))},read:function(e){if(a)return;var t=c(e),n=null;return s((function(e){n=e.getAttribute(t)})),n},each:function(e){s((function(t){for(var n=t.XMLDocument.documentElement.attributes,r=n.length-1;r>=0;r--){var o=n[r];e(t.getAttribute(o.name),o.name)}}))},remove:function(e){var t=c(e);s((function(e){e.removeAttribute(t),e.save(o)}))},clearAll:function(){s((function(e){var t=e.XMLDocument.documentElement.attributes;e.load(o);for(var n=t.length-1;n>=0;n--)e.removeAttribute(t[n].name);e.save(o)}))}};var o="storejs",i=r.document,s=function(){if(!i||!i.documentElement||!i.documentElement.addBehavior)return null;var e,t,n;try{(t=new ActiveXObject("htmlfile")).open(),t.write('<script>document.w=window<\/script><iframe src="/favicon.ico"></iframe>'),t.close(),e=t.w.frames[0].document,n=e.createElement("div")}catch(r){n=i.createElement("div"),e=i.body}return function(t){var r=[].slice.call(arguments,0);r.unshift(n),e.appendChild(n),n.addBehavior("#default#userData"),n.load(o),t.apply(this,r),e.removeChild(n)}}(),a=(r.navigator?r.navigator.userAgent:"").match(/ (MSIE 8|MSIE 9|MSIE 10)\./);var u=new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]","g");function c(e){return e.replace(/^\d/,"___$&").replace(u,"___")}},90109:function(e,t,n){var r=n(49511).Global;function o(){return r.sessionStorage}function i(e){return o().getItem(e)}e.exports={name:"sessionStorage",read:i,write:function(e,t){return o().setItem(e,t)},each:function(e){for(var t=o().length-1;t>=0;t--){var n=o().key(t);e(i(n),n)}},remove:function(e){return o().removeItem(e)},clearAll:function(){return o().clear()}}},49830:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(11184),o={contextDelimiter:"",onMissingKey:null};function i(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},o)this.options[n]=void 0!==t&&n in t?t[n]:o[n]}i.prototype.getPluralForm=function(e,t){var n,o,i,s=this.pluralForms[e];return s||("function"!=typeof(i=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(o=function(e){var t,n,r;for(t=e.split(";"),n=0;n<t.length;n++)if(0===(r=t[n].trim()).indexOf("plural="))return r.substr(7)}(n["Plural-Forms"]||n["plural-forms"]||n.plural_forms),i=(0,r.Z)(o)),s=this.pluralForms[e]=i),s(t)},i.prototype.dcnpgettext=function(e,t,n,r,o){var i,s,a;return i=void 0===o?0:this.getPluralForm(e,o),s=n,t&&(s=t+this.options.contextDelimiter+n),(a=this.data[e][s])&&a[i]?a[i]:(this.options.onMissingKey&&this.options.onMissingKey(n,e),0===i?n:r)}},77879:function(e,t,n){"use strict";n.d(t,{c:function(){return r}});const r=new(n(82066).QueryClient)},44966:function(e,t,n){"use strict";n.d(t,{Z:function(){return k}});var r=n(69307),o=(n(88691),n(11481)),i=n(4792),s=n(18717),a=n(43292),u=n(38606),c=n(70858),l=n(21058),f=n(59852),p=n(29726),d=n(15223),h=n(6255),g=n(91668),m=n(18724),y=n(76693),v=n(9044),b=n(82139),w=n(71799),_=n(9817),E=n(95884),S=n(90924);const C=(0,E.U)({currentUser:m.ZP,sites:b.ZP}),P=(0,s.MT)(C,(0,s.qC)(h.Z,S.f,(0,s.md)(a.Z,d.Z,y.Z)));function k(e){let{children:t}=e;return(0,r.createElement)(i.zt,{store:P},(0,r.createElement)(r.Fragment,null,(0,r.createElement)(u.Z,{siteId:window._currentSiteId}),t))}(0,v.P)(P),P.dispatch((0,_.z)({name:"gutenberg-editor"})),P.dispatch((0,w.B)(window._currentSiteId)),o.ZP.configure({defaultLocaleSlug:window.helpCenterLocale}),(0,f.G)().then(p.v).then((e=>{e&&P.dispatch((0,g.lx)(e)),(0,c.M)(e||void 0,(0,l.Z)(P))}))},36707:function(){window.configData={env_id:"development",i18n_default_locale_slug:"en",google_analytics_key:"UA-10673494-15",client_slug:"browser",twemoji_cdn_url:"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/",happychat_url:"https://happychat.io/customer",site_filter:[],sections:{},enable_all_sections:!1,livechat_support_locales:["en"],upwork_support_locales:["de"],jetpack_support_blog:"jetpackme.wordpress.com",wpcom_support_blog:"en.support.wordpress.com",gutenboarding_url:"/new",features:{happychat:!0},signup_url:"/",discover_blog_id:53424024,discover_feed_id:41325786,directly_rtm_widget_environment:"production",directly_rtm_widget_ids:{sandbox:"8a2968fc57d1e2f40157f42bf2d43160",production:"8a12a3ca5a21a619015a47e492b02cfc"}},window.process={env:{NODE_DEBUG:"dev"}}},99477:function(e,t,n){"use strict";var r=n(69307),o=n(36115),i=n(53762),s=n(92421),a=n(55213),u=n(30849),c=n(55609),l=n(94333),f=n(9818),p=n(85192),d=n(98817),h=n(72779),g=n.n(h),m=n(82066),y=n(4792),v=n(83377),b=n(73041),w=n(77879),_=n(44966);n(39142);function E(){const e=(0,l.useMediaQuery)("(min-width: 480px)"),t=(0,y.v9)(b.Z),n=(0,f.useSelect)((e=>e("automattic/help-center").isHelpCenterShown())),[u,d]=(0,r.useState)(!1),{setShowHelpCenter:h}=(0,f.useDispatch)("automattic/help-center"),[m,w]=(0,r.useState)(!1),_=(0,y.v9)(v.Z)||!1,{data:E,isLoading:S}=(0,i.R)(window._currentSiteId,_);(0,r.useEffect)((()=>{!S&&E&&w(!E.has_seen_whats_new_modal)}),[E,S]);(0,r.useEffect)((()=>{const e=setTimeout((()=>d(!0)),0);return()=>clearTimeout(e)}),[]);const C=(0,r.createElement)(c.Button,{className:g()("entry-point-button","help-center",{"is-active":n}),onClick:()=>{(0,o.jN)("calypso_inlinehelp_"+(n?"close":"show"),{location:"help-center",section:t}),h(!n)},icon:(0,r.createElement)(s.Z,{newItems:m}),label:"Help","aria-pressed":!!n,"aria-expanded":!!n});return(0,r.createElement)(r.Fragment,null,e&&u&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(p.Ox,{scope:"core/edit-post"},C),(0,r.createElement)(p.Ox,{scope:"core/edit-site"},C),(0,r.createElement)(p.Ox,{scope:"core/edit-widgets"},C)),n&&(0,r.createElement)(a.Z,{handleClose:()=>h(!1)}))}(0,d.registerPlugin)("etk-help-center",{render:()=>(0,r.createElement)(m.QueryClientProvider,{client:w.c},(0,r.createElement)(_.Z,null,(0,r.createElement)(u.Iw,{localeSlug:window.helpCenterLocale},(0,r.createElement)(E,null))))})},67459:function(e,t,n){"use strict";n.d(t,{p:function(){return l},x:function(){return f}});var r=n(85694),o=n(83685),i=n(96598),s=n(26991),a=n(26347),u=n(64802),c=n(20336);const l=(0,o.P1)(((e,t)=>{const n=(0,u.Z)(e,t);return(0,r._)(n,{root:(0,c.Z)(e,t),homepage:(0,c.Z)(e,t,"homepage"),identity:(0,c.Z)(e,t,"identity"),menus:(0,c.Z)(e,t,"menus")},(0,i.H)(),(0,a.Nf)())}),((e,t)=>[(0,u.Z)(e,t)]));function f(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4;if(!e.length)return[];const r=e.split(/[\W_]+/g).filter(Boolean).map((e=>e.toLowerCase()));if(!r.length)return[];const o=new RegExp(r.map(((e,t)=>t+1===r.length?`(?=.*\\b${e})`:`(?=.*\\b${e}\\b)`)).join("")+".+","gi"),i=[],a=[],u=[];return t.forEach((t=>{var n;t.title.toLowerCase()===e.toLowerCase()?i.push(t):o.test(t.title)?a.push(t):"en"===(0,s.Y)()&&null!==(n=t.synonyms)&&void 0!==n&&n.some((e=>r.includes(e)))&&u.push(t)})),[...i,...a,...u].slice(0,n)}},91040:function(e,t,n){"use strict";n.d(t,{Di:function(){return r}});const r=9619154},71688:function(e,t,n){"use strict";var r=n(69307),o=n(36115),i=n(38049),s=n.n(i),a=n(10975),u=n(13980),c=n.n(u),l=n(99196),f=n(4792),p=n(57925),d=n(73041);const h=s()("calypso:inline-help"),g=e=>{let{searchQuery:t="",location:n="inline-help-popover",isVisible:i=!0,placeholder:s,onSearch:u}=e;const c=(0,l.useRef)(),g=(0,a.Z)(),m=(0,f.v9)(d.Z);(0,l.useEffect)((()=>{var e;const t=null===(e=c.current)||void 0===e?void 0:e.searchInput;if("inline-help-popover"!==n||!t||!i)return;const r=setTimeout((()=>t.focus()),0);return()=>window.clearTimeout(r)}),[c,n,i]);return(0,r.createElement)(p.Z,{ref:c,initialValue:t,onSearch:e=>{const r=e.trim();"help-center"===n?(null==r?void 0:r.length)>2&&(0,o.jN)("calypso_inlinehelp_search",{search_query:t,location:n,section:m}):null!=r&&r.length&&(h("search query received: ",t),(0,o.jN)("calypso_inlinehelp_search",{search_query:t,location:n,section:m})),null==u||u(e)},placeholder:s||g("Search for help…"),delaySearch:!0})};g.propTypes={searchQuery:c().string,onSearch:c().func,placeholder:c().string,location:c().string},t.Z=g},85774:function(e,t,n){"use strict";var r=n(69307),o=n(13980),i=n.n(o),s=n(38782);const a=e=>{let{post:t,isLoading:n}=e;return n||!t?(0,r.createElement)("div",{className:"support-article-dialog__header is-placeholder"},(0,r.createElement)("h1",{className:"support-article-dialog__header-title is-placeholder"},"Post loading…")):(0,r.createElement)("div",{className:"support-article-dialog__header"},(0,r.createElement)("h1",{className:"support-article-dialog__header-title"},(0,r.createElement)(s.Z,{className:"support-article-dialog__header-title-link",href:t.URL,target:"_blank",icon:!1},t.title)))};a.propTypes={post:i().object,isLoading:i().bool},t.Z=a},56077:function(e,t,n){"use strict";var r=n(56666),o=n(13980),i=n.n(o),s=n(99196),a=n(4792),u=n(77327),c=n(93125),l=n(6712),f=n(83377);class p extends s.Component{constructor(){super(...arguments),(0,r.Z)(this,"maybeFetch",(()=>{const{post:e,postKey:t,isHelpCenter:n,isSimpleSite:r}=this.props;!(0,u.J0)(t)||e&&"minimal"!==e._state||this.props.fetchPost(t,n,r)}))}componentDidMount(){this.maybeFetch()}componentDidUpdate(){this.maybeFetch()}render(){return null}}(0,r.Z)(p,"propTypes",{postKey:i().object.isRequired,isHelpCenter:i().bool}),t.Z=(0,a.$j)(((e,t)=>({post:(0,l.UK)(e,t.postKey),isHelpCenter:t.isHelpCenter,isSimpleSite:(0,f.Z)(e)})),{fetchPost:c.SD})(p)},9232:function(e,t,n){"use strict";var r=n(13980),o=n.n(r),i=n(99196),s=n(4792),a=n(63262),u=n(58311);function c(e){let{siteId:t}=e;const n=(0,s.I0)(),r=(0,s.v9)((e=>(0,u._g)(e,t)));return(0,i.useEffect)((()=>{t&&r&&n((0,a.LV)(t))}),[n,t,r]),null}c.propTypes={siteId:o().number},t.Z=c},38606:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(69307),o=n(13980),i=n.n(o),s=n(99196),a=n(4792),u=n(85300),c=n(87720),l=n(40540),f=n(52239),p=n(58863),d=n(79791);const h=e=>(0,u.Oz)(e,"recentSites");function g(){const e=(0,a.I0)();return(0,s.useEffect)((()=>{e(((e,t)=>{(0,f.Z)(t())||e((0,l.BU)())}))}),[e]),null}const m=e=>(t,n)=>{e&&!(0,p.Z)(n(),e)&&t((0,l.LV)(e))};function y(e){let{siteId:t}=e;const n=(0,a.I0)();return(0,s.useEffect)((()=>{t&&n(m(t))}),[n,t]),null}function v(){const e=(0,a.v9)(c.Z),t=(0,a.v9)(h),n=(0,a.I0)();return(0,s.useEffect)((()=>{const r=[...e?[e]:[],...t??[]];r.length&&n((e=>(t,n)=>{const r=n();(0,d.Z)(r)||e.forEach((e=>t(m(e))))})(r))}),[n,e,t]),null}function b(e){let{siteId:t,allSites:n=!1,primaryAndRecent:o=!1}=e;return(0,r.createElement)(s.Fragment,null,n&&(0,r.createElement)(g,null),t&&(0,r.createElement)(y,{siteId:t}),o&&(0,r.createElement)(v,null))}b.propTypes={allSites:i().bool,primaryAndRecent:i().bool,siteId:i().oneOfType([i().number,i().string])}},66525:function(e,t,n){"use strict";var r=n(99196),o=n(4792),i=n(36747),s=n(86169),a=n(12726);const u=(e,t)=>{const n=t(),r=(0,i.rc)(n),o=(0,a.Mo)(n),u=(0,a.iJ)(n);!r||o||u||e((0,s.Y9)(r))};t.Z=function(){const e=(0,o.I0)();return(0,r.useEffect)((()=>{e(u)})),null}},22169:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(84898),o=n(38049),i=n.n(o),s=n(92819),a=n(99196),u=n(91850),c=n.n(u),l=n(16771);const f=()=>{},p=i()("calypso:components:embed-container"),d={'blockquote[class^="instagram-"]':function e(t){if(p("processing instagram for",t),"undefined"!=typeof instgrm){try{window.instgrm.Embeds.process()}catch(n){}return}b("https://platform.instagram.com/en_US/embeds.js",e.bind(null,t))},'blockquote[class^="twitter-"], a[class^="twitter-"]':function e(t){if(p("processing twitter for",t),"undefined"!=typeof twttr){try{window.twttr.widgets.load(t)}catch(n){}return}b("https://platform.twitter.com/widgets.js",e.bind(null,t))},"fb\\:post, [class^=fb-]":function(e){if(p("processing facebook for",e),"undefined"!=typeof fb)return;b("https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.2",f)},"[class^=tumblr-]":function(e){if(p("processing tumblr for",e),w)return;function t(){(0,s.forEach)(document.querySelectorAll('script[src="https://secure.assets.tumblr.com/post.js"]'),(function(e){e.parentNode.removeChild(e)})),w=!1}w=!0,setTimeout((function(){(0,r.ve)("https://secure.assets.tumblr.com/post.js",t)}),30)},".jetpack-slideshow":function(e){p("processing slideshow for",e);let t=document.head.querySelector(`link[href="${g.CSS}"]`);window.jetpackSlideshowSettings={spinner:g.SPINNER},t||(t=!0,function(e){const t=document.createElement("link");t.rel="stylesheet",t.type="text/css",t.href=e,document.head.appendChild(t)}(g.CSS));const n=e.parentNode.getElementsByClassName("jetpack-slideshow-noscript");(0,s.forEach)(n,(e=>{e.classList.add("hidden")})),window.jQuery&&window.jQuery.prototype.cycle?E():window.jQuery&&!window.jQuery.prototype.cycle?b(g.CYCLE_JS,(()=>{E()})):(0,l.t)(g.CYCLE_JS,(()=>{E()}))},".wp-block-jetpack-story":function(e){p("processing story for ",e);const t=e.querySelector("a.wp-story-container, a.wp-story-overlay");t&&t.setAttribute("target","_blank")},".embed-reddit":function(e){p("processing reddit for ",e),b("https://embed.redditmedia.com/widgets/platform.js",f)}},h=`?v=${Math.floor((new Date).getTime()/864e6)}`,g={CSS:`https://s0.wp.com/wp-content/mu-plugins/shortcodes/css/slideshow-shortcode.css${h}`,CYCLE_JS:`https://s0.wp.com/wp-content/mu-plugins/shortcodes/js/jquery.cycle.min.js${h}`,JS:`https://s0.wp.com/wp-content/mu-plugins/shortcodes/js/slideshow-shortcode.js${h}`,SPINNER:`https://s0.wp.com/wp-content/mu-plugins/shortcodes/img/slideshow-loader.gif${h}`};function m(e){Object.entries(d).forEach((t=>{let[n,r]=t;const o=e.querySelectorAll(n);(0,s.forEach)((0,s.filter)(o,y),r)}))}function y(e){return!e.hasAttribute("data-wpcom-embed-processed")&&(e.setAttribute("data-wpcom-embed-processed","1"),!0)}const v={};function b(e,t){let n=v[e];n||(n=new Promise((function(t,n){(0,r.ve)(e,(function(e){e?n(e):t()}))})),v[e]=n),n.then(t,(function(t){p("error loading "+e,t),v[e]=null}))}let w;function _(){window.jQuery("body").trigger("post-load")}function E(){window.JetpackSlideshow&&_(),b(g.JS,(()=>{_()}))}class S extends a.PureComponent{componentDidMount(){m(c().findDOMNode(this))}componentDidUpdate(){m(c().findDOMNode(this))}render(){return a.Children.only(this.props.children)}}},38782:function(e,t,n){"use strict";var r=n(56666),o=n(69307),i=n(56399),s=n(97493),a=n(47498),u=n(72779),c=n.n(u),l=n(11481),f=n(92819),p=n(13980),d=n.n(p),h=n(99196);class g extends h.Component{render(){const e=c()("external-link",this.props.className,{"icon-first":this.props.showIconFirst,"has-icon":this.props.icon}),t={...(0,f.omit)(this.props,"icon","iconSize","showIconFirst","iconClassName"),className:e,rel:"external"};this.props.icon&&(t.target="_blank"),t.target&&(t.rel=t.rel.concat(" noopener noreferrer")),t.href&&(t.href=(0,a.aq)(t.href));const n=(0,o.createElement)(i.Z,{className:this.props.iconClassName,icon:"external",size:this.props.iconSize});return(0,o.createElement)("a",t,this.props.icon&&this.props.showIconFirst&&n,this.props.children,this.props.icon&&!this.props.showIconFirst&&n,this.props.icon&&(0,o.createElement)(s.Z,null,(0,l.Iu)("(opens in a new tab)",{comment:"accessibility label for an external link"})))}}(0,r.Z)(g,"defaultProps",{iconSize:18,showIconFirst:!1}),(0,r.Z)(g,"propTypes",{className:d().string,href:d().string,onClick:d().func,icon:d().bool,iconSize:d().number,target:d().string,showIconFirst:d().bool,iconClassName:d().string}),t.Z=g},66753:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(7896),o=n(56666),i=n(69307),s=n(72779),a=n.n(s),u=n(13980),c=n.n(u),l=n(99196);class f extends l.PureComponent{constructor(){super(...arguments),(0,o.Z)(this,"state",{value:this.props.value||""}),(0,o.Z)(this,"currentTextField",void 0),(0,o.Z)(this,"textFieldRef",(e=>{this.currentTextField=e;const{inputRef:t}=this.props;t&&("function"==typeof t?t(e):t.current=e)})),(0,o.Z)(this,"selectOnFocus",(e=>{this.props.selectOnFocus&&e.target.select()})),(0,o.Z)(this,"onChange",(e=>{var t,n;this.setState({value:e.target.value}),null===(t=(n=this.props).onChange)||void 0===t||t.call(n,e)}))}componentDidUpdate(e){this.updateValueIfNeeded(e.value)}updateValueIfNeeded(e){const{value:t}=this.props;e===t&&t===this.state.value||this.setState({value:t})}focus(){this.currentTextField&&this.currentTextField.focus()}render(){const{isError:e,isValid:t,selectOnFocus:n,inputRef:o,onChange:s,value:u,...c}=this.props,l=a()("form-text-input",this.props.className,{"is-error":this.props.isError,"is-valid":this.props.isValid});return(0,i.createElement)("input",(0,r.Z)({type:"text"},c,{value:this.state.value,ref:this.textFieldRef,className:l,onClick:this.selectOnFocus,onChange:this.onChange}))}}(0,o.Z)(f,"propTypes",{isError:c().bool,isValid:c().bool,selectOnFocus:c().bool,className:c().string})},57925:function(e,t,n){"use strict";var r=n(7896),o=n(69307),i=n(98148),s=n(72779),a=n.n(s),u=n(99196),c=n(12982);const l=(e,t)=>{let{className:n,...s}=e;return(0,o.createElement)(i.Z,{className:a()("search-card",n)},(0,o.createElement)(c.Z,(0,r.Z)({ref:t},s)))};t.Z=(0,u.forwardRef)(l)},12982:function(e,t,n){"use strict";var r=n(7896),o=n(56666),i=n(69307),s=n(6010),a=n(79321),u=n(5869),c=n(17108),l=n(60199),f=n(72779),p=n.n(f),d=n(11481),h=n(92819),g=n(13980),m=n.n(g),y=n(99196),v=n(88767),b=n(66753),w=n(28816),_=n(44567);const E=()=>{};function S(e,t){switch(t.key){case" ":case"Enter":this[e](t)}}class C extends y.Component{constructor(e){super(e),(0,o.Z)(this,"setOpenIconRef",(e=>this.openIcon=e)),(0,o.Z)(this,"setSearchInputRef",(e=>this.searchInput=e)),(0,o.Z)(this,"setOverlayRef",(e=>this.overlay=e)),(0,o.Z)(this,"scrollOverlay",(()=>{this.overlay&&window.requestAnimationFrame((()=>{this.overlay&&this.searchInput&&(this.overlay.scrollLeft=this.getScrollLeft(this.searchInput))}))})),(0,o.Z)(this,"getScrollLeft",(e=>{if(!e.createTextRange)return e.scrollLeft;const t=e.createTextRange(),n=window.getComputedStyle(e,void 0),r=parseFloat(n.paddingLeft),o=t.getBoundingClientRect();return e.getBoundingClientRect().left+e.clientLeft+r-o.left})),(0,o.Z)(this,"focus",(()=>{setTimeout((()=>this.searchInput&&this.searchInput.focus()),0)})),(0,o.Z)(this,"blur",(()=>this.searchInput.blur())),(0,o.Z)(this,"clear",(()=>this.setState({keyword:""}))),(0,o.Z)(this,"onBlur",(e=>{this.props.onBlur&&this.props.onBlur(e),this.setState({hasFocus:!1})})),(0,o.Z)(this,"onChange",(e=>{this.setState({keyword:e.target.value})})),(0,o.Z)(this,"openSearch",(e=>{e.preventDefault(),this.setState({keyword:"",isOpen:!0}),(0,_.Yh)(this.props.analyticsGroup,"Clicked Open Search")})),(0,o.Z)(this,"closeSearch",(e=>{e.preventDefault(),this.props.disabled||(this.setState({keyword:"",isOpen:this.props.isOpen||!1}),this.searchInput.value="",this.props.pinned?(this.searchInput.blur(),this.openIcon.focus()):this.searchInput.focus(),this.props.onSearchClose(e),(0,_.Yh)(this.props.analyticsGroup,"Clicked Close Search"))})),(0,o.Z)(this,"keyUp",(e=>{"Enter"===e.key&&(0,a.tq)()&&this.blur(),this.props.pinned&&("Escape"===e.key&&this.closeSearch(e),this.scrollOverlay())})),(0,o.Z)(this,"keyDown",(e=>{this.scrollOverlay(),"Escape"===e.key&&""===e.target.value&&this.closeSearch(e),this.props.onKeyDown(e)})),(0,o.Z)(this,"onFocus",(()=>{if(!this.searchInput)return;const e=this.searchInput.value;e&&(this.searchInput.value="",this.searchInput.value=e),this.setState({hasFocus:!0}),this.props.onSearchOpen()})),this.instanceId=(0,v.Z)(),this.state={keyword:e.initialValue||"",isOpen:!!e.isOpen,hasFocus:e.autoFocus},this.closeListener=S.bind(this,"closeSearch"),this.openListener=S.bind(this,"openSearch")}UNSAFE_componentWillReceiveProps(e){e.onSearch===this.props.onSearch&&e.delaySearch===this.props.delaySearch||(this.onSearch=this.props.delaySearch?(0,h.debounce)(this.props.onSearch,this.props.delayTimeout):this.props.onSearch),this.props.isOpen!==e.isOpen&&this.setState({isOpen:e.isOpen}),this.props.value===e.value||!e.value&&""!==e.value||e.value===this.state.keyword||this.setState({keyword:e.value})}componentDidUpdate(e,t){this.scrollOverlay(),(this.state.isOpen&&!t.isOpen||this.props.autoFocus&&!e.autoFocus)&&this.focus(),this.state.keyword!==t.keyword&&(this.state.keyword?this.onSearch(this.state.keyword):(this.props.delaySearch&&this.onSearch.cancel(),this.props.onSearch(this.state.keyword)),this.props.onSearchChange(this.state.keyword))}componentDidMount(){this.onSearch=this.props.delaySearch?(0,h.debounce)(this.props.onSearch,this.props.delayTimeout):this.props.onSearch}render(){const e=this.state.keyword,t=this.props.placeholder||d.ZP.translate("Search…",{textOnly:!0}),n=this.props.inputLabel,o=this.props.pinned&&!this.state.isOpen,a=this.state.isOpen||!this.props.pinned||this.props.initialValue,l=this.props.disableAutocorrect&&{autoComplete:"off",autoCorrect:"off",spellCheck:"false"},f=p()(this.props.additionalClasses,this.props.dir,{"is-expanded-to-container":this.props.fitsContainer,"is-open":a,"is-searching":this.props.searching,"is-compact":this.props.compact,"has-focus":!this.props.hideFocus&&this.state.hasFocus,"has-open-icon":!this.props.hideOpenIcon,search:!0}),h=p()("search__input-fade",this.props.dir),g=p()("search__input",this.props.dir);return(0,i.createElement)("div",{dir:this.props.dir||null,className:f,role:"search"},(0,i.createElement)(s.$,null),(0,i.createElement)("div",{role:"button",className:"search__icon-navigation",ref:this.setOpenIconRef,onClick:o?this.openSearch:this.focus,tabIndex:o?"0":null,onKeyDown:o?this.openListener:null,"aria-controls":"search-component-"+this.instanceId,"aria-label":d.ZP.translate("Open Search",{context:"button label"})},!this.props.hideOpenIcon&&(0,i.createElement)(u.Z,{icon:c.Z,className:"search__open-icon"})),(0,i.createElement)("div",{className:h},(0,i.createElement)(b.Z,(0,r.Z)({type:"search",id:"search-component-"+this.instanceId,autoFocus:this.props.autoFocus,"aria-describedby":this.props.describedBy,"aria-label":n||d.ZP.translate("Search"),"aria-hidden":!a,className:g,placeholder:t,role:"searchbox",value:e,inputRef:this.setSearchInputRef,onChange:this.onChange,onKeyUp:this.keyUp,onKeyDown:this.keyDown,onMouseUp:this.props.onClick,onFocus:this.onFocus,onBlur:this.onBlur,disabled:this.props.disabled,autoCapitalize:"none",dir:this.props.dir,maxLength:this.props.maxLength,minLength:this.props.minLength},l)),this.props.overlayStyling&&this.renderStylingDiv()),this.closeButton(),this.props.children)}renderStylingDiv(){return(0,i.createElement)("div",{className:"search__text-overlay",ref:this.setOverlayRef},this.props.overlayStyling(this.state.keyword))}closeButton(){return this.props.hideClose||!this.state.keyword&&!this.state.isOpen?null:(0,i.createElement)("div",{role:"button",className:"search__icon-navigation",onClick:this.closeSearch,tabIndex:"0",onKeyDown:this.closeListener,"aria-controls":"search-component-"+this.instanceId,"aria-label":d.ZP.translate("Close Search",{context:"button label"})},(0,i.createElement)(u.Z,{icon:l.Z,className:"search__close-icon"}))}}(0,o.Z)(C,"propTypes",{additionalClasses:m().string,initialValue:m().string,value:m().string,placeholder:w.Z,pinned:m().bool,delaySearch:m().bool,delayTimeout:m().number,describedBy:m().string,onSearch:m().func.isRequired,onSearchChange:m().func,onSearchOpen:m().func,onSearchClose:m().func,analyticsGroup:m().string,overlayStyling:m().func,autoFocus:m().bool,disabled:m().bool,onKeyDown:m().func,onClick:m().func,disableAutocorrect:m().bool,onBlur:m().func,searching:m().bool,isOpen:m().bool,dir:m().oneOf(["ltr","rtl"]),fitsContainer:m().bool,maxLength:m().number,minLength:m().number,hideClose:m().bool,hideFocus:m().bool,compact:m().bool,hideOpenIcon:m().bool,inputLabel:m().string}),(0,o.Z)(C,"defaultProps",{pinned:!1,delaySearch:!1,delayTimeout:300,autoFocus:!1,disabled:!1,describedBy:null,onSearchChange:E,onSearchOpen:E,onSearchClose:E,onKeyDown:E,onClick:E,overlayStyling:void 0,disableAutocorrect:!1,searching:!1,isOpen:!1,dir:void 0,fitsContainer:!1,hideClose:!1,hideFocus:!1,compact:!1,hideOpenIcon:!1}),t.Z=C},28816:function(e,t){"use strict";t.Z=function(e){function t(t,n,r,o,i){return o=o||"ANONYMOUS",void 0===n[r]?t?new Error("Required "+i+" `"+r+"` was not specified in `"+o+"`."):null:e(n,r,o,i)}const n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}((function(e,t,n){n=n||"ANONYMOUS";const r=e[t];return null!=r?"string"==typeof r||"object"==typeof r&&"data"===r.type||"object"==typeof r&&["object","function"].includes(typeof r.type)&&("Translatable"===r.type.name||String(r.type.displayName).match(/\(Translatable\)/))?null:new Error("Invalid value for Translatable string in `"+n+"`. Please pass a translate() call."):null}))},1230:function(e,t,n){"use strict";var r=n(6339),o=n(82066),i=n(4792),s=n(72429),a=n(30963);t.Z=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const u=(0,i.v9)(a.Z);return(0,o.useQuery)(["support-article-alternates",e,t],(()=>s.Z.req.get(`/support/alternates/${e}/posts/${t}`)),{...n,enabled:!(0,r.TF)(u)&&!(!e||!t),refetchOnMount:!1,refetchOnWindowFocus:!1,select:e=>e[u]})}},36190:function(e,t,n){"use strict";n.d(t,{wZ:function(){return i},ZK:function(){return s},_O:function(){return a},n_:function(){return u},CO:function(){return c},xb:function(){return l},kL:function(){return f},GL:function(){return p},eG:function(){return d},hR:function(){return h},Mf:function(){return g},Q1:function(){return m},az:function(){return y},S$:function(){return v},nF:function(){return b},fF:function(){return w},lB:function(){return _},n5:function(){return E},Dt:function(){return S},j_:function(){return C},EV:function(){return P},y2:function(){return k},yf:function(){return I},xV:function(){return A},E9:function(){return T},O5:function(){return R},pP:function(){return O},Ai:function(){return x},zR:function(){return F},Uk:function(){return L},L:function(){return U},cf:function(){return Z},Hb:function(){return D},zv:function(){return j},oh:function(){return N}});var r=n(20899),o=n(38049);const i=!0,s=!0,a=!0,u=!0,c=!1,l=!0,f=!1,p=!0,d=!0,h=!1,g=!0,m=!1,y=!1,v=!1,b=!1,w=n.n(o)()("calypso:analytics:ad-tracking"),_="https://connect.facebook.net/en_US/fbevents.js",E="https://www.googletagmanager.com/gtag/js?id=",S="https://bat.bing.com/bat.js",C="https://static.criteo.net/js/ld/ld.js",P="https://sp.analytics.yahoo.com/spp.pl?a=10000&.yp=10014088",k="https://tags.w55c.net/rs?id=cab35a3a79dc4173b8ce2c47adad2cea&t=marketing",I="https://tags.w55c.net/rs?id=d239e9cb6d164f7299d2dbf7298f930a&t=marketing",A="https://d.adroll.com/ipixel/PEJHFPIHPJC2PD3IMTCWTT/WV6A5O5PBJBIBDYGZHVBM5?name=ded132f8",T="https://d.adroll.com/fb/ipixel/PEJHFPIHPJC2PD3IMTCWTT/WV6A5O5PBJBIBDYGZHVBM5?name=ded132f8",R="https://d.adroll.com/ipixel/PEJHFPIHPJC2PD3IMTCWTT/WV6A5O5PBJBIBDYGZHVBM5?name=8eb337b5",O="https://d.adroll.com/fb/ipixel/PEJHFPIHPJC2PD3IMTCWTT/WV6A5O5PBJBIBDYGZHVBM5?name=8eb337b5",x="https://static.ads-twitter.com/uwt.js",F="https://snap.licdn.com/li.lms-analytics/insight.min.js",L="https://a.quora.com/qevents.js",U="https://amplify.outbrain.com/cp/obtp.js",Z="https://s.pinimg.com/ct/core.js",D={bingInit:"4074038",criteo:"31321",dcmFloodlightAdvertiserId:"6355556",facebookInit:"823166884443641",facebookJetpackInit:"919484458159593",fullStory:"120RG4",fullStoryJetpack:"181XXV",linkedInPartnerId:"195308",outbrainAdvId:"00f0f5287433c2851cc0cb917c7ff0465e",pinterestInit:"2613194105266",quantcast:"p-3Ma3jHaQMB_bS",quoraPixelId:"420845cb70e444938cf0728887a74ca1",twitterPixelId:"nvzbs",wpcomGoogleAnalyticsGtag:(0,r.ZP)("google_analytics_key"),wpcomFloodlightGtag:"DC-6355556",wpcomGoogleAdsGtag:"AW-946162814",wpcomGoogleAdsGtagSignupStart:"AW-946162814/baDICKzQiq4BEP6YlcMD",wpcomGoogleAdsGtagRegistration:"AW-946162814/_6cKCK6miZYBEP6YlcMD",wpcomGoogleAdsGtagSignup:"AW-946162814/5-NnCKy3xZQBEP6YlcMD",wpcomGoogleAdsGtagAddToCart:"AW-946162814/MF4yCNi_kZYBEP6YlcMD",wpcomGoogleAdsGtagPurchase:"AW-946162814/taG8CPW8spQBEP6YlcMD",jetpackGoogleAnalyticsGtag:"UA-52447-43",jetpackGoogleGA4Gtag:"G-YELRMVV4YG",jetpackGoogleAdsGtagPurchase:"AW-946162814/kIF1CL3ApfsBEP6YlcMD"},j="dcmsid",N=1800},33675:function(e,t,n){"use strict";n.d(t,{j:function(){return u},I:function(){return l}});var r=n(36115),o=n(13421),i=n(88767),s=n(1444),a=n(36190);n(28122);function u(e){if(!(0,s.Z)()||!a.ZK)return;const t=["event","conversion",{...{...c(),allow_custom_scripts:!0},...e}];(0,a.fF)("recordParamsInFloodlightGtag:",t),window.gtag(...t)}function c(){const e={},t=(0,r.ts)(),n=(0,r.di)();return t&&(e.u4=t.hashedPii.ID),n&&(e.u5=n),e}function l(e){if(!(0,s.Z)()||!a.ZK)return;const t=function(){const e=o.parse(document.cookie)[a.zv];if(e)return(0,a.fF)("Floodlight: Existing session: "+e),e;const t=(0,i.Z)().replace(new RegExp("-","g"),"");return(0,a.fF)("Floodlight: New session: "+t),t}();document.cookie=o.serialize(a.zv,t,{maxAge:a.oh}),(0,a.fF)("retarget: recordPageViewInFloodlight: wpvisit"),u({session_id:t,u6:e,u7:t,send_to:"DC-6355556/wordp0/wpvisit+per_session"}),(0,a.fF)("retarget: recordPageViewInFloodlight: wppv"),u({u6:e,u7:t,send_to:"DC-6355556/wordp0/wppv+standard"})}},98565:function(e,t,n){"use strict";n.d(t,{cY:function(){return i},$Q:function(){return s}});var r=n(9415),o=n(36190);n(28122);function i(e){(0,r.Z)()&&window.gtag("config",o.Hb.jetpackGoogleGA4Gtag,e)}function s(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];n&&window.gtag("event","page_view",{send_to:o.Hb.jetpackGoogleGA4Gtag,page_title:e,page_location:t})}},95157:function(e,t,n){"use strict";n.d(t,{LT:function(){return l},mf:function(){return f},Uk:function(){return p},vL:function(){return d},Zf:function(){return h}});var r=n(36115),o=n(20899),i=n(32486),s=n(43621),a=n(9415),u=n(36190),c=n(98565);n(28122);function l(e){c.cY(e),window.gtag("config",u.Hb.wpcomGoogleAnalyticsGtag,e),(0,a.Z)()&&window.gtag("config",u.Hb.jetpackGoogleAnalyticsGtag,e)}function f(){return u.wZ&&o.ZP.isEnabled("ad-tracking")&&!(0,r.vX)()&&!(0,i.Z)()&&(0,s.Z)()}function p(){const e=(0,r.ts)();return{...e&&{user_id:e.hashedPii.ID},anonymize_ip:!0,transport_type:"function"==typeof window.navigator.sendBeacon?"beacon":"xhr",use_amp_client_id:!0,custom_map:{dimension3:"client_id"},linker:(0,a.Z)()?{domains:["wordpress.com"]}:{accept_incoming:!0}}}function d(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];c.$Q(t,e,n);const r={...p(),page_path:e,page_title:t};window.gtag("config",u.Hb.wpcomGoogleAnalyticsGtag,r),n&&window.gtag("config",u.Hb.jetpackGoogleAnalyticsGtag,r)}function h(e,t,n,r){window.gtag("event",t,{event_category:e,event_label:n,value:r})}},30214:function(e,t,n){"use strict";n.d(t,{_:function(){return s}});var r=n(36115),o=n(84898),i=n(36190);n(28122);const s=function(e){let t,n="not-loading";const r=new Promise((e=>{t=e}));return()=>("not-loading"===n&&(n="loading",e().then((e=>{n="loaded",t(e)}),(()=>{n="not-loading"}))),r)}((async()=>{const e=function(){const e=[];i._O&&e.push(i.lB);const t=[i.wZ&&i.Hb.wpcomGoogleAnalyticsGtag,i.xb&&i.Hb.wpcomGoogleAdsGtag,i.ZK&&i.Hb.wpcomFloodlightGtag].filter((e=>!1!==e));t.length>0&&e.push(i.n5+t[0]);i.n_&&e.push(i.Dt);i.az&&e.push(i.j_);i.kL&&e.push(("https:"===document.location.protocol?"https://secure":"http://edge")+".quantserve.com/quant.js");i.Mf&&e.push(i.Ai);i.Q1&&e.push(i.zR);i.S$&&e.push(i.Uk);i.GL&&e.push(i.L);i.eG&&e.push(i.cf);return e}();let t=!1;for(const r of e){try{await(0,o.ve)(r)}catch(n){t=!0,(0,i.fF)("loadTrackingScripts: [Load Error] a tracking script failed to load: ",n)}(0,i.fF)("loadTrackingScripts: [Loaded]",r)}if(t)throw new Error("One or more tracking scripts failed to load");(0,i.fF)("loadTrackingScripts: load done"),function(){i._O&&function(){let e={};const t=(0,r.ts)();t&&(e={em:t.hashedPii.email});(0,i.fF)("initFacebook",e),window.fbq("init",i.Hb.facebookInit,e),window.fbq("set","autoConfig",!1,i.Hb.facebookJetpackInit),window.fbq("init",i.Hb.facebookJetpackInit,e)}();if(i.n_){const e={ti:i.Hb.bingInit,q:window.uetq};"undefined"!=typeof UET&&(window.uetq=new UET(e))}i.Mf&&window.twq("init",i.Hb.twitterPixelId);i.S$&&window.qp("init",i.Hb.quoraPixelId);if(i.eG){const e=(0,r.ts)(),t=e?{em:e.hashedPii.email}:{};window.pintrk("load",i.Hb.pinterestInit,t)}(0,i.fF)("loadTrackingScripts: init done")}(),(0,i.fF)("loadTrackingScripts: dataLayer:",JSON.stringify(window.dataLayer,null,2))}))},32985:function(e,t,n){"use strict";n.d(t,{a:function(){return c}});var r=n(7369),o=n(1444),i=n(36190),s=n(33675),a=n(30214);n(28122);let u=0;async function c(e){if(await(0,r.Z)(),!(0,o.Z)())return void(0,i.fF)("retarget: [Skipping] ad tracking is not allowed",e);if(await(0,a._)(),(0,i.fF)("retarget:",e),i.kL){const e={qacct:i.Hb.quantcast,event:"refresh"};(0,i.fF)("retarget: [Quantcast]",e),window._qevents.push(e)}if(i._O){const e=["trackSingle",i.Hb.facebookInit,"PageView"];(0,i.fF)("retarget: [Facebook]",e),window.fbq(...e)}if(i.n_&&((0,i.fF)("retarget: [Bing]"),window.uetq.push("pageLoad")),i.xb){const t=["config",i.Hb.wpcomGoogleAdsGtag,{page_path:e}];(0,i.fF)("retarget: [Google Ads] WPCom",t),window.gtag(...t)}(0,s.I)(e),i.eG&&((0,i.fF)("retarget: [Pinterest]"),window.pintrk("page")),i.nF&&((0,i.fF)("retarget: [AdRoll]"),window.adRoll.trackPageview());const t=Date.now()/1e3;if(t>=u+86400){if(u=t,i.GL){const e=["track","PAGE_VIEW"];(0,i.fF)("retarget: [Outbrain] [rate limited]",e),window.obApi(...e)}if(i.hR){const e=i.y2;(0,i.fF)("retarget: [Icon Media] [rate limited]",e),(new window.Image).src=e}if(i.Mf){const e=["track","PageView"];(0,i.fF)("retarget: [Twitter] [rate limited]",e),window.twq(...e)}if(i.CO){const e=i.EV;(0,i.fF)("retarget: [Yahoo Gemini] [rate limited]",e),(new window.Image).src=e}if(i.S$){const e=["track","ViewContent"];(0,i.fF)("retarget: [Quora] [rate limited]",e),window.qp(...e)}}(0,i.fF)("retarget: dataLayer:",JSON.stringify(window.dataLayer,null,2))}},28122:function(e,t,n){"use strict";var r=n(36190);"undefined"!=typeof window&&(!function(){if(window.dataLayer&&window.gtag)return;window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)},window.gtag("js",new Date)}(),r._O&&function(){if(window.fbq)return;const e=window.fbq=function(){e.callMethod?e.callMethod.apply(e,arguments):e.queue.push(arguments)};window._fbq||(window._fbq=e);window._fbq.disablePushState=!0,e.push=e,e.loaded=!0,e.version="2.0",e.queue=[]}(),r.n_&&!window.uetq&&(window.uetq=[]),r.az&&!window.criteo_q&&(window.criteo_q=[]),r.kL&&!window._qevents&&(window._qevents=[]),r.xb&&window.gtag("config",r.Hb.wpcomGoogleAdsGtag),r.ZK&&window.gtag("config",r.Hb.wpcomFloodlightGtag),r.Mf&&function(){if(window.twq)return;const e=window.twq=function(){e.exe?e.exe.apply(e,arguments):e.queue.push(arguments)};e.version="1.1",e.queue=[]}(),r.Q1&&(window._linkedin_data_partner_id||(window._linkedin_data_partner_id=r.Hb.linkedInPartnerId)),r.S$&&function(){if(window.qp)return;const e=window.qp=function(){e.qp?e.qp.apply(e,arguments):e.queue.push(arguments)};e.queue=[]}(),r.GL&&function(){const e=window.obApi=function(){e.dispatch?e.dispatch.apply(e,arguments):e.queue.push(arguments)};e.version="1.0",e.loaded=!0,e.marketerId=r.Hb.outbrainAdvId,e.queue=[]}(),r.eG&&function(){if(!window.pintrk){window.pintrk=function(){window.pintrk.queue.push(Array.prototype.slice.call(arguments))};const e=window.pintrk;e.queue=[],e.version="3.0"}}(),r.nF&&(window.adRoll||(window.adRoll={trackPageview:function(){(new window.Image).src=r.xV,(new window.Image).src=r.E9},trackPurchase:function(){(new window.Image).src=r.O5,(new window.Image).src=r.pP}})))},25394:function(e,t,n){"use strict";n.d(t,{K:function(){return o},w:function(){return i}});var r=n(36190);n(28122);function o(e,t){window.fbq&&window.fbq("trackSingleCustom",r.Hb.facebookInit,e,t)}function i(e){(0,r.fF)("trackCustomAdWordsRemarketingEvent:",e)}},46272:function(e,t,n){"use strict";n.d(t,{U:function(){return h},K:function(){return g}});var r=n(36115),o=n(20899),i=n(38049),s=n.n(i),a=n(94776),u=n(9415),c=n(36190),l=n(32486),f=n(43621);const p=s()("calypso:analytics:fullstory");let d=!1;function h(){m(),window.FS&&(p("retargetFullStory"),window.FS.restart(),y())}function g(e,t){if(m(),!window.FS||!e)return;const n=v(t);p("recordFullStoryEvent:",{name:e,props:n}),window.FS.event(e,n),y()}function m(){var e,t,n,i,s,h,g,m;d||!o.ZP.isEnabled("fullstory")||(0,r.vX)()||(0,a.b)()||(0,l.Z)()||!(0,f.Z)()?d||p("maybeAddFullStoryScript:",!1):(d=!0,p("maybeAddFullStoryScript:",!0),window._fs_debug=!1,window._fs_host="fullstory.com",window._fs_script="edge.fullstory.com/s/fs.js",window._fs_org=(0,u.Z)()?c.Hb.fullStoryJetpack:c.Hb.fullStory,window._fs_namespace="FS",e=window,t=document,n=window._fs_namespace,i="script",s="user",p("maybeAddFullStoryScript:","script loading"),n in e?e.console&&e.console.log&&e.console.log("FullStory namespace conflict. Please set window._fs_namespace."):((g=e[n]=function(e,t,n){g.q?g.q.push([e,t,n]):g._api(e,t,n)}).q=[],(h=t.createElement(i)).async=1,h.crossOrigin="anonymous",h.src="https://"+window._fs_script,(m=t.getElementsByTagName(i)[0]).parentNode.insertBefore(h,m),g.identify=function(e,t,n){g(s,{uid:e},n),t&&g(s,t,n)},g.setUserVars=function(e,t){g(s,e,t)},g.event=function(e,t,n){g("event",{n:e,p:t},n)},g.anonymize=function(){g.identify(!1)},g.shutdown=function(){g("rec",!1)},g.restart=function(){g("rec",!0)},g.log=function(e,t){g("log",[e,t])},g.consent=function(e){g("consent",!arguments.length||e)},g.identifyAccount=function(e,t){h="account",(t=t||{}).acctId=e,g(h,t)},g.clearUserCookie=function(){},g.setVars=function(_n,e){g("setVars",[_n,e])},g._w={},m="XMLHttpRequest",g._w[m]=e[m],m="fetch",g._w[m]=e[m],e[m]&&(e[m]=function(){return g._w[m].apply(this,arguments)}),g._v="1.3.0"))}function y(){if(!window.FS)return;const e=(0,r.ts)();e&&(p("maybeIdentifyUser:",e),window.FS.identify(e.hashedPii.ID))}function v(e){const t={};e="object"==typeof e?e:{};for(const[n,r]of Object.entries(e)){const e=typeof r;"string"===e?t[n+"_str"]=r:"boolean"===e?t[n+"_bool"]=r:"number"===e||"bigint"===e?-1!==String(r).indexOf(".")?t[n+"_real"]=r:t[n+"_int"]=r:"object"===e&&(t[n]=v(r))}return t}},44567:function(e,t,n){"use strict";n.d(t,{eK:function(){return c},Yh:function(){return l}});var r=n(38049),o=n.n(r),i=n(95157);const s=o()("calypso:analytics:ga");let a=!1;function u(){if(!a){const e={send_page_view:!1,...(0,i.Uk)()};s("parameters:",e),(0,i.LT)(e),a=!0}}const c=f((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];s("Recording Page View ~ [URL: "+e+"] [Title: "+t+"] [useJetpackGoogleAnalytics: "+n+"]"),(0,i.vL)(e,t,n)})),l=f((function(e,t,n,r){void 0===r||isNaN(Number(String(r)))||(r=Math.round(Number(String(r))));let o="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(o+=" [Option Label: "+n+"]"),void 0!==r&&(o+=" [Option Value: "+r+"]"),s(o),(0,i.Zf)(e,t,n,r)}));function f(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];(0,i.mf)()?(u(),e(...n)):s("[Disallowed] analytics %s( %o )",e.name,n)}}},80252:function(e,t,n){"use strict";n.d(t,{o:function(){return p}});var r=n(36115),o=n(20899),i=n(38049),s=n.n(i),a=n(94776),u=n(32486),c=n(43621);const l=s()("calypso:analytics:hotjar");let f=!1;function p(){var e,t,n,i;f||!(0,o.ZP)("hotjar_enabled")||(0,a.b)()||(0,r.vX)()||(0,u.Z)()||!(0,c.Z)()?l("Not loading HotJar script"):(e=window,t=document,l("Loading HotJar script"),e.hj=e.hj||function(){(e.hj.q=e.hj.q||[]).push(arguments)},e._hjSettings={hjid:227769,hjsv:5},n=t.getElementsByTagName("head")[0],(i=t.createElement("script")).async=1,i.src="//static.hotjar.com/c/hotjar-"+e._hjSettings.hjid+".js?sv="+e._hjSettings.hjsv,n.appendChild(i),f=!0)}},70858:function(e,t,n){"use strict";n.d(t,{M:function(){return s}});var r=n(36115),o=n(38049);const i=n.n(o)()("calypso:analytics:init");async function s(e,t){await(0,r.MB)(e,t);const o=(0,r.ts)();if("object"==typeof e&&o&&(0,r.di)()){const e=await n.e(474).then(n.bind(n,11209)),{recordAliasInFloodlight:t}=e;i("recordAliasInFloodlight",o),t()}}},7689:function(e,t,n){"use strict";n.d(t,{P:function(){return s},S:function(){return a}});var r=n(20899),o=n(38049);const i=n.n(o)()("calypso:analytics:mc");function s(e,t){if("object"==typeof e?i("Bumping stats %o",e):i("Bumping stat %s:%s",e,t),"undefined"!=typeof window&&(0,r.ZP)("mc_analytics_enabled")){const n=function(e,t){let n="";if("object"==typeof e)for(const r in e)n+="&x_"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t);return n}(e,t);(new window.Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random()}}function a(e,t){if("object"==typeof e?i("Bumping page view with props %o",e):i("Bumping page view %s:%s",e,t),"undefined"!=typeof window&&(0,r.ZP)("mc_analytics_enabled")){const n=function(e,t){let n="";if("object"==typeof e)for(const r in e)n+="&"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t);return n}(e,t);(new window.Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random()}}},66610:function(e,t,n){"use strict";n.d(t,{A:function(){return d}});var r=n(36115),o=n(79321),i=n(32985),s=n(46272),a=n(93513),u=n(11915),c=n(7369),l=n(44567),f=n(38602),p=n(5323);function d(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};setTimeout((()=>{n.device_type=(0,o.jv)(),(0,r.w2)(e,n),h(e,t,null==c?void 0:c.useJetpackGoogleAnalytics),(0,p.G)(),(0,u.Z)(),(0,a.n)(),(0,i.a)(e),(0,s.U)(),(0,f.V)()}),0)}async function h(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];await(0,c.Z)(),(0,l.eK)(e,t,n)}},38602:function(e,t,n){"use strict";n.d(t,{x:function(){return u},V:function(){return c}});var r=n(38049);const o=n.n(r)()("calypso:analytics:queue"),i={signup:()=>n.e(874).then(n.bind(n,48528))};function s(){if(!window.localStorage)return[];let e=window.localStorage.getItem("analyticsQueue");return e=e?JSON.parse(e):[],e=Array.isArray(e)?e:[],e}function a(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];"string"==typeof t&&"function"==typeof i[e]&&i[e]().then((e=>{"function"==typeof e[t]&&e[t].apply(null,r||void 0)}))}function u(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];if(!window.localStorage)return a(e,t,...r);let u=s();const c={moduleName:e,trigger:t,args:r};u.push(c),u=u.slice(-100),o("Adding new item to queue.",c),window.localStorage.setItem("analyticsQueue",JSON.stringify(u))}function c(){if(!window.localStorage)return;const e=s();window.localStorage&&window.localStorage.removeItem("analyticsQueue"),o("Processing items in queue.",e),e.forEach((e=>{"object"==typeof e&&"string"==typeof e.trigger&&(o("Processing item in queue.",e),a(e.moduleName,e.trigger,...e.args))}))}},5323:function(e,t,n){"use strict";n.d(t,{G:function(){return s}});var r=n(78920),o=n(39297),i=n(17032);function s(){if(!window||!window.location)return;const e=window.location.href,t=(0,r.Z)(e),n=(null==t?void 0:t.searchParams.get("aff"))||(null==t?void 0:t.searchParams.get("affiliate")),s=null==t?void 0:t.searchParams.get("cid"),a=null==t?void 0:t.searchParams.get("sid");n&&!isNaN(n)&&((0,i.recordTracksEvent)("calypso_refer_visit",{page:t.host+t.pathname}),(0,o.l)({affiliateId:n,campaignId:s,subId:a,referrer:e}))}},93513:function(e,t,n){"use strict";n.d(t,{n:function(){return d}});var r=n(36115),o=n(13421),i=n(38049),s=n.n(i),a=n(78920);const u=s()("calypso:analytics:sem"),c=["adgroupid","campaignid","device","gclid","gclsrc","fbclid","keyword","matchtype","network","type","term","utm_campaign","utm_content","utm_medium","utm_source","utm_term","targetid","locationid","ref","format"],l=new RegExp("^[a-zA-Z\\d_\\-]{1,128}$");function f(e,t){return-1!==c.indexOf(e)&&("utm_source"===e||"utm_campaign"===t?function(e){return l.test(e)}(t):function(e,t){return"gclid"===e?t.length<=100:"keyword"===e?t.length<=80:t.length<=50}(e,t))}function p(e,t){document.cookie=o.serialize(e,t,{path:"/",maxAge:31536e3,domain:"."+document.location.hostname.split(".").slice(-2).join(".")})}function d(){var e;if(!document.location.search)return void u("No query data in URL.");const t=null===(e=(0,a.Z)(document.location.href))||void 0===e?void 0:e.searchParams;let n=new URLSearchParams;if(t){const e=Array.from(t.entries()).filter((e=>{let[t,n]=e;return f(t,n)}));n=new URLSearchParams(e),t.get("amp_client_id")&&(0,r.lH)(["identifyAnonUser",t.get("amp_client_id")])}if(!n.get("utm_source")||!n.get("utm_campaign"))return void u("Missing utm_source or utm_campaign.");const o=n.toString();o&&(u("ad_details: "+o),p("ad_details",o),p("ad_timestamp",Math.floor((new Date).getTime()/1e3)))}},21058:function(e,t,n){"use strict";var r=n(20899),o=n(35899),i=n(36747),s=n(17014);t.Z=e=>t=>{const n=e.getState(),a={environment:"production",environment_id:(0,r.ZP)("env_id"),site_count:(0,i.bo)(n)||0,site_id_label:"wpcom",client:(0,r.ZP)("client_slug")},u=(0,o.Z)(t.path)?null:(0,s.Z)(n);return u&&Object.assign(a,{blog_id:u.ID,blog_lang:u.lang,site_id_label:u.jetpack?"jetpack":"wpcom",site_plan_id:u.plan?u.plan.product_id:null}),a}},39297:function(e,t,n){"use strict";n.d(t,{l:function(){return c}});var r=n(38049),o=n.n(r),i=n(92819),s=n(17032);const a=o()("calypso:analytics:refer"),u=["status","success","duplicate","description","cookie_id","vendor_id","affiliate_id","campaign_id","sub_id","referrer"];async function c(e){let{affiliateId:t,campaignId:n,subId:r,referrer:o}=e;a("Recording affiliate referral.",{affiliateId:t,campaignId:n,subId:r,referrer:o});const c={"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},l=new URLSearchParams({affiliate_id:t,campaign_id:n||"",sub_id:r||"",referrer:o||""}).toString();a("Fetching Refer platform response.");try{const e=await window.fetch("https://refer.wordpress.com/clicks/67402",{credentials:"include",method:"POST",headers:c,body:l}),t=await e.json();if(e.ok)return a("Recording Refer platform success response.",t),void(0,s.recordTracksEvent)("calypso_refer_visit_response",{...(0,i.pick)(t.data,u),status:e.status||"",success:t.success||!0,description:t.message||"success"});a("Recording Refer platform error response.",t),(0,s.recordTracksEvent)("calypso_refer_visit_response",{...(0,i.pick)(t.data,u),status:e.status||"",success:t.success||!1,description:t.message||"error"})}catch(f){a("Failed to fetch Refer platform response.",f)}}},17032:function(e,t,n){"use strict";n.r(t),n.d(t,{tracksEvents:function(){return i},recordTracksEvent:function(){return s},recordTracksPageView:function(){return a},setTracksOptOut:function(){return u}});var r=n(22699),o=n(36115);const i=new r.EventEmitter;function s(e,t){o.MR.once("record-event",((e,t)=>{i.emit("record-event",e,t)})),(0,o.jN)(e,t)}function a(e,t){(0,o.P6)(e,t)}function u(e){(0,o.lH)(["setOptOut",e])}},87360:function(e,t,n){"use strict";var r=n(38049),o=n.n(r);t.Z=o()("calypso:analytics:utils")},1444:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(36115),o=n(20899),i=n(87360),s=n(32486),a=n(69874),u=n(43621);function c(){const e=o.ZP.isEnabled("ad-tracking")&&!(0,r.vX)()&&!(0,a.Z)()&&!(0,s.Z)()&&(0,u.Z)();return(0,i.Z)(`isAdTrackingAllowed: ${e}`),e}},76814:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});const r=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","GB","CH","IS","LI","NO"];function o(e){return void 0!==e&&r.includes(e)}},32486:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(87360);const o=["@","email=","email_address=","first=","last=","first-name=","last-name=","address-1=","phone="],i=o.map((e=>encodeURIComponent(e)));function s(){const e=document.location.href,t=t=>-1!==e.indexOf(t),n=o.some(t)||i.some(t);return(0,r.Z)(`Is PII URL: ${n}`),n}},69874:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(87360);const o=["/log-in"];function i(){const{href:e}=document.location,t=o.some((t=>-1!==e.indexOf(t)));return(0,r.Z)(`Is URL Excluded for Performance: ${t}`),t}},81653:function(e,t){"use strict";t.Z="marketing-coupons"},43621:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(13421),o=n(87360),i=n(76814);function s(){let e=!1;const t=r.parse(document.cookie);if("yes"===t.sensitive_pixel_option)e=!0;else if("no"===t.sensitive_pixel_option)e=!1;else{const n=t.country_code;e=void 0!==n&&"unknown"!==n&&!(0,i.Z)(n)}return(0,o.Z)(`mayWeTrackCurrentUserGdpr: ${e}`),e}},7369:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(13421),o=n(87360);let i=null;async function s(){const e=r.parse(document.cookie);e.country_code?(0,o.Z)("refreshCountryCodeCookieGdpr: country_code cookie is fresh: %s",e.country_code):(null===i&&(i=function(){const e=(new Date).getTime();return fetch("https://public-api.wordpress.com/geo/?v="+e).then((e=>e.ok?e.json():e.body().then((e=>{throw new Error(e)})))).then((e=>e.country_short)).catch((e=>((0,o.Z)("refreshCountryCodeCookieGdpr: error: ",e),"unknown")))}().then((e=>function(e){const t=21600;document.cookie=r.serialize("country_code",e,{path:"/",maxAge:t}),(0,o.Z)("refreshCountryCodeCookieGdpr: country_code cookie set to %s",e)}(e)))),await i,i=null)}},11915:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(87360),o=n(81653),i=n(78920);function s(){const e=(0,i.Z)(window.location.href),t=null==e?void 0:e.searchParams.get("coupon");if(!t)return;let n=null;try{const e=window.localStorage.getItem(o.Z);n=JSON.parse(e)}catch(a){}n||(n={});const s=Date.now();(0,r.Z)("Found coupons in localStorage: ",n),n[t]=s,Object.keys(n).forEach((e=>{s>n[e]+6048e5&&delete n[e]}));try{(0,r.Z)("Storing coupons in localStorage: ",n),window.localStorage.setItem(o.Z,JSON.stringify(n))}catch(a){}}},35899:function(e,t){"use strict";const n=/\/(:site|:site_id|:siteid|:blogid|:blog_id|:siteslug)(\/|$|\?)/i;t.Z=e=>!e||!n.test(e)},78920:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(87360);function o(e){const t={"-":"+",_:"/",".":"="};return window.atob(e.replace(/[-_.]/g,(e=>t[e])))}function i(e){try{const t=new URL(e);if((0,r.Z)("urlParseAmpCompatible: original query:",t.search),t.searchParams.has("tk_amp")){const e=function(e){if(0===(e=e.split("*").filter((e=>e.length)).slice(2)).length||0!=e.length%2)return null;const t={};for(let n=0;n<e.length;n+=2)t[e[n]]=o(e[n+1]);return t}(t.searchParams.get("tk_amp"));(0,r.Z)("urlParseAmpCompatible: tk_amp:",e);for(const n of Object.keys(e))t.searchParams.has(n)||t.searchParams.set(n,e[n])}return(0,r.Z)("urlParseAmpCompatible: merged query:",t.search),t}catch{return null}}},32919:function(e,t,n){"use strict";n.d(t,{B$:function(){return s}});var r=n(38049);const o=n.n(r)()("calypso:support-user"),i=new Map;async function s(){o("browser-storage bypass","clearStorage"),i.clear()}},66651:function(e,t,n){"use strict";n.d(t,{B$:function(){return P}});var r,o=n(20899),i=n(38049),s=n.n(i),a=n(92819),u=n(7689),c=n(47824),l=n(32919);const f=s()("calypso:browser-storage");let p=!1,d=!1;const h="calypso",g="calypso_store",m="browser-storage-sanity-test",y=o.ZP.isEnabled("safari-idb-mitigation")&&"undefined"!=typeof window&&!(null===(r=window.IDBKeyRange)||void 0===r||!r.lowerBound(0).includes)&&!!window.webkitAudioContext&&!!window.PointerEvent;f("Safari IDB mitigation active: %s",y);const v=(0,c.I)((async()=>{if("undefined"==typeof window||!window.indexedDB)return f("IDB not found in host"),!1;if(d)return f("IDB disabled"),!1;try{const e=Date.now().toString();return await C(m,e),await w(m),!0}catch(e){return!1}})),b=(0,c.I)((()=>{const e=window.indexedDB.open(h,2);return new Promise(((t,n)=>{try{e&&(e.onerror=t=>{e.error&&"InvalidStateError"===e.error.name&&t.preventDefault(),n(e.error)},e.onsuccess=()=>{const n=e.result;n.onerror=function(e){var t,n;f("IDB Error",e),null!==(t=e.target)&&void 0!==t&&null!==(n=t.error)&&void 0!==n&&n.name&&((0,u.P)("calypso-browser-storage",(0,a.kebabCase)(e.target.error.name)),"QuotaExceededError"===e.target.error.name&&(d=!0,v.clear(),f("disabling IDB because we saw a QuotaExceededError")))},n.onversionchange=()=>{n.close()},t(n)},e.onupgradeneeded=()=>e.result.createObjectStore(g))}catch(r){n(r)}}))}));function w(e){return new Promise(((t,n)=>{b().then((r=>{const o=r.transaction(g,"readonly"),i=o.objectStore(g).get(e),s=()=>n(o.error);o.oncomplete=()=>t(i.result),o.onabort=s,o.onerror=s})).catch((e=>n(e)))}))}function _(e){return b().then((t=>new Promise(((n,r)=>{const o={},i=t.transaction(g,"readonly"),s=()=>r(i.error);i.objectStore(g).openCursor().onsuccess=t=>{const r=t.target.result;if(r){const{primaryKey:t,value:n}=r;!t||"string"!=typeof t||t===m||e&&!e.test(t)||(o[t]=n),r.continue()}else n(o)},i.onabort=s,i.onerror=s}))))}let E=0,S=null;async function C(e,t){return S&&await S,y&&++E%20==0&&await async function(){if(S)return S;return f("performing safari idb mitigation"),S=async function(){const e=await _();return await function(){return new Promise(((e,t)=>{const n=window.indexedDB.deleteDatabase(h);n.onsuccess=()=>{b.clear(),e()},n.onerror=e=>t(e)}))}(),new Promise(((t,n)=>{b().then((r=>{const o=r.transaction(g,"readwrite"),i=o.objectStore(g);for(let[t,n]of Object.entries(e))i.put(n,t);const s=()=>t(),a=()=>n(o.error);o.oncomplete=s,o.onabort=a,o.onerror=a}),(e=>n(e)))}))}(),S.finally((()=>{S=null,f("idb mitigation complete")})),S}(),new Promise(((n,r)=>{b().then((async o=>{const i=o.transaction(g,"readwrite");i.objectStore(g).put(t,e);const s=()=>r(i.error);i.oncomplete=()=>n(),i.onabort=s,i.onerror=s})).catch((e=>r(e)))}))}async function P(){if(p)return await(0,l.B$)();if(await v())return await new Promise(((e,t)=>{b().then((n=>{const r=n.transaction(g,"readwrite");r.objectStore(g).clear();const o=()=>t(r.error);r.oncomplete=()=>e(),r.onabort=o,r.onerror=o})).catch((e=>t(e)))}));window.localStorage.clear()}},94776:function(e,t,n){"use strict";n.d(t,{b:function(){return r}});function r(){return"undefined"!=typeof navigator&&navigator.userAgent.includes("wp-e2e-tests")}},50118:function(e,t,n){"use strict";n.d(t,{S:function(){return o}});var r=n(24050);function o(e){return"string"!=typeof e||-1===e.indexOf("&")?e:(0,r.Z)(e)}},24050:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});const r=document.implementation&&document.implementation.createHTMLDocument?document.implementation.createHTMLDocument("").createElement("textarea"):document.createElement("textarea");function o(e){r.innerHTML=e;const t=r.textContent;return r.innerHTML="",t}},93345:function(e,t,n){"use strict";n.d(t,{R:function(){return o}});var r=n(99196);function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return s("string"==typeof e?e.trim():e,Math.max(1,t-1)).part}const i=/\s+(\S*)$/;function s(e,t){let n=0;if("string"==typeof e&&e.length>0){let r=e,o="";for(;n<t&&i.test(r);){o=" "+i.exec(r)[1]+o,r=r.replace(i,""),n++}return o=r+o,{part:o,substituted:n}}if(Array.isArray(e)&&e.length>0){let r=[],o=e.length-1;for(;n<t&&o>=0;){const i=s(e[o],t-n);r.unshift(i.part),n+=i.substituted,o--}return r=e.slice(0,o+1).concat(r),{part:r,substituted:n}}if((0,r.isValidElement)(e)&&e.props.children){const o=s(e.props.children,t);if(o.substituted>0){const t=Array.isArray(o.part)?o.part:[o.part];return{part:(0,r.cloneElement)(e,e.props,...t),substituted:o.substituted}}return{part:e,substituted:n}}return{part:e,substituted:n}}},8165:function(e,t,n){"use strict";n.d(t,{C:function(){return i}});var r=n(33927),o=n.n(r);function i(e){return o()(e)}},284:function(e,t,n){"use strict";n.d(t,{HX:function(){return r},fh:function(){return o}});const r="G Suite",o="Google Workspace"},96598:function(e,t,n){"use strict";n.d(t,{H:function(){return i}});var r=n(10128),o=n(284);function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return(0,r.M)(e)?o.HX:o.fh}},26991:function(e,t,n){"use strict";n.d(t,{Y:function(){return o}});var r=n(11481);const o=()=>r.ZP.getLocaleSlug()},9415:function(e,t,n){"use strict";var r=n(20899);const o=["jetpack-cloud-development","jetpack-cloud-stage","jetpack-cloud-horizon","jetpack-cloud-production"];t.Z=()=>o.includes((0,r.ZP)("env_id"))},16771:function(e,t,n){"use strict";n.d(t,{t:function(){return s}});var r=n(84898),o=n(38049);const i=n.n(o)()("lib/load-jquery-dependent-script-desktop-wrapper");function s(e,t){i(`Loading a jQuery dependent script from "${e}"`),(0,r.D1)(e,t)}},47824:function(e,t,n){"use strict";function r(e){return function(e){let t,n;const r=function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return t&&o.length===t.length&&o.every(((e,n)=>e===t[n]))||(t=o,n=e(...o)),n};return r.clear=()=>{t=void 0,n=void 0},r}(e)}n.d(t,{I:function(){return r}})},7268:function(e,t,n){"use strict";n.d(t,{LP:function(){return a}});var r=n(13421),o=n(23729),i=n.n(o);const s="wpcom_token";function a(){const e=r.parse(document.cookie);if(void 0!==e.wpcom_token)return e.wpcom_token;const t=i().get(s);return t||!1}},26347:function(e,t,n){"use strict";n.d(t,{Nf:function(){return r.N}});var r=n(65337)},65337:function(e,t,n){"use strict";n.d(t,{N:function(){return i}});var r=n(20899),o=n(9415);function i(){return(0,o.Z)()?(0,r.ZP)("jetpack_connect_url"):(0,r.ZP)("signup_url")}},77804:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819);function o(e){const t=!(!(0,r.get)(e,"discover_metadata")&&53424024!==(0,r.get)(e,"site_ID"));let n;if(t){const t=(0,r.get)(e,"discover_metadata.discover_fp_post_formats"),o=(0,r.find)(t,(e=>"pick"!==e.slug));n=o?o.slug:"feature"}return e.is_discover=t,e.discover_format=n,e}},53544:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(17451),o=n.n(r),i=n(92819),s=n(99891),a=n(59755),u=n(54855),c=n(95822);const l=e=>{if(function(e){if(!e||!e.getAttribute("src"))return!1;const t=e.getAttribute("src"),n=(0,i.some)(["gravatar.com","/wpcom-smileys/"],(e=>(0,i.includes)(t.toLowerCase(),e)));return!(function(e){if(!e||!e.src)return!1;const t=e.height+e.width;return 1===t||2===t}(e)||n)}(e)){const{width:t,height:n}=(0,a.H)(e)||{width:0,height:0};return{src:(0,u.E)(e.getAttribute("src"),s.fY),width:t,height:n,mediaType:"image"}}return!1},f=e=>{const t=o()(e.src);if(t&&(0,i.includes)(["youtube","vimeo","videopress"],t.service)){const t=e.cloneNode();return-1===t.src.indexOf("?")?t.src+="?autoplay=1":t.src+="&autoplay=1",t.outerHTML}return null},p=e=>{let t,n=e;do{if(n.className&&(t=n.className.match(/\bembed-([-a-zA-Z0-9_]+)\b/),t))return t[1]}while(n=n.parentNode);return null};function d(e,t){const n=t.querySelectorAll("img[src], iframe"),r=(0,i.map)(n,(e=>{const t=e.nodeName.toLowerCase();return"iframe"===t?(e=>{if(!(0,c.p)(e))return!1;const t=Number(e.width),n=Number(e.height),r=t/n;return{type:p(e),src:e.src,iframe:e.outerHTML,aspectRatio:r,width:t,height:n,mediaType:"video",autoplayIframe:f(e)}})(e):"img"===t&&l(e)}));return e.content_media=(0,i.compact)(r),e.content_embeds=(0,i.filter)(e.content_media,(e=>"video"===e.mediaType)),e.content_images=(0,i.filter)(e.content_media,(e=>"image"===e.mediaType)),e.featured_image&&(e.featured_image=(0,u.E)(e.featured_image,s.fY)),e}},10363:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(11481),o=n(92819),i=n(6964);const s=['a[href^="http://polldaddy.com/poll/"]','a[href^="https://polldaddy.com/poll/"]','a[href^="http://poll.fm/"]','a[href^="https://poll.fm/"]','a[href^="http://survey.fm/"]','a[href^="https://survey.fm/"]'];function a(e,t){if(!t)throw new Error("this transform must be used as part of withContentDOM");const n=t.querySelectorAll("noscript");return(0,o.forEach)(n,(e=>{if(!e.firstChild)return;const t=(0,i.j)(e.innerHTML).querySelector(s.join(", "));if(t){const n=(t.href.match(/https?:\/\/(polldaddy\.com\/poll|poll\.fm|survey\.fm)\/([0-9]+)/)||[])[2];if(n){const t=document.createElement("p");t.innerHTML='<a target="_blank" rel="external noopener noreferrer" href="https://poll.fm/'+n+'">'+r.ZP.translate("Take our poll")+"</a>",e.parentNode.replaceChild(t,e)}}})),e}},37183:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(11481),o=n(92819);function i(e,t){if(!t)throw new Error("this transform must be used as part of withContentDOM");const n=t.querySelectorAll(".pd-embed, .cs-embed");return n?((0,o.forEach)(n,(e=>{let t=null;try{t=JSON.parse(e.getAttribute("data-settings"))}catch(s){return}const{domain:n,id:o}=t;if(!n||!o)return;const i=document.createElement("p");i.innerHTML='<a target="_blank" rel="external noopener noreferrer" href="https://'+n+o+'">'+r.ZP.translate("Take our survey")+"</a>",e.parentNode.replaceChild(i,e)})),e):e}},40691:function(e,t,n){"use strict";n.d(t,{Y:function(){return o},b:function(){return i}});var r=n(6261);function o(e,t){if(!t)throw new Error("this transform must be used as part of withContentDOM");return t.querySelectorAll("audio, video").forEach((e=>e.autoplay=!1)),e}function i(e,t){if(!t)throw new Error("this transform must be used as part of withContentDOM");return t.querySelectorAll("iframe").forEach((e=>{const t=(0,r.A)(e.src);t.search&&(t.searchParams=function(e){const t=new URLSearchParams(e);return(Array.from(e.keys()).filter((e=>/^auto_?play$/i.test(e)))||[]).forEach((n=>{const r=e.get(n).toLowerCase();"1"===r?t.set(n,"0"):"true"===r?t.set(n,"false"):t.set(n,r)})),t}(t.searchParams),delete t.search,e.src=(0,r.C)(t).href)})),e}},17431:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819);function o(e,t){const n=t.querySelectorAll(".tiled-gallery");return(0,r.forEach)(n,(t=>{let n,o=(0,r.get)(t,["dataset","carouselExtra"],!1);if(!o&&(o=t.getAttribute("data-carousel-extra"),!o))return e;try{n=JSON.parse(o).permalink}catch(s){return e}const i=t.querySelectorAll(".tiled-gallery-item > a");(0,r.forEach)(i,(e=>{const t=e.querySelector("img"),r=t&&t.getAttribute("data-attachment-id");r&&(e.href=n+"#jp-carousel-"+r,e.setAttribute("target","_blank"))}))})),e}},50917:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(6261),o=n(92819),i=n(95822);function s(e,t){if(!t)throw new Error("this transform must be used as part of withContentDOM");const n=t.querySelectorAll("iframe");if((0,o.forEach)(n,(function(e){(0,o.startsWith)(e.src,"http")?(e.src=e.src.replace(/^http:/,"https:"),!function(e){const t=e.src&&(0,r.A)(e.src).hostname,n=t&&t.toLowerCase();return(0,o.some)(["spotify.com","kickstarter.com","soundcloud.com","embed.ted.com","player.twitch.tv"],(e=>`.${n}`.endsWith("."+e)))}(e)?(0,i.p)(e)?e.setAttribute("sandbox","allow-same-origin allow-scripts allow-popups"):e.setAttribute("sandbox","allow-scripts"):e.removeAttribute("sandbox")):e.parentNode.removeChild(e)})),e.is_external||e.is_jetpack){const e=t.querySelectorAll("embed,object");(0,o.forEach)(e,(function(e){e.parentNode.removeChild(e)}))}return e}},30757:function(e,t,n){"use strict";var r=n(6261),o=n(94668),i=n(92819),s=n(70353),a=n(54855);function u(e,t,n){let u=t.getAttribute("src");const c=(0,r.A)(u);if(!c.hostname){const t=(0,r.A)(e.URL);u=(0,r.C)({protocol:t.protocol,host:t.host,pathname:(0,s.Z)(t.pathname,c.pathname)}).href}let l=n?(0,a.E)((0,o.F)(u),n):(0,o.F)(u);if(l||(u=function(e,t){const n=(0,r.A)(e.URL);return t.startsWith("//")?`${n.protocol||"https:"}${t}`:t}(e,u)),!l&&(0,i.startsWith)(u,"https://")&&(l=u),(e=>{if(!e||!e.hasAttributes())return;(0,i.filter)(e.attributes,(e=>(0,i.startsWith)(e.name,"on"))).forEach((t=>e.removeAttribute(t.name))),e.removeAttribute("srcset")})(t),!l||(e=>{if(!e)return;return(0,i.some)(["feeds.feedburner.com","feeds.wordpress.com/",".feedsportal.com","wp-includes","wp-content/themes","wp-content/plugins","stats.wordpress.com","pixel.wp.com"],(t=>(0,i.includes)(e.toLowerCase(),t)))})(u))return t.parentNode.removeChild(t),void t.setAttribute("src","data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");t.setAttribute("src",l)}t.Z=e=>(t,n)=>{if(!n)throw new Error("this transform must be used as part of withContentDOM");const r=n.querySelectorAll("img[src]");return(0,i.forEach)(r,(n=>u(t,n,e))),t}},51088:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),o=n(48265);function i(e,t){const n=Array.from(t.querySelectorAll("a[href]"));return(0,r.forEach)(n,(e=>{o.G.test(e.href)||e.removeAttribute("href")})),e}},64e3:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(92819);const o=[".sharedaddy","script",".jp-relatedposts",".jp-relatedposts-headline",".mc4wp-form",".wpcnt",".OUTBRAIN",".adsbygoogle","form","input","select","button","textarea"].join(", ");function i(e){e.parentNode&&e.parentNode.removeChild(e)}function s(e,t){if(!t)throw new Error("this transform must be used as part of withContentDOM");const n=t.querySelectorAll(o);return(0,r.forEach)(n,i),e}},42347:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819);function o(e,t){const n=Element.prototype,r=n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector;return!!r&&r.call(e,t)}function i(e,t){if(!t)throw new Error("this transform must be used as part of withContentDOM");const n='.gallery, .gallery *, .gallery-row, .gallery-row *, .gallery-group, .gallery-group *, blockquote[class^="instagram-"], blockquote[class^="instagram-"] *, blockquote[class^="twitter-"], blockquote[class^="twitter-"] *',i=t.querySelectorAll("[style]");return(0,r.forEach)(i,(function(e){o(e,n)||e.removeAttribute("style")})),(0,r.forEach)(t.querySelectorAll("style"),(function(e){o(e,n)||e.parentNode&&e.parentNode.removeChild(e)})),(0,r.forEach)(t.querySelectorAll("[align]"),(e=>{"IMG"!==e.tagName&&e.removeAttribute("align")})),e}},47401:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(92819),o=n(33927),i=n.n(o),s=n(6964);function a(e){e.parentNode&&e.parentNode.removeChild(e)}function u(e){return 0===e.childNodes.length?"BR"===e.nodeName&&e:u(e.firstChild)}function c(e){if(!e)return"";const t=(0,s.j)(i()(e,["p","br","sup","sub"]));t.id="__better_excerpt__",Array.from(t.querySelectorAll("p")).filter((e=>0===(0,r.trim)(e.textContent).length)).forEach(a),Array.from(t.querySelectorAll("p")).forEach((e=>{e.removeAttribute("style"),e.removeAttribute("align")})),function(e){if(e)for(;u(e);)a(u(e))}(t),(0,r.forEach)(t.querySelectorAll("#__better_excerpt__ > p, #__better_excerpt__ > br"),(function(e,t){t>=3&&e.parentNode&&e.parentNode.removeChild(e)}));const n=(0,r.trim)(t.innerHTML.replace(/ /g," "));return t.innerHTML="",n}function l(e){if(!e||!e.content)return e;const t=function(e){const t=(0,s.j)(e);return(0,r.forEach)(t.querySelectorAll('.wp-caption, style, script, blockquote[class^="instagram-"], figure, .tiled-gallery'),a),t.innerHTML}(e.content);if(e.content_no_html=(0,r.trim)(i()(t)),e.better_excerpt=c(t),e.better_excerpt_no_html=(0,r.trim)(i()(e.better_excerpt)),e.better_excerpt_no_html){let t=e.better_excerpt_no_html.replace(/\[...\]\w*$/,"…");if(t.length>160){const e=t.lastIndexOf(" ",160);t=t.substring(0,e)+"…"}e.short_excerpt=t}return e}},12800:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(94668),o=n(50118);const i=["excerpt","title","site_name"];function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i;return t.forEach((function(t){e[t]&&(e[t]=(0,o.S)(e[t]))})),e.title=(0,o.S)(e.title),e.parent&&e.parent.title&&(e.parent.title=(0,o.S)(e.parent.title)),e.author&&(e.author.name&&(e.author.name=(0,o.S)(e.author.name)),e.author.avatar_URL&&(e.author.avatar_URL=(0,r.F)(e.author.avatar_URL))),e.tags&&Object.values(e.tags).forEach((function(e){e.name=(0,o.S)(e.name)})),e}},31564:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(94668),o=n(92819);function i(e,t){return function(n){const i=(s=e,a=t,function(e){return e.width>=s&&e.height>=a&&(0,r.F)(e.src)});var s,a;return n.images&&(n.images=(0,o.filter)(n.images,i)),n.content_images&&(n.content_images=(0,o.filter)(n.content_images,i)),n}}},91410:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(48265);function o(e){return e&&e.URL&&!r.G.test(e.URL)&&(e.URL=""),e&&e.short_URL&&!r.G.test(e.short_URL)&&(e.short_URL=""),e}},21036:function(e,t,n){"use strict";function r(e){return e.site_id&&(e.normalized_site_id=(""+e.site_id).replace(/::/g,"/")),e}n.d(t,{Z:function(){return r}})},53317:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(92819),o=n(15721),i=n(75209);function s(e){let t;if((0,o.J)(e.post_thumbnail)){const{URL:n,width:r,height:o}=e.post_thumbnail;t={uri:n,width:r,height:o}}else if(e.content_images&&e.content_images.length){const n=(0,r.find)(e.content_images,i.O);n&&(t={uri:n.src,width:n.width,height:n.height})}return t&&(e.canonical_image=t),e}},66184:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(94668),o=n(92819),i=n(48098);function s(e){if(!e)return!1;const t=100<=e.width,n=75<=e.height;return t&&n}function a(e){return!!e&&("image"===e.mediaType?s(e)&&(0,r.F)(e.src):"video"===e.mediaType&&e.autoplayIframe)}function u(e){if(!e)return e;if((0,i.E)(e.featured_image)&&(!e.post_thumbnail&&e.is_jetpack||s(e.post_thumbnail))&&(0,r.F)(e.featured_image))return e.canonical_media={src:e.featured_image,height:(0,o.get)(e,"post_thumbnail.height"),width:(0,o.get)(e,"post_thumbnail.width"),mediaType:"image"},e;const t=(0,o.find)(e.content_media,a);return t&&(e.canonical_media=t),e}},49147:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819);function o(e){const t=(0,r.maxBy)((0,r.values)(e.tags),(function(e){return e.post_count}));return void 0!==t&&(e.primary_tag=t),e}},59654:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),o=n(93345);function i(e){return(0,r.forEach)(["excerpt"],(function(t){e[t]&&(e[t]=(0,o.R)(e[t],2))})),e}},36003:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),o=n(65956);function i(e){return function(t){return(0,o.O)(t.author,"avatar_URL",e),(0,o.O)(t,"featured_image",e,t.URL),t.post_thumbnail&&(0,o.O)(t.post_thumbnail,"URL",e,t.URL),t.featured_media&&"image"===t.featured_media.type&&(0,o.O)(t.featured_media,"uri",e,t.URL),t.canonical_image&&t.canonical_image.uri&&(0,o.O)(t.canonical_image,"uri",e,t.URL),t.attachments&&Object.values(t.attachments).forEach((function(n){(0,r.startsWith)(n.mime_type,"image/")&&(0,o.O)(n,"URL",e,t.URL)})),t}}},60566:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),o=n(8165);function i(e){return(0,r.forEach)(["excerpt","title","site_name"],(function(t){e[t]&&(e[t]=(0,o.C)(e[t]))})),e.author&&e.author.name&&(e.author.name=(0,o.C)(e.author.name)),e}},75659:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(38049),o=n.n(r),i=n(92819),s=n(59755),a=n(15721);const u=o()("calypso:post-normalizer:wait-for-images-to-load");function c(e){const t={src:e.src,width:e.naturalWidth,height:e.naturalHeight};return e instanceof Image&&e.complete&&(t.fetched=!0),t}function l(e){return new Promise((t=>{const n={},r=[];function o(t,o){let i=t&&(0,s.H)(t);if(!i&&e.attachments){const t=Object.values(e.attachments).find((t=>t.URL===e.featured_image));t&&(i=(0,s.H)(t))}i&&(n[o]={src:o,naturalWidth:i.width,naturalHeight:i.height}),r.push(o)}if((0,a.J)(e.post_thumbnail)?o(e.post_thumbnail,e.post_thumbnail.URL):e.featured_image&&o(null,e.featured_image),(0,i.forEach)(e.content_images,(e=>o(e,e.src))),0===r.length)return void t(e);const l={};let f=r.slice(0,10).map((e=>{return e in n?Promise.resolve(n[e]):(t=function(e){const t=new Image;return t.src=e,t}(e),t.complete&&t.naturalWidth>0?Promise.resolve(t):new Promise(((e,n)=>{t.onload=()=>e(t),t.onerror=()=>n(t)})));var t}));f.forEach((n=>{n.then((e=>{l[e.src]=e})).catch((t=>(u("failed to load image",t,e),null))).then((()=>{if(f=f.filter((e=>e!==n)),0===f.length){const n=r.map((e=>l[e])).filter(Boolean);o=n,e.featured_image&&(o.some((t=>t.src===e.featured_image))||(e.featured_image=null)),e.images=o.map(c),e.content_images=(0,i.map)(e.content_images,(t=>e.images.find((e=>e.src===t.src)))).filter(Boolean),e.content_media=(0,i.map)(e.content_media,(t=>{if("image"===t.mediaType){const n=e.images.find((e=>e.src===t.src));return{...t,...n}}return t})),t(e)}var o})).catch((e=>{u("Fulfilling promise failed",e)}))}))}))}},55454:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),o=n(6964);function i(e){return function(t){if(!t||!t.content||!e)return t;const n=(0,o.j)(t.content);return(t=(0,r.reduce)(e,((e,t)=>t(e,n)),t)).content=n.innerHTML,n.innerHTML="",t}}},59755:function(e,t,n){"use strict";function r(e){if(e.height&&e.width)return{height:e.height,width:e.width};if(e.naturalHeight&&e.naturalWidth)return{height:e.naturalHeight,width:e.naturalWidth};if(e.dataset&&e.dataset.origSize){const[t,n]=e.dataset.origSize.split(",").map(Number);return{width:t,height:n}}return null}n.d(t,{H:function(){return r}})},6964:function(e,t,n){"use strict";function r(e){if("undefined"!=typeof DOMParser&&window.DOMParser.prototype.parseFromString){const t=(new window.DOMParser).parseFromString(e,"text/html");if(t&&t.body)return t.body}const t=document.implementation.createHTMLDocument("processing doc").createElement("div");return t.innerHTML=e,t}n.d(t,{j:function(){return r}})},95822:function(e,t,n){"use strict";n.d(t,{p:function(){return i}});var r=n(6261),o=n(92819);function i(e){const t=e.src&&(0,r.A)(e.src).hostname,n=t&&t.toLowerCase();return(0,o.some)(["youtube.com","youtube-nocookie.com","videopress.com","video.wordpress.com","vimeo.com","cloudup.com","soundcloud.com","8tracks.com","spotify.com","me.sh","bandcamp.com","kickstarter.com","facebook.com","embed.itunes.apple.com","nyt.com","google.com","mixcloud.com","players.brightcove.net","embed.ted.com","fast.wistia.net","player.twitch.tv","archive.org","codepen.io","www.audiomack.com","player.theplatform.com","embed.radiopublic.com","gfycat.com","scribd.com","megaphone.fm","icloud.com","read.amazon.com","loom.com"],(function(e){return`.${n}`.endsWith("."+e)}))}},75209:function(e,t,n){"use strict";function r(e){return!!e&&(!(e.width<100)&&!(e.width*e.height<7500))}n.d(t,{O:function(){return r}})},48098:function(e,t,n){"use strict";n.d(t,{E:function(){return i}});var r=n(6261),o=n(92819);function i(e){if(!e)return!1;const t=(0,r.A)(e).pathname;return(0,o.some)([".jpg",".jpeg",".png",".gif"],(e=>t.endsWith(e)))}},65956:function(e,t,n){"use strict";n.d(t,{O:function(){return a}});var r=n(6261),o=n(94668),i=n(54855),s=n(70353);function a(e,t,n,a){if(e&&e[t]){const u=(0,r.A)(e[t]);if(a&&!u.hostname){const{pathname:n}=(0,r.A)(a),o=(0,s.Z)(n,e[t]);e[t]=(0,r.C)({...u,protocol:a.protocol,hostname:a.hostname,pathname:o}).href}e[t]=(0,o.F)(e[t]),n&&(e[t]=(0,i.E)(e[t],n))}}},54855:function(e,t,n){"use strict";n.d(t,{E:function(){return u}});var r=n(6261),o=n(4174),i=n(78038);const s="undefined"!=typeof window&&window.devicePixelRatio&&window.devicePixelRatio>1?2:1,a={photon:/(^[is]\d\.wp\.com|(^|\.)wordpress\.com)$/,gravatar:/(^|\.)gravatar\.com$/};function u(e,t){if(!e)return e;const n=(0,r.A)(e),u=(0,o.D)(e);if(!n.host)return e;const c=Object.keys(a).find((e=>n.hostname.match(a[e])));delete n.search;for(const r of["h","crop","resize","fit"])n.searchParams.delete(r);const l="gravatar"===c?"s":"w";n.searchParams.set(l,t*s),"gravatar"!==c&&(n.searchParams.set("quality",80),n.searchParams.set("strip","info"));const f=Array.from(n.searchParams.keys()).sort(),p=new URLSearchParams;f.forEach((e=>p.set(e,n.searchParams.get(e))));const d=(0,r.C)({...n,protocol:n.protocol||"https:",searchParams:p}).href;try{return(0,i.Z)(d,u)}catch{return d}}},48265:function(e,t,n){"use strict";n.d(t,{G:function(){return r},m:function(){return o}});const r=/^https?:\/\//;function o(e){if(r.test(e))return e}},15721:function(e,t,n){"use strict";n.d(t,{J:function(){return o}});var r=n(48098);function o(e){return!(!e||!e.URL)&&(0,r.E)(e.URL)}},29950:function(e,t,n){"use strict";n.d(t,{W:function(){return i}});var r=n(92819);function o(e){const t={id:Number(e.ID),active:Boolean(e.active),amount:Number(e.amount),attachedToPurchaseId:Number(e.attached_to_purchase_id),billPeriodDays:Number(e.bill_period_days),billPeriodLabel:e.bill_period_label,mostRecentRenewDate:e.most_recent_renew_date,canDisableAutoRenew:Boolean(e.can_disable_auto_renew),canReenableAutoRenewal:Boolean(e.can_reenable_auto_renewal),canExplicitRenew:Boolean(e.can_explicit_renew),costToUnbundle:e.cost_to_unbundle?Number(e.cost_to_unbundle):Number(e.amount),costToUnbundleText:e.cost_to_unbundle_display?e.cost_to_unbundle_display:e.price_text,currencyCode:e.currency_code,currencySymbol:e.currency_symbol,description:e.description,domain:e.domain,domainRegistrationAgreementUrl:e.domain_registration_agreement_url||null,error:null,blogCreatedDate:e.blog_created_date,expiryDate:e.expiry_date,expiryStatus:(0,r.camelCase)(e.expiry_status),iapPurchaseManagementLink:e.iap_purchase_management_link,includedDomain:e.included_domain,includedDomainPurchaseAmount:e.included_domain_purchase_amount,introductoryOffer:e.introductory_offer?{costPerInterval:Number(e.introductory_offer.cost_per_interval),endDate:String(e.introductory_offer.end_date),intervalCount:Number(e.introductory_offer.interval_count),intervalUnit:String(e.introductory_offer.interval_unit),isWithinPeriod:Boolean(e.introductory_offer.is_within_period),transitionAfterRenewalCount:Number(e.introductory_offer.transition_after_renewal_count),isNextRenewalUsingOffer:Boolean(e.introductory_offer.is_next_renewal_using_offer),remainingRenewalsUsingOffer:Number(e.introductory_offer.remaining_renewals_using_offer),shouldProrateWhenOfferEnds:Boolean(e.introductory_offer.should_prorate_when_offer_ends),isNextRenewalProrated:Boolean(e.introductory_offer.is_next_renewal_prorated)}:null,isCancelable:Boolean(e.is_cancelable),isDomainRegistration:Boolean(e.is_domain_registration),isLocked:Boolean(e.is_locked),isInAppPurchase:Boolean(e.is_iap_purchase),isRechargeable:Boolean(e.is_rechargable),isRefundable:Boolean(e.is_refundable),isRenewable:Boolean(e.is_renewable),isRenewal:Boolean(e.is_renewal),meta:e.meta,priceText:e.price_text,partnerName:e.partner_name,partnerSlug:e.partner_slug,partnerKeyId:e.partner_key_id,payment:{name:e.payment_name,type:e.payment_type,countryCode:e.payment_country_code,countryName:e.payment_country_name,storedDetailsId:e.stored_details_id},pendingTransfer:Boolean(e.pending_transfer),productId:Number(e.product_id),productName:e.product_name,productSlug:e.product_slug,productDisplayPrice:e.product_display_price,totalRefundAmount:Number(e.total_refund_amount),totalRefundText:e.total_refund_text,refundAmount:Number(e.refund_amount),refundOptions:e.refund_options,refundText:e.refund_text,refundPeriodInDays:e.refund_period_in_days,regularPriceText:e.regular_price_text,renewDate:e.renew_date,saleAmount:e.sale_amount,siteId:Number(e.blog_id),siteName:e.blogname,subscribedDate:e.subscribed_date,subscriptionStatus:e.subscription_status,tagLine:e.tag_line,taxAmount:e.tax_amount,taxText:e.tax_text,purchaseRenewalQuantity:e.renewal_price_tier_usage_quantity||null,userId:Number(e.user_id),isAutoRenewEnabled:"1"===e.auto_renew};return"credit_card"===e.payment_type&&(t.payment.creditCard={id:Number(e.payment_card_id),type:e.payment_card_type,processor:e.payment_card_processor,number:e.payment_details,expiryDate:e.payment_expiry}),"paypal_direct"===e.payment_type&&(t.payment.expiryDate=e.payment_expiry),t}function i(e){return Array.isArray(e)?e.map(o):[]}},2623:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(56666),o=n(92819),i=n(37754);const s="__DELETE",a=new WeakMap,u=[];class c{constructor(e,t){this.data=Object.assign({items:{},queries:{}},e),this.options=Object.assign({itemKey:"ID"},t)}static mergeItem(e,t){if(arguments.length>2&&void 0!==arguments[2]&&arguments[2]){if(t.__DELETE)return;return Object.assign({},e,t)}return t}static matches(e,t){return!!t}static compare(e,t,n){return t===n?0:n-t}static sort(e,t,n){e.sort(((e,r)=>t[e]&&t[r]?this.compare(n,t[e],t[r]):0))}getItem(e){return this.data.items[e]}getItems(e){let t=null;if(e){var n;const r=this.constructor.QueryKey.stringify(e);if(t=null===(n=this.data.queries[r])||void 0===n?void 0:n.itemKeys,!t)return null}return function(e,t){let n=a.get(e);if(n||(n=new WeakMap,a.set(e,n)),null==t){let t=n.get(u);return t||(t=(0,o.values)(e),n.set(u,t)),t}let r=n.get(t);return r||(r=t.map((t=>e[t])),n.set(t,r)),r}(this.data.items,t)}getFound(e){const t=this.constructor.QueryKey.stringify(e);return(0,o.get)(this.data.queries,[t,"found"],null)}removeItem(e){return this.removeItems([e])}removeItems(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.receive(e.map((e=>({[this.options.itemKey]:e,[s]:!0}))),{patch:!0})}receive(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Array.isArray(e)||(e=[e]);const n=(0,o.reduce)(e,((e,n)=>{const r=n[this.options.itemKey],i=this.getItem(r),s=this.constructor.mergeItem(i,n,t.patch);return void 0===s?i?(0,o.omit)(e,r):e:(i&&(0,o.isEqual)(s,i)||(e===this.data.items&&(e=(0,o.clone)(e)),e[r]=s),e)}),this.data.items);let r,i=n!==this.data.items,s=this.data.queries,a=!1;if(!i&&!t.query)return this;if(t.query){const n=(0,o.map)(e,this.options.itemKey);let u,c;if(r=this.constructor.QueryKey.stringify(t.query),a=!this.data.queries[r],!a&&(0,o.isEqual)(this.data.queries[r].itemKeys,n)||(u=t.mergeQuery&&!a?(0,o.difference)(this.data.queries[r].itemKeys,n):n),t.found>=0&&t.found!==(0,o.get)(s,[r,"found"])&&(c=t.found),u||c>=0){i=!0;const e=Object.assign({},s[r]);u&&(e.itemKeys=u),c>=0&&(e.found=c),s=Object.assign({},s,{[r]:e})}}return s=(0,o.reduce)(s,((s,u,c)=>{s[c]=u;const l=r&&r===c;if(l&&(a||!t.mergeQuery))return s;if(!l&&t.dontShareQueryResultsWhenQueriesAreDifferent)return s;const f=!l,p=this.constructor.QueryKey.parse(c);let d=!1;return e.forEach((e=>{const t=e[this.options.itemKey],r=n[t],i=s[c].itemKeys.indexOf(t);-1!==i?r&&this.constructor.matches(p,r)||(s[c]===u&&(s[c]=(0,o.clone)(u)),s[c].itemKeys=[...s[c].itemKeys.slice(0,i),...s[c].itemKeys.slice(i+1)],f&&Number.isFinite(s[c].found)&&s[c].found--):r&&this.constructor.matches(p,r)&&(s[c]===u&&(s[c]=(0,o.clone)(u)),f&&Number.isFinite(s[c].found)&&s[c].found++,s[c].itemKeys=(0,o.get)(s,[c,"itemKeys"],[]).concat(t),d=!0)})),d&&this.constructor.sort(s[c].itemKeys,n,p),i=i||s[c]!==u,s}),{}),i?new this.constructor(Object.assign({},this.data,{items:n,queries:s}),this.options):this}}(0,r.Z)(c,"QueryKey",i.Z)},37754:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(56666),o=n(92819);class i{static omit(e){const{OMIT_NULL_VALUES:t,DEFAULT_QUERY:n}=this;return t||n?(0,o.omitBy)(e,((e,r)=>!(!t||null!==e)||!(!n||n[r]!==e))):e}static stringify(e){const t=this.omit(e),n=(0,o.sortBy)(Object.entries(t),(e=>e[0]));return JSON.stringify(n)}static parse(e){return this.omit(Object.fromEntries(JSON.parse(e)))}}(0,r.Z)(i,"DEFAULT_QUERY",null),(0,r.Z)(i,"OMIT_NULL_VALUES",!1)},88425:function(e,t,n){"use strict";n.d(t,{t:function(){return r},H:function(){return o}});const r={number:20,page:1},o=["number","offset","page"]},44550:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(56666),o=n(92819),i=n(2623),s=n(88425),a=n(27866);const u=new WeakMap;class c extends i.Z{static hasQueryPaginationKeys(e){return!!e&&s.H.some((t=>e.hasOwnProperty(t)))}getItems(e){if(!e)return super.getItems(e);const t=this.getItemsIgnoringPage(e,!0);if(!t)return t;const n=e.page||this.constructor.DefaultQuery.page,r=e.number||this.constructor.DefaultQuery.number;return function(e,t,n){let r=u.get(e);r||(r=new Map,u.set(e,r));const o=`${t}/${n}`;let i=r.get(o);return i||(i=e.slice(t,t+n),r.set(o,i)),i}(t,(n-1)*r,r)}getItemsIgnoringPage(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e)return null;const n=super.getItems((0,o.omit)(e,s.H));return!n||t?n:n.filter((e=>void 0!==e))}getNumberOfPages(e){const t=this.getFound(e);if(null===t)return t;const n=e.number||this.constructor.DefaultQuery.number;return Math.ceil(t/n)}receive(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;t.query&&(n=Object.assign({mergeQuery:!0},t,{query:(0,o.omit)(t.query,s.H)}));const r=super.receive(e,n);if(this===r)return r;if(!this.constructor.hasQueryPaginationKeys(t.query))return r;const i=this.constructor.QueryKey.stringify(t.query),a=t.query.page||this.constructor.DefaultQuery.page,u=t.query.number||this.constructor.DefaultQuery.number,c=(a-1)*u,l=r.data.queries[i];Array.isArray(e)||(e=[e]);const f=e.map((e=>e[this.options.itemKey])),p=(0,o.cloneDeep)(l);if(p.hasOwnProperty("found")&&e.length<u){const e=this.data.queries[i];e&&e.hasOwnProperty("found")&&(p.found=Math.max(e.found,p.found))}return p.itemKeys=[...(0,o.range)(0,c).map((e=>{const t=l.itemKeys[e];if(!f.includes(t))return t})),...(0,o.range)(0,u).map((e=>f[e])),...l.itemKeys.slice(c+u).filter((e=>e&&!f.includes(e)))],p.hasOwnProperty("found")&&(p.itemKeys=(0,o.range)(0,p.found).map((e=>p.itemKeys[e]))),new this.constructor(Object.assign({},r.data,{queries:Object.assign({},r.data.queries,{[i]:p})}),r.options)}}(0,r.Z)(c,"QueryKey",a.Z),(0,r.Z)(c,"DefaultQuery",s.t)},27866:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(92819),o=n(37754),i=n(88425);class s extends o.Z{static stringify(e){return super.stringify((0,r.omit)(e,i.H))}static parse(e){return(0,r.omit)(super.parse(e),i.H)}}},725:function(e,t,n){"use strict";n.d(t,{e:function(){return r}});const r={context:"display",http_envelope:!1,pretty:!1,number:20,offset:0,page:1,order:"DESC",order_by:"date",type:"post",status:"publish",sticky:"include",search:""}},3982:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(56666),o=n(92819),i=n(76292),s=n.n(i),a=n(44550),u=n(725),c=n(93039);class l extends a.Z{static matches(e,t){const n=Object.assign({},this.DefaultQuery,e);return Object.entries(n).every((e=>{let[n,r]=e;switch(n){case"search":{if(!r)return!0;const e=r.toLowerCase();return t.title&&t.title.toLowerCase().includes(e)||t.content&&t.content.toLowerCase().includes(e)}case"after":case"before":case"modified_after":case"modified_before":{const e=s()(r,s().ISO_8601),o=/after$/.test(n)?"isAfter":"isBefore",i=/^modified_/.test(n)?"modified":"date";return e.isValid()&&s()(t[i])[o](e)}case"term":return Object.entries(r).every((e=>{let[n,r]=e;return r=r.split(","),(0,o.some)(t.terms[n],(e=>{let{slug:t}=e;return r.includes(t)}))}));case"tag":case"category":{if(!r)return!0;const e=r.toLowerCase(),i="tag"===n?"tags":"categories";return(0,o.some)(t[i],(t=>{let{name:n,slug:r}=t;return n&&n.toLowerCase()===e||r&&r.toLowerCase()===e}))}case"type":return"any"===r||r===t.type;case"parent_id":return r===t.parent||t.parent&&r===t.parent.ID;case"exclude":return Array.isArray(r)?!r.includes(t.ID):r!==t.ID;case"sticky":return"require"===r?t.sticky:"exclude"!==r||!t.sticky;case"author":return(0,o.get)(t,"author.ID",t.author)===r;case"status":return"any"===r||String(r).split(",").some((e=>e===t[n]))}return!0}))}static compare(e,t,n){let r;switch(e.order_by){case"ID":r=t.ID-n.ID;break;case"comment_count":r=(0,o.get)(t.discussion,"comment_count",0)-(0,o.get)(n.discussion,"comment_count",0);break;case"title":r=t.title.localeCompare(n.title);break;case"modified":r=new Date(t.modified)-new Date(n.modified);break;default:r=new Date(t.date)-new Date(n.date)}return e.order&&!/^desc$/i.test(e.order)||(r*=-1),r||0}}(0,r.Z)(l,"QueryKey",c.Z),(0,r.Z)(l,"DefaultQuery",u.e)},93039:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(92819),o=n(27866),i=n(725);function s(e,t){return null==e||i.e[t]===e}class a extends o.Z{static stringify(e){return super.stringify((0,r.omitBy)(e,s))}static parse(e){return(0,r.omitBy)(super.parse(e),s)}}},41900:function(e,t,n){"use strict";var r=n(24869),o=n.n(r);n(92819);const i=o()({additionalProperties:!1,required:["data","options"],type:"object",properties:{data:{additionalProperties:!1,type:"object",properties:{items:{type:"object"},queries:{additionalProperties:!1,type:"object",patternProperties:{"^\\[.*\\]$":{required:["itemKeys"],type:"object",properties:{itemKeys:{type:"array",items:{type:["integer","null","string"]}},found:{type:"integer"}}}}}}},options:{additionalProperties:!0,required:["itemKey"],type:"object",properties:{itemKey:{type:"string"}}}}});t.Z=i},96252:function(e,t,n){"use strict";function r(e,t,n,r){if(!t)return e;const o=e[t]||r&&r();if(!o)return e;const i=n(o);return i===o?e:{...e,[t]:i}}n.d(t,{Z:function(){return r}})},55347:function(e,t){"use strict";t.Z=e=>"/"===e?e:e.replace(/\/$/,"")},72537:function(e,t,n){"use strict";n.d(t,{Cm:function(){return o}});n(92819);var r=n(47307);function o(e){return e.filter((t=>{const n=(0,r.ce)(t.URL);return!t.jetpack&&e.some((e=>e.jetpack&&n===(0,r.ce)(e.URL)))})).map((e=>e.ID))}},40822:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(4174),o=n(78038),i=n(92819);function s(e,t){if("object"!=typeof e)throw new Error("addQueryArgs expects the first argument to be an object.");if("string"!=typeof t)throw new Error("addQueryArgs expects the second argument to be a string.");const n=(0,r.D)(t);if(n===r.a.INVALID)throw new Error("addQueryArgs expects the second argument to be a valid URL.");e=(0,i.pickBy)(e,(e=>null!=e));const s=new URL(t,"http://__domain__.invalid"),a=new URLSearchParams(s.search);for(const r of Object.keys(e))a.set(r,String(e[r]));if(n===r.a.PATH_RELATIVE){let e=a.toString();return""!==e&&(e=`?${e}`),""!==s.search?t.replace(s.search,e):s.hash?t.replace(s.hash,`${e}${s.hash}`):`${t}${e}`}return s.search=a.toString(),(0,o.Z)(s,n)}},47307:function(e,t,n){"use strict";n.d(t,{ce:function(){return o},nq:function(){return i}});const r=/^https?:\/\//;function o(e){return""===e?"":e?e.replace(r,""):null}function i(e){return e?o(e).replace(/\//g,"::"):null}},70353:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(4174);function o(e,t){e=e||"/";if((0,r.D)(e)!==r.a.PATH_ABSOLUTE)throw new Error("`basePath` should be an absolute path");const n=new URL("http://__domain__.invalid/");return n.pathname=e,t?(n.pathname=(n.pathname.endsWith("/")?n.pathname.slice(0,-1):n.pathname)+(t.startsWith("/")?"":"/")+t,n.pathname):n.pathname}},29726:function(e,t,n){"use strict";n.d(t,{v:function(){return u}});var r=n(50118),o=n(41333);const i=["ID","display_name","username","avatar_URL","site_count","jetpack_site_count","visible_site_count","jetpack_visible_site_count","date","has_unseen_notes","newest_note_type","phone_account","email","email_verified","is_valid_google_apps_country","user_ip_country_code","logout_URL","primary_blog","primary_blog_is_jetpack","has_jetpack_partner_access","jetpack_partner_types","primary_blog_url","meta","is_new_reader","social_login_connections","abtests","lasagna_jwt","i18n_empathy_mode","use_fallback_for_incomplete_languages"],s=["ID"],a=["display_name","description","user_URL"];function u(e){if("object"!=typeof e)throw new Error("the /me response is not an object");for(const n of s)if(!e.hasOwnProperty(n))throw new Error(`the /me response misses a required field '${n}'`);const t={};for(const n of i){const o=e[n];t[n]=o&&a.includes(n)?(0,r.S)(o):o}return Object.assign(t,(0,o.B)(e))}},41333:function(e,t,n){"use strict";n.d(t,{B:function(){return o}});var r=n(47307);function o(e){const t=e.primary_blog_url||"";return{primarySiteSlug:(n=t,(0,r.ce)(n).replace(/\//g,"::")),localeSlug:e.language,localeVariant:e.locale_variant};var n}},26935:function(e,t,n){"use strict";n.d(t,{K:function(){return o}});var r=n(20899);function o(e,t){let n,o="";return null==e||!e.logout_URL||r.ZP.isEnabled("always_use_logout_url")?(null!=e&&e.localeSlug&&""!==e.localeSlug&&"en"!==e.localeSlug&&(o=e.localeSlug+"."),n=(0,r.ZP)("logout_url").replace("|subdomain|",o)):n=e.logout_URL,"string"==typeof t&&(n+=t="&redirect_to="+encodeURIComponent(t)),n}},59852:function(e,t,n){"use strict";n.d(t,{G:function(){return o}});var r=n(72429);function o(){return r.Z.me().get({meta:"flags"})}},65792:function(e,t,n){"use strict";n.d(t,{YF:function(){return s}});var r=n(23729),o=n.n(r),i=n(66651);async function s(){o().clearAll(),await(0,i.B$)()}},72429:function(e,t,n){"use strict";var r=n(20899),o=n(38049),i=n.n(o),s=n(18552),a=n(7268),u=n(33300),c=n(12902),l=n(54083),f=n(78009),p=n(21286);const d=i()("calypso:wp");let h;r.ZP.isEnabled("oauth")?h=(0,c.Z)(a.LP(),l.Z):(h=(0,c.Z)(s.ZP),h.request({metaAPI:{accessAllUsersBlogs:!0}},(function(e){if(e)throw e;d('Proxy now running in "access all user\'s blogs" mode')}))),h=(0,u.Z)(h),(0,p.J)(h),(0,f.rc)(h),t.Z=h;(0,c.Z)(l.Z)},78009:function(e,t,n){"use strict";n.d(t,{rc:function(){return u}});var r=n(19126),o=n(23729),i=n.n(o);const s="guest_sandbox_ticket",a=()=>i().get(s),u=e=>{const t=e.request.bind(e);Object.assign(e,{request(e,n){const o=a();if(o){const t=(0,r.parse)(e.query);e=Object.assign({},e,{query:(0,r.stringify)(Object.assign(t,{store_sandbox_ticket:o.value}))})}return t(e,n)}})};(()=>{if("undefined"==typeof window)return;(()=>{const e=a();e&&e.createdDate<Date.now()-72e5&&i().remove(s)})();const e=(0,r.parse)(window.location.search.replace("?",""));e.guest_ticket&&i().set(s,{createdDate:Date.now(),value:e.guest_ticket})})()},21286:function(e,t,n){"use strict";n.d(t,{J:function(){return i}});var r=n(11481),o=n(19126);function i(e){const t=e.request.bind(e);return Object.assign(e,{localized:!0,request:function(e,n){return t(function(e){const t=r.ZP.getLocaleVariant()||r.ZP.getLocaleSlug();if(!t||"en"===t)return e;let n;const i=(0,o.parse)(e.query);return n=e.apiNamespace?{_locale:t}:{locale:t},Object.assign(e,{query:(0,o.stringify)(Object.assign(n,i))})}(e),n)}})}},33300:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(19126);function o(e){let t="",n="",o=null;const i=e.request.bind(e);return Object.assign(e,{addSupportParams:function(e){return{...e,support_user:t,_support_token:n}},setSupportUserToken:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0;return(e!==t||r!==n)&&(t=e,n=r,o=i,!0)},request:(e,s)=>t&&n?i(function(e){const o=(0,r.parse)(e.query);return o.support_user=t,o._support_token=n,Object.assign({},e,{query:(0,r.stringify)(o)})}(e),((e,t)=>{o&&"invalid_support_token"===(null==e?void 0:e.error)?o(e):s(e,t)})):i(e,s)})}},12902:function(e,t,n){"use strict";var r=n(91285),o=n.n(r),i=n(91202);function s(e,t){if(!(this instanceof s))return new s(e,t);"function"==typeof e?(t=e,e=null):e&&this.loadToken(e),i.Z.call(this,e,(function(e,n){return this.isTokenLoaded()&&(e={...e,authToken:this._token,token:this._token}),t(e,n)}))}o()(s,i.Z),i.Z.prototype.loadToken=function(e){this._token=e},s.prototype.isTokenLoaded=function(){return void 0!==this._token},t.Z=s},54083:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(26935),o=n(65792);async function i(e,t){return(0,(await n.e(361).then(n.bind(n,3614))).default)(e,(async function(e,n,i){e&&"InvalidTokenError"===e.name&&(await(0,o.YF)(),window.location.href=(0,r.K)()),t(e,n,i)}))}},1422:function(e,t,n){"use strict"},77270:function(e,t,n){"use strict";n.d(t,{t:function(){return o}});const r={widgets:["panel","widgets"],fonts:["section","jetpack_fonts"],identity:["section","title_tagline"],"custom-css":["section","jetpack_custom_css"],amp:["section","amp_design"],menus:["panel","nav_menus"],homepage:["section","static_front_page"],jetpack_search:["section","jetpack_search"]};function o(e){if(r.hasOwnProperty(e)){const[t,n]=r[e];return{[`autofocus[${t}]`]:n}}return null}},83373:function(e,t,n){"use strict";var r=n(20899);n(92819),n(7728);(0,r.ZP)("discover_blog_id")},58414:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});function r(){if("undefined"==typeof document)return;const e=document.documentElement.clientWidth;return e>1040?720:e>928?e-304:e>660?e-288:e-20}},77327:function(e,t,n){"use strict";function r(e){if(e)return e.feed_ID&&e.feed_item_ID?{feedId:e.feed_ID,postId:e.feed_item_ID}:e.is_external?{feedId:e.feed_ID||e.site_ID,postId:e.feed_item_ID||e.ID}:{blogId:e.site_ID,postId:e.ID}}function o(e,t){return e===t||!(!e&&t||e&&!t||!e&&!t&&e!==t)&&(!(e.isGap&&!t.isGap||!e.isGap&&t.isGap)&&(e.isGap&&t.isGap?e.from===t.from&&e.to===t.to:e.postId===t.postId&&(e.feedId?e.feedId===t.feedId:e.blogId===t.blogId)))}function i(e){if(!e||e.isGap)return null;if(e.isCombination){const t=e.feedId?`&feedId=${e.feedId}`:"",n=e.blogId?`&feedId=${e.blogId}`:"";return`postIds=[${e.postIds.join(",")}, ]${t}${n} `}return e.isRecommendationBlock?`rec-${e.index}`:e.feedId?`${e.postId}-${e.feedId}`:e.blogId?`${e.postId}-${e.blogId}`:null}function s(e){return e&&e.postId&&(e.blogId||e.feedId)}n.d(t,{WO:function(){return r},NK:function(){return o},C$:function(){return i},J0:function(){return s}})},7728:function(e,t,n){"use strict";var r=n(20899);(0,r.ZP)("discover_blog_id"),(0,r.ZP)("discover_feed_id")},29789:function(e,t,n){"use strict";n.d(t,{yg:function(){return u}});var r=n(38049),o=n.n(r),i=(n(92819),n(44567),n(7689));n(17032);const s=o()("calypso:reader:stats");const a=new Set;function u(e,t,n,r){if(!e||!t||!n)return;const o={ref:"http://wordpress.com/",reader:1,host:t.replace(/.*?:\/\//g,""),blog:e,post:n};r&&(o.priv=1),s("reader page view for post",o),(0,i.S)(o)}a.add("calypso_reader_related_post_from_same_site_clicked").add("calypso_reader_related_post_from_other_site_clicked").add("calypso_reader_related_post_site_clicked").add("calypso_reader_article_liked").add("calypso_reader_article_commented_on").add("calypso_reader_article_opened").add("calypso_reader_searchcard_clicked").add("calypso_reader_author_link_clicked").add("calypso_reader_permalink_click").add("calypso_reader_recommended_post_clicked").add("calypso_reader_recommended_site_clicked").add("calypso_reader_recommended_post_dismissed")},46310:function(e,t,n){"use strict";n.d(t,{qb:function(){return r}});n(92819),n(76292),n(83373);function r(e,t){return e&&t&&e.xPostMetadata&&t.xPostMetadata&&e.xPostMetadata.blogId&&e.xPostMetadata.blogId===t.xPostMetadata.blogId&&e.xPostMetadata.postId&&e.xPostMetadata.postId===t.xPostMetadata.postId}},40211:function(e,t,n){"use strict";n.d(t,{u2u:function(){return r},Wj3:function(){return o},lAo:function(){return i},K5f:function(){return s},ti2:function(){return a},Fux:function(){return u},JYg:function(){return c},gm2:function(){return l},uBM:function(){return f},KAg:function(){return p},w6q:function(){return d},M5U:function(){return h},tGX:function(){return g},K1T:function(){return m},sQe:function(){return y},HYG:function(){return v},HCR:function(){return b},T6o:function(){return w},ON1:function(){return _},sBg:function(){return E},zVI:function(){return S},DGo:function(){return C},gQI:function(){return P},cnn:function(){return k},G1W:function(){return I},dAl:function(){return A},YPU:function(){return T},iHL:function(){return R},H6A:function(){return O},vQd:function(){return x},o9b:function(){return F},Mei:function(){return L},nHy:function(){return U},oH7:function(){return Z},f5U:function(){return D},AKl:function(){return j},M7f:function(){return N},Sur:function(){return M},$Tb:function(){return q},IoY:function(){return B},Ylp:function(){return H},k_K:function(){return V},myH:function(){return $},yGK:function(){return W},IwF:function(){return z},R_D:function(){return G},kJ4:function(){return Q},Syf:function(){return Y},vsK:function(){return K},qjX:function(){return J},$tj:function(){return X},Do$:function(){return ee},ILV:function(){return te},SgU:function(){return ne},tyO:function(){return re},eYx:function(){return oe},c2t:function(){return ie},Xeb:function(){return se},xm0:function(){return ae},Oh9:function(){return ue},ftJ:function(){return ce},kUt:function(){return le},XTm:function(){return fe},vO0:function(){return pe},JqF:function(){return de},NnF:function(){return he},aqr:function(){return ge},WkZ:function(){return me},hxz:function(){return ye},C6k:function(){return ve},T3s:function(){return be},X5K:function(){return we},h2B:function(){return _e},Rp6:function(){return Ee},LbL:function(){return Se},xkR:function(){return Ce},kNW:function(){return Pe},oD3:function(){return ke},RFP:function(){return Ie},rgA:function(){return Ae},AVO:function(){return Te},a7F:function(){return Re},PP1:function(){return Oe},pgH:function(){return xe},Ra4:function(){return Fe},nL0:function(){return Le},F1Z:function(){return Ue},JZv:function(){return Ze},R$r:function(){return De},NYz:function(){return je},gpX:function(){return Ne},Se1:function(){return Me},bE0:function(){return qe},vIA:function(){return Be},N__:function(){return He},CNw:function(){return Ve},hZH:function(){return $e},KF6:function(){return We},WYe:function(){return ze},vP0:function(){return Ge},hYA:function(){return Qe},XMF:function(){return Ye},LEp:function(){return Ke},A4M:function(){return Je},pSd:function(){return Xe},PD1:function(){return et},N8o:function(){return tt},XuD:function(){return nt},lCo:function(){return rt},JPH:function(){return ot},kLL:function(){return it},dGx:function(){return st},WjV:function(){return at},RIF:function(){return ut},gbe:function(){return ct},pJb:function(){return lt},m58:function(){return ft},_qM:function(){return pt},Fsf:function(){return dt},$5Y:function(){return ht},XMH:function(){return gt},_MG:function(){return mt},RSp:function(){return yt},Nq:function(){return vt},IK5:function(){return bt},bgv:function(){return wt},tvw:function(){return _t},U5d:function(){return Et},QLz:function(){return St},D5g:function(){return Ct},SYS:function(){return Pt},t2O:function(){return kt},wOJ:function(){return It},dyA:function(){return At},RI4:function(){return Tt},fa4:function(){return Rt},xNf:function(){return Ot},YCt:function(){return xt},uvG:function(){return Ft},Kmp:function(){return Lt},Frv:function(){return Ut},Byq:function(){return Zt},lfH:function(){return Dt},lTr:function(){return jt},gNn:function(){return Nt},Rmh:function(){return Mt},$MQ:function(){return qt},XLI:function(){return Bt},U0$:function(){return Ht},eO9:function(){return Vt},S3d:function(){return $t},whB:function(){return Wt},UUJ:function(){return zt},hJk:function(){return Gt},uuM:function(){return Qt},Mvd:function(){return Yt},KBY:function(){return Kt},rZJ:function(){return Jt},xLe:function(){return Xt},M4_:function(){return en},eTV:function(){return tn},KSQ:function(){return nn},Khp:function(){return rn},koV:function(){return on}});const r="ANALYTICS_EVENT_RECORD",o="ANALYTICS_PAGE_VIEW_RECORD",i="ANALYTICS_STAT_BUMP",s="ANALYTICS_TRACKING_ON",a="ANALYTICS_TRACKS_OPT_OUT",u="APP_BANNER_TOGGLE_VISIBILITY",c="APP_BANNER_DISMISSED",l="APPLY_STORED_STATE",f="CURRENT_USER_RECEIVE",p="CURRENT_USER_SET_EMAIL_VERIFIED",d="DOMAIN_CONTACT_INFO_DISCLOSE",h="DOMAIN_CONTACT_INFO_DISCLOSE_FAILURE",g="DOMAIN_CONTACT_INFO_DISCLOSE_SUCCESS",m="DOMAIN_CONTACT_INFO_REDACT",y="DOMAIN_CONTACT_INFO_REDACT_FAILURE",v="DOMAIN_CONTACT_INFO_REDACT_SUCCESS",b="DOMAIN_PRIVACY_DISABLE",w="DOMAIN_PRIVACY_DISABLE_FAILURE",_="DOMAIN_PRIVACY_DISABLE_SUCCESS",E="DOMAIN_PRIVACY_ENABLE",S="DOMAIN_PRIVACY_ENABLE_FAILURE",C="DOMAIN_PRIVACY_ENABLE_SUCCESS",P="EDITOR_START",k="EDITOR_STOP",I="EMAIL_VERIFY_REQUEST",A="EMAIL_VERIFY_REQUEST_FAILURE",T="EMAIL_VERIFY_REQUEST_SUCCESS",R="EMAIL_VERIFY_STATE_RESET",O="GUIDED_TOUR_UPDATE",x="HAPPYCHAT_BLUR",F="HAPPYCHAT_FOCUS",L="HAPPYCHAT_IO_INIT",U="HAPPYCHAT_IO_RECEIVE_ACCEPT",Z="HAPPYCHAT_IO_RECEIVE_CONNECT",D="HAPPYCHAT_IO_RECEIVE_DISCONNECT",j="HAPPYCHAT_IO_RECEIVE_ERROR",N="HAPPYCHAT_IO_RECEIVE_INIT",M="HAPPYCHAT_IO_RECEIVE_LOCALIZED_SUPPORT",q="HAPPYCHAT_IO_RECEIVE_MESSAGE",B="HAPPYCHAT_IO_RECEIVE_MESSAGE_OPTIMISTIC",H="HAPPYCHAT_IO_RECEIVE_MESSAGE_UPDATE",V="HAPPYCHAT_IO_RECEIVE_RECONNECTING",$="HAPPYCHAT_IO_RECEIVE_STATUS",W="HAPPYCHAT_IO_RECEIVE_TOKEN",z="HAPPYCHAT_IO_RECEIVE_UNAUTHORIZED",G="HAPPYCHAT_IO_REQUEST_TRANSCRIPT",Q="HAPPYCHAT_IO_REQUEST_TRANSCRIPT_RECEIVE",Y="HAPPYCHAT_IO_SEND_MESSAGE_EVENT",K="HAPPYCHAT_IO_SEND_MESSAGE_LOG",J="HAPPYCHAT_IO_SEND_MESSAGE_MESSAGE",X="HAPPYCHAT_IO_SEND_MESSAGE_USERINFO",ee="HAPPYCHAT_IO_SEND_PREFERENCES",te="HAPPYCHAT_IO_SEND_TYPING",ne="HAPPYCHAT_IO_SET_CUSTOM_FIELDS",re="HAPPYCHAT_MINIMIZING",oe="HAPPYCHAT_OPEN",ie="HAPPYCHAT_SET_CURRENT_MESSAGE",se="HAPPYCHAT_SET_USER_CONFIG",ae="HELP_CENTER_VISIBLE",ue="JETPACK_DISCONNECT_RECEIVE",ce="JETPACK_SITE_DISCONNECT_REQUEST",le="LAYOUT_FOCUS_SET",fe="LAYOUT_NEXT_FOCUS_ACTIVATE",pe="LAYOUT_NEXT_FOCUS_SET",de="LOCALE_SET",he="MASTERBAR_TOGGLE_VISIBILITY",ge="MEDIA_DELETE",me="MEDIA_MODAL_VIEW_SET",ye="NOTIFICATIONS_PANEL_TOGGLE",ve="POST_COUNTS_RECEIVE",be="POST_COUNTS_REQUEST",we="POST_COUNTS_REQUEST_FAILURE",_e="POST_COUNTS_REQUEST_SUCCESS",Ee="POST_COUNTS_RESET_INTERNAL_STATE",Se="POST_DELETE",Ce="POST_DELETE_FAILURE",Pe="POST_DELETE_SUCCESS",ke="POST_EDIT",Ie="POST_LIKE",Ae="POST_LIKES_ADD_LIKER",Te="POST_LIKES_RECEIVE",Re="POST_LIKES_REMOVE_LIKER",Oe="POST_LIKES_REQUEST",xe="POST_REQUEST",Fe="POST_REQUEST_FAILURE",Le="POST_REQUEST_SUCCESS",Ue="POST_RESTORE",Ze="POST_RESTORE_FAILURE",De="POST_REVISION_AUTHORS_RECEIVE",je="POST_REVISIONS_DIALOG_CLOSE",Ne="POST_REVISIONS_DIALOG_OPEN",Me="POST_REVISIONS_DIFF_SPLIT_VIEW",qe="POST_REVISIONS_DIFF_UNIFY_VIEW",Be="POST_REVISIONS_RECEIVE",He="POST_REVISIONS_SELECT",Ve="POST_SAVE",$e="POST_SAVE_SUCCESS",We="POST_TYPE_LIST_SHARE_PANEL_HIDE",ze="POST_TYPE_LIST_SHARE_PANEL_TOGGLE",Ge="POST_UNLIKE",Qe="POSTS_RECEIVE",Ye="POSTS_REQUEST",Ke="POSTS_REQUEST_FAILURE",Je="POSTS_REQUEST_SUCCESS",Xe="PREFERENCES_FETCH",et="PREFERENCES_FETCH_FAILURE",tt="PREFERENCES_FETCH_SUCCESS",nt="PREFERENCES_RECEIVE",rt="PREFERENCES_SAVE_SUCCESS",ot="PREFERENCES_SET",it="PREVIEW_URL_CLEAR",st="PREVIEW_URL_SET",at="PURCHASE_REMOVE_COMPLETED",ut="PURCHASE_REMOVE_FAILED",ct="PURCHASES_REMOVE",lt="PURCHASES_SITE_FETCH",ft="PURCHASES_SITE_FETCH_COMPLETED",pt="PURCHASES_SITE_FETCH_FAILED",dt="PURCHASES_SITE_RESET_STATE",ht="PURCHASES_USER_FETCH",gt="PURCHASES_USER_FETCH_COMPLETED",mt="PURCHASES_USER_FETCH_FAILED",yt="ROUTE_SET",vt="SECTION_LOADING_SET",bt="SECTION_SET",wt="SELECTED_SITE_SET",_t="SITE_CONNECTION_STATUS_RECEIVE",Et="SITE_CONNECTION_STATUS_REQUEST",St="SITE_CONNECTION_STATUS_REQUEST_FAILURE",Ct="SITE_CONNECTION_STATUS_REQUEST_SUCCESS",Pt="SITE_DELETE_RECEIVE",kt="SITE_DOMAINS_RECEIVE",It="SITE_DOMAINS_REQUEST",At="SITE_DOMAINS_REQUEST_FAILURE",Tt="SITE_DOMAINS_REQUEST_SUCCESS",Rt="SITE_FEATURES_FETCH",Ot="SITE_FEATURES_FETCH_COMPLETED",xt="SITE_FEATURES_FETCH_FAILED",Ft="SITE_FRONT_PAGE_UPDATE",Lt="SITE_INTRO_OFFER_RECEIVE",Ut="SITE_INTRO_OFFER_REQUEST",Zt="SITE_INTRO_OFFER_REQUEST_FAILURE",Dt="SITE_INTRO_OFFER_REQUEST_SUCCESS",jt="SITE_MIGRATION_STATUS_UPDATE",Nt="SITE_PLANS_FETCH",Mt="SITE_PLANS_FETCH_COMPLETED",qt="SITE_PLANS_FETCH_FAILED",Bt="SITE_PLANS_REMOVE",Ht="SITE_PLUGIN_UPDATED",Vt="SITE_PRODUCTS_FETCH",$t="SITE_PRODUCTS_FETCH_COMPLETED",Wt="SITE_PRODUCTS_FETCH_FAILED",zt="SITE_RECEIVE",Gt="SITE_REQUEST",Qt="SITE_REQUEST_FAILURE",Yt="SITE_REQUEST_SUCCESS",Kt="SITE_SETTINGS_RECEIVE",Jt="SITE_SETTINGS_UPDATE",Xt="SITES_RECEIVE",en="SITES_REQUEST",tn="SITES_REQUEST_FAILURE",nn="SITES_REQUEST_SUCCESS",rn="WORDADS_SITE_APPROVE_REQUEST_SUCCESS",on="WPCOM_HTTP_REQUEST"},48539:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(92819);const o=(e,t)=>Array.isArray(e)?e.concat(t):void 0,i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.length>1?(0,r.mergeWith)(Object.create(null),...t,o):t[0]}},86398:function(e,t,n){"use strict";n.d(t,{Z:function(){return s},l:function(){return a}});var r=n(40211);const o=new Map,i=new Map;function s(){o.clear(),i.clear()}const a=(e,t)=>(n,s)=>{const a=s.storageKey,u=function(e){return e.join(".")}(n),c=i.get(u),l=o.get(u);if(c&&s!==c)throw new Error(`Different reducers on multiple calls to \`addReducerToStore\` for key: ${u}`);if(!l){if(e.addReducer(n,s),a&&t){const n=t(s,a);n&&e.dispatch({type:r.gm2,storageKey:a,storedState:n})}o.set(u,!0),i.set(u,s)}}},19298:function(e,t,n){"use strict";n.d(t,{jN:function(){return i}});var r=n(40211);const o=(e,t)=>({type:r.u2u,meta:{analytics:[{type:r.u2u,payload:Object.assign({},{service:e},t)}]}}),i=(e,t)=>o("tracks",{name:e,properties:t})},15223:function(e,t,n){"use strict";var r=n(25394),o=n(44567),i=n(80252),s=n(7689),a=n(66610),u=n(17032),c=n(40211);const l={ga:e=>{let{category:t,action:n,label:r,value:i}=e;return(0,o.Yh)(t,n,r,i)},tracks:e=>{let{name:t,properties:n}=e;return(0,u.recordTracksEvent)(t,n)},fb:e=>{let{name:t,properties:n}=e;return(0,r.K)(t,n)},adwords:e=>{let{properties:t}=e;return(0,r.w)(t)}},f={ga:e=>{let{url:t,title:n}=e;return(0,o.eK)(t,n)},default:e=>{let{url:t,title:n,options:r,...o}=e;return(0,a.A)(t,n,o,r)}},p=e=>{e.meta.analytics.forEach((e=>{var t,n;let{type:r,payload:o}=e;const{service:i="default",...a}=o;switch(r){case c.u2u:return null===(t=l[i])||void 0===t?void 0:t.call(l,a);case c.Wj3:return null===(n=f[i])||void 0===n?void 0:n.call(f,a);case c.lAo:return(e=>{let{group:t,name:n}=e;return(0,s.P)(t,n)})(a)}}))};t.Z=()=>e=>t=>{var n;switch(t.type){case c.K5f:return void("HotJar"===t.trackingTool&&(0,i.o)());case c.ti2:return void(0,u.setTracksOptOut)(t.isOptingOut);default:null!==(n=t.meta)&&void 0!==n&&n.analytics&&p(t)}return e(t)}},6255:function(e,t,n){"use strict";t.Z=e=>function(){const t=e(...arguments);return"undefined"!=typeof window&&(Object.assign(window,t),Object.defineProperty(window,"state",{enumerable:!0,get:t.getState})),t}},91668:function(e,t,n){"use strict";n.d(t,{lx:function(){return o}});n(65792);var r=n(40211);n(36747);functio
|
40 |
*
|
41 |
* This source code is licensed under the MIT license found in the
|
42 |
* LICENSE file in the root directory of this source tree.
|
|