{"version":3,"sources":["webpack:///./node_modules/gatsby/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@sentry/utils/esm/string.js","webpack:///./node_modules/@sentry/utils/esm/node.js","webpack:///./node_modules/gatsby-link/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/gatsby-react-router-scroll/session-storage.js","webpack:///./node_modules/react-ga/dist/esm/utils/console/warn.js","webpack:///./node_modules/react-ga/dist/esm/components/OutboundLink.js","webpack:///./node_modules/react-ga/dist/esm/utils/trim.js","webpack:///./node_modules/react-ga/dist/esm/utils/toTitleCase.js","webpack:///./node_modules/react-ga/dist/esm/utils/format.js","webpack:///./node_modules/react-ga/dist/esm/utils/mightBeEmail.js","webpack:///./node_modules/react-ga/dist/esm/utils/console/log.js","webpack:///./node_modules/react-ga/dist/esm/utils/testModeAPI.js","webpack:///./node_modules/react-ga/dist/esm/core.js","webpack:///./node_modules/react-ga/dist/esm/utils/loadGA.js","webpack:///./node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","webpack:///./node_modules/react-ga/dist/esm/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/engine-user-agent.js","webpack:///./.cache/normalize-page-path.js","webpack:///./.cache/find-path.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/has.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./node_modules/mitt/dist/mitt.es.js","webpack:///./.cache/emitter.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/@sentry/utils/esm/object.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/gatsby-react-router-scroll/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/shared.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/@sentry/utils/esm/misc.js","webpack:///./.cache/react-lifecycles-compat.js","webpack:///./node_modules/@sentry/utils/esm/is.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/@reach/router/es/lib/history.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack:///./node_modules/gatsby-plugin-catch-links/gatsby-browser.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/uid.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack:///./node_modules/@sentry/utils/esm/syncpromise.js","webpack:///./node_modules/@sentry/hub/esm/scope.js","webpack:///./node_modules/@sentry/utils/esm/logger.js","webpack:///./node_modules/@sentry/types/esm/session.js","webpack:///./node_modules/@sentry/hub/esm/session.js","webpack:///./node_modules/@sentry/hub/esm/hub.js","webpack:///./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack:///./node_modules/@sentry/utils/esm/polyfill.js","webpack:///./node_modules/@sentry/utils/esm/error.js","webpack:///./node_modules/@sentry/utils/esm/dsn.js","webpack:///./node_modules/@sentry/core/esm/integration.js","webpack:///./node_modules/@sentry/core/esm/baseclient.js","webpack:///./node_modules/@sentry/types/esm/status.js","webpack:///./node_modules/@sentry/core/esm/transports/noop.js","webpack:///./node_modules/@sentry/types/esm/severity.js","webpack:///./node_modules/@sentry/core/esm/basebackend.js","webpack:///./node_modules/@sentry/utils/esm/supports.js","webpack:///./node_modules/@sentry/browser/esm/tracekit.js","webpack:///./node_modules/@sentry/browser/esm/parsers.js","webpack:///./node_modules/@sentry/browser/esm/eventbuilder.js","webpack:///./node_modules/@sentry/core/esm/request.js","webpack:///./node_modules/@sentry/core/esm/api.js","webpack:///./node_modules/@sentry/utils/esm/promisebuffer.js","webpack:///./node_modules/@sentry/browser/esm/transports/base.js","webpack:///./node_modules/@sentry/browser/esm/transports/fetch.js","webpack:///./node_modules/@sentry/browser/esm/transports/xhr.js","webpack:///./node_modules/@sentry/browser/esm/backend.js","webpack:///./node_modules/@sentry/minimal/esm/index.js","webpack:///./node_modules/@sentry/browser/esm/helpers.js","webpack:///./node_modules/@sentry/utils/esm/instrument.js","webpack:///./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack:///./node_modules/@sentry/browser/esm/version.js","webpack:///./node_modules/@sentry/browser/esm/client.js","webpack:///./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack:///./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack:///./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack:///./node_modules/@sentry/browser/esm/integrations/useragent.js","webpack:///./node_modules/@sentry/browser/esm/sdk.js","webpack:///./node_modules/@sentry/core/esm/sdk.js","webpack:///./node_modules/@sentry/browser/esm/index.js","webpack:///./gatsby-browser.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/hidden-keys.js","webpack:///./.cache/page-renderer.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/fails.js","webpack:///./node_modules/node-libs-browser/node_modules/process/browser.js","webpack:///./node_modules/@reach/router/es/lib/utils.js","webpack:///./.cache/api-runner-browser-plugins.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/@mikaelkristiansson/domready/ready.js","webpack:///./.cache/register-service-worker.js","webpack:///./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/global.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./.cache/route-announcer-props.js","webpack:///./.cache/navigation.js","webpack:///./node_modules/shallow-compare/es/index.js","webpack:///./.cache/ensure-resources.js","webpack:///./.cache/production-app.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-length.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack:///./node_modules/@reach/router/es/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/export.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/classof-raw.js","webpack:///./.cache/strip-prefix.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/gatsby-link/parse-path.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.promise.finally.js","webpack:///./.cache/prefetch.js","webpack:///./.cache/loader.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/path.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-container.js","webpack:///./node_modules/gatsby-plugin-catch-links/catch-links.js","webpack:///./config/meta.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/set-global.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/extends.js","webpack:///./gatsby-config.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@sentry/utils/esm/time.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/is-pure.js","webpack:///./.cache/public-page-renderer.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack:///./.cache/create-react-context.js","webpack:///./node_modules/escape-string-regexp/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/@sentry/utils/esm/stacktrace.js","webpack:///./node_modules/gatsby-plugin-google-analytics/gatsby-browser.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/@sentry/utils/esm/browser.js","webpack:///./node_modules/@sentry/utils/esm/memo.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/a-function.js","webpack:///./.cache/api-runner-browser.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-get-own-property-names.js"],"names":["global","createNonEnumerableProperty","has","setGlobal","inspectSource","InternalStateModule","getInternalState","get","enforceInternalState","enforce","TEMPLATE","String","split","module","exports","O","key","value","options","state","unsafe","simple","enumerable","noTargetGet","source","join","Function","prototype","this","truncate","str","max","length","substr","snipLine","line","colno","newLine","ll","start","Math","end","min","slice","safeJoin","input","delimiter","Array","isArray","output","i","push","e","isMatchingPattern","pattern","test","indexOf","isNodeEnv","Object","toString","call","process","dynamicRequire","mod","request","require","_interopRequireDefault","__esModule","withPrefix","withAssetPrefix","path","getGlobalPathPrefix","navigateTo","replace","navigate","default","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_router","_utils","_parsePath","parsePath","isAbsolutePath","startsWith","prefix","_ref","_prefix","getGlobalBasePrefix","isLocalLink","base","endsWith","rewriteLinkPath","relativeTo","current","resolve","absolutify","NavLinkPropTypes","activeClassName","string","activeStyle","object","partiallyActive","bool","GatsbyLinkLocationWrapper","props","createElement","Location","_ref2","location","GatsbyLink","_location","_React$Component","_this","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","filter","Boolean","style","IOSupported","window","IntersectionObserver","handleRef","bind","_proto","_prefetch","currentPath","pathname","rewrittenPath","to","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","instance","el","unobserve","disconnect","ref","cb","_this2","innerRef","hasOwnProperty","entries","forEach","entry","target","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","encodeURI","___navigate","href","Component","propTypes","func","isRequired","showDeprecationWarning","functionName","altFunctionName","version","console","warn","_default","forwardRef","___push","___replace","WeakMap","SessionStorage","read","stateKey","getStateKey","sessionStorage","getItem","JSON","parse","save","storedValue","stringify","setItem","stateKeyBase","s","_typeof","obj","Symbol","iterator","constructor","ownKeys","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_classCallCheck","Constructor","TypeError","_defineProperties","descriptor","configurable","writable","defineProperty","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_setPrototypeOf","p","_defineProperty","_Component","OutboundLink","_getPrototypeOf2","_len","arguments","args","_key","concat","event","eventLabel","trackerNames","eventMeta","label","sameTarget","normalClick","trackLink","protoProps","staticProps","subClass","superClass","create","_inherits","_this$props2","getOwnPropertyDescriptors","defineProperties","_objectSpread","handleClick","rel","trim","arrayOf","smallWords","format","titleCase","mightBeEmail","match","index","title","search","charAt","toLowerCase","toUpperCase","log","info","gaCalls","calls","ga","resetCalls","_toConsumableArray","arr","arr2","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","_isNotBrowser","document","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","_window","_format","_gaCommand","command","name","_initialize","gaTrackingID","debug","useExistingGa","gaOptions","initialize","configsOrTrackingId","testMode","standardImplementation","g","r","a","m","gaAddress","q","l","Date","getElementsByTagName","async","src","parentNode","insertBefore","loadGA","alwaysSendToDefaultTracker","config","trackingId","_len2","_key2","set","fieldsObject","send","fieldObject","pageview","rawPath","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","substring","timing","undefined","category","variable","timingCategory","timingVar","timingValue","timingLabel","action","nonInteraction","transport","eventCategory","eventAction","eventValue","exception","description","fatal","exDescription","exFatal","rawName","trackerName","requireString","execute","pluginName","payload","actionType","outboundLink","hitCallback","safetyCallbackCalled","t","setTimeout","clearTimeout","plugin","testModeAPI","origTrackLink","toInteger","integer","anObject","isObject","newPromiseCapability","C","x","promiseCapability","f","promise","requireObjectCoercible","argument","getBuiltIn","pathCache","Map","matchPaths","trimPathname","rawPathname","decodeURIComponent","stripPrefix","__BASE_PATH__","URL","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","map","matchPath","originalPath","pick","normalizePagePath","route","grabMatchParams","params","findPath","foundPath","it","originalModule","webpackPolyfill","children","useScrollRestoration","identifier","useLocation","useContext","_scrollHandler","ScrollContext","useRef","useLayoutEffect","position","scrollTo","onScroll","scrollTop","bitmap","emitter","all","on","type","handler","off","splice","emit","evt","mitt","aFunction","SPECIES","wellKnownSymbol","defaultConstructor","S","fill","replacement","original","wrapped","__sentry_original__","_Oo","urlEncode","encodeURIComponent","getWalkSource","error","err","message","stack","event_1","_oO","currentTarget","CustomEvent","detail","jsonSize","utf8Length","normalizeToSize","depth","maxSize","serialized","normalize","normalizeValue","_events","walk","memo","Infinity","normalized","serializeValue","toJSON","acc","memoize","innerKey","unmemoize","extractExceptionKeysForMessage","maxLength","sort","includedKeys","dropUndefinedKeys","val","e_1","_a","rv","_b","_c","next","done","e_1_1","return","nativePropertyIsEnumerable","NASHORN_BUG","1","V","getOwnPropertyDescriptorModule","definePropertyModule","ScrollContainer","ScrollHandler","_scrollContainer","_useScrollRestoration","IS_PURE","store","mode","copyright","fails","classof","fallbackGlobalObject","getGlobalObject","uuid4","crypto","msCrypto","getRandomValues","Uint16Array","pad","num","v","c","random","parseUrl","url","query","fragment","host","protocol","relative","getEventDescription","values","event_id","consoleSandbox","callback","originalConsole","wrappedLevels","level","result","addExceptionTypeValue","addExceptionMechanism","mechanism","getLocationHref","oO","parseRetryAfterHeader","now","header","headerDelay","parseInt","isNaN","headerDate","polyfill","isError","wat","isInstanceOf","Error","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","then","isSyntheticEvent","_e","_inheritsLoose","_extends","assign","getLocation","_source$location","hash","origin","hostname","port","canUseDOM","decodeURI","history","createHistory","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","popstateListener","addEventListener","removeEventListener","fn","_ref$replace","go","replaceState","pushState","transition","Promise","res","createMemorySource","initialPath","searchIndex","initialLocation","states","_","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","globalHistory","userAgent","versions","v8","localizedManifests","localizedManifest","find","app","start_url","lang","_gatsby","_catchLinks","onClientEntry","pluginOptions","DESCRIPTORS","createPropertyDescriptor","EXISTS","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","wmget","wmhas","wmset","metadata","facade","STATE","getterFor","TYPE","_interopRequireWildcard","React","_sessionStorage","createContext","displayName","_stateStorage","scrollListener","scrollY","windowScroll","shouldUpdateScroll","scrollToHash","node","getElementById","scrollIntoView","prevRouterProps","routerProps","scrollPosition","_this$props$location","_this$props$location2","Provider","element","id","postfix","PromiseCapability","reject","$$resolve","$$reject","originalFunctionToString","States","FunctionToString","setupOnce","_i","context","SyncPromise","executor","_state","PENDING","_handlers","_resolve","_setResult","RESOLVED","_reject","reason","REJECTED","is","_value","_executeHandlers","_attachHandler","cachedHandlers","onfulfilled","onrejected","collection","counter","resolvedCollection","item","_onfulfilled","_onrejected","catch","finally","onfinally","isRejected","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","clone","scope","newScope","_level","_span","_session","_transactionName","_fingerprint","addScopeListener","addEventProcessor","setUser","user","update","_notifyScopeListeners","getUser","setTags","tags","setTag","setExtras","extras","setExtra","extra","setFingerprint","fingerprint","setLevel","setTransactionName","setTransaction","setContext","setSpan","span","getSpan","getTransaction","_d","transaction","spanRecorder","spans","setSession","session","getSession","captureContext","updatedScope","contexts","clear","addBreadcrumb","breadcrumb","maxBreadcrumbs","mergedBreadcrumb","timestamp","clearBreadcrumbs","applyToEvent","hint","trace","getTraceContext","transactionName","_applyFingerprint","breadcrumbs","_notifyEventProcessors","getGlobalEventProcessors","processors","processor","final","__SENTRY__","globalEventProcessors","addGlobalEventProcessor","PREFIX","Logger","_enabled","disable","enable","SessionStatus","logger","Session","errors","sid","started","duration","status","Ok","ip_address","ipAddress","did","email","username","release","environment","close","Exited","init","toISOString","attrs","user_agent","Hub","client","_version","_stack","getStackTop","bindClient","isOlderThan","setupIntegrations","pushScope","getScope","getStack","getClient","popScope","pop","withScope","captureException","eventId","_lastEventId","finalHint","syntheticException","originalException","_invokeClient","captureMessage","captureEvent","lastEventId","getOptions","beforeBreadcrumb","finalBreadcrumb","configureScope","run","oldHub","makeMain","getIntegration","integration","startSpan","_callExtensionMethod","startTransaction","customSamplingContext","traceHeaders","startSession","endSession","captureSession","method","carrier","getMainCarrier","sentry","extensions","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","hasHubOnCarrier","activeDomain","domain","active","registryHubTopStack","getHubFromActiveDomain","DEFAULT_IGNORE_ERRORS","InboundFilters","_options","clientOptions","_mergeOptions","_shouldDropEvent","_isSentryError","_isIgnoredError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreInternal","ignoreErrors","_getPossibleEventMessages","some","denyUrls","allowUrls","whitelistUrls","blacklistUrls","stacktrace","frames_1","frames","filename","frames_2","proto","prop","_super","SentryError","_newTarget","DSN_REGEX","Dsn","_fromString","_fromComponents","_validate","withPassword","pass","projectId","exec","projectMatch","components","component","ERROR_MESSAGE","installedIntegrations","integrations","defaultIntegrations","userIntegrations","userIntegrationsNames_1","pickedIntegrationsNames_1","defaultIntegration","userIntegration","integrationsNames","getIntegrationsToSetup","setupIntegration","Status","BaseClient","backendClass","_integrations","_processing","_backend","dsn","_dsn","_process","_getBackend","eventFromException","_captureEvent","promisedEvent","eventFromMessage","_sendSession","getDsn","flush","timeout","_isClientProcessing","ready","getTransport","transportFlushed","enabled","_isEnabled","_updateSessionFromEvent","crashed","errored","exceptions","exceptions_1","exceptions_1_1","handled","headers","Crashed","Number","sendSession","ticked","interval","setInterval","clearInterval","_prepareEvent","normalizeDepth","prepared","_applyClientOptions","_applyIntegrationsMetadata","finalScope","_normalizeEvent","b","data","dist","maxValueLength","sdkInfo","sdk","integrationsArray","_sendEvent","sendEvent","_processEvent","finalEvent","beforeSend","sampleRate","isTransaction","__sentry__","beforeSendResult","processedEvent","fromHttpCode","code","Success","RateLimit","Invalid","Failed","Unknown","Severity","NoopTransport","Skipped","BaseBackend","_transport","_setupTransport","_exception","_hint","_message","supportsFetch","Headers","Request","Response","isNativeFetch","supportsReferrerPolicy","referrerPolicy","fromString","Debug","Info","Warning","Fatal","Critical","Log","gecko","winjs","geckoEval","chromeEval","reactMinifiedRegexp","computeStackTrace","ex","popSize","framesToPop","parts","opera10Regex","opera11Regex","lines","column","extractMessage","computeStackTraceFromStacktraceProp","popFrames","submatch","isNative","columnNumber","computeStackTraceFromStackProp","failed","exceptionFromStacktrace","prepareFramesForEvent","eventFromStacktrace","localStack","firstFrameFunction","lastFrameFunction","frame","function","in_app","lineno","reverse","eventFromUnknownInput","attachStacktrace","eventFromString","domException","name_1","rejection","__serialized__","eventFromPlainObject","synthetic","sessionToSentryRequest","api","body","sent_at","getEnvelopeEndpointWithUrlEncodedAuth","eventToSentryRequest","samplingMethod","__sentry_samplingMethod","__sentry_sampleRate","otherTags","useEnvelope","req","getStoreEndpointWithUrlEncodedAuth","envelope","sample_rates","rate","API","_dsnObject","getBaseApiEndpoint","getStoreEndpoint","_getIngestEndpoint","_encodedAuth","_getEnvelopeEndpoint","getStoreEndpointPath","getRequestHeaders","clientName","clientVersion","getReportDialogEndpoint","dialogOptions","endpoint","encodedOptions","auth","sentry_key","sentry_version","PromiseBuffer","_limit","_buffer","isReady","add","task","remove","drain","capturedSetTimeout","BaseTransport","_rateLimits","_api","_handleResponse","requestType","response","_handleRateLimit","_disabledUntil","_isRateLimited","e_2","rlHeader","raHeader","parameters","delay","_f","e_2_1","FetchTransport","_sendRequest","sentryRequest","originalPayload","fetchParameters","fetch","XHRTransport","XMLHttpRequest","onreadystatechange","readyState","getResponseHeader","open","setRequestHeader","BrowserBackend","transportOptions","callOnHub","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","arg","handleEvent","property","injectReportDialog","script","onLoad","onload","head","appendChild","lastHref","handlers","instrumented","instrument","originalConsoleLevel","triggerHandlers","instrumentConsole","domEventHandler","keypressEventHandler","eventName","innerOriginal","instrumentDOM","requestKeys","requestValues","xhrproto","originalOpen","xhr","__sentry_xhr__","__sentry_own_request__","onreadystatechangeHandler","status_code","requestPos","args_1","endTimestamp","startTimestamp","readyStateArgs","originalSend","instrumentXHR","doc","sandbox","hidden","contentWindow","removeChild","supportsNativeFetch","originalFetch","handlerData","fetchData","getFetchMethod","getFetchUrl","instrumentFetch","chrome","isChromePackagedApp","runtime","hasHistoryApi","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","instrumentHistory","_oldOnErrorHandler","onerror","msg","_oldOnUnhandledRejectionHandler","onunhandledrejection","addInstrumentationHandler","fetchArgs","keypressTimeout","lastCapturedEvent","debounceTimer","debounce","tagName","isContentEditable","Breadcrumbs","dom","addSentryBreadcrumb","_consoleBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","parsedLoc","parsedFrom","parsedTo","SDK_NAME","SDK_VERSION","BrowserClient","showReportDialog","platform","packages","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","requestAnimationFrame","_wrapTimeFunction","_wrapRAF","_wrapXHR","_wrapEventTarget","originalCallback","originalRemoveEventListener","wrappedEventHandler","originalEventHandler","xmlHttpRequestProps","wrapOptions","GlobalHandlers","_onErrorHandlerInstalled","_onUnhandledRejectionHandlerInstalled","stackTraceLimit","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","currentHub","hasIntegration","isFailedOwnDelivery","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","_eventFromRejectionWithPrimitive","groups","LinkedErrors","limit","_handler","linkedErrors","_walkErrorTree","UserAgent","navigator","referrer","Referer","window_1","SENTRY_RELEASE","autoSessionTracking","clientClass","initAndBind","loadResolved","fcpResolved","possiblyEndSession","resolveWindowLoaded","po","PerformanceObserver","entryList","getEntries","startTime","firstHiddenTime_1","visibilityState","timeStamp","once","buffered","startSessionTracking","forceLoad","windowIntegrations","Sentry","Integrations","INTEGRATIONS","GoogleAnalytics","siteMetadata","googleAnalyticsId","sentryDSN","propertyIsEnumerableModule","toIndexedObject","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","P","PageRenderer","pageResources","json","pageContext","__params","pathContext","pageElement","apiRunner","loader","publicLoader","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","array","noop","nextTick","browser","env","argv","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","missed","routeSegments","routeSegment","uriSegment","isSplat","dynamicMatch","paramRe","reservedNames","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","allSegments","segments","segment","insertParams","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","validateRedirect","isDynamic","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","shallowCompare","obj1","obj2","obj1Keys","every","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","ie10","appVersion","fns","hack","documentElement","doScroll","loaded","shift","definition","serviceWorker","register","reg","installingWorker","installing","controller","___swUpdated","___failedResources","reload","PREFERRED_STRING","valueOf","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","condition","d","argIndex","names","METHOD_NAME","check","globalThis","$","$reduce","left","arrayMethodIsStrict","arrayMethodUsesToLength","CHROME_VERSION","IS_NODE","STRICT_METHOD","USES_TO_LENGTH","forced","callbackfn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","sham","RouteAnnouncerProps","top","width","height","padding","overflow","clip","whiteSpace","border","redirectMap","redirects","redirect","fromPath","maybeRedirect","toPath","onPreRouteUpdate","prevLocation","onRouteUpdate","timeoutId","loadPage","PageResourceStatus","webpackCompilationHash","___webpackCompilationHash","postMessage","gatsbyApi","reachNavigate","results","getSavedScrollPosition","RouteAnnouncer","announcementRef","createRef","nextProps","pageName","pageHeadings","querySelectorAll","textContent","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shouldComponentUpdate","Fragment","shallowDiffers","EnsureResources","loadPageSync","getDerivedStateFromProps","loadResources","setState","nextState","ProdLoader","asyncRequires","setLoader","setApiRunner","___emitter","apiRunnerAsync","RouteHandler","baseuri","basepath","DataContext","GatsbyRoot","staticQueryResults","getStaticQueryResults","LocationHandler","Consumer","pagePath","browserLoc","SiteRoot","App","renderer","ReactDOM","hydrate","domReady","prefetchPathname","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","useStaticQuery","graphql","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","isRedirect","_navigate","unmounted","defaultProps","ServerLocation","BaseContext","Router","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","Children","toArray","child","createRoute","cloneElement","FocusWrapper","FocusHandler","wrapperProps","PureComponent","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","_this4","shouldFocus","focus","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","_props2$component","Comp","outline","tabIndex","n","k","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","isForced","feature","detection","POLYFILL","NATIVE","redefine","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","IndexedObject","hashIndex","NativePromise","speciesConstructor","promiseResolve","real","onFinally","isFunction","supportedPrefetchStrategy","fakeLink","relList","supports","support","link","setAttribute","getElementsByName","preFetched","prefetch","preferDefault","createPageDataUrl","doFetch","toPageResources","pageData","componentChunkName","staticQueryHashes","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","delete","prefetchDisabled","fetchPageDataJson","loadObj","retries","responseText","jsonPayload","notFound","loadPageDataJson","loadAppData","allData","finalResult","componentChunkPromise","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResultsMap","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","getResourceURLsForPathname","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","chunkName","componentUrls","_loader","getResourcesForPathname","getResourcesForPathnameSync","ceil","floor","_reactDom","scrollKey","ScrollContainerImplementation","findDOMNode","root","clickHandler","routeThroughBrowserOrApp","hashShouldBeFollowed","pathIsNotHandledByApp","urlsAreOnSameOrigin","authorIsForcingNavigation","anchorsTargetIsEquivalentToSelf","findClosestAnchor","navigationWasHandledElsewhere","slashedPathname","userIsForcingNavigation","_escapeStringRegexp","nodeName","anchor","hasAttribute","ownerDocument","defaultView","parent","destination","pathStartRegEx","hrefHandler","clickedAnchor","SVGAnimatedString","animVal","RegExp","excludePattern","destinationPathname","siteUrl","siteTitle","siteTitleShort","siteDescription","manifest","themeColor","backgroundColor","schema","author","mapboxToken","flags","DEV_SSR","plugins","__dirname","fileName","pathToConfigModule","anonymize","short_name","background_color","theme_color","display","icon","_getRequireWildcardCache","cache","newObj","hasPropertyDescriptor","desc","namespace","nativeDefineProperty","Attributes","dateTimestampSource","nowSeconds","platformPerformance","performance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","navigationStart","functionToString","_extendStatics","__extends","__","_assign","__rest","__values","__read","ar","__spread","matchOperatorsRe","toObject","IS_RIGHT","that","argumentsLength","right","getFunctionName","excludeGAPaths","rx","pageTransitionDelay","ProdPageRenderer","InternalPageRenderer","_arrayLikeToArray","minLen","htmlTreeAsString","elem","currentElem","out","sepLength","nextStr","_htmlElementAsString","classes","attr","allowedAttrs","getAttribute","Memo","_hasWeakSet","WeakSet","_inner","defaultReturn","argTransform","previous","thrower","ACCESSORS","argument0","argument1","internalObjectKeys","getOwnPropertyNames"],"mappings":"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","file":"app-d6dfb9a004fc7a6fb9fe.js","sourcesContent":["var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","import { isRegExp, isString } from './is';\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\n * @returns string Encoded\n */\n\nexport function truncate(str, max) {\n if (max === void 0) {\n max = 0;\n }\n\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n\n return str.length <= max ? str : str.substr(0, max) + \"...\";\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 */\n\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n\n if (ll <= 150) {\n return newLine;\n }\n\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n\n var start = Math.max(colno - 60, 0);\n\n if (start < 5) {\n start = 0;\n }\n\n var end = Math.min(start + 140, ll);\n\n if (end > ll - 5) {\n end = ll;\n }\n\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n\n if (end < ll) {\n newLine += ' {snip}';\n }\n\n return newLine;\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 */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n var output = []; // eslint-disable-next-line @typescript-eslint/prefer-for-of\n\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n\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 * 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 */\n\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n\n return false;\n}","import { isString } from './is';\nimport { normalize } from './object';\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\n\nexport function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/** Default request keys that'll be used to extract data from the request */\n\nvar DEFAULT_REQUEST_KEYS = ['cookies', 'data', 'headers', 'method', 'query_string', 'url'];\n/**\n * Normalizes data from the request object, accounting for framework differences.\n *\n * @param req The request object from which to extract data\n * @param keys An optional array of keys to include in the normalized data. Defaults to DEFAULT_REQUEST_KEYS if not\n * provided.\n * @returns An object containing normalized request data\n */\n\nexport function extractNodeRequestData(req, keys) {\n if (keys === void 0) {\n keys = DEFAULT_REQUEST_KEYS;\n } // make sure we can safely use dynamicRequire below\n\n\n if (!isNodeEnv()) {\n throw new Error(\"Can't get node request data outside of a node environment\");\n }\n\n var requestData = {}; // headers:\n // node, express: req.headers\n // koa: req.header\n\n var headers = req.headers || req.header || {}; // method:\n // node, express, koa: req.method\n\n var method = req.method; // host:\n // express: req.hostname in > 4 and req.host in < 4\n // koa: req.host\n // node: req.headers.host\n\n var host = req.hostname || req.host || headers.host || ''; // protocol:\n // node: \n // express, koa: req.protocol\n\n var protocol = req.protocol === 'https' || req.secure || (req.socket || {}).encrypted ? 'https' : 'http'; // url (including path and query string):\n // node, express: req.originalUrl\n // koa: req.url\n\n var originalUrl = req.originalUrl || req.url || ''; // absolute url\n\n var absoluteUrl = protocol + \"://\" + host + originalUrl;\n keys.forEach(function (key) {\n switch (key) {\n case 'headers':\n requestData.headers = headers;\n break;\n\n case 'method':\n requestData.method = method;\n break;\n\n case 'url':\n requestData.url = absoluteUrl;\n break;\n\n case 'cookies':\n // cookies:\n // node, express, koa: req.headers.cookie\n // vercel, sails.js, express (w/ cookie middleware): req.cookies\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n requestData.cookies = req.cookies || dynamicRequire(module, 'cookie').parse(headers.cookie || '');\n break;\n\n case 'query_string':\n // query string:\n // node: req.url (raw)\n // express, koa: req.query\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n requestData.query_string = dynamicRequire(module, 'url').parse(originalUrl || '', false).query;\n break;\n\n case 'data':\n if (method === 'GET' || method === 'HEAD') {\n break;\n } // body data:\n // node, express, koa: req.body\n\n\n if (req.body !== undefined) {\n requestData.data = isString(req.body) ? req.body : JSON.stringify(normalize(req.body));\n }\n\n break;\n\n default:\n if ({}.hasOwnProperty.call(req, key)) {\n requestData[key] = req[key];\n }\n\n }\n });\n return requestData;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigateTo = exports.replace = exports.push = exports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _router = require(\"@reach/router\");\n\nvar _utils = require(\"@reach/router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + ((base === null || base === void 0 ? void 0 : base.endsWith(\"/\")) ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_router.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"]);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_router.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar showDeprecationWarning = function showDeprecationWarning(functionName, altFunctionName, version) {\n return console.warn(\"The \\\"\" + functionName + \"\\\" method is now deprecated and will be removed in Gatsby v\" + version + \". Please use \\\"\" + altFunctionName + \"\\\" instead.\");\n};\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;\n\nvar push = function push(to) {\n showDeprecationWarning(\"push\", \"navigate\", 3);\n\n window.___push(rewriteLinkPath(to, window.location.pathname));\n};\n\nexports.push = push;\n\nvar replace = function replace(to) {\n showDeprecationWarning(\"replace\", \"navigate\", 3);\n\n window.___replace(rewriteLinkPath(to, window.location.pathname));\n}; // TODO: Remove navigateTo for Gatsby v3\n\n\nexports.replace = replace;\n\nvar navigateTo = function navigateTo(to) {\n showDeprecationWarning(\"navigateTo\", \"navigate\", 3);\n return push(to);\n};\n\nexports.navigateTo = navigateTo;","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(OutboundLink, _Component);\n\n function OutboundLink() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(OutboundLink)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n oldProps = _objectWithoutProperties(_this$props2, [\"to\"]);\n\n var props = _objectSpread({}, oldProps, {\n href: href,\n onClick: this.handleClick\n });\n\n if (this.props.target === NEWTAB) {\n props.rel = 'noopener noreferrer';\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\n_defineProperty(OutboundLink, \"propTypes\", {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n});\n\n_defineProperty(OutboundLink, \"defaultProps\", {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n});\n\nexport { OutboundLink as default };","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s.replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","import mightBeEmail from './mightBeEmail';\nimport toTitleCase from './toTitleCase';\nimport warn from './console/warn';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function format(s, titleCase) {\n if (mightBeEmail(s)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n if (titleCase) {\n return toTitleCase(s);\n }\n\n return s;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting \n * Atul Varma \n */\n\n/**\n * Utilities\n */\n\n\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return false;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log('called ga(\\'arguments\\');');\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log('called ga(\\'set\\', fieldsObject);');\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log('called ga(\\'send\\', fieldObject);');\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || !value || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"]);\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n if ((arguments.length <= 2 ? 0 : arguments.length - 2) === 1) {\n payload = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n actionType = arguments.length <= 2 ? undefined : arguments[2];\n payload = arguments.length <= 3 ? undefined : arguments[3];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","export default function (options) {\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n } // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nexport var initialize = Defaults.initialize;\nexport var ga = Defaults.ga;\nexport var set = Defaults.set;\nexport var send = Defaults.send;\nexport var pageview = Defaults.pageview;\nexport var modalview = Defaults.modalview;\nexport var timing = Defaults.timing;\nexport var event = Defaults.event;\nexport var exception = Defaults.exception;\nexport var plugin = Defaults.plugin;\nexport var outboundLink = Defaults.outboundLink;\nexport var testModeAPI = Defaults.testModeAPI;\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread({}, Defaults, {\n OutboundLink: OutboundLink\n});","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@reach/router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(pathname, __BASE_PATH__)\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _router = require(\"@reach/router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _router.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)();\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, []);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","import { __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\n/**\n * Wrap a given object method with a higher-order function\n *\n * @param source An object that contains a method to be wrapped.\n * @param name A name of method to be wrapped.\n * @param replacement A function that should be used to wrap a given method.\n * @returns void\n */\n\nexport function fill(source, name, replacement) {\n if (!(name in source)) {\n return;\n }\n\n var original = source[name];\n var wrapped = replacement(original); // 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\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original\n }\n });\n } catch (_Oo) {// 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 * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\n\nexport function urlEncode(object) {\n return Object.keys(object).map(function (key) {\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]);\n }).join('&');\n}\n/**\n * Transforms any object into an object literal with all it's attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order to be usable by the serializer\n */\n\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack\n };\n\n for (var i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n\n return err;\n }\n\n if (isEvent(value)) {\n var event_1 = value;\n var source = {};\n source.type = event_1.type; // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n\n try {\n source.target = isElement(event_1.target) ? htmlTreeAsString(event_1.target) : Object.prototype.toString.call(event_1.target);\n } catch (_oO) {\n source.target = '';\n }\n\n try {\n source.currentTarget = isElement(event_1.currentTarget) ? htmlTreeAsString(event_1.currentTarget) : Object.prototype.toString.call(event_1.currentTarget);\n } catch (_oO) {\n source.currentTarget = '';\n }\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n\n for (var i in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, i)) {\n source[i] = event_1;\n }\n }\n\n return source;\n }\n\n return value;\n}\n/** Calculates bytes size of input string */\n\n\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\n\n\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\n\n\nexport function normalizeToSize(object, // Default Node.js REPL depth\ndepth, // 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) {\n depth = 3;\n }\n\n if (maxSize === void 0) {\n maxSize = 100 * 1024;\n }\n\n var serialized = normalize(object, depth);\n\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return serialized;\n}\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\n\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value); // Node.js REPL notation\n\n if (typeof value === 'string') {\n return value;\n }\n\n if (type === '[object Object]') {\n return '[Object]';\n }\n\n if (type === '[object Array]') {\n return '[Array]';\n }\n\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\n\n\nfunction normalizeValue(value, key) {\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 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 } // React's SyntheticEvent thingy\n\n\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n } // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n\n\n if (typeof value === 'symbol') {\n return \"[\" + String(value) + \"]\";\n }\n\n if (typeof value === 'bigint') {\n return \"[BigInt: \" + String(value) + \"]\";\n }\n\n return value;\n}\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) {\n depth = +Infinity;\n }\n\n if (memo === void 0) {\n memo = new Memo();\n } // If we reach the maximum depth, serialize whatever has left\n\n\n if (depth === 0) {\n return serializeValue(value);\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n\n\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n\n\n var normalized = normalizeValue(value, key);\n\n if (isPrimitive(normalized)) {\n return normalized;\n } // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n\n\n var source = getWalkSource(value); // Create an accumulator that will act as a parent for all future itterations of that branch\n\n var acc = Array.isArray(value) ? [] : {}; // If we already walked that branch, bail out, as it's circular reference\n\n if (memo.memoize(value)) {\n return '[Circular ~]';\n } // Walk all keys of the source\n\n\n for (var innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n } // Recursively walk through all the child nodes\n\n\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n } // Once walked through all the branches, remove the parent from memo storage\n\n\n memo.unmemoize(value); // Return accumulated values\n\n return acc;\n}\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nexport function normalize(input, depth) {\n try {\n return JSON.parse(JSON.stringify(input, function (key, value) {\n return walk(key, value, depth);\n }));\n } catch (_oO) {\n return '**non-serializable**';\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 */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) {\n maxLength = 40;\n }\n\n var keys = Object.keys(getWalkSource(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 (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n\n if (serialized.length > maxLength) {\n continue;\n }\n\n if (includedKeys === keys.length) {\n return serialized;\n }\n\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\n\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n\n if (isPlainObject(val)) {\n var obj = val;\n var rv = {};\n\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return rv;\n }\n\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n\n return val;\n}","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContainer = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _scrollContainer = require(\"./scroll-container\");\n\nexports.ScrollContainer = _scrollContainer.ScrollContainer;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.8.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","import { isNodeEnv } from './node';\nimport { snipLine } from './string';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\n\nexport function getGlobalObject() {\n return isNodeEnv() ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : fallbackGlobalObject;\n}\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\n\nexport function 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); // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n\n arr[3] = arr[3] & 0xfff | 0x4000; // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n\n arr[4] = arr[4] & 0x3fff | 0x8000;\n\n var pad = function pad(num) {\n var v = num.toString(16);\n\n while (v.length < 4) {\n v = \"0\" + v;\n }\n\n return v;\n };\n\n return 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 } // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n\n\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = Math.random() * 16 | 0; // eslint-disable-next-line no-bitwise\n\n var v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\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 href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\n\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n } // coerce to undefined values to empty string so we don't get 'undefined'\n\n\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\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 */\n\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n\n return exception.type || exception.value || event.event_id || '';\n }\n\n return event.event_id || '';\n}\n/** JSDoc */\n\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n\n if (!('console' in global)) {\n return callback();\n } // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n\n var originalConsole = global.console;\n var wrappedLevels = {}; // Restore all wrapped console methods\n\n levels.forEach(function (level) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n }); // Perform callback manipulations\n\n var result = callback(); // Revert restoration to wrapped state\n\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\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 */\n\nexport function addExceptionTypeValue(event, value, type) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\n\nexport function addExceptionMechanism(event, mechanism) {\n if (mechanism === void 0) {\n mechanism = {};\n } // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n\n\n try {\n // @ts-ignore Type 'Mechanism | {}' is not assignable to type 'Mechanism | undefined'\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism = event.exception.values[0].mechanism || {};\n Object.keys(mechanism).forEach(function (key) {\n // @ts-ignore Mechanism has no index signature\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism[key] = mechanism[key];\n });\n } catch (_oO) {// no-empty\n }\n}\n/**\n * A safe form of location.href\n */\n\nexport function getLocationHref() {\n try {\n return document.location.href;\n } catch (oO) {\n return '';\n }\n} // https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\n\nvar SEMVER_REGEXP = /^(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 * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\n\nexport function 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}\nvar defaultRetryAfter = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\n\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n\n var headerDelay = parseInt(\"\" + header, 10);\n\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n var headerDate = Date.parse(\"\" + header);\n\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return defaultRetryAfter;\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 */\n\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) {\n linesOfContext = 5;\n }\n\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines.slice(Math.max(0, sourceLine - linesOfContext), sourceLine).map(function (line) {\n return snipLine(line, 0);\n });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines.slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext).map(function (line) {\n return 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 */\n\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}","exports.polyfill = Component => Component\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\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 */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n\n case '[object Exception]':\n return true;\n\n case '[object DOMException]':\n return true;\n\n default:\n return isInstanceOf(wat, Error);\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 */\n\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\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 */\n\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\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 */\n\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\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 */\n\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's 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 */\n\nexport function isPrimitive(wat) {\n return wat === null || typeof wat !== 'object' && typeof wat !== 'function';\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 */\n\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\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 */\n\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\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 */\n\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\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 */\n\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\n\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\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 */\n\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\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 */\n\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _catchLinks = _interopRequireDefault(require(\"./catch-links\"));\n\nexports.onClientEntry = function (_, pluginOptions) {\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n (0, _catchLinks.default)(window, pluginOptions, function (href) {\n (0, _gatsby.navigate)(href);\n });\n};","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n\n _this.scrollListener = function () {\n var key = _this.props.location.key;\n\n if (key) {\n _this._stateStorage.save(_this.props.location, key, window.scrollY);\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\n\nvar FunctionToString =\n/** @class */\nfunction () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n\n\n FunctionToString.prototype.setupOnce = function () {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n Function.prototype.toString = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var context = this.__sentry_original__ || this;\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n\n\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}();\n\nexport { FunctionToString };","import \"core-js/modules/es.promise.finally.js\";\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/* eslint-disable @typescript-eslint/typedef */\n\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/** SyncPromise internal states */\n\nvar States;\n\n(function (States) {\n /** Pending */\n States[\"PENDING\"] = \"PENDING\";\n /** Resolved / OK */\n\n States[\"RESOLVED\"] = \"RESOLVED\";\n /** Rejected / Error */\n\n States[\"REJECTED\"] = \"REJECTED\";\n})(States || (States = {}));\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\n\n\nvar SyncPromise =\n/** @class */\nfunction () {\n function SyncPromise(executor) {\n var _this = this;\n\n this._state = States.PENDING;\n this._handlers = [];\n /** JSDoc */\n\n this._resolve = function (value) {\n _this._setResult(States.RESOLVED, value);\n };\n /** JSDoc */\n\n\n this._reject = function (reason) {\n _this._setResult(States.REJECTED, reason);\n };\n /** JSDoc */\n\n\n this._setResult = function (state, value) {\n if (_this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n value.then(_this._resolve, _this._reject);\n return;\n }\n\n _this._state = state;\n _this._value = value;\n\n _this._executeHandlers();\n }; // TODO: FIXME\n\n /** JSDoc */\n\n\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n\n _this._executeHandlers();\n };\n /** JSDoc */\n\n\n this._executeHandlers = function () {\n if (_this._state === States.PENDING) {\n return;\n }\n\n var cachedHandlers = _this._handlers.slice();\n\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler.done) {\n return;\n }\n\n if (_this._state === States.RESOLVED) {\n if (handler.onfulfilled) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler.onfulfilled(_this._value);\n }\n }\n\n if (_this._state === States.REJECTED) {\n if (handler.onrejected) {\n handler.onrejected(_this._value);\n }\n }\n\n handler.done = true;\n });\n };\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n\n\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n\n\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n\n\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (resolve, reject) {\n if (!Array.isArray(collection)) {\n reject(new TypeError(\"Promise.all requires an array as input.\"));\n return;\n }\n\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n\n var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n SyncPromise.resolve(item).then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n\n if (counter !== 0) {\n return;\n }\n\n resolve(resolvedCollection);\n }).then(null, reject);\n });\n });\n };\n /** JSDoc */\n\n\n SyncPromise.prototype.then = function (_onfulfilled, _onrejected) {\n var _this = this;\n\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n done: false,\n onfulfilled: function onfulfilled(result) {\n if (!_onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n return;\n }\n\n try {\n resolve(_onfulfilled(result));\n return;\n } catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function onrejected(reason) {\n if (!_onrejected) {\n reject(reason);\n return;\n }\n\n try {\n resolve(_onrejected(reason));\n return;\n } catch (e) {\n reject(e);\n return;\n }\n }\n });\n });\n };\n /** JSDoc */\n\n\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) {\n return val;\n }, onrejected);\n };\n /** JSDoc */\n\n\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val);\n });\n });\n };\n /** JSDoc */\n\n\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n\n return SyncPromise;\n}();\n\nexport { SyncPromise };","import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope() {\n /** Flag if notifiying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n\n this._breadcrumbs = [];\n /** User */\n\n this._user = {};\n /** Tags */\n\n this._tags = {};\n /** Extra */\n\n this._extra = {};\n /** Contexts */\n\n this._contexts = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n\n\n Scope.clone = function (scope) {\n var newScope = new Scope();\n\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, 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 = __spread(scope._eventProcessors);\n }\n\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n\n\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n\n if (this._session) {\n this._session.update({\n user: user\n });\n }\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setTag = function (key, value) {\n var _a;\n\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n\n\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setContext = function (key, context) {\n var _a;\n\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.getTransaction = function () {\n var _a, _b, _c, _d; // often, this span will be a transaction, but it's not guaranteed to be\n\n\n var span = this.getSpan(); // try it the new way first\n\n if ((_a = span) === null || _a === void 0 ? void 0 : _a.transaction) {\n return (_b = span) === null || _b === void 0 ? void 0 : _b.transaction;\n } // fallback to the old way (known bug: this only finds transactions with sampled = true)\n\n\n if ((_d = (_c = span) === null || _c === void 0 ? void 0 : _c.spanRecorder) === null || _d === void 0 ? void 0 : _d.spans[0]) {\n return span.spanRecorder.spans[0];\n } // neither way found a transaction\n\n\n return undefined;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.update = function (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 = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n }\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.clear = function () {\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._span = undefined;\n this._session = undefined;\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var mergedBreadcrumb = __assign({\n timestamp: dateTimestampInSeconds()\n }, breadcrumb);\n\n this._breadcrumbs = maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0 ? __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxBreadcrumbs) : __spread(this._breadcrumbs, [mergedBreadcrumb]);\n\n this._notifyScopeListeners();\n\n return this;\n };\n /**\n * @inheritDoc\n */\n\n\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n\n this._notifyScopeListeners();\n\n return this;\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 informartion about the original exception.\n * @hidden\n */\n\n\n Scope.prototype.applyToEvent = function (event, hint) {\n var _a;\n\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n\n if (this._level) {\n event.level = this._level;\n }\n\n if (this._transactionName) {\n event.transaction = this._transactionName;\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 relys on that.\n\n\n if (this._span) {\n event.contexts = __assign({\n trace: this._span.getTraceContext()\n }, event.contexts);\n var transactionName = (_a = this._span.transaction) === null || _a === void 0 ? void 0 : _a.name;\n\n if (transactionName) {\n event.tags = __assign({\n transaction: transactionName\n }, event.tags);\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = __spread(event.breadcrumbs || [], this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n\n\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n\n if (index === void 0) {\n index = 0;\n }\n\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n var result = processor(__assign({}, event), hint);\n\n if (isThenable(result)) {\n result.then(function (final) {\n return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve);\n }).then(null, reject);\n } else {\n _this._notifyEventProcessors(processors, result, hint, index + 1).then(resolve).then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n\n\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this; // 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\n\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n\n this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n\n this._notifyingListeners = false;\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\n\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? Array.isArray(event.fingerprint) ? event.fingerprint : [event.fingerprint] : []; // If we have something on the scope, then merge it with event\n\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n } // If we have no data at all, remove empty array default\n\n\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n\n return Scope;\n}();\n\nexport { Scope };\n/**\n * Retruns the global event processors.\n */\n\nfunction getGlobalEventProcessors() {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\n\n\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { consoleSandbox, getGlobalObject } from './misc'; // TODO: Implement different loggers for different environments\n\nvar global = getGlobalObject();\n/** Prefix for logging strings */\n\nvar PREFIX = 'Sentry Logger ';\n/** JSDoc */\n\nvar Logger =\n/** @class */\nfunction () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n\n\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n\n\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n\n\n Logger.prototype.log = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!this._enabled) {\n return;\n }\n\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n\n\n Logger.prototype.warn = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!this._enabled) {\n return;\n }\n\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n\n\n Logger.prototype.error = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!this._enabled) {\n return;\n }\n\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' '));\n });\n };\n\n return Logger;\n}(); // Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\n\n\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };","/**\n * Session Status\n */\nexport var SessionStatus;\n\n(function (SessionStatus) {\n /** JSDoc */\n SessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n\n SessionStatus[\"Exited\"] = \"exited\";\n /** JSDoc */\n\n SessionStatus[\"Crashed\"] = \"crashed\";\n /** JSDoc */\n\n SessionStatus[\"Abnormal\"] = \"abnormal\";\n})(SessionStatus || (SessionStatus = {}));","import { SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, uuid4 } from '@sentry/utils';\n/**\n * @inheritdoc\n */\n\nvar Session =\n/** @class */\nfunction () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.timestamp = Date.now();\n this.started = Date.now();\n this.duration = 0;\n this.status = SessionStatus.Ok;\n\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n\n\n Session.prototype.update = function (context) {\n if (context === void 0) {\n context = {};\n }\n\n if (context.user) {\n if (context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n\n if (!context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n this.timestamp = context.timestamp || Date.now();\n\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n\n if (context.did) {\n this.did = \"\" + context.did;\n }\n\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n\n if (typeof context.duration === 'number') {\n this.duration = context.duration;\n } else {\n this.duration = this.timestamp - this.started;\n }\n\n if (context.release) {\n this.release = context.release;\n }\n\n if (context.environment) {\n this.environment = context.environment;\n }\n\n if (context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n\n if (context.userAgent) {\n this.userAgent = context.userAgent;\n }\n\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n\n\n Session.prototype.close = function (status) {\n if (status) {\n this.update({\n status: status\n });\n } else if (this.status === SessionStatus.Ok) {\n this.update({\n status: SessionStatus.Exited\n });\n } else {\n this.update();\n }\n };\n /** JSDoc */\n\n\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: true,\n started: new Date(this.started).toISOString(),\n timestamp: new Date(this.timestamp).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: dropUndefinedKeys({\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent\n })\n });\n };\n\n return Session;\n}();\n\nexport { Session };","import { __assign, __read, __spread } from \"tslib\";\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\nimport { Scope } from './scope';\nimport { Session } from './session';\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 */\n\nexport var API_VERSION = 3;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\n\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\n\nvar MAX_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\n\nvar Hub =\n/** @class */\nfunction () {\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 function Hub(client, scope, _version) {\n if (scope === void 0) {\n scope = new Scope();\n }\n\n if (_version === void 0) {\n _version = API_VERSION;\n }\n\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n\n this._stack = [{}];\n this.getStackTop().scope = scope;\n this.bindClient(client);\n }\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.pushScope = function () {\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: scope\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n\n\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n\n\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n\n\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = this._lastEventId = uuid4();\n var finalHint = hint; // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n\n if (!hint) {\n var syntheticException = void 0;\n\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception;\n }\n\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException\n };\n }\n\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), {\n event_id: eventId\n }));\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = this._lastEventId = uuid4();\n var finalHint = hint; // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n\n if (!hint) {\n var syntheticException = void 0;\n\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception;\n }\n\n finalHint = {\n originalException: message,\n syntheticException: syntheticException\n };\n }\n\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), {\n event_id: eventId\n }));\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = this._lastEventId = uuid4();\n\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), {\n event_id: eventId\n }));\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(),\n scope = _a.scope,\n client = _a.client;\n\n if (!scope || !client) return; // eslint-disable-next-line @typescript-eslint/unbound-method\n\n var _b = client.getOptions && client.getOptions() || {},\n _c = _b.beforeBreadcrumb,\n beforeBreadcrumb = _c === void 0 ? null : _c,\n _d = _b.maxBreadcrumbs,\n maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n\n if (maxBreadcrumbs <= 0) return;\n var timestamp = dateTimestampInSeconds();\n\n var mergedBreadcrumb = __assign({\n timestamp: timestamp\n }, breadcrumb);\n\n var finalBreadcrumb = beforeBreadcrumb ? consoleSandbox(function () {\n return beforeBreadcrumb(mergedBreadcrumb, hint);\n }) : mergedBreadcrumb;\n if (finalBreadcrumb === null) return;\n scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope) scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope) scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope) scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope) scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope) scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(),\n scope = _a.scope,\n client = _a.client;\n\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client) return null;\n\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.startSession = function (context) {\n // End existing session if there's one\n this.endSession();\n\n var _a = this.getStackTop(),\n scope = _a.scope,\n client = _a.client;\n\n var _b = client && client.getOptions() || {},\n release = _b.release,\n environment = _b.environment;\n\n var session = new Session(__assign(__assign({\n release: release,\n environment: environment\n }, scope && {\n user: scope.getUser()\n }), context));\n\n if (scope) {\n scope.setSession(session);\n }\n\n return session;\n };\n /**\n * @inheritDoc\n */\n\n\n Hub.prototype.endSession = function () {\n var _a = this.getStackTop(),\n scope = _a.scope,\n client = _a.client;\n\n if (!scope) return;\n var session = scope.getSession && scope.getSession();\n\n if (session) {\n session.close();\n\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n\n scope.setSession();\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Hub.prototype._invokeClient = function (method) {\n var _a;\n\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var _b = this.getStackTop(),\n scope = _b.scope,\n client = _b.client;\n\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n\n return Hub;\n}();\n\nexport { Hub };\n/** Returns the global shim registry. */\n\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\n\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\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 */\n\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier(); // If there's no hub, or its an old API, assign a new one\n\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n } // Prefer domains over global if they are there (applicable only to Node environment)\n\n\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n } // Return hub that lives on a global object\n\n\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n *\n * @returns The domain, or undefined if there is no active domain\n */\n\nexport function getActiveDomain() {\n var sentry = getMainCarrier().__SENTRY__;\n\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\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 */\n\nfunction getHubFromActiveDomain(registry) {\n try {\n var activeDomain = getActiveDomain(); // If there's no active domain, just return global hub\n\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n } // If there's no hub on current domain, or it's an old API, assign a new one\n\n\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 } // Return hub that lives on a domain\n\n\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\n\n\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\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 */\n\n\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\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 */\n\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils'; // \"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.\n\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\n\nvar InboundFilters =\n/** @class */\nfunction () {\n function InboundFilters(_options) {\n if (_options === void 0) {\n _options = {};\n }\n\n this._options = _options;\n /**\n * @inheritDoc\n */\n\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n\n\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n\n if (!hub) {\n return event;\n }\n\n var self = hub.getIntegration(InboundFilters);\n\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n\n var options = self._mergeOptions(clientOptions);\n\n if (self._shouldDropEvent(event, options)) {\n return null;\n }\n }\n\n return event;\n });\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n\n if (this._isDeniedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n\n if (!this._isAllowedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n\n return false;\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (!options.ignoreInternal) {\n return false;\n }\n\n try {\n return event && event.exception && event.exception.values && event.exception.values[0] && event.exception.values[0].type === 'SentryError' || false;\n } catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) {\n return isMatchingPattern(message, pattern);\n });\n });\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._isDeniedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n\n var url = this._getEventFilterUrl(event);\n\n return !url ? false : options.denyUrls.some(function (pattern) {\n return isMatchingPattern(url, pattern);\n });\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._isAllowedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n\n var url = this._getEventFilterUrl(event);\n\n return !url ? true : options.allowUrls.some(function (pattern) {\n return isMatchingPattern(url, pattern);\n });\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) {\n clientOptions = {};\n }\n\n return {\n allowUrls: __spread(this._options.whitelistUrls || [], this._options.allowUrls || [], clientOptions.whitelistUrls || [], clientOptions.allowUrls || []),\n denyUrls: __spread(this._options.blacklistUrls || [], this._options.denyUrls || [], clientOptions.blacklistUrls || [], clientOptions.denyUrls || []),\n ignoreErrors: __spread(this._options.ignoreErrors || [], clientOptions.ignoreErrors || [], DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true\n };\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n\n if (event.exception) {\n try {\n var _a = event.exception.values && event.exception.values[0] || {},\n _b = _a.type,\n type = _b === void 0 ? '' : _b,\n _c = _a.value,\n value = _c === void 0 ? '' : _c;\n\n return [\"\" + value, type + \": \" + value];\n } catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n\n return [];\n };\n /** JSDoc */\n\n\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return frames_1 && frames_1[frames_1.length - 1].filename || null;\n }\n\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return frames_2 && frames_2[frames_2.length - 1].filename || null;\n }\n\n return null;\n } catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n\n\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}();\n\nexport { InboundFilters };","export var setPrototypeOf = Object.setPrototypeOf || ({\n __proto__: []\n} instanceof Array ? setProtoOf : mixinProperties);\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\nfunction setProtoOf(obj, proto) {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n // eslint-disable-next-line no-prototype-builtins\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n\n return obj;\n}","import { __extends } from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\n\nvar SentryError =\n/** @class */\nfunction (_super) {\n __extends(SentryError, _super);\n\n function SentryError(message) {\n var _newTarget = this.constructor;\n\n var _this = _super.call(this, message) || this;\n\n _this.message = message;\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n\n return SentryError;\n}(Error);\n\nexport { SentryError };","import { __read } from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\n\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\n\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\n\nvar Dsn =\n/** @class */\nfunction () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n } else {\n this._fromComponents(from);\n }\n\n this._validate();\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 */\n\n\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) {\n withPassword = false;\n }\n\n var _a = this,\n host = _a.host,\n path = _a.path,\n pass = _a.pass,\n port = _a.port,\n projectId = _a.projectId,\n protocol = _a.protocol,\n user = _a.user;\n\n return protocol + \"://\" + user + (withPassword && pass ? \":\" + pass : '') + (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId);\n };\n /** Parses a string into this Dsn. */\n\n\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n\n var _a = __read(match.slice(1), 6),\n protocol = _a[0],\n user = _a[1],\n _b = _a[2],\n pass = _b === void 0 ? '' : _b,\n host = _a[3],\n _c = _a[4],\n port = _c === void 0 ? '' : _c,\n lastPath = _a[5];\n\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n\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\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n this._fromComponents({\n host: host,\n pass: pass,\n path: path,\n projectId: projectId,\n port: port,\n protocol: protocol,\n user: user\n });\n };\n /** Maps Dsn components into this instance. */\n\n\n Dsn.prototype._fromComponents = function (components) {\n this.protocol = components.protocol;\n this.user = components.user;\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n\n\n Dsn.prototype._validate = function () {\n var _this = this;\n\n ['protocol', 'user', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE + \": \" + component + \" missing\");\n }\n });\n\n if (!this.projectId.match(/^\\d+$/)) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid projectId \" + this.projectId);\n }\n\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE + \": Invalid protocol \" + this.protocol);\n }\n\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid port \" + this.port);\n }\n };\n\n return Dsn;\n}();\n\nexport { Dsn };","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/** Gets integration to install */\n\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = options.defaultIntegrations && __spread(options.defaultIntegrations) || [];\n var userIntegrations = options.integrations;\n var integrations = [];\n\n if (Array.isArray(userIntegrations)) {\n var userIntegrationsNames_1 = userIntegrations.map(function (i) {\n return i.name;\n });\n var pickedIntegrationsNames_1 = []; // Leave only unique default integrations, that were not overridden with provided user integrations\n\n defaultIntegrations.forEach(function (defaultIntegration) {\n if (userIntegrationsNames_1.indexOf(defaultIntegration.name) === -1 && pickedIntegrationsNames_1.indexOf(defaultIntegration.name) === -1) {\n integrations.push(defaultIntegration);\n pickedIntegrationsNames_1.push(defaultIntegration.name);\n }\n }); // Don't add same user integration twice\n\n userIntegrations.forEach(function (userIntegration) {\n if (pickedIntegrationsNames_1.indexOf(userIntegration.name) === -1) {\n integrations.push(userIntegration);\n pickedIntegrationsNames_1.push(userIntegration.name);\n }\n });\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(defaultIntegrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n } else {\n integrations = __spread(defaultIntegrations);\n } // Make sure that if present, `Debug` integration will always run last\n\n\n var integrationsNames = integrations.map(function (i) {\n return i.name;\n });\n var alwaysLastToRun = 'Debug';\n\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n\n return integrations;\n}\n/** Setup given integration */\n\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\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 */\n\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n return integrations;\n}","import { __assign, __values } from \"tslib\";\n/* eslint-disable max-lines */\n\nimport { Scope } from '@sentry/hub';\nimport { SessionStatus } from '@sentry/types';\nimport { dateTimestampInSeconds, Dsn, isPrimitive, isThenable, logger, normalize, SentryError, SyncPromise, truncate, uuid4 } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\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 via the backend, 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 {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\n\nvar BaseClient =\n/** @class */\nfunction () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Number of call being processed */\n\n this._processing = 0;\n this._backend = new backendClass(options);\n this._options = options;\n\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n\n var eventId = hint && hint.event_id;\n\n this._process(this._getBackend().eventFromException(exception, hint).then(function (event) {\n return _this._captureEvent(event, hint, scope);\n }).then(function (result) {\n eventId = result;\n }));\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n\n var eventId = hint && hint.event_id;\n var promisedEvent = isPrimitive(message) ? this._getBackend().eventFromMessage(String(message), level, hint) : this._getBackend().eventFromException(message, hint);\n\n this._process(promisedEvent.then(function (event) {\n return _this._captureEvent(event, hint, scope);\n }).then(function (result) {\n eventId = result;\n }));\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var eventId = hint && hint.event_id;\n\n this._process(this._captureEvent(event, hint, scope).then(function (result) {\n eventId = result;\n }));\n\n return eventId;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.captureSession = function (session) {\n if (!session.release) {\n logger.warn('Discarded session because of missing release');\n } else {\n this._sendSession(session);\n }\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n\n return this._isClientProcessing(timeout).then(function (ready) {\n return _this._getBackend().getTransport().close(timeout).then(function (transportFlushed) {\n return ready && transportFlushed;\n });\n });\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * Sets up the integrations\n */\n\n\n BaseClient.prototype.setupIntegrations = function () {\n if (this._isEnabled()) {\n this._integrations = setupIntegrations(this._options);\n }\n };\n /**\n * @inheritDoc\n */\n\n\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n } catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Updates existing session based on the provided event */\n\n\n BaseClient.prototype._updateSessionFromEvent = function (session, event) {\n var e_1, _a;\n\n var crashed = false;\n var errored = false;\n var userAgent;\n var exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n try {\n for (var exceptions_1 = __values(exceptions), exceptions_1_1 = exceptions_1.next(); !exceptions_1_1.done; exceptions_1_1 = exceptions_1.next()) {\n var ex = exceptions_1_1.value;\n var mechanism = ex.mechanism;\n\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (exceptions_1_1 && !exceptions_1_1.done && (_a = exceptions_1.return)) _a.call(exceptions_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n\n var user = event.user;\n\n if (!session.userAgent) {\n var headers = event.request ? event.request.headers : {};\n\n for (var key in headers) {\n if (key.toLowerCase() === 'user-agent') {\n userAgent = headers[key];\n break;\n }\n }\n }\n\n session.update(__assign(__assign({}, crashed && {\n status: SessionStatus.Crashed\n }), {\n user: user,\n userAgent: userAgent,\n errors: session.errors + Number(errored || crashed)\n }));\n };\n /** Deliver captured session to Sentry */\n\n\n BaseClient.prototype._sendSession = function (session) {\n this._getBackend().sendSession(session);\n };\n /** Waits for the client to be done with processing. */\n\n\n BaseClient.prototype._isClientProcessing = function (timeout) {\n var _this = this;\n\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = setInterval(function () {\n if (_this._processing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n\n\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n\n\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\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\n\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n\n var _a = this.getOptions().normalizeDepth,\n normalizeDepth = _a === void 0 ? 3 : _a;\n\n var prepared = __assign(__assign({}, event), {\n event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()),\n timestamp: event.timestamp || dateTimestampInSeconds()\n });\n\n this._applyClientOptions(prepared);\n\n this._applyIntegrationsMetadata(prepared); // 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\n\n var finalScope = scope;\n\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n } // We prepare the result here with a resolved Event.\n\n\n var result = SyncPromise.resolve(prepared); // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(function (evt) {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n\n return evt;\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\n\n BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n\n var normalized = __assign(__assign(__assign(__assign(__assign({}, event), event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) {\n return __assign(__assign({}, b), b.data && {\n data: normalize(b.data, depth)\n });\n })\n }), event.user && {\n user: normalize(event.user, depth)\n }), event.contexts && {\n contexts: normalize(event.contexts, depth)\n }), event.extra && {\n extra: normalize(event.extra, depth)\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\n\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n\n return normalized;\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\n\n BaseClient.prototype._applyClientOptions = function (event) {\n var options = this.getOptions();\n var environment = options.environment,\n release = options.release,\n dist = options.dist,\n _a = options.maxValueLength,\n maxValueLength = _a === void 0 ? 250 : _a;\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\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n var request = event.request;\n\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param sdkInfo The sdkInfo of the event that will be filled with all integrations.\n */\n\n\n BaseClient.prototype._applyIntegrationsMetadata = function (event) {\n var sdkInfo = event.sdk;\n var integrationsArray = Object.keys(this._integrations);\n\n if (sdkInfo && integrationsArray.length > 0) {\n sdkInfo.integrations = integrationsArray;\n }\n };\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n\n\n BaseClient.prototype._sendEvent = function (event) {\n this._getBackend().sendEvent(event);\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\n\n BaseClient.prototype._captureEvent = function (event, hint, scope) {\n return this._processEvent(event, hint, scope).then(function (finalEvent) {\n return finalEvent.event_id;\n }, function (reason) {\n logger.error(reason);\n return undefined;\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\n\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this; // eslint-disable-next-line @typescript-eslint/unbound-method\n\n\n var _a = this.getOptions(),\n beforeSend = _a.beforeSend,\n sampleRate = _a.sampleRate;\n\n if (!this._isEnabled()) {\n return SyncPromise.reject(new SentryError('SDK not enabled, will not send event.'));\n }\n\n var isTransaction = event.type === 'transaction'; // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n return SyncPromise.reject(new SentryError('This event has been sampled, will not send event.'));\n }\n\n return this._prepareEvent(event, scope, hint).then(function (prepared) {\n if (prepared === null) {\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n var beforeSendResult = beforeSend(prepared, hint);\n\n if (typeof beforeSendResult === 'undefined') {\n throw new SentryError('`beforeSend` method has to return `null` or a valid event.');\n } else if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(function (event) {\n return event;\n }, function (e) {\n throw new SentryError(\"beforeSend rejected with \" + e);\n });\n }\n\n return beforeSendResult;\n }).then(function (processedEvent) {\n if (processedEvent === null) {\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n var session = scope && scope.getSession && scope.getSession();\n\n if (!isTransaction && session) {\n _this._updateSessionFromEvent(session, processedEvent);\n }\n\n _this._sendEvent(processedEvent);\n\n return processedEvent;\n }).then(null, function (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\n throw new SentryError(\"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 * Occupies the client with processing and event\n */\n\n\n BaseClient.prototype._process = function (promise) {\n var _this = this;\n\n this._processing += 1;\n promise.then(function (value) {\n _this._processing -= 1;\n return value;\n }, function (reason) {\n _this._processing -= 1;\n return reason;\n });\n };\n\n return BaseClient;\n}();\n\nexport { BaseClient };","/** The status of an event. */\n// eslint-disable-next-line import/export\nexport var Status;\n\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {})); // eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n\n\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n\n if (code === 429) {\n return Status.RateLimit;\n }\n\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n\n if (code >= 500) {\n return Status.Failed;\n }\n\n return Status.Unknown;\n }\n\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));","import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\n\nvar NoopTransport =\n/** @class */\nfunction () {\n function NoopTransport() {}\n /**\n * @inheritDoc\n */\n\n\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped\n });\n };\n /**\n * @inheritDoc\n */\n\n\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n\n return NoopTransport;\n}();\n\nexport { NoopTransport };","/** JSDoc */\n// eslint-disable-next-line import/export\nexport var Severity;\n\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {})); // eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n\n\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n\n case 'info':\n return Severity.Info;\n\n case 'warn':\n case 'warning':\n return Severity.Warning;\n\n case 'error':\n return Severity.Error;\n\n case 'fatal':\n return Severity.Fatal;\n\n case 'critical':\n return Severity.Critical;\n\n case 'log':\n default:\n return Severity.Log;\n }\n }\n\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));","import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\n\nvar BaseBackend =\n/** @class */\nfunction () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n\n this._transport = this._setupTransport();\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n\n\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n\n\n BaseBackend.prototype.sendEvent = function (event) {\n this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n\n\n BaseBackend.prototype.sendSession = function (session) {\n if (!this._transport.sendSession) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n\n this._transport.sendSession(session).then(null, function (reason) {\n logger.error(\"Error while sending session: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n\n\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n\n\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n\n return BaseBackend;\n}();\n\nexport { BaseBackend };","import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\n\nexport function 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 * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\n\nexport function 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 */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\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 */\n\n\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n var global = getGlobalObject(); // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n\n if (isNativeFetch(global.fetch)) {\n return true;\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\n\n var result = false;\n var doc = global.document; // eslint-disable-next-line deprecation/deprecation\n\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\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n\n doc.head.removeChild(sandbox);\n } catch (err) {\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 * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\n\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\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 * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\n\nexport function 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 /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n var chrome = global.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}","/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\nimport { __assign } from \"tslib\"; // global reference to slice\n\nvar UNKNOWN_FUNCTION = '?'; // Chromium based browsers: Chrome, Brave, new Opera, new Edge\n\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i; // 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.\n\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/; // Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\n\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\nexport function computeStackTrace(ex) {\n var stack = null;\n var popSize = 0;\n\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n popSize = ex.framesToPop;\n } else if (reactMinifiedRegexp.test(ex.message)) {\n popSize = 1;\n }\n }\n\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n\n if (stack) {\n return popFrames(stack, popSize);\n }\n } catch (e) {// no-empty\n }\n\n try {\n stack = computeStackTraceFromStackProp(ex);\n\n if (stack) {\n return popFrames(stack, popSize);\n }\n } catch (e) {// no-empty\n }\n\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity\n\nfunction computeStackTraceFromStackProp(ex) {\n if (!ex || !ex.stack) {\n return null;\n }\n\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n\n for (var i = 0; i < lines.length; ++i) {\n if (parts = chrome.exec(lines[i])) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n element = {\n // working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n url: parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n } else if (parts = winjs.exec(lines[i])) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n } else if (parts = gecko.exec(lines[i])) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\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 } else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\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\n\n var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n\n if (parts = opera10Regex.exec(lines[line])) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null\n };\n } else if (parts = opera11Regex.exec(lines[line])) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2]\n };\n }\n\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n\n stack.push(element);\n }\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack\n };\n}\n/** Remove N number of frames from the stack */\n\n\nfunction popFrames(stacktrace, popSize) {\n try {\n return __assign(__assign({}, stacktrace), {\n stack: stacktrace.stack.slice(popSize)\n });\n } catch (e) {\n return stacktrace;\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 */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n\n if (!message) {\n return 'No error message';\n }\n\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n\n return message;\n}","import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\n\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message\n };\n\n if (frames && frames.length) {\n exception.stacktrace = {\n frames: frames\n };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n/**\n * @hidden\n */\n\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [{\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception)\n }]\n },\n extra: {\n __serialized__: normalizeToSize(exception)\n }\n };\n\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1\n };\n }\n\n return event;\n}\n/**\n * @hidden\n */\n\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception]\n }\n };\n}\n/**\n * @hidden\n */\n\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || ''; // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\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\n\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n } // The frame where the crash happened, should be the last entry in the array\n\n\n return localStack.slice(0, STACKTRACE_LIMIT).map(function (frame) {\n return {\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line\n };\n }).reverse();\n}","import { __assign } from \"tslib\";\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, SyncPromise } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/**\n * Builds and Event from a Exception\n * @hidden\n */\n\nexport function eventFromException(options, exception, hint) {\n var syntheticException = hint && hint.syntheticException || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: options.attachStacktrace\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic'\n });\n event.level = Severity.Error;\n\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n\n return SyncPromise.resolve(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\n\nexport function eventFromMessage(options, message, level, hint) {\n if (level === void 0) {\n level = Severity.Info;\n }\n\n var syntheticException = hint && hint.syntheticException || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: options.attachStacktrace\n });\n event.level = level;\n\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n\n return SyncPromise.resolve(event);\n}\n/**\n * @hidden\n */\n\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) {\n options = {};\n }\n\n var 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; // eslint-disable-next-line no-param-reassign\n\n exception = errorEvent.error;\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n\n if (isDOMError(exception) || isDOMException(exception)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name, code, and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var domException = exception;\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n\n if ('code' in domException) {\n event.tags = __assign(__assign({}, event.tags), {\n 'DOMException.code': \"\" + domException.code\n });\n }\n\n return event;\n }\n\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true\n });\n return event;\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\n\n event = eventFromString(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true\n });\n return event;\n}\n/**\n * @hidden\n */\n\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) {\n options = {};\n }\n\n var event = {\n message: input\n };\n\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1\n };\n }\n\n return event;\n}","import { __rest } from \"tslib\";\n/** Creates a SentryRequest from an event. */\n\nexport function sessionToSentryRequest(session, api) {\n var envelopeHeaders = JSON.stringify({\n sent_at: new Date().toISOString()\n });\n var itemHeaders = JSON.stringify({\n type: 'session'\n });\n return {\n body: envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + JSON.stringify(session),\n type: 'session',\n url: api.getEnvelopeEndpointWithUrlEncodedAuth()\n };\n}\n/** Creates a SentryRequest from an event. */\n\nexport function eventToSentryRequest(event, api) {\n // since JS has no Object.prototype.pop()\n var _a = event.tags || {},\n samplingMethod = _a.__sentry_samplingMethod,\n sampleRate = _a.__sentry_sampleRate,\n otherTags = __rest(_a, [\"__sentry_samplingMethod\", \"__sentry_sampleRate\"]);\n\n event.tags = otherTags;\n var useEnvelope = event.type === 'transaction';\n var req = {\n body: JSON.stringify(event),\n type: event.type || 'event',\n url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth()\n }; // https://develop.sentry.dev/sdk/envelopes/\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n\n if (useEnvelope) {\n var envelopeHeaders = JSON.stringify({\n event_id: event.event_id,\n sent_at: new Date().toISOString()\n });\n var itemHeaders = JSON.stringify({\n type: event.type,\n // TODO: Right now, sampleRate may or may not be defined (it won't be in the cases of inheritance and\n // explicitly-set sampling decisions). Are we good with that?\n sample_rates: [{\n id: samplingMethod,\n rate: sampleRate\n }]\n }); // The trailing newline is optional. We intentionally don't send it to avoid\n // sending unnecessary bytes.\n //\n // const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}\\n`;\n\n var envelope = envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + req.body;\n req.body = envelope;\n }\n\n return req;\n}","import { Dsn, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/** Helper class to provide urls to different Sentry endpoints. */\n\nvar API =\n/** @class */\nfunction () {\n /** Create a new instance of API */\n function API(dsn) {\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n }\n /** Returns the Dsn object. */\n\n\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n\n\n API.prototype.getBaseApiEndpoint = function () {\n var dsn = this._dsnObject;\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 /** Returns the store endpoint URL. */\n\n\n API.prototype.getStoreEndpoint = function () {\n return this._getIngestEndpoint('store');\n };\n /**\n * Returns the store 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 */\n\n\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n return this.getStoreEndpoint() + \"?\" + this._encodedAuth();\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 */\n\n\n API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () {\n return this._getEnvelopeEndpoint() + \"?\" + this._encodedAuth();\n };\n /** Returns only the path component for the store endpoint. */\n\n\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this._dsnObject;\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\n\n\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n var dsn = this._dsnObject;\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.user);\n\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', ')\n };\n };\n /** Returns the url to the report dialog endpoint. */\n\n\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) {\n dialogOptions = {};\n }\n\n var dsn = this._dsnObject;\n var endpoint = this.getBaseApiEndpoint() + \"embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n } else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n\n return endpoint;\n };\n /** Returns the envelope endpoint URL. */\n\n\n API.prototype._getEnvelopeEndpoint = function () {\n return this._getIngestEndpoint('envelope');\n };\n /** Returns the ingest API endpoint for target. */\n\n\n API.prototype._getIngestEndpoint = function (target) {\n var base = this.getBaseApiEndpoint();\n var dsn = this._dsnObject;\n return \"\" + base + dsn.projectId + \"/\" + target + \"/\";\n };\n /** Returns a URL-encoded string with auth config suitable for a query string. */\n\n\n API.prototype._encodedAuth = function () {\n var dsn = this._dsnObject;\n var auth = {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.user,\n sentry_version: SENTRY_API_VERSION\n };\n return urlEncode(auth);\n };\n\n return API;\n}();\n\nexport { API };","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\n\nvar PromiseBuffer =\n/** @class */\nfunction () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n\n\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\n };\n /**\n * Add a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns The original promise.\n */\n\n\n PromiseBuffer.prototype.add = function (task) {\n var _this = this;\n\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n\n task.then(function () {\n return _this.remove(task);\n }).then(null, function () {\n return _this.remove(task).then(null, function () {// We have to add this catch here otherwise we have an unhandledPromiseRejection\n // because it's a new Promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n\n\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n\n\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\n };\n /**\n * This will drain the whole queue, returns true if queue is empty or drained.\n * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false.\n *\n * @param timeout Number in ms to wait until it resolves with false.\n */\n\n\n PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n\n return new SyncPromise(function (resolve) {\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n SyncPromise.all(_this._buffer).then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }).then(null, function () {\n resolve(true);\n });\n });\n };\n\n return PromiseBuffer;\n}();\n\nexport { PromiseBuffer };","import { __values } from \"tslib\";\nimport { API } from '@sentry/core';\nimport { Status } from '@sentry/types';\nimport { logger, parseRetryAfterHeader, PromiseBuffer, SentryError } from '@sentry/utils';\n/** Base Transport class implementation */\n\nvar BaseTransport =\n/** @class */\nfunction () {\n function BaseTransport(options) {\n this.options = options;\n /** A simple buffer holding all requests. */\n\n this._buffer = new PromiseBuffer(30);\n /** Locks transport after receiving rate limits in a response */\n\n this._rateLimits = {};\n this._api = new API(this.options.dsn); // eslint-disable-next-line deprecation/deprecation\n\n this.url = this._api.getStoreEndpointWithUrlEncodedAuth();\n }\n /**\n * @inheritDoc\n */\n\n\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n\n\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n\n\n BaseTransport.prototype._handleResponse = function (_a) {\n var requestType = _a.requestType,\n response = _a.response,\n headers = _a.headers,\n resolve = _a.resolve,\n reject = _a.reject;\n var status = Status.fromHttpCode(response.status);\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n\n var limited = this._handleRateLimit(headers);\n\n if (limited) logger.warn(\"Too many requests, backing off until: \" + this._disabledUntil(requestType));\n\n if (status === Status.Success) {\n resolve({\n status: status\n });\n return;\n }\n\n reject(response);\n };\n /**\n * Gets the time that given category is disabled until for rate limiting\n */\n\n\n BaseTransport.prototype._disabledUntil = function (category) {\n return this._rateLimits[category] || this._rateLimits.all;\n };\n /**\n * Checks if a category is rate limited\n */\n\n\n BaseTransport.prototype._isRateLimited = function (category) {\n return this._disabledUntil(category) > new Date(Date.now());\n };\n /**\n * Sets internal _rateLimits from incoming headers. Returns true if headers contains a non-empty rate limiting header.\n */\n\n\n BaseTransport.prototype._handleRateLimit = function (headers) {\n var e_1, _a, e_2, _b;\n\n var now = Date.now();\n var rlHeader = headers['x-sentry-rate-limits'];\n var raHeader = headers['retry-after'];\n\n if (rlHeader) {\n try {\n // rate limit headers are of the form\n //
,
,..\n // where each
is of the form\n // : : : \n // where\n // is a delay in ms\n // is the event type(s) (error, transaction, etc) being rate limited and is of the form\n // ;;...\n // is what's being limited (org, project, or key) - ignored by SDK\n // is an arbitrary string like \"org_quota\" - ignored by SDK\n for (var _c = __values(rlHeader.trim().split(',')), _d = _c.next(); !_d.done; _d = _c.next()) {\n var limit = _d.value;\n var parameters = limit.split(':', 2);\n var headerDelay = parseInt(parameters[0], 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n\n try {\n for (var _e = (e_2 = void 0, __values(parameters[1].split(';'))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var category = _f.value;\n this._rateLimits[category || 'all'] = new Date(now + delay);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return true;\n } else if (raHeader) {\n this._rateLimits.all = new Date(now + parseRetryAfterHeader(now, raHeader));\n return true;\n }\n\n return false;\n };\n\n return BaseTransport;\n}();\n\nexport { BaseTransport };","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { getGlobalObject, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\nvar global = getGlobalObject();\n/** `fetch` based transport */\n\nvar FetchTransport =\n/** @class */\nfunction (_super) {\n __extends(FetchTransport, _super);\n\n function FetchTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n\n\n FetchTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n\n\n FetchTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n\n\n FetchTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429\n });\n }\n\n var options = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: supportsReferrerPolicy() ? 'origin' : ''\n };\n\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n global.fetch(sentryRequest.url, options).then(function (response) {\n var headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After')\n };\n\n _this._handleResponse({\n requestType: sentryRequest.type,\n response: response,\n headers: headers,\n resolve: resolve,\n reject: reject\n });\n }).catch(reject);\n }));\n };\n\n return FetchTransport;\n}(BaseTransport);\n\nexport { FetchTransport };","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\n\nvar XHRTransport =\n/** @class */\nfunction (_super) {\n __extends(XHRTransport, _super);\n\n function XHRTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n\n\n XHRTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n\n\n XHRTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n\n\n XHRTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429\n });\n }\n\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n var headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After')\n };\n\n _this._handleResponse({\n requestType: sentryRequest.type,\n response: request,\n headers: headers,\n resolve: resolve,\n reject: reject\n });\n }\n };\n\n request.open('POST', sentryRequest.url);\n\n for (var header in _this.options.headers) {\n if (_this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n\n request.send(sentryRequest.body);\n }));\n };\n\n return XHRTransport;\n}(BaseTransport);\n\nexport { XHRTransport };","import { __assign, __extends } from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\n\nvar BrowserBackend =\n/** @class */\nfunction (_super) {\n __extends(BrowserBackend, _super);\n\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n\n\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n return eventFromException(this._options, exception, hint);\n };\n /**\n * @inheritDoc\n */\n\n\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) {\n level = Severity.Info;\n }\n\n return eventFromMessage(this._options, message, level, hint);\n };\n /**\n * @inheritDoc\n */\n\n\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n\n var transportOptions = __assign(__assign({}, this._options.transportOptions), {\n dsn: this._options.dsn\n });\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n\n return new XHRTransport(transportOptions);\n };\n\n return BrowserBackend;\n}(BaseBackend);\n\nexport { BrowserBackend };","import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nfunction callOnHub(method) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var hub = getCurrentHub();\n\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\nexport function captureException(exception, captureContext) {\n var syntheticException;\n\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception;\n }\n\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException\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 level Define the level of the message.\n * @returns The generated eventId.\n */\n\nexport function captureMessage(message, captureContext) {\n var syntheticException;\n\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception;\n } // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n\n\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? {\n captureContext: captureContext\n } : undefined;\n return callOnHub('captureMessage', message, level, __assign({\n originalException: message,\n syntheticException: syntheticException\n }, context));\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 */\n\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\n\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\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 */\n\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\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 */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\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 */\n\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\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 */\n\nexport function setTags(tags) {\n callOnHub('setTags', tags);\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 */\n\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\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 */\n\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\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 */\n\nexport function setUser(user) {\n callOnHub('setUser', user);\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 */\n\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function _callOnClient(method) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\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 */\n\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}","import { __assign } from \"tslib\";\nimport { API, captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue, logger } from '@sentry/utils';\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\n\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\n\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\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.\n * @returns The wrapped function.\n * @hidden\n */\n\nexport function wrap(fn, options, before) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n } // If this has already been wrapped in the past, return that wrapped function\n\n\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\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 /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n var sentryWrapped = function sentryWrapped() {\n var args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\n\n var wrappedArguments = args.map(function (arg) {\n return wrap(arg, options);\n });\n\n if (fn.handleEvent) {\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return fn.handleEvent.apply(this, wrappedArguments);\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\n\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = __assign({}, event);\n\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n\n processedEvent.extra = __assign(__assign({}, processedEvent.extra), {\n arguments: args\n });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n\n\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) {} // eslint-disable-line no-empty\n\n\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped\n }); // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true\n },\n __sentry_original__: {\n enumerable: false,\n value: fn\n }\n }); // Restore original function name (not all browsers allow that)\n\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function get() {\n return fn.name;\n }\n });\n } // eslint-disable-next-line no-empty\n\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n/**\n * Injects the Report Dialog script\n * @hidden\n */\n\nexport function injectReportDialog(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!options.eventId) {\n logger.error(\"Missing eventId option in showReportDialog call\");\n return;\n }\n\n if (!options.dsn) {\n logger.error(\"Missing dsn option in showReportDialog call\");\n return;\n }\n\n var script = document.createElement('script');\n script.async = true;\n script.src = new API(options.dsn).getReportDialogEndpoint(options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n (document.head || document.body).appendChild(script);\n}","import { __assign, __values } from \"tslib\";\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\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/** Instruments given API */\n\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\n case 'dom':\n instrumentDOM();\n break;\n\n case 'xhr':\n instrumentXHR();\n break;\n\n case 'fetch':\n instrumentFetch();\n break;\n\n case 'history':\n instrumentHistory();\n break;\n\n case 'error':\n instrumentError();\n break;\n\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n\n default:\n logger.warn('unknown instrumentation type:', type);\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 */\n\n\nexport function addInstrumentationHandler(handler) {\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\n\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n\n if (!type || !handlers[type]) {\n return;\n }\n\n try {\n for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n\n try {\n handler(data);\n } catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n}\n/** JSDoc */\n\n\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n triggerHandlers('console', {\n args: args,\n level: level\n }); // this fails for some browsers. :(\n\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\n\n\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var handlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args)\n },\n startTimestamp: Date.now()\n };\n triggerHandlers('fetch', __assign({}, handlerData)); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), {\n endTimestamp: Date.now(),\n response: response\n }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), {\n endTimestamp: Date.now(),\n error: error\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\n throw error;\n });\n };\n });\n}\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** Extract `method` from fetch call arguments */\n\n\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) {\n fetchArgs = [];\n }\n\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\n\n\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) {\n fetchArgs = [];\n }\n\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\n\n\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n } // Poor man's implementation of ES6 `Map`, tracking and keeping in sync key and value separately.\n\n\n var requestKeys = [];\n var requestValues = [];\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // eslint-disable-next-line @typescript-eslint/no-this-alias\n\n\n var xhr = this;\n var url = args[1];\n xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1]\n }; // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n if (isString(url) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n var onreadystatechangeHandler = function onreadystatechangeHandler() {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n } catch (e) {\n /* do nothing */\n }\n\n try {\n var requestPos = requestKeys.indexOf(xhr);\n\n if (requestPos !== -1) {\n // Make sure to pop both key and value to keep it in sync.\n requestKeys.splice(requestPos);\n var args_1 = requestValues.splice(requestPos)[0];\n\n if (xhr.__sentry_xhr__ && args_1[0] !== undefined) {\n xhr.__sentry_xhr__.body = args_1[0];\n }\n }\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n\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 fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n requestKeys.push(this);\n requestValues.push(args);\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this\n });\n return originalSend.apply(this, args);\n };\n });\n}\n\nvar lastHref;\n/** JSDoc */\n\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n var oldOnPopState = global.onpopstate;\n\n global.onpopstate = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var to = global.location.href; // keep track of the current URL state, as we always receive only the updated state\n\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to\n });\n\n if (oldOnPopState) {\n return oldOnPopState.apply(this, args);\n }\n };\n /** @hidden */\n\n\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var url = args.length > 2 ? args[2] : undefined;\n\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url); // keep track of the current URL state, as we always receive only the updated state\n\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to\n });\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/** JSDoc */\n\n\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n } // Capture breadcrumbs from any click that is unhandled / bubbled up all the way\n // to the document. Do this before we instrument addEventListener.\n\n\n global.document.addEventListener('click', domEventHandler('click', triggerHandlers.bind(null, 'dom')), false);\n global.document.addEventListener('keypress', keypressEventHandler(triggerHandlers.bind(null, 'dom')), false); // After hooking into document bubbled up click and keypresses events, we also hook into user handled click & keypresses.\n\n ['EventTarget', 'Node'].forEach(function (target) {\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n var proto = global[target] && global[target].prototype; // eslint-disable-next-line no-prototype-builtins\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n if (fn && fn.handleEvent) {\n if (eventName === 'click') {\n fill(fn, 'handleEvent', function (innerOriginal) {\n return function (event) {\n domEventHandler('click', triggerHandlers.bind(null, 'dom'))(event);\n return innerOriginal.call(this, event);\n };\n });\n }\n\n if (eventName === 'keypress') {\n fill(fn, 'handleEvent', function (innerOriginal) {\n return function (event) {\n keypressEventHandler(triggerHandlers.bind(null, 'dom'))(event);\n return innerOriginal.call(this, event);\n };\n });\n }\n } else {\n if (eventName === 'click') {\n domEventHandler('click', triggerHandlers.bind(null, 'dom'), true)(this);\n }\n\n if (eventName === 'keypress') {\n keypressEventHandler(triggerHandlers.bind(null, 'dom'))(this);\n }\n }\n\n return original.call(this, eventName, fn, options);\n };\n });\n fill(proto, 'removeEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n original.call(this, eventName, fn.__sentry_wrapped__, options);\n } catch (e) {// ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n\n return original.call(this, eventName, fn, options);\n };\n });\n });\n}\n\nvar debounceDuration = 1000;\nvar debounceTimer = 0;\nvar keypressTimeout;\nvar lastCapturedEvent;\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param name the event name (e.g. \"click\")\n * @param handler function that will be triggered\n * @param debounce decides whether it should wait till another event loop\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\n\nfunction domEventHandler(name, handler, debounce) {\n if (debounce === void 0) {\n debounce = false;\n }\n\n return function (event) {\n // reset keypress timeout; e.g. triggering a 'click' after\n // a 'keypress' will reset the keypress debounce so that a new\n // set of keypresses can be recorded\n keypressTimeout = undefined; // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors). Ignore if we've\n // already captured the event.\n\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n lastCapturedEvent = event;\n\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n }\n\n if (debounce) {\n debounceTimer = setTimeout(function () {\n handler({\n event: event,\n name: name\n });\n });\n } else {\n handler({\n event: event,\n name: name\n });\n }\n };\n}\n/**\n * Wraps addEventListener to capture keypress UI events\n * @param handler function that will be triggered\n * @returns wrapped keypress events handler\n * @hidden\n */\n\n\nfunction keypressEventHandler(handler) {\n // TODO: if somehow user switches keypress target before\n // debounce timeout is triggered, we will only capture\n // a single breadcrumb from the FIRST target (acceptable?)\n return function (event) {\n var target;\n\n try {\n target = event.target;\n } catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n\n var tagName = target && target.tagName; // only consider keypress events on actual input elements\n // this will disregard keypresses targeting body (e.g. tabbing\n // through elements, hotkeys, etc)\n\n if (!tagName || tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable) {\n return;\n } // record first keypress in a series, but ignore subsequent\n // keypresses until debounce clears\n\n\n if (!keypressTimeout) {\n domEventHandler('input', handler)(event);\n }\n\n clearTimeout(keypressTimeout);\n keypressTimeout = setTimeout(function () {\n keypressTimeout = undefined;\n }, debounceDuration);\n };\n}\n\nvar _oldOnErrorHandler = null;\n/** JSDoc */\n\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\n\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/* eslint-disable max-lines */\n\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, parseUrl, safeJoin } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\n\nvar Breadcrumbs =\n/** @class */\nfunction () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = __assign({\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true\n }, options);\n }\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n\n\n Breadcrumbs.prototype.addSentryBreadcrumb = function (event) {\n if (!this._options.sentry) {\n return;\n }\n\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\" + (event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event)\n }, {\n event: event\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\n\n Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._consoleBreadcrumb.apply(_this, __spread(args));\n },\n type: 'console'\n });\n }\n\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._domBreadcrumb.apply(_this, __spread(args));\n },\n type: 'dom'\n });\n }\n\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._xhrBreadcrumb.apply(_this, __spread(args));\n },\n type: 'xhr'\n });\n }\n\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._fetchBreadcrumb.apply(_this, __spread(args));\n },\n type: 'fetch'\n });\n }\n\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function callback() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n _this._historyBreadcrumb.apply(_this, __spread(args));\n },\n type: 'history'\n });\n }\n };\n /**\n * Creates breadcrumbs from console API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console'\n },\n level: Severity.fromString(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 * Creates breadcrumbs from DOM API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target; // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n\n try {\n target = handlerData.event.target ? htmlTreeAsString(handlerData.event.target) : htmlTreeAsString(handlerData.event);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target\n }, {\n event: handlerData.event,\n name: handlerData.name\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._xhrBreadcrumb = function (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 var _a = handlerData.xhr.__sentry_xhr__ || {},\n method = _a.method,\n url = _a.url,\n status_code = _a.status_code,\n body = _a.body;\n\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code\n },\n type: 'http'\n }, {\n xhr: handlerData.xhr,\n input: body\n });\n return;\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._fetchBreadcrumb = function (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 category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http'\n }, {\n data: handlerData.error,\n input: handlerData.args\n });\n } else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: __assign(__assign({}, handlerData.fetchData), {\n status_code: handlerData.response.status\n }),\n type: 'http'\n }, {\n input: handlerData.args,\n response: handlerData.response\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to); // Initial pushState doesn't provide `from` information\n\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\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\n\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\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: from,\n to: to\n }\n });\n };\n /**\n * @inheritDoc\n */\n\n\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}();\n\nexport { Breadcrumbs };","export var SDK_NAME = 'sentry.javascript.browser';\nexport var SDK_VERSION = '5.29.2';","import { __assign, __extends, __read, __spread } from \"tslib\";\nimport { BaseClient } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { injectReportDialog } from './helpers';\nimport { Breadcrumbs } from './integrations';\nimport { SDK_NAME, SDK_VERSION } from './version';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\n\nvar BrowserClient =\n/** @class */\nfunction (_super) {\n __extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n\n\n function BrowserClient(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _super.call(this, BrowserBackend, options) || this;\n }\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n\n\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) {\n options = {};\n } // doesn't work without a document (React Native)\n\n\n var document = getGlobalObject().document;\n\n if (!document) {\n return;\n }\n\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n\n injectReportDialog(__assign(__assign({}, options), {\n dsn: options.dsn || this.getDsn()\n }));\n };\n /**\n * @inheritDoc\n */\n\n\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n event.sdk = __assign(__assign({}, event.sdk), {\n name: SDK_NAME,\n packages: __spread(event.sdk && event.sdk.packages || [], [{\n name: 'npm:@sentry/browser',\n version: SDK_VERSION\n }]),\n version: SDK_VERSION\n });\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * @inheritDoc\n */\n\n\n BrowserClient.prototype._sendEvent = function (event) {\n var integration = this.getIntegration(Breadcrumbs);\n\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n\n _super.prototype._sendEvent.call(this, event);\n };\n\n return BrowserClient;\n}(BaseClient);\n\nexport { BrowserClient };","import { __assign } from \"tslib\";\nimport { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\nvar DEFAULT_EVENT_TARGET = ['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'];\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\n\nvar TryCatch =\n/** @class */\nfunction () {\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n this._options = __assign({\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true\n }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n\n\n TryCatch.prototype.setupOnce = function () {\n var global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n\n if (this._options.eventTarget) {\n var eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(this._wrapEventTarget.bind(this));\n }\n };\n /** JSDoc */\n\n\n TryCatch.prototype._wrapTimeFunction = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: {\n function: getFunctionName(original)\n },\n handled: true,\n type: 'instrument'\n }\n });\n return original.apply(this, args);\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n TryCatch.prototype._wrapRAF = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.call(this, 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 /** JSDoc */\n\n\n TryCatch.prototype._wrapEventTarget = function (target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject(); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n var proto = global[target] && global[target].prototype; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target\n },\n handled: true,\n type: 'instrument'\n }\n });\n }\n } catch (err) {// can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.call(this, eventName, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target\n },\n handled: true,\n type: 'instrument'\n }\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (eventName, fn, options) {\n var _a;\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\n\n var wrappedEventHandler = fn;\n\n try {\n var originalEventHandler = (_a = wrappedEventHandler) === null || _a === void 0 ? void 0 : _a.__sentry_wrapped__;\n\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {// ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n });\n };\n /** JSDoc */\n\n\n TryCatch.prototype._wrapXHR = function (originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // eslint-disable-next-line @typescript-eslint/no-this-alias\n\n\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 }; // If Instrument integration has been called before TryCatch, get the name of original function\n\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n } // Otherwise wrap directly\n\n\n return wrap(original, wrapOptions);\n });\n }\n });\n return originalSend.apply(this, args);\n };\n };\n /**\n * @inheritDoc\n */\n\n\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}();\n\nexport { TryCatch };","import { __assign } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\n\nvar GlobalHandlers =\n/** @class */\nfunction () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = __assign({\n onerror: true,\n onunhandledrejection: true\n }, options);\n }\n /**\n * @inheritDoc\n */\n\n\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n\n this._installGlobalOnErrorHandler();\n }\n\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n\n\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n var _this = this;\n\n if (this._onErrorHandlerInstalled) {\n return;\n }\n\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function callback(data) {\n var error = data.error;\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n\n var client = currentHub.getClient();\n var event = isPrimitive(error) ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column) : _this._enhanceEventWithInitialFrame(eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false\n }), data.url, data.line, data.column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror'\n });\n currentHub.captureEvent(event, {\n originalException: error\n });\n },\n type: 'error'\n });\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n\n\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n var _this = this;\n\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function callback(e) {\n var error = e; // dig the object of the rejection out of known event types\n\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 } // 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) {// no-empty\n }\n\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n\n var client = currentHub.getClient();\n var event = isPrimitive(error) ? _this._eventFromRejectionWithPrimitive(error) : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection'\n });\n currentHub.captureEvent(event, {\n originalException: error\n });\n return;\n },\n type: 'unhandledrejection'\n });\n this._onUnhandledRejectionHandlerInstalled = true;\n };\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i; // If 'message' is ErrorEvent, get real message from inside\n\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n\n if (isString(message)) {\n var groups = message.match(ERROR_TYPES_RE);\n\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n }\n\n var event = {\n exception: {\n values: [{\n type: name || 'Error',\n value: message\n }]\n }\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\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 */\n\n\n GlobalHandlers.prototype._eventFromRejectionWithPrimitive = function (reason) {\n return {\n exception: {\n values: [{\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 /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\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 if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno\n });\n }\n\n return event;\n };\n /**\n * @inheritDoc\n */\n\n\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}();\n\nexport { GlobalHandlers };","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\n\nvar LinkedErrors =\n/** @class */\nfunction () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) {\n options = {};\n }\n /**\n * @inheritDoc\n */\n\n\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n\n\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n\n if (self) {\n return self._handler(event, hint);\n }\n\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n\n\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n\n event.exception.values = __spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n\n\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) {\n stack = [];\n }\n\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, __spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n\n\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}();\n\nexport { LinkedErrors };","import { __assign } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\n\nvar UserAgent =\n/** @class */\nfunction () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n\n\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var _a, _b, _c;\n\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n } // grab as much info as exists and add it to the event\n\n\n var url = ((_a = event.request) === null || _a === void 0 ? void 0 : _a.url) || ((_b = global.location) === null || _b === void 0 ? void 0 : _b.href);\n var referrer = (global.document || {}).referrer;\n var userAgent = (global.navigator || {}).userAgent;\n\n var headers = __assign(__assign(__assign({}, (_c = event.request) === null || _c === void 0 ? void 0 : _c.headers), referrer && {\n Referer: referrer\n }), userAgent && {\n 'User-Agent': userAgent\n });\n\n var request = __assign(__assign({}, url && {\n url: url\n }), {\n headers: headers\n });\n\n return __assign(__assign({}, event), {\n request: request\n });\n }\n\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n\n\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}();\n\nexport { UserAgent };","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { getGlobalObject, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [new CoreIntegrations.InboundFilters(), new CoreIntegrations.FunctionToString(), new TryCatch(), new Breadcrumbs(), new GlobalHandlers(), new LinkedErrors(), new UserAgent()];\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 */\n\nexport function init(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n\n if (options.release === undefined) {\n var window_1 = getGlobalObject(); // This supports the variable that sentry-webpack-plugin injects\n\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = false;\n }\n\n initAndBind(BrowserClient, options);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\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 */\n\nexport function showReportDialog(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!options.eventId) {\n options.eventId = getCurrentHub().lastEventId();\n }\n\n var client = getCurrentHub().getClient();\n\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\n\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\n\nexport function forceLoad() {} // Noop\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\n\nexport function onLoad(callback) {\n callback();\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\n\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n\n if (client) {\n return client.flush(timeout);\n }\n\n return SyncPromise.reject(false);\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\n\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n\n if (client) {\n return client.close(timeout);\n }\n\n return SyncPromise.reject(false);\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 */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function wrap(fn) {\n return internalWrap(fn)();\n}\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\n\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var hub = getCurrentHub();\n /**\n * We should be using `Promise.all([windowLoaded, firstContentfulPaint])` here,\n * but, as always, it's not available in the IE10-11. Thanks IE.\n */\n\n var loadResolved = document.readyState === 'complete';\n var fcpResolved = false;\n\n var possiblyEndSession = function possiblyEndSession() {\n if (fcpResolved && loadResolved) {\n hub.endSession();\n }\n };\n\n var resolveWindowLoaded = function resolveWindowLoaded() {\n loadResolved = true;\n possiblyEndSession();\n window.removeEventListener('load', resolveWindowLoaded);\n };\n\n hub.startSession();\n\n if (!loadResolved) {\n // IE doesn't support `{ once: true }` for event listeners, so we have to manually\n // attach and then detach it once completed.\n window.addEventListener('load', resolveWindowLoaded);\n }\n\n try {\n var po = new PerformanceObserver(function (entryList, po) {\n entryList.getEntries().forEach(function (entry) {\n if (entry.name === 'first-contentful-paint' && entry.startTime < firstHiddenTime_1) {\n po.disconnect();\n fcpResolved = true;\n possiblyEndSession();\n }\n });\n }); // There's no need to even attach this listener if `PerformanceObserver` constructor will fail,\n // so we do it below here.\n\n var firstHiddenTime_1 = document.visibilityState === 'hidden' ? 0 : Infinity;\n document.addEventListener('visibilitychange', function (event) {\n firstHiddenTime_1 = Math.min(firstHiddenTime_1, event.timeStamp);\n }, {\n once: true\n });\n po.observe({\n type: 'paint',\n buffered: true\n });\n } catch (e) {\n fcpResolved = true;\n possiblyEndSession();\n }\n}","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\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 */\n\nexport function initAndBind(clientClass, options) {\n if (options.debug === true) {\n logger.enable();\n }\n\n var hub = getCurrentHub();\n var client = new clientClass(options);\n hub.bindClient(client);\n}","import { __assign } from \"tslib\";\nexport * from './exports';\nimport { Integrations as CoreIntegrations } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nimport * as BrowserIntegrations from './integrations';\nimport * as Transports from './transports';\nvar windowIntegrations = {}; // This block is needed to add compatibility with the integrations packages when used with a CDN\n\nvar _window = getGlobalObject();\n\nif (_window.Sentry && _window.Sentry.Integrations) {\n windowIntegrations = _window.Sentry.Integrations;\n}\n\nvar INTEGRATIONS = __assign(__assign(__assign({}, windowIntegrations), CoreIntegrations), BrowserIntegrations);\n\nexport { INTEGRATIONS as Integrations, Transports };","import GoogleAnalytics from 'react-ga'\r\nimport * as Sentry from '@sentry/browser'\r\nimport { siteMetadata } from './gatsby-config'\r\n\r\n/**\r\n * Initialize Google Analytics and Sentry\r\n */\r\nexport const onClientEntry = () => {\r\n if (process.env.NODE_ENV === 'production') {\r\n GoogleAnalytics.initialize(siteMetadata.googleAnalyticsId)\r\n\r\n Sentry.init({\r\n dsn: siteMetadata.sentryDSN,\r\n })\r\n window.Sentry = Sentry\r\n }\r\n}\r\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","module.exports = {};\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { publicLoader } from \"./loader\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n pathContext: this.props.pageContext,\n }\n\n const [replacementElement] = apiRunner(`replaceComponentRenderer`, {\n props: this.props,\n loader: publicLoader,\n })\n\n const pageElement =\n replacementElement ||\n createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-typography/gatsby-browser.js'),\n options: {\"plugins\":[],\"pathToConfigModule\":\"./config/typography.js\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-catch-links/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-analytics/gatsby-browser.js'),\n options: {\"plugins\":[],\"anonymize\":true,\"head\":false,\"respectDNT\":false,\"exclude\":[],\"pageTransitionDelay\":0},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"West Coast Estuaries Explorer\",\"short_name\":\"Estuaries Explorer\",\"description\":\"A simple tool to explore various characteristics of estuaries along the U.S. West Coast.\",\"start_url\":\"/?utm_source=a2hs\",\"background_color\":\"#253688\",\"theme_color\":\"#253688\",\"display\":\"standalone\",\"icon\":\"src/images/favicon-32x32.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"12160a7a1f776c32a3dd4ece56cca1b2\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-pages-404-jsx\": () => import(\"./../../../src/pages/404.jsx\" /* webpackChunkName: \"component---src-pages-404-jsx\" */),\n \"component---src-pages-compare-jsx\": () => import(\"./../../../src/pages/compare.jsx\" /* webpackChunkName: \"component---src-pages-compare-jsx\" */),\n \"component---src-pages-explore-jsx\": () => import(\"./../../../src/pages/explore.jsx\" /* webpackChunkName: \"component---src-pages-explore-jsx\" */),\n \"component---src-pages-index-jsx\": () => import(\"./../../../src/pages/index.jsx\" /* webpackChunkName: \"component---src-pages-index-jsx\" */)\n}\n\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport redirects from \"./redirects.json\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@reach/router\"\nimport { globalHistory } from \"@reach/router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\n// Convert to a map for faster lookup in maybeRedirect()\nconst redirectMap = redirects.reduce((map, redirect) => {\n map[redirect.fromPath] = redirect\n return map\n}, {})\n\nfunction maybeRedirect(pathname) {\n const redirect = redirectMap[pathname]\n\n if (redirect != null) {\n if (process.env.NODE_ENV !== `production`) {\n if (!loader.isPageNotFound(pathname)) {\n console.error(\n `The route \"${pathname}\" matches both a page and a redirect; this is probably not intentional.`\n )\n }\n }\n\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n let { pathname } = parsePath(to)\n const redirect = redirectMap[pathname]\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources: pageResources || loader.loadPageSync(location.pathname),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname)\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (process.env.NODE_ENV !== `production` && !this.state.pageResources) {\n throw new Error(\n `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n )\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@reach/router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n
\n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n throw new Error(\n `page resources for ${browserLoc.pathname} not found. Not rendering React`\n )\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = () => {SiteRoot}\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n renderer(\n ,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n })\n })\n})\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","\"use strict\";\n\nmodule.exports = Object.assign;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport createContext from \"create-react-context\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", { baseuri: \"/\", basepath: \"/\" });\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n { value: { baseuri: uri, basepath: basepath } },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component) {\n finalResult.status = PageResourceStatus.Error\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n ).then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return Promise.all([componentChunkPromise, staticQueryBatchPromise]).then(\n ([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n return payload\n }\n )\n })\n\n inFlightPromise\n .then(response => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if loading page ran into errors\n loadPageSync(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath).payload\n return pageData\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName =>\n asyncRequires.components[chunkName]\n ? asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is null\n .catch(() => null)\n : Promise.resolve()\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n // Deprecated methods. As far as we're aware, these are only used by\n // core gatsby and the offline plugin, however there's a very small\n // chance they're called by others.\n getResourcesForPathname: rawPath => {\n console.warn(\n `Warning: getResourcesForPathname is deprecated. Use loadPage instead`\n )\n return instance.i.loadPage(rawPath)\n },\n getResourcesForPathnameSync: rawPath => {\n console.warn(\n `Warning: getResourcesForPathnameSync is deprecated. Use loadPageSync instead`\n )\n return instance.i.loadPageSync(rawPath)\n },\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n loadPageSync: rawPath => instance.loadPageSync(rawPath),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollContainer = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _router = require(\"@reach/router\");\n\n// TODO: In Gatsby v3, this file should be removed.\n// We are deprecating this in V2 in favor of useScrollRestoration\nvar propTypes = {\n scrollKey: _propTypes.default.string.isRequired,\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired\n};\nvar hasNotWarnedDeprecation = true;\n\nvar ScrollContainerImplementation = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollContainerImplementation, _React$Component);\n\n function ScrollContainerImplementation(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n if (process.env.NODE_ENV !== \"production\" && hasNotWarnedDeprecation) {\n hasNotWarnedDeprecation = false;\n console.log(\"Deprecation Warning:\\n\\n Gatsby is deprecated in Gatsby v2 and will be removed in Gatsby v3.\\n Update to the React hook alternative useScrollRestoration, like this:.\\n \\n ```\\n import React from 'react';\\n import { useScrollRestoration } from 'gatsby-react-router-scroll';\\n\\n function Component() {\\n const scrollRestoration = useScrollRestoration('\" + _this.props.scrollKey + \"');\\n\\n return
    ;\\n }\\n ```\\n \");\n }\n\n return _this;\n }\n\n var _proto = ScrollContainerImplementation.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n // eslint-disable-next-line react/no-find-dom-node\n var node = _reactDom.default.findDOMNode(this);\n\n var _this$props = this.props,\n location = _this$props.location,\n scrollKey = _this$props.scrollKey;\n if (!node) return;\n node.addEventListener(\"scroll\", function () {\n _this2.props.context.save(location, scrollKey, node.scrollTop);\n });\n var position = this.props.context.read(location, scrollKey);\n node.scrollTo(0, position || 0);\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return ScrollContainerImplementation;\n}(React.Component);\n\nvar ScrollContainer = function ScrollContainer(props) {\n return /*#__PURE__*/React.createElement(_router.Location, null, function (_ref) {\n var location = _ref.location;\n return /*#__PURE__*/React.createElement(_scrollHandler.ScrollContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ScrollContainerImplementation, (0, _extends2.default)({}, props, {\n context: context,\n location: location\n }));\n });\n });\n};\n\nexports.ScrollContainer = ScrollContainer;\nScrollContainer.propTypes = propTypes;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = _default;\nexports.routeThroughBrowserOrApp = exports.hashShouldBeFollowed = exports.pathIsNotHandledByApp = exports.urlsAreOnSameOrigin = exports.authorIsForcingNavigation = exports.anchorsTargetIsEquivalentToSelf = exports.findClosestAnchor = exports.navigationWasHandledElsewhere = exports.slashedPathname = exports.userIsForcingNavigation = void 0;\n\nvar _escapeStringRegexp = _interopRequireDefault(require(\"escape-string-regexp\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar userIsForcingNavigation = function userIsForcingNavigation(event) {\n return event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n}; // IE does not include leading slash in anchor.pathname\n\n\nexports.userIsForcingNavigation = userIsForcingNavigation;\n\nvar slashedPathname = function slashedPathname(pathname) {\n return pathname[0] === \"/\" ? pathname : \"/\" + pathname;\n};\n\nexports.slashedPathname = slashedPathname;\n\nvar navigationWasHandledElsewhere = function navigationWasHandledElsewhere(event) {\n return event.defaultPrevented;\n};\n\nexports.navigationWasHandledElsewhere = navigationWasHandledElsewhere;\n\nvar findClosestAnchor = function findClosestAnchor(node) {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === \"a\") {\n return node;\n }\n }\n\n return null;\n};\n\nexports.findClosestAnchor = findClosestAnchor;\n\nvar anchorsTargetIsEquivalentToSelf = function anchorsTargetIsEquivalentToSelf(anchor) {\n return (\n /* If target attribute is not present it's treated as _self */\n anchor.hasAttribute(\"target\") === false ||\n /**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n /**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\n anchor.target == null ||\n /**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n [\"_self\", \"\"].includes(anchor.target) ||\n /**\n * As per https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n */\n anchor.target === \"_parent\" && (!anchor.ownerDocument.defaultView.parent || // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === \"_top\" && (!anchor.ownerDocument.defaultView.top || // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView)\n );\n};\n\nexports.anchorsTargetIsEquivalentToSelf = anchorsTargetIsEquivalentToSelf;\n\nvar authorIsForcingNavigation = function authorIsForcingNavigation(anchor) {\n return (\n /**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\n anchor.hasAttribute(\"download\") === true ||\n /**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\n anchorsTargetIsEquivalentToSelf(anchor) === false\n );\n}; // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n\n\nexports.authorIsForcingNavigation = authorIsForcingNavigation;\n\nvar urlsAreOnSameOrigin = function urlsAreOnSameOrigin(origin, destination) {\n return origin.protocol === destination.protocol &&\n /* a.host includes both hostname and port in the expected format host:port */\n origin.host === destination.host;\n};\n\nexports.urlsAreOnSameOrigin = urlsAreOnSameOrigin;\n\nvar pathIsNotHandledByApp = function pathIsNotHandledByApp(destination, pathStartRegEx) {\n var pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, `` the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\n\nexports.pathIsNotHandledByApp = pathIsNotHandledByApp;\n\nvar hashShouldBeFollowed = function hashShouldBeFollowed(origin, destination) {\n return destination.hash !== \"\" && (\n /**\n * Dynamically created anchor links (href=\"#my-anchor\") do not always\n * have pathname on IE\n */\n destination.pathname === \"\" ||\n /* Don't catch links pointed to the same page but with a hash. */\n destination.pathname === origin.pathname);\n};\n\nexports.hashShouldBeFollowed = hashShouldBeFollowed;\n\nvar routeThroughBrowserOrApp = function routeThroughBrowserOrApp(hrefHandler, pluginOptions) {\n return function (event) {\n if (window.___failedResources) return true;\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n var clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true; // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n\n var destination = document.createElement(\"a\"); // https://html.spec.whatwg.org/multipage/links.html#concept-hyperlink-url-set\n // If clickedAnchor has no href attribute like `example`, the href getter returns empty string.\n\n if (clickedAnchor.href !== \"\") {\n destination.href = clickedAnchor.href;\n }\n\n if (\"SVGAnimatedString\" in window && clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n } // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n\n\n var origin = document.createElement(\"a\");\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true; // Regex to test pathname against pathPrefix\n\n var pathStartRegEx = new RegExp(\"^\" + (0, _escapeStringRegexp.default)((0, _gatsby.withPrefix)(\"/\")));\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n\n if (pluginOptions.excludePattern) {\n var excludeRegex = new RegExp(pluginOptions.excludePattern);\n\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\n }\n\n event.preventDefault(); // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n\n var destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, \"/\");\n hrefHandler(\"\" + destinationPathname + destination.search + destination.hash);\n return false;\n };\n};\n\nexports.routeThroughBrowserOrApp = routeThroughBrowserOrApp;\n\nfunction _default(root, pluginOptions, cb) {\n var clickHandler = routeThroughBrowserOrApp(cb, pluginOptions);\n root.addEventListener(\"click\", clickHandler);\n return function () {\n return root.removeEventListener(\"click\", clickHandler);\n };\n}","module.exports = {\r\n siteUrl: `http://pmep.apps.nplcc.databasin.org/`,\r\n siteTitle: `West Coast Estuaries Explorer`,\r\n\r\n siteTitleShort: `Estuaries Explorer`,\r\n siteDescription: `A simple tool to explore various characteristics of estuaries along the U.S. West Coast.`,\r\n manifest: {\r\n themeColor: `#253688`,\r\n backgroundColor: `#253688`,\r\n },\r\n schema: {\r\n author: `Brendan Ward`,\r\n },\r\n}\r\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","exports.f = Object.getOwnPropertySymbols;\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","const config = require('./config/meta')\r\n\r\nmodule.exports = {\r\n siteMetadata: {\r\n siteUrl: config.siteUrl,\r\n googleAnalyticsId: process.env.GATSBY_GOOGLE_ANALYTICS_ID,\r\n sentryDSN: process.env.GATSBY_SENTRY_DSN,\r\n mapboxToken: process.env.GATSBY_MAPBOX_API_TOKEN,\r\n },\r\n flags : { DEV_SSR: true },\r\n plugins: [\r\n `gatsby-plugin-react-helmet`,\r\n {\r\n resolve: `gatsby-source-filesystem`,\r\n options: {\r\n name: `images`,\r\n path: `${__dirname}/src/images`,\r\n },\r\n },\r\n {\r\n resolve: `gatsby-source-filesystem`,\r\n options: {\r\n name: `data`,\r\n path: `${__dirname}/data`,\r\n },\r\n },\r\n `gatsby-transformer-json`,\r\n `gatsby-transformer-sharp`,\r\n `gatsby-plugin-sharp`,\r\n {\r\n resolve: `gatsby-plugin-styled-components`,\r\n options: {\r\n displayName: process.env.NODE_ENV !== `production`,\r\n fileName: false,\r\n },\r\n },\r\n {\r\n resolve: `gatsby-plugin-typography`,\r\n options: {\r\n pathToConfigModule: `./config/typography.js`,\r\n },\r\n },\r\n `gatsby-plugin-catch-links`,\r\n `gatsby-plugin-sitemap`,\r\n {\r\n resolve: `gatsby-plugin-google-analytics`,\r\n options: {\r\n trackingId: process.env.GATSBY_GOOGLE_ANALYTICS_ID,\r\n anonymize: true,\r\n },\r\n },\r\n {\r\n resolve: `gatsby-plugin-manifest`,\r\n options: {\r\n name: config.siteTitle,\r\n short_name: config.siteTitleShort,\r\n description: config.siteDescription,\r\n start_url: `/?utm_source=a2hs`,\r\n background_color: config.manifest.backgroundColor,\r\n theme_color: config.manifest.themeColor,\r\n display: `standalone`,\r\n icon: `src/images/favicon-32x32.png`,\r\n },\r\n },\r\n // `gatsby-plugin-offline`,\r\n ],\r\n}\r\n","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","import { getGlobalObject } from './misc';\nimport { dynamicRequire, isNodeEnv } from './node';\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 */\n\nvar dateTimestampSource = {\n nowSeconds: function nowSeconds() {\n return Date.now() / 1000;\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 */\n\nfunction getBrowserPerformance() {\n var performance = getGlobalObject().performance;\n\n if (!performance || !performance.now) {\n return undefined;\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\n\n var timeOrigin = Date.now() - performance.now();\n return {\n now: function now() {\n return performance.now();\n },\n timeOrigin: timeOrigin\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 */\n\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 * The Performance API implementation for the current platform, if available.\n */\n\n\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined ? dateTimestampSource : {\n nowSeconds: function nowSeconds() {\n return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000;\n }\n};\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\n\nexport var dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\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 */\n\nexport var timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource); // Re-exported with an old name for backwards-compatibility.\n\nexport var timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\n\nexport var usingPerformanceAPI = platformPerformance !== undefined;\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 */\n\nexport var browserPerformanceTimeOrigin = function () {\n var performance = getGlobalObject().performance;\n\n if (!performance) {\n return undefined;\n }\n\n if (performance.timeOrigin) {\n return performance.timeOrigin;\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 // eslint-disable-next-line deprecation/deprecation\n\n\n return performance.timing && performance.timing.navigationStart || Date.now();\n}();","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","module.exports = false;\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", (0, _gatsby.withPrefix)(manifestFilename));\n }\n };\n}","/*\n Why commonjs and not ES imports/exports?\n\n This module is used to alias `create-react-context` package, but drop the the actual implementation part\n because Gatsby requires version of react that has implementatoin baked in.\n \n Package source is using ES modules:\n - https://github.com/jamiebuilds/create-react-context/blob/v0.3.0/src/index.js\n \n But to build this package `babel-plugin-add-module-exports` is used ( https://www.npmjs.com/package/babel-plugin-add-module-exports).\n Which result in both `module.exports` and `exports.default` being set to same thing.\n\n We don't use that babel plugin so we only have `exports.default`.\n\n This cause problems in various 3rd party react components that rely on `module.exports` being set.\n See https://github.com/gatsbyjs/gatsby/issues/23645 for example of it.\n \n Instead of adding same babel plugin we mimic output here. Adding babel plugin just for this would:\n a) unnecesairly slow down compilation for all other files (if we just apply it everywhere)\n b) or complicate babel-loader configuration with overwrite specifically for this file\n*/\n\nconst { createContext } = require(`react`)\n\nmodule.exports = createContext\nmodule.exports.default = createContext\n","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return str.replace(matchOperatorsRe, '\\\\$&');\n};","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var defaultFunctionName = '';\n/**\n * Safely extract function name from itself\n */\n\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\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}","\"use strict\";\n\nexports.__esModule = true;\nexports.onRouteUpdate = void 0;\n\nvar onRouteUpdate = function onRouteUpdate(_ref, pluginOptions) {\n var location = _ref.location;\n\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n if (process.env.NODE_ENV !== \"production\" || typeof ga !== \"function\") {\n return null;\n }\n\n var pathIsExcluded = location && typeof window.excludeGAPaths !== \"undefined\" && window.excludeGAPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // reactHelmet is using requestAnimationFrame: https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299\n\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.ga(\"set\", \"page\", pagePath);\n window.ga(\"send\", \"pageview\");\n }; // Minimum delay for reactHelmet's requestAnimationFrame\n\n\n var delay = Math.max(32, pluginOptions.pageTransitionDelay || 0);\n setTimeout(sendPageView, delay);\n return null;\n};\n\nexports.onRouteUpdate = onRouteUpdate;","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","import { isString } from './is';\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 */\n\nexport function htmlTreeAsString(elem) {\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 var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0; // eslint-disable-next-line no-plusplus\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem); // 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\n if (nextStr === 'html' || height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN) {\n break;\n }\n\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\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 */\n\nfunction _htmlElementAsString(el) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n if (elem.id) {\n out.push(\"#\" + elem.id);\n } // eslint-disable-next-line prefer-const\n\n\n className = elem.className;\n\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n\n return out.join('');\n}","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nvar Memo =\n/** @class */\nfunction () {\n function Memo() {\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n\n\n Memo.prototype.memoize = function (obj) {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n\n this._inner.add(obj);\n\n return false;\n } // eslint-disable-next-line @typescript-eslint/prefer-for-of\n\n\n for (var i = 0; i < this._inner.length; i++) {\n var value = this._inner[i];\n\n if (value === obj) {\n return true;\n }\n }\n\n this._inner.push(obj);\n\n return false;\n };\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n\n\n Memo.prototype.unmemoize = function (obj) {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n } else {\n for (var i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n\n break;\n }\n }\n }\n };\n\n return Memo;\n}();\n\nexport { Memo };","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourcesForPathname,\n getResourcesForPathnameSync,\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n // Deprecated April 2019. Use `loadPageSync` instead\n args.getResourcesForPathnameSync = getResourcesForPathnameSync\n // Deprecated April 2019. Use `loadPage` instead\n args.getResourcesForPathname = getResourcesForPathname\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n"],"sourceRoot":""}