{"version":3,"file":"static/js/main.e3a07031.js","mappings":"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","sources":["../node_modules/@sentry/src/env.ts","../node_modules/@sentry/src/node.ts","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInDays/index.js","../node_modules/date-fns/esm/eachDayOfInterval/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isWeekend/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/moment/moment.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/property-expr/index.js","../node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/rc-util/node_modules/react-is/index.js","../node_modules/react-date-range/dist/accessibility/index.js","../node_modules/react-date-range/dist/components/Calendar/index.js","../node_modules/react-date-range/dist/components/DateInput/index.js","../node_modules/react-date-range/dist/components/DateRangePicker/index.js","../node_modules/react-date-range/dist/components/DateRange/index.js","../node_modules/react-date-range/dist/components/DayCell/index.js","../node_modules/react-date-range/dist/components/DefinedRange/index.js","../node_modules/react-date-range/dist/components/InputRangeField/index.js","../node_modules/react-date-range/dist/components/Month/index.js","../node_modules/react-date-range/dist/defaultRanges.js","../node_modules/react-date-range/dist/index.js","../node_modules/react-date-range/dist/styles.js","../node_modules/react-date-range/dist/utils.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-list/react-list.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallow-equal/dist/index.esm.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/tiny-case/index.js","../node_modules/toposort/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/harmony module decorator","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/index.js","../node_modules/@sentry/src/debug-build.ts","../node_modules/@sentry/src/worldwide.ts","../node_modules/@sentry/src/logger.ts","../node_modules/@sentry/src/is.ts","../node_modules/@sentry/src/browser.ts","../node_modules/@sentry/src/string.ts","../node_modules/@sentry/src/object.ts","../node_modules/@sentry/src/misc.ts","../node_modules/@sentry/src/syncpromise.ts","../node_modules/@sentry/src/eventProcessors.ts","../node_modules/@sentry/src/time.ts","../node_modules/@sentry/src/constants.ts","../node_modules/@sentry/src/session.ts","../node_modules/@sentry/src/stacktrace.ts","../node_modules/@sentry/src/normalize.ts","../node_modules/@sentry/src/memo.ts","../node_modules/@sentry/src/baggage.ts","../node_modules/@sentry/src/tracing.ts","../node_modules/@sentry/src/utils/spanUtils.ts","../node_modules/@sentry/src/utils/prepareEvent.ts","../node_modules/@sentry/src/scope.ts","../node_modules/@sentry/src/exports.ts","../node_modules/@sentry/src/utils/getRootSpan.ts","../node_modules/@sentry/src/tracing/dynamicSamplingContext.ts","../node_modules/@sentry/src/utils/applyScopeDataToEvent.ts","../node_modules/@sentry/src/version.ts","../node_modules/@sentry/src/hub.ts","../node_modules/@sentry/src/integration.ts","../node_modules/@sentry/src/integrations/inboundfilters.ts","../node_modules/@sentry/src/integrations/functiontostring.ts","../node_modules/@sentry/src/sdk.ts","../node_modules/@sentry/src/supports.ts","../node_modules/@sentry/src/vendor/supportsHistory.ts","../node_modules/@sentry/src/instrument/_handlers.ts","../node_modules/@sentry/src/instrument/history.ts","../node_modules/@sentry/src/dsn.ts","../node_modules/@sentry/src/envelope.ts","../node_modules/@sentry/src/error.ts","../node_modules/@sentry/src/api.ts","../node_modules/@sentry/src/metrics/envelope.ts","../node_modules/@sentry/src/metrics/utils.ts","../node_modules/@sentry/src/baseclient.ts","../node_modules/@sentry/src/utils/sdkMetadata.ts","../node_modules/src/debug-build.ts","../node_modules/src/eventbuilder.ts","../node_modules/src/helpers.ts","../node_modules/src/client.ts","../node_modules/src/userfeedback.ts","../node_modules/@sentry/src/clientreport.ts","../node_modules/@sentry/src/instrument/console.ts","../node_modules/@sentry/src/instrument/dom.ts","../node_modules/@sentry/src/instrument/xhr.ts","../node_modules/@sentry/src/instrument/fetch.ts","../node_modules/@sentry/src/severity.ts","../node_modules/@sentry/src/url.ts","../node_modules/src/integrations/breadcrumbs.ts","../node_modules/src/integrations/dedupe.ts","../node_modules/@sentry/src/instrument/globalError.ts","../node_modules/@sentry/src/instrument/globalUnhandledRejection.ts","../node_modules/src/integrations/globalhandlers.ts","../node_modules/src/integrations/httpcontext.ts","../node_modules/@sentry/src/aggregate-errors.ts","../node_modules/src/integrations/linkederrors.ts","../node_modules/src/integrations/trycatch.ts","../node_modules/src/stack-parsers.ts","../node_modules/@sentry/src/promisebuffer.ts","../node_modules/@sentry/src/ratelimit.ts","../node_modules/@sentry/src/transports/base.ts","../node_modules/src/transports/utils.ts","../node_modules/src/transports/fetch.ts","../node_modules/src/transports/xhr.ts","../node_modules/src/sdk.ts","../node_modules/@sentry/src/metrics/metric-summary.ts","../node_modules/@sentry/src/semanticAttributes.ts","../node_modules/@sentry/src/tracing/spanstatus.ts","../node_modules/@sentry/src/tracing/span.ts","../node_modules/@sentry/src/utils/hasTracingEnabled.ts","../node_modules/@sentry/src/tracing/trace.ts","../node_modules/@sentry/src/tracing/transaction.ts","../node_modules/@sentry/src/tracing/idletransaction.ts","../node_modules/@sentry/src/tracing/utils.ts","../node_modules/@sentry/src/tracing/errors.ts","../node_modules/@sentry/src/tracing/sampling.ts","../node_modules/@sentry/src/tracing/hubextensions.ts","../node_modules/@sentry-internal/src/common/debug-build.ts","../node_modules/@sentry-internal/src/browser/types.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/bindReporter.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/getNavigationEntry.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/getActivationStart.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/initMetric.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/generateUniqueID.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/observe.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/onHidden.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/getVisibilityWatcher.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/polyfills/interactionCountPolyfill.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getINP.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getLCP.ts","../node_modules/@sentry-internal/src/browser/web-vitals/onTTFB.ts","../node_modules/@sentry-internal/src/browser/instrument.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getCLS.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getFID.ts","../node_modules/@sentry/src/span.ts","../node_modules/@sentry-internal/src/browser/metrics/utils.ts","../node_modules/@sentry-internal/src/browser/metrics/index.ts","../node_modules/@sentry/src/tracing/measurement.ts","../node_modules/@sentry-internal/src/common/fetch.ts","../node_modules/@sentry-internal/src/browser/request.ts","../node_modules/@sentry-internal/src/browser/browsertracing.ts","../node_modules/@sentry-internal/src/browser/router.ts","../node_modules/@sentry/src/buildPolyfills/_optionalChain.ts","../node_modules/@sentry/src/utils/isSentryRequestUrl.ts","../node_modules/@sentry/src/isBrowser.ts","../node_modules/src/constants.ts","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/utils.js","../node_modules/@sentry/src/buildPolyfills/_nullishCoalesce.ts","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/types/dist/rrweb-types.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/mutation.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/error-handler.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observer.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/cross-origin-iframe-mirror.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/iframe-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/processed-node-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/index.js","../node_modules/src/util/timestamp.ts","../node_modules/src/coreHandlers/util/addBreadcrumbEvent.ts","../node_modules/src/coreHandlers/util/domUtils.ts","../node_modules/src/coreHandlers/util/onWindowOpen.ts","../node_modules/src/coreHandlers/handleClick.ts","../node_modules/src/types/rrweb.ts","../node_modules/src/util/createBreadcrumb.ts","../../node_modules/@sentry-internal/rrweb-snapshot/es/rrweb-snapshot.js","../node_modules/src/coreHandlers/util/getAttributesToRecord.ts","../node_modules/src/coreHandlers/handleDom.ts","../node_modules/src/coreHandlers/handleKeyboardEvent.ts","../node_modules/src/util/createPerformanceEntries.ts","../node_modules/src/coreHandlers/performanceObserver.ts","../node_modules/src/util/log.ts","../node_modules/src/eventBuffer/error.ts","../node_modules/src/eventBuffer/EventBufferArray.ts","../node_modules/src/eventBuffer/WorkerHandler.ts","../node_modules/src/eventBuffer/EventBufferCompressionWorker.ts","../node_modules/src/eventBuffer/EventBufferProxy.ts","../node_modules/src/eventBuffer/index.ts","../replay-worker/build/npm/esm/index.js","../replay-worker/build/npm/esm/worker.ts","../node_modules/src/util/hasSessionStorage.ts","../node_modules/src/session/clearSession.ts","../node_modules/src/util/isSampled.ts","../node_modules/src/session/Session.ts","../node_modules/src/session/saveSession.ts","../node_modules/src/session/createSession.ts","../node_modules/src/util/isExpired.ts","../node_modules/src/util/isSessionExpired.ts","../node_modules/src/session/shouldRefreshSession.ts","../node_modules/src/session/loadOrCreateSession.ts","../node_modules/src/session/fetchSession.ts","../node_modules/src/util/addEvent.ts","../node_modules/src/util/eventUtils.ts","../node_modules/src/coreHandlers/handleAfterSendEvent.ts","../node_modules/src/coreHandlers/handleBeforeSendEvent.ts","../node_modules/src/coreHandlers/handleGlobalEvent.ts","../node_modules/src/coreHandlers/util/addFeedbackBreadcrumb.ts","../node_modules/src/util/isRrwebError.ts","../node_modules/src/coreHandlers/util/shouldSampleForBufferEvent.ts","../node_modules/src/util/createPerformanceSpans.ts","../node_modules/src/coreHandlers/handleHistory.ts","../node_modules/src/coreHandlers/util/addNetworkBreadcrumb.ts","../node_modules/src/util/shouldFilterRequest.ts","../node_modules/src/coreHandlers/handleXhr.ts","../node_modules/src/coreHandlers/util/networkUtils.ts","../node_modules/src/coreHandlers/util/fetchUtils.ts","../node_modules/src/coreHandlers/util/xhrUtils.ts","../node_modules/src/coreHandlers/handleNetworkBreadcrumbs.ts","../node_modules/src/coreHandlers/handleFetch.ts","../node_modules/src/coreHandlers/handleScope.ts","../node_modules/src/util/addGlobalListeners.ts","../node_modules/src/util/addMemoryEntry.ts","../node_modules/src/util/handleRecordingEmit.ts","../node_modules/src/util/sendReplayRequest.ts","../node_modules/src/util/prepareRecordingData.ts","../node_modules/src/util/prepareReplayEvent.ts","../node_modules/src/util/createReplayEnvelope.ts","../node_modules/src/util/sendReplay.ts","../node_modules/src/util/throttle.ts","../node_modules/src/replay.ts","../node_modules/src/util/debounce.ts","../node_modules/src/util/getPrivacyOptions.ts","../node_modules/src/integration.ts","../node_modules/src/util/maskAttribute.ts","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","helpers/http.module.ts","pages/AirGateway/AirGateway.tsx","../node_modules/react-google-recaptcha-v3/src/utils.ts","../node_modules/react-google-recaptcha-v3/src/google-recaptcha-provider.tsx","../node_modules/react-google-recaptcha-v3/src/use-google-recaptcha.tsx","../node_modules/react-google-recaptcha-v3/src/google-recaptcha.tsx","../node_modules/react-google-recaptcha-v3/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-google-recaptcha-v3/node_modules/react-is/cjs/react-is.development.js","../node_modules/react-google-recaptcha-v3/node_modules/react-is/index.js","../node_modules/react-google-recaptcha-v3/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/clsx/dist/clsx.m.js","components/Header/Menu.ts","components/Header/NavBarItem.tsx","components/Loader/Loader.tsx","components/Button/Button.tsx","image/icon/location.svg","image/icon/anchor.svg","image/icon/helm.svg","image/icon/ship.svg","image/icon/calendar.svg","image/icon/moon.svg","image/icon/user.svg","image/icon/phone.svg","image/icon/search.svg","image/icon/logo.svg","image/icon/burger.svg","image/icon/arrow-right.svg","image/icon/big-ship.svg","image/icon/gadgets.svg","image/icon/safety-icon.svg","image/icon/email.svg","image/icon/twitter.svg","image/icon/facebook.svg","image/icon/pinterest.svg","image/icon/instagram.svg","image/icon/arrow-slider-left.svg","image/icon/arrow-slider-right.svg","image/icon/twitter-fill.svg","image/icon/facebook-fill.svg","image/icon/pinterest-fill.svg","image/icon/instagram-fill.svg","image/icon/checkbox-check.svg","image/icon/location-road.svg","image/icon/filter.svg","image/icon/percent.svg","image/icon/people.svg","image/icon/cost.svg","image/icon/chevron_down.svg","image/icon/check.svg","image/icon/clear.svg","image/icon/includes.svg","image/icon/login-check-list.svg","image/icon/pdf.svg","image/icon/tag.svg","image/icon/blog.svg","image/icon/globe.svg","image/icon/delete.svg","image/icon/sort.svg","image/icon/question.svg","image/icon/share.svg","image/icon/printer.svg","image/icon/fire.svg","image/icon/ellipsis.svg","image/icon/index.ts","components/SearchInput/SearchInput.tsx","objects/BurgerContext.ts","services/contexts/index.ts","components/Header/NavBar.tsx","../node_modules/react-countdown/dist/index.es.js","services/errors/RequestError.ts","services/api.ts","store/MainPage/ListActions.ts","hooks/useSelector.ts","services/phone.ts","components/Anchor/Anchor.tsx","services/EventBus.ts","objects/Anchors.ts","hooks/useDimensions.ts","utilities/RoutePathVars.ts","components/Header/InfoSection.tsx","hooks/useQueryParams.ts","components/SocialIcons/SocialIcons.tsx","../node_modules/yup/index.esm.js","../node_modules/formik/node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/cloneDeep.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/toPath.js","../node_modules/formik/src/FormikContext.tsx","../node_modules/formik/src/utils.ts","../node_modules/formik/src/Formik.tsx","../node_modules/formik/src/Field.tsx","../node_modules/formik/src/Form.tsx","../node_modules/formik/src/connect.tsx","../node_modules/formik/src/FieldArray.tsx","../node_modules/react-intersection-observer/src/observe.ts","../node_modules/react-intersection-observer/src/InView.tsx","components/TextField/TextField.tsx","../node_modules/js-cookie/dist/js.cookie.mjs","services/formData.ts","image/icon/error.svg","image/icon/info.svg","image/icon/success.svg","components/Notification/Notification.tsx","objects/Subscribe.tsx","pages/MainPage/Subscribe/Subscribe.tsx","../node_modules/react-intersection-observer/src/useInView.tsx","components/BurgerMenu/BurgerMenu.tsx","components/Header/Header.tsx","components/Footer/text.ts","components/Footer/Footer.tsx","services/path.ts","../node_modules/@livechat/widget-core/dist/widget-core.esm.js","../node_modules/mitt/src/index.ts","../node_modules/@livechat/widget-react/dist/widget-react.esm.js","components/Chat/Chat.tsx","components/CookiesAlert/CookiesAlert.tsx","layout/Layout.tsx","hooks/useAoTracker.ts","hooks/useBurger.ts","pages/StaticPages/NotFound/NotFound.tsx","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","components/Pagination/Pagination.tsx","components/Carousel/Carousel.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-tabs/es/hooks/useIndicator.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useUpdate.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/util.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-motion/es/context.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-util/es/hooks/useSyncState.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/Popup/PopupContent.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/context.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/util.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/index.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/hooks/useWinClick.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/Overlay.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/placements.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/index.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/es/context.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-util/es/isEqual.js","../node_modules/rc-tabs/node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-tabs/node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-tabs/node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-tabs/node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-util/es/omit.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-tabs/node_modules/rc-menu/es/Icon.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-tabs/node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/commonUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/placements.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-tabs/node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-tabs/node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-tabs/node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-tabs/node_modules/rc-menu/es/Divider.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/Menu.js","../node_modules/rc-tabs/node_modules/rc-menu/es/index.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/TabNavList/Wrapper.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../node_modules/rc-tabs/es/index.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/hooks/useAllowClear.js","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/@rc-component/trigger/es/Popup/PopupContent.js","../node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/@rc-component/trigger/es/context.js","../node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/@rc-component/trigger/es/util.js","../node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/@rc-component/trigger/es/index.js","../node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/@rc-component/trigger/es/hooks/useWinClick.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/BaseSelect/Polite.js","../node_modules/rc-select/es/BaseSelect/index.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useGetSize.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","components/Selects/SelectProps.ts","hooks/useSelect.tsx","components/Selects/Select.tsx","components/Selects/Option.tsx","odesseus/OdyManager.ts","odesseus/Requests.ts","odesseus/types/Filters.ts","odesseus/FacetChain.ts","odesseus/useOdesseus.ts","objects/Utility.ts","odesseus/FilterServices.ts","pages/MainPage/SearchCard/TabsSearchCard/SearchCruises.tsx","objects/Filters/Packages.ts","objects/Sorter.ts","services/searchPackages/SearchPackagesURLTraverser.ts","services/searchPackages/SearchPackagesURLManager.ts","hooks/useSearchPackagesURLManager.ts","services/searchPackages/FilterURLTraverser.ts","pages/MainPage/SearchCard/TabsSearchCard/SearchPackages.tsx","pages/MainPage/SearchCard/text.ts","utilities/string.ts","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Overlay.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","components/DatePicker/DatePicker.tsx","hooks/useDebounce.ts","components/AutoComplete/AutoComplete.tsx","pages/MainPage/SearchCard/TabsSearchCard/SearchHotel.tsx","pages/MainPage/SearchCard/TrustBox.tsx","pages/MainPage/SearchCard/SearchCard.tsx","components/Tag/Tag.tsx","components/Cards/FeaturedDealsCard/FeaturedDealsCard.tsx","pages/MainPage/FeaturedDeals/FeaturedDeals.tsx","components/Cards/DealCard/DealCard.tsx","pages/MainPage/DealSections/DealSections.tsx","components/Bullet/Bullet.tsx","pages/MainPage/WhyUs/WhyUs.tsx","pages/MainPage/WhyUs/text.ts","pages/MainPage/CruiseOptions/CruiseOptions.tsx","pages/MainPage/CruiseOptions/text.ts","pages/MainPage/CruiseLine/objects.ts","pages/MainPage/CruiseLine/CruiseLine.tsx","pages/MainPage/Feedback/Feedback.tsx","pages/MainPage/MainPage.tsx","../node_modules/rc-collapse/es/PanelContent.js","../node_modules/rc-collapse/es/Panel.js","../node_modules/rc-collapse/es/hooks/useItems.js","../node_modules/rc-collapse/es/Collapse.js","../node_modules/rc-collapse/es/index.js","components/Badge/Badge.tsx","components/Loader/LoaderOverlay.tsx","components/Checkbox/Checkbox.tsx","components/SelectableList/SelectableList.tsx","components/Filters/FilterComponents/PanelWrapper.tsx","components/Filters/FilterComponents/FilterComponents.tsx","components/Filters/MobileFilters.tsx","components/Filters/DesktopFilters.tsx","components/Filters/Filters.tsx","pages/SearchPage/SearchBar/SearchBar.tsx","objects/CruisePackages.ts","components/BrandLogo/BrandLogo.tsx","components/Cards/SearchListCard/CardComponents/Price.tsx","components/Cards/SearchListCard/CardComponents/ExpandableList.tsx","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","components/Modal/Modal.tsx","components/Cards/SearchListCard/CardComponents/Inclusion.tsx","components/Cards/SearchListCard/CardComponents/CardContent.tsx","objects/Routes/Route.ts","components/Image/index.tsx","components/Cards/SearchListCard/SearchListCard.tsx","components/Message/DataNotFound.tsx","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/commonUtil.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/index.js","components/Sorter/DesktopSorter.tsx","components/Checkbox/Radio.tsx","components/Sorter/MobileSorter.tsx","components/Sorter/Sorter.tsx","pages/SearchPage/SorterOptions.ts","pages/SearchPage/SearchList/SearchList.tsx","pages/SearchPage/SearchPackagesPageContent.tsx","objects/Routes/RouteInclusion.ts","services/adaptors/SearchListAdaptor.tsx","utilities/group.ts","services/searchPackages/ListURLTraverser.ts","pages/SearchPage/SearchPackagesPage.tsx","pages/StaticPages/utils.tsx","pages/StaticPages/GeneralTerms/text.tsx","pages/StaticPages/GeneralTerms/GeneralTerms.tsx","pages/StaticPages/PrivacyPolicy/text.tsx","pages/StaticPages/PrivacyPolicy/PrivacyPolicy.tsx","pages/StaticPages/WhyChooseOVC/text.tsx","pages/StaticPages/WhyChooseOVC/WhyChooseOVC.tsx","../node_modules/rc-table/es/constant.js","../node_modules/@rc-component/context/es/context.js","../node_modules/@rc-component/context/es/Immutable.js","../node_modules/@rc-component/context/es/index.js","../node_modules/rc-table/es/context/TableContext.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-table/es/context/PerfContext.js","../node_modules/rc-table/es/utils/valueUtil.js","../node_modules/rc-table/es/Cell/useCellRender.js","../node_modules/rc-table/es/Cell/index.js","../node_modules/rc-table/es/Cell/useHoverState.js","../node_modules/rc-table/es/utils/fixUtil.js","../node_modules/rc-table/es/Footer/SummaryContext.js","../node_modules/rc-table/es/Footer/Row.js","../node_modules/rc-table/es/Footer/Summary.js","../node_modules/rc-table/es/Footer/Cell.js","../node_modules/rc-table/es/Footer/index.js","../node_modules/rc-util/es/Dom/styleChecker.js","../node_modules/rc-table/es/hooks/useFlattenRecords.js","../node_modules/rc-table/es/hooks/useRowInfo.js","../node_modules/rc-table/es/Body/ExpandedRow.js","../node_modules/rc-table/es/Body/BodyRow.js","../node_modules/rc-table/es/Body/MeasureCell.js","../node_modules/rc-table/es/Body/MeasureRow.js","../node_modules/rc-table/es/Body/index.js","../node_modules/rc-table/es/utils/legacyUtil.js","../node_modules/rc-table/es/ColGroup.js","../node_modules/rc-table/es/FixedHolder/index.js","../node_modules/rc-table/es/Header/HeaderRow.js","../node_modules/rc-table/es/Header/Header.js","../node_modules/rc-table/es/hooks/useColumns/useWidthColumns.js","../node_modules/rc-table/es/hooks/useColumns/index.js","../node_modules/rc-table/es/utils/expandUtil.js","../node_modules/rc-table/es/hooks/useExpand.js","../node_modules/rc-table/es/hooks/useFrame.js","../node_modules/rc-table/es/hooks/useSticky.js","../node_modules/rc-table/es/hooks/useStickyOffsets.js","../node_modules/rc-table/es/Panel/index.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Dom/css.js","../node_modules/rc-table/es/stickyScrollBar.js","../node_modules/rc-table/es/sugar/Column.js","../node_modules/rc-table/es/sugar/ColumnGroup.js","../node_modules/rc-table/es/Table.js","../node_modules/rc-table/es/hooks/useHover.js","../node_modules/rc-table/es/hooks/useFixedInfo.js","../node_modules/rc-table/es/VirtualTable/context.js","../node_modules/rc-table/es/VirtualTable/VirtualCell.js","../node_modules/rc-table/es/VirtualTable/BodyLine.js","../node_modules/rc-table/es/VirtualTable/BodyGrid.js","../node_modules/rc-table/es/VirtualTable/index.js","../node_modules/rc-table/es/index.js","pages/StaticPages/TravelInsurance/travel-insurance.tsx","pages/StaticPages/TravelInsurance/TravelInsurance.tsx","pages/StaticPages/DocumentationRequirements/requirements.tsx","pages/StaticPages/DocumentationRequirements/DocumentationRequirements.tsx","pages/StaticPages/Managers/managers-text.ts","pages/StaticPages/Managers/Managers.tsx","pages/StaticPages/FAQ/text.tsx","components/DropList/DropList.tsx","pages/StaticPages/FAQ/FAQ.tsx","objects/AboutUsPage.ts","pages/StaticPages/AboutUs/text.tsx","pages/StaticPages/AboutUs/AboutUs.tsx","pages/StaticPages/Careers/text.tsx","pages/StaticPages/Careers/Careers.tsx","pages/StaticPages/Investors/InvestorsTabs/InvestorRelations.tsx","pages/StaticPages/Investors/InvestorsTabs/Templates.tsx","pages/StaticPages/Investors/InvestorsTabs/texts/directors.tsx","pages/StaticPages/Investors/InvestorsTabs/texts/management.tsx","pages/StaticPages/Investors/InvestorsTabs/texts/investorFAQs.tsx","pages/StaticPages/Investors/InvestorsTabs/texts/pressReleases.ts","pages/StaticPages/Investors/InvestorsTabs/texts/financials.ts","pages/StaticPages/Investors/Investors.tsx","services/TableBuilder.tsx","pages/MoreDetailsPage/utils.tsx","pages/MoreDetailsPage/MoreDetailsPage.tsx","pages/Forms/FormTemplate.tsx","services/validationSchemas.ts","components/TextField/TextAreaField.tsx","components/Selects/LocalSelectOptions.tsx","hooks/data/useFetchStore/useItemFetchStore.ts","hooks/data/useData.ts","hooks/data/useFetchStore/useListFetchStore.ts","hooks/data/useListData.ts","hooks/data/useLoadMore.ts","components/Selects/SmartSelects/ManagersSelect.tsx","pages/Forms/Contact.tsx","pages/Forms/Subscribe.tsx","image/valueinclusive/quote-left.svg","pages/MainPage/ValueInclusive/Slider/ClientFeedback.tsx","pages/MainPage/ValueInclusive/Slider/SpecialOffers.tsx","pages/MainPage/ValueInclusive/Slider/PersonalManager.tsx","image/valueinclusive/calander.svg","image/valueinclusive/location.svg","pages/MainPage/ValueInclusive/Slider/TopPackges.tsx","pages/MainPage/ValueInclusive/Slider/FeaturedDestination.tsx","pages/MainPage/ValueInclusive/ValueInclusive.tsx","components/PhoneField/PhoneField.tsx","components/Selects/SmartSelects/DestinationsSelect.tsx","components/Selects/SmartSelects/ShipsSelect.tsx","components/Selects/SmartSelects/SuppliersSelect.tsx","pages/Forms/RequestQuote.tsx","pages/Forms/SpacialHeadlines.tsx","pages/Forms/FriendForward.tsx","pages/Forms/FriendInvite.tsx","objects/SubscribeSettings.ts","pages/Forms/SubscribeSettings.tsx","App.tsx","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","store/MainPage/Reducers.ts","store/index.ts","index.tsx","../node_modules/@sentry-internal/src/browser/backgroundtab.ts"],"sourcesContent":["/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\nexport type SdkSource = 'npm' | 'cdn' | 'loader';\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nexport function getSDKSource(): SdkSource {\n // @ts-expect-error __SENTRY_SDK_SOURCE__ is injected by rollup during build process\n return __SENTRY_SDK_SOURCE__;\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference);\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);\n var result = sign * (difference - isLastDayNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport default function eachDayOfInterval(dirtyInterval, options) {\n var _options$step;\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n var step = Number((_options$step = options === null || options === void 0 ? void 0 : options.step) !== null && _options$step !== void 0 ? _options$step : 1);\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n return dates;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWeekend\n * @category Weekday Helpers\n * @summary Does the given date fall on a weekend?\n *\n * @description\n * Does the given date fall on a weekend?\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date falls on a weekend\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Does 5 October 2014 fall on a weekend?\n * const result = isWeekend(new Date(2014, 9, 5))\n * //=> true\n */\nexport default function isWeekend(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day === 0 || day === 6;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n return time >= startTime && time <= endTime;\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nexport { _createForOfIteratorHelper as default };","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n date.setFullYear(year);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\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\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ariaLabelsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaLabelsShape = _propTypes.default.shape({\n dateInput: _propTypes.default.objectOf(_propTypes.default.shape({\n startDate: _propTypes.default.string,\n endDate: _propTypes.default.string\n })),\n monthPicker: _propTypes.default.string,\n yearPicker: _propTypes.default.string,\n prevButton: _propTypes.default.string,\n nextButton: _propTypes.default.string\n});\n\nexports.ariaLabelsShape = ariaLabelsShape;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _DayCell = require(\"../DayCell\");\n\nvar _Month = _interopRequireDefault(require(\"../Month\"));\n\nvar _DateInput = _interopRequireDefault(require(\"../DateInput\"));\n\nvar _utils = require(\"../../utils\");\n\nvar _classnames3 = _interopRequireDefault(require(\"classnames\"));\n\nvar _reactList = _interopRequireDefault(require(\"react-list\"));\n\nvar _shallowEqual = require(\"shallow-equal\");\n\nvar _max = _interopRequireDefault(require(\"date-fns/max\"));\n\nvar _min = _interopRequireDefault(require(\"date-fns/min\"));\n\nvar _differenceInDays = _interopRequireDefault(require(\"date-fns/differenceInDays\"));\n\nvar _isSameMonth = _interopRequireDefault(require(\"date-fns/isSameMonth\"));\n\nvar _addDays = _interopRequireDefault(require(\"date-fns/addDays\"));\n\nvar _endOfMonth = _interopRequireDefault(require(\"date-fns/endOfMonth\"));\n\nvar _startOfMonth = _interopRequireDefault(require(\"date-fns/startOfMonth\"));\n\nvar _differenceInCalendarMonths = _interopRequireDefault(require(\"date-fns/differenceInCalendarMonths\"));\n\nvar _setMonth2 = _interopRequireDefault(require(\"date-fns/setMonth\"));\n\nvar _setYear2 = _interopRequireDefault(require(\"date-fns/setYear\"));\n\nvar _addYears = _interopRequireDefault(require(\"date-fns/addYears\"));\n\nvar _isSameDay = _interopRequireDefault(require(\"date-fns/isSameDay\"));\n\nvar _endOfWeek = _interopRequireDefault(require(\"date-fns/endOfWeek\"));\n\nvar _startOfWeek = _interopRequireDefault(require(\"date-fns/startOfWeek\"));\n\nvar _eachDayOfInterval = _interopRequireDefault(require(\"date-fns/eachDayOfInterval\"));\n\nvar _format = _interopRequireDefault(require(\"date-fns/format\"));\n\nvar _subMonths = _interopRequireDefault(require(\"date-fns/subMonths\"));\n\nvar _addMonths = _interopRequireDefault(require(\"date-fns/addMonths\"));\n\nvar _enUS = _interopRequireDefault(require(\"date-fns/locale/en-US\"));\n\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\n\nvar _accessibility = require(\"../../accessibility\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Calendar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Calendar, _PureComponent);\n\n var _super = _createSuper(Calendar);\n\n function Calendar(_props, context) {\n var _this;\n\n _classCallCheck(this, Calendar);\n\n _this = _super.call(this, _props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"focusToDate\", function (date) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.props;\n var preventUnnecessary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!props.scroll.enabled) {\n if (preventUnnecessary && props.preventSnapRefocus) {\n var focusedDateDiff = (0, _differenceInCalendarMonths.default)(date, _this.state.focusedDate);\n var isAllowedForward = props.calendarFocus === 'forwards' && focusedDateDiff >= 0;\n var isAllowedBackward = props.calendarFocus === 'backwards' && focusedDateDiff <= 0;\n\n if ((isAllowedForward || isAllowedBackward) && Math.abs(focusedDateDiff) < props.months) {\n return;\n }\n }\n\n _this.setState({\n focusedDate: date\n });\n\n return;\n }\n\n var targetMonthIndex = (0, _differenceInCalendarMonths.default)(date, props.minDate, _this.dateOptions);\n\n var visibleMonths = _this.list.getVisibleRange();\n\n if (preventUnnecessary && visibleMonths.includes(targetMonthIndex)) return;\n _this.isFirstRender = true;\n\n _this.list.scrollTo(targetMonthIndex);\n\n _this.setState({\n focusedDate: date\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateShownDate\", function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props;\n var newProps = props.scroll.enabled ? _objectSpread(_objectSpread({}, props), {}, {\n months: _this.list.getVisibleRange().length\n }) : props;\n var newFocus = (0, _utils.calcFocusDate)(_this.state.focusedDate, newProps);\n\n _this.focusToDate(newFocus, newProps);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePreview\", function (val) {\n if (!val) {\n _this.setState({\n preview: null\n });\n\n return;\n }\n\n var preview = {\n startDate: val,\n endDate: val,\n color: _this.props.color\n };\n\n _this.setState({\n preview: preview\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeShownDate\", function (value) {\n var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set';\n var focusedDate = _this.state.focusedDate;\n var _this$props = _this.props,\n onShownDateChange = _this$props.onShownDateChange,\n minDate = _this$props.minDate,\n maxDate = _this$props.maxDate;\n var modeMapper = {\n monthOffset: function monthOffset() {\n return (0, _addMonths.default)(focusedDate, value);\n },\n setMonth: function (_setMonth) {\n function setMonth() {\n return _setMonth.apply(this, arguments);\n }\n\n setMonth.toString = function () {\n return _setMonth.toString();\n };\n\n return setMonth;\n }(function () {\n return (0, _setMonth2.default)(focusedDate, value);\n }),\n setYear: function (_setYear) {\n function setYear() {\n return _setYear.apply(this, arguments);\n }\n\n setYear.toString = function () {\n return _setYear.toString();\n };\n\n return setYear;\n }(function () {\n return (0, _setYear2.default)(focusedDate, value);\n }),\n set: function set() {\n return value;\n }\n };\n var newDate = (0, _min.default)([(0, _max.default)([modeMapper[mode](), minDate]), maxDate]);\n\n _this.focusToDate(newDate, _this.props, false);\n\n onShownDateChange && onShownDateChange(newDate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleRangeFocusChange\", function (rangesIndex, rangeItemIndex) {\n _this.props.onRangeFocusChange && _this.props.onRangeFocusChange([rangesIndex, rangeItemIndex]);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleScroll\", function () {\n var _this$props2 = _this.props,\n onShownDateChange = _this$props2.onShownDateChange,\n minDate = _this$props2.minDate;\n var focusedDate = _this.state.focusedDate;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n isFirstRender = _assertThisInitialize.isFirstRender;\n\n var visibleMonths = _this.list.getVisibleRange(); // prevent scroll jump with wrong visible value\n\n\n if (visibleMonths[0] === undefined) return;\n var visibleMonth = (0, _addMonths.default)(minDate, visibleMonths[0] || 0);\n var isFocusedToDifferent = !(0, _isSameMonth.default)(visibleMonth, focusedDate);\n\n if (isFocusedToDifferent && !isFirstRender) {\n _this.setState({\n focusedDate: visibleMonth\n });\n\n onShownDateChange && onShownDateChange(visibleMonth);\n }\n\n _this.isFirstRender = false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderMonthAndYear\", function (focusedDate, changeShownDate, props) {\n var showMonthArrow = props.showMonthArrow,\n minDate = props.minDate,\n maxDate = props.maxDate,\n showMonthAndYearPickers = props.showMonthAndYearPickers,\n ariaLabels = props.ariaLabels;\n var upperYearLimit = (maxDate || Calendar.defaultProps.maxDate).getFullYear();\n var lowerYearLimit = (minDate || Calendar.defaultProps.minDate).getFullYear();\n var styles = _this.styles;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n onMouseUp: function onMouseUp(e) {\n return e.stopPropagation();\n },\n className: styles.monthAndYearWrapper\n }, showMonthArrow ? /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: (0, _classnames3.default)(styles.nextPrevButton, styles.prevButton),\n onClick: function onClick() {\n return changeShownDate(-1, 'monthOffset');\n },\n \"aria-label\": ariaLabels.prevButton\n }, /*#__PURE__*/_react.default.createElement(\"i\", null)) : null, showMonthAndYearPickers ? /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthAndYearPickers\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthPicker\n }, /*#__PURE__*/_react.default.createElement(\"select\", {\n value: focusedDate.getMonth(),\n onChange: function onChange(e) {\n return changeShownDate(e.target.value, 'setMonth');\n },\n \"aria-label\": ariaLabels.monthPicker\n }, _this.state.monthNames.map(function (monthName, i) {\n return /*#__PURE__*/_react.default.createElement(\"option\", {\n key: i,\n value: i\n }, monthName);\n }))), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthAndYearDivider\n }), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.yearPicker\n }, /*#__PURE__*/_react.default.createElement(\"select\", {\n value: focusedDate.getFullYear(),\n onChange: function onChange(e) {\n return changeShownDate(e.target.value, 'setYear');\n },\n \"aria-label\": ariaLabels.yearPicker\n }, new Array(upperYearLimit - lowerYearLimit + 1).fill(upperYearLimit).map(function (val, i) {\n var year = val - i;\n return /*#__PURE__*/_react.default.createElement(\"option\", {\n key: year,\n value: year\n }, year);\n })))) : /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthAndYearPickers\n }, _this.state.monthNames[focusedDate.getMonth()], \" \", focusedDate.getFullYear()), showMonthArrow ? /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: (0, _classnames3.default)(styles.nextPrevButton, styles.nextButton),\n onClick: function onClick() {\n return changeShownDate(+1, 'monthOffset');\n },\n \"aria-label\": ariaLabels.nextButton\n }, /*#__PURE__*/_react.default.createElement(\"i\", null)) : null);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderDateDisplay\", function () {\n var _this$props3 = _this.props,\n focusedRange = _this$props3.focusedRange,\n color = _this$props3.color,\n ranges = _this$props3.ranges,\n rangeColors = _this$props3.rangeColors,\n dateDisplayFormat = _this$props3.dateDisplayFormat,\n editableDateInputs = _this$props3.editableDateInputs,\n startDatePlaceholder = _this$props3.startDatePlaceholder,\n endDatePlaceholder = _this$props3.endDatePlaceholder,\n ariaLabels = _this$props3.ariaLabels;\n var defaultColor = rangeColors[focusedRange[0]] || color;\n var styles = _this.styles;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.dateDisplayWrapper\n }, ranges.map(function (range, i) {\n if (range.showDateDisplay === false || range.disabled && !range.showDateDisplay) return null;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.dateDisplay,\n key: i,\n style: {\n color: range.color || defaultColor\n }\n }, /*#__PURE__*/_react.default.createElement(_DateInput.default, {\n className: (0, _classnames3.default)(styles.dateDisplayItem, _defineProperty({}, styles.dateDisplayItemActive, focusedRange[0] === i && focusedRange[1] === 0)),\n readOnly: !editableDateInputs,\n disabled: range.disabled,\n value: range.startDate,\n placeholder: startDatePlaceholder,\n dateOptions: _this.dateOptions,\n dateDisplayFormat: dateDisplayFormat,\n ariaLabel: ariaLabels.dateInput && ariaLabels.dateInput[range.key] && ariaLabels.dateInput[range.key].startDate,\n onChange: _this.onDragSelectionEnd,\n onFocus: function onFocus() {\n return _this.handleRangeFocusChange(i, 0);\n }\n }), /*#__PURE__*/_react.default.createElement(_DateInput.default, {\n className: (0, _classnames3.default)(styles.dateDisplayItem, _defineProperty({}, styles.dateDisplayItemActive, focusedRange[0] === i && focusedRange[1] === 1)),\n readOnly: !editableDateInputs,\n disabled: range.disabled,\n value: range.endDate,\n placeholder: endDatePlaceholder,\n dateOptions: _this.dateOptions,\n dateDisplayFormat: dateDisplayFormat,\n ariaLabel: ariaLabels.dateInput && ariaLabels.dateInput[range.key] && ariaLabels.dateInput[range.key].endDate,\n onChange: _this.onDragSelectionEnd,\n onFocus: function onFocus() {\n return _this.handleRangeFocusChange(i, 1);\n }\n }));\n }));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragSelectionStart\", function (date) {\n var _this$props4 = _this.props,\n onChange = _this$props4.onChange,\n dragSelectionEnabled = _this$props4.dragSelectionEnabled;\n\n if (dragSelectionEnabled) {\n _this.setState({\n drag: {\n status: true,\n range: {\n startDate: date,\n endDate: date\n },\n disablePreview: true\n }\n });\n } else {\n onChange && onChange(date);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragSelectionEnd\", function (date) {\n var _this$props5 = _this.props,\n updateRange = _this$props5.updateRange,\n displayMode = _this$props5.displayMode,\n onChange = _this$props5.onChange,\n dragSelectionEnabled = _this$props5.dragSelectionEnabled;\n if (!dragSelectionEnabled) return;\n\n if (displayMode === 'date' || !_this.state.drag.status) {\n onChange && onChange(date);\n return;\n }\n\n var newRange = {\n startDate: _this.state.drag.range.startDate,\n endDate: date\n };\n\n if (displayMode !== 'dateRange' || (0, _isSameDay.default)(newRange.startDate, date)) {\n _this.setState({\n drag: {\n status: false,\n range: {}\n }\n }, function () {\n return onChange && onChange(date);\n });\n } else {\n _this.setState({\n drag: {\n status: false,\n range: {}\n }\n }, function () {\n updateRange && updateRange(newRange);\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragSelectionMove\", function (date) {\n var drag = _this.state.drag;\n if (!drag.status || !_this.props.dragSelectionEnabled) return;\n\n _this.setState({\n drag: {\n status: drag.status,\n range: {\n startDate: drag.range.startDate,\n endDate: date\n },\n disablePreview: true\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"estimateMonthSize\", function (index, cache) {\n var _this$props6 = _this.props,\n direction = _this$props6.direction,\n minDate = _this$props6.minDate;\n var scrollArea = _this.state.scrollArea;\n\n if (cache) {\n _this.listSizeCache = cache;\n if (cache[index]) return cache[index];\n }\n\n if (direction === 'horizontal') return scrollArea.monthWidth;\n var monthStep = (0, _addMonths.default)(minDate, index);\n\n var _getMonthDisplayRange = (0, _utils.getMonthDisplayRange)(monthStep, _this.dateOptions),\n start = _getMonthDisplayRange.start,\n end = _getMonthDisplayRange.end;\n\n var isLongMonth = (0, _differenceInDays.default)(end, start, _this.dateOptions) + 1 > 7 * 5;\n return isLongMonth ? scrollArea.longMonthHeight : scrollArea.monthHeight;\n });\n\n _this.dateOptions = {\n locale: _props.locale\n };\n if (_props.weekStartsOn !== undefined) _this.dateOptions.weekStartsOn = _props.weekStartsOn;\n _this.styles = (0, _utils.generateStyles)([_styles.default, _props.classNames]);\n _this.listSizeCache = {};\n _this.isFirstRender = true;\n _this.state = {\n monthNames: _this.getMonthNames(),\n focusedDate: (0, _utils.calcFocusDate)(null, _props),\n drag: {\n status: false,\n range: {\n startDate: null,\n endDate: null\n },\n disablePreview: false\n },\n scrollArea: _this.calcScrollArea(_props)\n };\n return _this;\n }\n\n _createClass(Calendar, [{\n key: \"getMonthNames\",\n value: function getMonthNames() {\n var _this2 = this;\n\n return _toConsumableArray(Array(12).keys()).map(function (i) {\n return _this2.props.locale.localize.month(i);\n });\n }\n }, {\n key: \"calcScrollArea\",\n value: function calcScrollArea(props) {\n var direction = props.direction,\n months = props.months,\n scroll = props.scroll;\n if (!scroll.enabled) return {\n enabled: false\n };\n var longMonthHeight = scroll.longMonthHeight || scroll.monthHeight;\n\n if (direction === 'vertical') {\n return {\n enabled: true,\n monthHeight: scroll.monthHeight || 220,\n longMonthHeight: longMonthHeight || 260,\n calendarWidth: 'auto',\n calendarHeight: (scroll.calendarHeight || longMonthHeight || 240) * months\n };\n }\n\n return {\n enabled: true,\n monthWidth: scroll.monthWidth || 332,\n calendarWidth: (scroll.calendarWidth || scroll.monthWidth || 332) * months,\n monthHeight: longMonthHeight || 300,\n calendarHeight: longMonthHeight || 300\n };\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this3 = this;\n\n if (this.props.scroll.enabled) {\n // prevent react-list's initial render focus problem\n setTimeout(function () {\n return _this3.focusToDate(_this3.state.focusedDate);\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var propMapper = {\n dateRange: 'ranges',\n date: 'date'\n };\n var targetProp = propMapper[this.props.displayMode];\n\n if (this.props[targetProp] !== prevProps[targetProp]) {\n this.updateShownDate(this.props);\n }\n\n if (prevProps.locale !== this.props.locale || prevProps.weekStartsOn !== this.props.weekStartsOn) {\n this.dateOptions = {\n locale: this.props.locale\n };\n if (this.props.weekStartsOn !== undefined) this.dateOptions.weekStartsOn = this.props.weekStartsOn;\n this.setState({\n monthNames: this.getMonthNames()\n });\n }\n\n if (!(0, _shallowEqual.shallowEqualObjects)(prevProps.scroll, this.props.scroll)) {\n this.setState({\n scrollArea: this.calcScrollArea(this.props)\n });\n }\n }\n }, {\n key: \"renderWeekdays\",\n value: function renderWeekdays() {\n var _this4 = this;\n\n var now = new Date();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: this.styles.weekDays\n }, (0, _eachDayOfInterval.default)({\n start: (0, _startOfWeek.default)(now, this.dateOptions),\n end: (0, _endOfWeek.default)(now, this.dateOptions)\n }).map(function (day, i) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: _this4.styles.weekDay,\n key: i\n }, (0, _format.default)(day, _this4.props.weekdayDisplayFormat, _this4.dateOptions));\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n var _this$props7 = this.props,\n showDateDisplay = _this$props7.showDateDisplay,\n onPreviewChange = _this$props7.onPreviewChange,\n scroll = _this$props7.scroll,\n direction = _this$props7.direction,\n disabledDates = _this$props7.disabledDates,\n disabledDay = _this$props7.disabledDay,\n maxDate = _this$props7.maxDate,\n minDate = _this$props7.minDate,\n rangeColors = _this$props7.rangeColors,\n color = _this$props7.color,\n navigatorRenderer = _this$props7.navigatorRenderer,\n className = _this$props7.className,\n preview = _this$props7.preview;\n var _this$state = this.state,\n scrollArea = _this$state.scrollArea,\n focusedDate = _this$state.focusedDate;\n var isVertical = direction === 'vertical';\n var monthAndYearRenderer = navigatorRenderer || this.renderMonthAndYear;\n var ranges = this.props.ranges.map(function (range, i) {\n return _objectSpread(_objectSpread({}, range), {}, {\n color: range.color || rangeColors[i] || color\n });\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames3.default)(this.styles.calendarWrapper, className),\n onMouseUp: function onMouseUp() {\n return _this5.setState({\n drag: {\n status: false,\n range: {}\n }\n });\n },\n onMouseLeave: function onMouseLeave() {\n _this5.setState({\n drag: {\n status: false,\n range: {}\n }\n });\n }\n }, showDateDisplay && this.renderDateDisplay(), monthAndYearRenderer(focusedDate, this.changeShownDate, this.props), scroll.enabled ? /*#__PURE__*/_react.default.createElement(\"div\", null, isVertical && this.renderWeekdays(this.dateOptions), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames3.default)(this.styles.infiniteMonths, isVertical ? this.styles.monthsVertical : this.styles.monthsHorizontal),\n onMouseLeave: function onMouseLeave() {\n return onPreviewChange && onPreviewChange();\n },\n style: {\n width: scrollArea.calendarWidth + 11,\n height: scrollArea.calendarHeight + 11\n },\n onScroll: this.handleScroll\n }, /*#__PURE__*/_react.default.createElement(_reactList.default, {\n length: (0, _differenceInCalendarMonths.default)((0, _endOfMonth.default)(maxDate), (0, _addDays.default)((0, _startOfMonth.default)(minDate), -1), this.dateOptions),\n treshold: 500,\n type: \"variable\",\n ref: function ref(target) {\n return _this5.list = target;\n },\n itemSizeEstimator: this.estimateMonthSize,\n axis: isVertical ? 'y' : 'x',\n itemRenderer: function itemRenderer(index, key) {\n var monthStep = (0, _addMonths.default)(minDate, index);\n return /*#__PURE__*/_react.default.createElement(_Month.default, _extends({}, _this5.props, {\n onPreviewChange: onPreviewChange || _this5.updatePreview,\n preview: preview || _this5.state.preview,\n ranges: ranges,\n key: key,\n drag: _this5.state.drag,\n dateOptions: _this5.dateOptions,\n disabledDates: disabledDates,\n disabledDay: disabledDay,\n month: monthStep,\n onDragSelectionStart: _this5.onDragSelectionStart,\n onDragSelectionEnd: _this5.onDragSelectionEnd,\n onDragSelectionMove: _this5.onDragSelectionMove,\n onMouseLeave: function onMouseLeave() {\n return onPreviewChange && onPreviewChange();\n },\n styles: _this5.styles,\n style: isVertical ? {\n height: _this5.estimateMonthSize(index)\n } : {\n height: scrollArea.monthHeight,\n width: _this5.estimateMonthSize(index)\n },\n showMonthName: true,\n showWeekDays: !isVertical\n }));\n }\n }))) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames3.default)(this.styles.months, isVertical ? this.styles.monthsVertical : this.styles.monthsHorizontal)\n }, new Array(this.props.months).fill(null).map(function (_, i) {\n var monthStep = (0, _addMonths.default)(_this5.state.focusedDate, i);\n ;\n\n if (_this5.props.calendarFocus === 'backwards') {\n monthStep = (0, _subMonths.default)(_this5.state.focusedDate, _this5.props.months - 1 - i);\n }\n\n return /*#__PURE__*/_react.default.createElement(_Month.default, _extends({}, _this5.props, {\n onPreviewChange: onPreviewChange || _this5.updatePreview,\n preview: preview || _this5.state.preview,\n ranges: ranges,\n key: i,\n drag: _this5.state.drag,\n dateOptions: _this5.dateOptions,\n disabledDates: disabledDates,\n disabledDay: disabledDay,\n month: monthStep,\n onDragSelectionStart: _this5.onDragSelectionStart,\n onDragSelectionEnd: _this5.onDragSelectionEnd,\n onDragSelectionMove: _this5.onDragSelectionMove,\n onMouseLeave: function onMouseLeave() {\n return onPreviewChange && onPreviewChange();\n },\n styles: _this5.styles,\n showWeekDays: !isVertical || i === 0,\n showMonthName: !isVertical || i > 0\n }));\n })));\n }\n }]);\n\n return Calendar;\n}(_react.PureComponent);\n\nCalendar.defaultProps = {\n showMonthArrow: true,\n showMonthAndYearPickers: true,\n disabledDates: [],\n disabledDay: function disabledDay() {},\n classNames: {},\n locale: _enUS.default,\n ranges: [],\n focusedRange: [0, 0],\n dateDisplayFormat: 'MMM d, yyyy',\n monthDisplayFormat: 'MMM yyyy',\n weekdayDisplayFormat: 'E',\n dayDisplayFormat: 'd',\n showDateDisplay: true,\n showPreview: true,\n displayMode: 'date',\n months: 1,\n color: '#3d91ff',\n scroll: {\n enabled: false\n },\n direction: 'vertical',\n maxDate: (0, _addYears.default)(new Date(), 20),\n minDate: (0, _addYears.default)(new Date(), -100),\n rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],\n startDatePlaceholder: 'Early',\n endDatePlaceholder: 'Continuous',\n editableDateInputs: false,\n dragSelectionEnabled: true,\n fixedHeight: false,\n calendarFocus: 'forwards',\n preventSnapRefocus: false,\n ariaLabels: {}\n};\nCalendar.propTypes = {\n showMonthArrow: _propTypes.default.bool,\n showMonthAndYearPickers: _propTypes.default.bool,\n disabledDates: _propTypes.default.array,\n disabledDay: _propTypes.default.func,\n minDate: _propTypes.default.object,\n maxDate: _propTypes.default.object,\n date: _propTypes.default.object,\n onChange: _propTypes.default.func,\n onPreviewChange: _propTypes.default.func,\n onRangeFocusChange: _propTypes.default.func,\n classNames: _propTypes.default.object,\n locale: _propTypes.default.object,\n shownDate: _propTypes.default.object,\n onShownDateChange: _propTypes.default.func,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n preview: _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object,\n color: _propTypes.default.string\n }),\n dateDisplayFormat: _propTypes.default.string,\n monthDisplayFormat: _propTypes.default.string,\n weekdayDisplayFormat: _propTypes.default.string,\n weekStartsOn: _propTypes.default.number,\n dayDisplayFormat: _propTypes.default.string,\n focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n initialFocusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n months: _propTypes.default.number,\n className: _propTypes.default.string,\n showDateDisplay: _propTypes.default.bool,\n showPreview: _propTypes.default.bool,\n displayMode: _propTypes.default.oneOf(['dateRange', 'date']),\n color: _propTypes.default.string,\n updateRange: _propTypes.default.func,\n scroll: _propTypes.default.shape({\n enabled: _propTypes.default.bool,\n monthHeight: _propTypes.default.number,\n longMonthHeight: _propTypes.default.number,\n monthWidth: _propTypes.default.number,\n calendarWidth: _propTypes.default.number,\n calendarHeight: _propTypes.default.number\n }),\n direction: _propTypes.default.oneOf(['vertical', 'horizontal']),\n startDatePlaceholder: _propTypes.default.string,\n endDatePlaceholder: _propTypes.default.string,\n navigatorRenderer: _propTypes.default.func,\n rangeColors: _propTypes.default.arrayOf(_propTypes.default.string),\n editableDateInputs: _propTypes.default.bool,\n dragSelectionEnabled: _propTypes.default.bool,\n fixedHeight: _propTypes.default.bool,\n calendarFocus: _propTypes.default.string,\n preventSnapRefocus: _propTypes.default.bool,\n ariaLabels: _accessibility.ariaLabelsShape\n};\nvar _default = Calendar;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _isEqual = _interopRequireDefault(require(\"date-fns/isEqual\"));\n\nvar _isValid = _interopRequireDefault(require(\"date-fns/isValid\"));\n\nvar _parse = _interopRequireDefault(require(\"date-fns/parse\"));\n\nvar _format = _interopRequireDefault(require(\"date-fns/format\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar DateInput = /*#__PURE__*/function (_PureComponent) {\n _inherits(DateInput, _PureComponent);\n\n var _super = _createSuper(DateInput);\n\n function DateInput(props, context) {\n var _this;\n\n _classCallCheck(this, DateInput);\n\n _this = _super.call(this, props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (e) {\n var value = _this.state.value;\n\n if (e.key === 'Enter') {\n _this.update(value);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onChange\", function (e) {\n _this.setState({\n value: e.target.value,\n changed: true,\n invalid: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function () {\n var value = _this.state.value;\n\n _this.update(value);\n });\n\n _this.state = {\n invalid: false,\n changed: false,\n value: _this.formatDate(props)\n };\n return _this;\n }\n\n _createClass(DateInput, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var value = prevProps.value;\n\n if (!(0, _isEqual.default)(value, this.props.value)) {\n this.setState({\n value: this.formatDate(this.props)\n });\n }\n }\n }, {\n key: \"formatDate\",\n value: function formatDate(_ref) {\n var value = _ref.value,\n dateDisplayFormat = _ref.dateDisplayFormat,\n dateOptions = _ref.dateOptions;\n\n if (value && (0, _isValid.default)(value)) {\n return (0, _format.default)(value, dateDisplayFormat, dateOptions);\n }\n\n return '';\n }\n }, {\n key: \"update\",\n value: function update(value) {\n var _this$state = this.state,\n invalid = _this$state.invalid,\n changed = _this$state.changed;\n\n if (invalid || !changed || !value) {\n return;\n }\n\n var _this$props = this.props,\n onChange = _this$props.onChange,\n dateDisplayFormat = _this$props.dateDisplayFormat,\n dateOptions = _this$props.dateOptions;\n var parsed = (0, _parse.default)(value, dateDisplayFormat, new Date(), dateOptions);\n\n if ((0, _isValid.default)(parsed)) {\n this.setState({\n changed: false\n }, function () {\n return onChange(parsed);\n });\n } else {\n this.setState({\n invalid: true\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n readOnly = _this$props2.readOnly,\n placeholder = _this$props2.placeholder,\n ariaLabel = _this$props2.ariaLabel,\n disabled = _this$props2.disabled,\n onFocus = _this$props2.onFocus;\n var _this$state2 = this.state,\n value = _this$state2.value,\n invalid = _this$state2.invalid;\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: (0, _classnames.default)('rdrDateInput', className)\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n readOnly: readOnly,\n disabled: disabled,\n value: value,\n placeholder: placeholder,\n \"aria-label\": ariaLabel,\n onKeyDown: this.onKeyDown,\n onChange: this.onChange,\n onBlur: this.onBlur,\n onFocus: onFocus\n }), invalid && /*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"rdrWarning\"\n }, \"\\u26A0\"));\n }\n }]);\n\n return DateInput;\n}(_react.PureComponent);\n\nDateInput.propTypes = {\n value: _propTypes.default.object,\n placeholder: _propTypes.default.string,\n disabled: _propTypes.default.bool,\n readOnly: _propTypes.default.bool,\n dateOptions: _propTypes.default.object,\n dateDisplayFormat: _propTypes.default.string,\n ariaLabel: _propTypes.default.string,\n className: _propTypes.default.string,\n onFocus: _propTypes.default.func.isRequired,\n onChange: _propTypes.default.func.isRequired\n};\nDateInput.defaultProps = {\n readOnly: true,\n disabled: false,\n dateDisplayFormat: 'MMM D, YYYY'\n};\nvar _default = DateInput;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _DateRange = _interopRequireDefault(require(\"../DateRange\"));\n\nvar _DefinedRange = _interopRequireDefault(require(\"../DefinedRange\"));\n\nvar _utils = require(\"../../utils\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar DateRangePicker = /*#__PURE__*/function (_Component) {\n _inherits(DateRangePicker, _Component);\n\n var _super = _createSuper(DateRangePicker);\n\n function DateRangePicker(props) {\n var _this;\n\n _classCallCheck(this, DateRangePicker);\n\n _this = _super.call(this, props);\n _this.state = {\n focusedRange: [(0, _utils.findNextRangeIndex)(props.ranges), 0]\n };\n _this.styles = (0, _utils.generateStyles)([_styles.default, props.classNames]);\n return _this;\n }\n\n _createClass(DateRangePicker, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var focusedRange = this.state.focusedRange;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(this.styles.dateRangePickerWrapper, this.props.className)\n }, /*#__PURE__*/_react.default.createElement(_DefinedRange.default, _extends({\n focusedRange: focusedRange,\n onPreviewChange: function onPreviewChange(value) {\n return _this2.dateRange.updatePreview(value ? _this2.dateRange.calcNewSelection(value, typeof value === 'string') : null);\n }\n }, this.props, {\n range: this.props.ranges[focusedRange[0]],\n className: undefined\n })), /*#__PURE__*/_react.default.createElement(_DateRange.default, _extends({\n onRangeFocusChange: function onRangeFocusChange(focusedRange) {\n return _this2.setState({\n focusedRange: focusedRange\n });\n },\n focusedRange: focusedRange\n }, this.props, {\n ref: function ref(t) {\n return _this2.dateRange = t;\n },\n className: undefined\n })));\n }\n }]);\n\n return DateRangePicker;\n}(_react.Component);\n\nDateRangePicker.defaultProps = {};\nDateRangePicker.propTypes = _objectSpread(_objectSpread(_objectSpread({}, _DateRange.default.propTypes), _DefinedRange.default.propTypes), {}, {\n className: _propTypes.default.string\n});\nvar _default = DateRangePicker;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Calendar = _interopRequireDefault(require(\"../Calendar\"));\n\nvar _DayCell = require(\"../DayCell\");\n\nvar _utils = require(\"../../utils\");\n\nvar _max = _interopRequireDefault(require(\"date-fns/max\"));\n\nvar _isWithinInterval = _interopRequireDefault(require(\"date-fns/isWithinInterval\"));\n\nvar _min = _interopRequireDefault(require(\"date-fns/min\"));\n\nvar _addDays = _interopRequireDefault(require(\"date-fns/addDays\"));\n\nvar _differenceInCalendarDays = _interopRequireDefault(require(\"date-fns/differenceInCalendarDays\"));\n\nvar _isBefore = _interopRequireDefault(require(\"date-fns/isBefore\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar DateRange = /*#__PURE__*/function (_Component) {\n _inherits(DateRange, _Component);\n\n var _super = _createSuper(DateRange);\n\n function DateRange(props, context) {\n var _this;\n\n _classCallCheck(this, DateRange);\n\n _this = _super.call(this, props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"calcNewSelection\", function (value) {\n var isSingleValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var focusedRange = _this.props.focusedRange || _this.state.focusedRange;\n var _this$props = _this.props,\n ranges = _this$props.ranges,\n onChange = _this$props.onChange,\n maxDate = _this$props.maxDate,\n moveRangeOnFirstSelection = _this$props.moveRangeOnFirstSelection,\n retainEndDateOnFirstSelection = _this$props.retainEndDateOnFirstSelection,\n disabledDates = _this$props.disabledDates;\n var focusedRangeIndex = focusedRange[0];\n var selectedRange = ranges[focusedRangeIndex];\n if (!selectedRange || !onChange) return {};\n var startDate = selectedRange.startDate,\n endDate = selectedRange.endDate;\n var now = new Date();\n var nextFocusRange;\n\n if (!isSingleValue) {\n startDate = value.startDate;\n endDate = value.endDate;\n } else if (focusedRange[1] === 0) {\n // startDate selection\n var dayOffset = (0, _differenceInCalendarDays.default)(endDate || now, startDate);\n\n var calculateEndDate = function calculateEndDate() {\n if (moveRangeOnFirstSelection) {\n return (0, _addDays.default)(value, dayOffset);\n }\n\n if (retainEndDateOnFirstSelection) {\n if (!endDate || (0, _isBefore.default)(value, endDate)) {\n return endDate;\n }\n\n return value;\n }\n\n return value || now;\n };\n\n startDate = value;\n endDate = calculateEndDate();\n if (maxDate) endDate = (0, _min.default)([endDate, maxDate]);\n nextFocusRange = [focusedRange[0], 1];\n } else {\n endDate = value;\n } // reverse dates if startDate before endDate\n\n\n var isStartDateSelected = focusedRange[1] === 0;\n\n if ((0, _isBefore.default)(endDate, startDate)) {\n isStartDateSelected = !isStartDateSelected;\n var _ref = [endDate, startDate];\n startDate = _ref[0];\n endDate = _ref[1];\n }\n\n var inValidDatesWithinRange = disabledDates.filter(function (disabledDate) {\n return (0, _isWithinInterval.default)(disabledDate, {\n start: startDate,\n end: endDate\n });\n });\n\n if (inValidDatesWithinRange.length > 0) {\n if (isStartDateSelected) {\n startDate = (0, _addDays.default)((0, _max.default)(inValidDatesWithinRange), 1);\n } else {\n endDate = (0, _addDays.default)((0, _min.default)(inValidDatesWithinRange), -1);\n }\n }\n\n if (!nextFocusRange) {\n var nextFocusRangeIndex = (0, _utils.findNextRangeIndex)(_this.props.ranges, focusedRange[0]);\n nextFocusRange = [nextFocusRangeIndex, 0];\n }\n\n return {\n wasValid: !(inValidDatesWithinRange.length > 0),\n range: {\n startDate: startDate,\n endDate: endDate\n },\n nextFocusRange: nextFocusRange\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setSelection\", function (value, isSingleValue) {\n var _this$props2 = _this.props,\n onChange = _this$props2.onChange,\n ranges = _this$props2.ranges,\n onRangeFocusChange = _this$props2.onRangeFocusChange;\n var focusedRange = _this.props.focusedRange || _this.state.focusedRange;\n var focusedRangeIndex = focusedRange[0];\n var selectedRange = ranges[focusedRangeIndex];\n if (!selectedRange) return;\n\n var newSelection = _this.calcNewSelection(value, isSingleValue);\n\n onChange(_defineProperty({}, selectedRange.key || \"range\".concat(focusedRangeIndex + 1), _objectSpread(_objectSpread({}, selectedRange), newSelection.range)));\n\n _this.setState({\n focusedRange: newSelection.nextFocusRange,\n preview: null\n });\n\n onRangeFocusChange && onRangeFocusChange(newSelection.nextFocusRange);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleRangeFocusChange\", function (focusedRange) {\n _this.setState({\n focusedRange: focusedRange\n });\n\n _this.props.onRangeFocusChange && _this.props.onRangeFocusChange(focusedRange);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePreview\", function (val) {\n var _ranges$focusedRange$;\n\n if (!val) {\n _this.setState({\n preview: null\n });\n\n return;\n }\n\n var _this$props3 = _this.props,\n rangeColors = _this$props3.rangeColors,\n ranges = _this$props3.ranges;\n var focusedRange = _this.props.focusedRange || _this.state.focusedRange;\n var color = ((_ranges$focusedRange$ = ranges[focusedRange[0]]) === null || _ranges$focusedRange$ === void 0 ? void 0 : _ranges$focusedRange$.color) || rangeColors[focusedRange[0]] || color;\n\n _this.setState({\n preview: _objectSpread(_objectSpread({}, val.range), {}, {\n color: color\n })\n });\n });\n\n _this.state = {\n focusedRange: props.initialFocusedRange || [(0, _utils.findNextRangeIndex)(props.ranges), 0],\n preview: null\n };\n _this.styles = (0, _utils.generateStyles)([_styles.default, props.classNames]);\n return _this;\n }\n\n _createClass(DateRange, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/_react.default.createElement(_Calendar.default, _extends({\n focusedRange: this.state.focusedRange,\n onRangeFocusChange: this.handleRangeFocusChange,\n preview: this.state.preview,\n onPreviewChange: function onPreviewChange(value) {\n _this2.updatePreview(value ? _this2.calcNewSelection(value) : null);\n }\n }, this.props, {\n displayMode: \"dateRange\",\n className: (0, _classnames.default)(this.styles.dateRangeWrapper, this.props.className),\n onChange: this.setSelection,\n updateRange: function updateRange(val) {\n return _this2.setSelection(val, false);\n },\n ref: function ref(target) {\n _this2.calendar = target;\n }\n }));\n }\n }]);\n\n return DateRange;\n}(_react.Component);\n\nDateRange.defaultProps = {\n classNames: {},\n ranges: [],\n moveRangeOnFirstSelection: false,\n retainEndDateOnFirstSelection: false,\n rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],\n disabledDates: []\n};\nDateRange.propTypes = _objectSpread(_objectSpread({}, _Calendar.default.propTypes), {}, {\n onChange: _propTypes.default.func,\n onRangeFocusChange: _propTypes.default.func,\n className: _propTypes.default.string,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n moveRangeOnFirstSelection: _propTypes.default.bool,\n retainEndDateOnFirstSelection: _propTypes.default.bool\n});\nvar _default = DateRange;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.rangeShape = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames4 = _interopRequireDefault(require(\"classnames\"));\n\nvar _endOfDay = _interopRequireDefault(require(\"date-fns/endOfDay\"));\n\nvar _isBefore = _interopRequireDefault(require(\"date-fns/isBefore\"));\n\nvar _isAfter = _interopRequireDefault(require(\"date-fns/isAfter\"));\n\nvar _isSameDay = _interopRequireDefault(require(\"date-fns/isSameDay\"));\n\nvar _format = _interopRequireDefault(require(\"date-fns/format\"));\n\nvar _startOfDay = _interopRequireDefault(require(\"date-fns/startOfDay\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar DayCell = /*#__PURE__*/function (_Component) {\n _inherits(DayCell, _Component);\n\n var _super = _createSuper(DayCell);\n\n function DayCell(props, context) {\n var _this;\n\n _classCallCheck(this, DayCell);\n\n _this = _super.call(this, props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"handleKeyEvent\", function (event) {\n var _this$props = _this.props,\n day = _this$props.day,\n onMouseDown = _this$props.onMouseDown,\n onMouseUp = _this$props.onMouseUp;\n\n if ([13\n /* space */\n , 32\n /* enter */\n ].includes(event.keyCode)) {\n if (event.type === 'keydown') onMouseDown(day);else onMouseUp(day);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEvent\", function (event) {\n var _this$props2 = _this.props,\n day = _this$props2.day,\n disabled = _this$props2.disabled,\n onPreviewChange = _this$props2.onPreviewChange,\n onMouseEnter = _this$props2.onMouseEnter,\n onMouseDown = _this$props2.onMouseDown,\n onMouseUp = _this$props2.onMouseUp;\n var stateChanges = {};\n\n if (disabled) {\n onPreviewChange();\n return;\n }\n\n switch (event.type) {\n case 'mouseenter':\n onMouseEnter(day);\n onPreviewChange(day);\n stateChanges.hover = true;\n break;\n\n case 'blur':\n case 'mouseleave':\n stateChanges.hover = false;\n break;\n\n case 'mousedown':\n stateChanges.active = true;\n onMouseDown(day);\n break;\n\n case 'mouseup':\n event.stopPropagation();\n stateChanges.active = false;\n onMouseUp(day);\n break;\n\n case 'focus':\n onPreviewChange(day);\n break;\n }\n\n if (Object.keys(stateChanges).length) {\n _this.setState(stateChanges);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getClassNames\", function () {\n var _classnames;\n\n var _this$props3 = _this.props,\n isPassive = _this$props3.isPassive,\n isToday = _this$props3.isToday,\n isWeekend = _this$props3.isWeekend,\n isStartOfWeek = _this$props3.isStartOfWeek,\n isEndOfWeek = _this$props3.isEndOfWeek,\n isStartOfMonth = _this$props3.isStartOfMonth,\n isEndOfMonth = _this$props3.isEndOfMonth,\n disabled = _this$props3.disabled,\n styles = _this$props3.styles;\n return (0, _classnames4.default)(styles.day, (_classnames = {}, _defineProperty(_classnames, styles.dayPassive, isPassive), _defineProperty(_classnames, styles.dayDisabled, disabled), _defineProperty(_classnames, styles.dayToday, isToday), _defineProperty(_classnames, styles.dayWeekend, isWeekend), _defineProperty(_classnames, styles.dayStartOfWeek, isStartOfWeek), _defineProperty(_classnames, styles.dayEndOfWeek, isEndOfWeek), _defineProperty(_classnames, styles.dayStartOfMonth, isStartOfMonth), _defineProperty(_classnames, styles.dayEndOfMonth, isEndOfMonth), _defineProperty(_classnames, styles.dayHovered, _this.state.hover), _defineProperty(_classnames, styles.dayActive, _this.state.active), _classnames));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderPreviewPlaceholder\", function () {\n var _classnames2;\n\n var _this$props4 = _this.props,\n preview = _this$props4.preview,\n day = _this$props4.day,\n styles = _this$props4.styles;\n if (!preview) return null;\n var startDate = preview.startDate ? (0, _endOfDay.default)(preview.startDate) : null;\n var endDate = preview.endDate ? (0, _startOfDay.default)(preview.endDate) : null;\n var isInRange = (!startDate || (0, _isAfter.default)(day, startDate)) && (!endDate || (0, _isBefore.default)(day, endDate));\n var isStartEdge = !isInRange && (0, _isSameDay.default)(day, startDate);\n var isEndEdge = !isInRange && (0, _isSameDay.default)(day, endDate);\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: (0, _classnames4.default)((_classnames2 = {}, _defineProperty(_classnames2, styles.dayStartPreview, isStartEdge), _defineProperty(_classnames2, styles.dayInPreview, isInRange), _defineProperty(_classnames2, styles.dayEndPreview, isEndEdge), _classnames2)),\n style: {\n color: preview.color\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSelectionPlaceholders\", function () {\n var _this$props5 = _this.props,\n styles = _this$props5.styles,\n ranges = _this$props5.ranges,\n day = _this$props5.day;\n\n if (_this.props.displayMode === 'date') {\n var isSelected = (0, _isSameDay.default)(_this.props.day, _this.props.date);\n return isSelected ? /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.selected,\n style: {\n color: _this.props.color\n }\n }) : null;\n }\n\n var inRanges = ranges.reduce(function (result, range) {\n var startDate = range.startDate;\n var endDate = range.endDate;\n\n if (startDate && endDate && (0, _isBefore.default)(endDate, startDate)) {\n var _ref = [endDate, startDate];\n startDate = _ref[0];\n endDate = _ref[1];\n }\n\n startDate = startDate ? (0, _endOfDay.default)(startDate) : null;\n endDate = endDate ? (0, _startOfDay.default)(endDate) : null;\n var isInRange = (!startDate || (0, _isAfter.default)(day, startDate)) && (!endDate || (0, _isBefore.default)(day, endDate));\n var isStartEdge = !isInRange && (0, _isSameDay.default)(day, startDate);\n var isEndEdge = !isInRange && (0, _isSameDay.default)(day, endDate);\n\n if (isInRange || isStartEdge || isEndEdge) {\n return [].concat(_toConsumableArray(result), [_objectSpread({\n isStartEdge: isStartEdge,\n isEndEdge: isEndEdge,\n isInRange: isInRange\n }, range)]);\n }\n\n return result;\n }, []);\n return inRanges.map(function (range, i) {\n var _classnames3;\n\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n key: i,\n className: (0, _classnames4.default)((_classnames3 = {}, _defineProperty(_classnames3, styles.startEdge, range.isStartEdge), _defineProperty(_classnames3, styles.endEdge, range.isEndEdge), _defineProperty(_classnames3, styles.inRange, range.isInRange), _classnames3)),\n style: {\n color: range.color || _this.props.color\n }\n });\n });\n });\n\n _this.state = {\n hover: false,\n active: false\n };\n return _this;\n }\n\n _createClass(DayCell, [{\n key: \"render\",\n value: function render() {\n var dayContentRenderer = this.props.dayContentRenderer;\n return /*#__PURE__*/_react.default.createElement(\"button\", _extends({\n type: \"button\",\n onMouseEnter: this.handleMouseEvent,\n onMouseLeave: this.handleMouseEvent,\n onFocus: this.handleMouseEvent,\n onMouseDown: this.handleMouseEvent,\n onMouseUp: this.handleMouseEvent,\n onBlur: this.handleMouseEvent,\n onPauseCapture: this.handleMouseEvent,\n onKeyDown: this.handleKeyEvent,\n onKeyUp: this.handleKeyEvent,\n className: this.getClassNames(this.props.styles)\n }, this.props.disabled || this.props.isPassive ? {\n tabIndex: -1\n } : {}, {\n style: {\n color: this.props.color\n }\n }), this.renderSelectionPlaceholders(), this.renderPreviewPlaceholder(), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: this.props.styles.dayNumber\n }, (dayContentRenderer === null || dayContentRenderer === void 0 ? void 0 : dayContentRenderer(this.props.day)) || /*#__PURE__*/_react.default.createElement(\"span\", null, (0, _format.default)(this.props.day, this.props.dayDisplayFormat))));\n }\n }]);\n\n return DayCell;\n}(_react.Component);\n\nDayCell.defaultProps = {};\n\nvar rangeShape = _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object,\n color: _propTypes.default.string,\n key: _propTypes.default.string,\n autoFocus: _propTypes.default.bool,\n disabled: _propTypes.default.bool,\n showDateDisplay: _propTypes.default.bool\n});\n\nexports.rangeShape = rangeShape;\nDayCell.propTypes = {\n day: _propTypes.default.object.isRequired,\n dayDisplayFormat: _propTypes.default.string,\n date: _propTypes.default.object,\n ranges: _propTypes.default.arrayOf(rangeShape),\n preview: _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object,\n color: _propTypes.default.string\n }),\n onPreviewChange: _propTypes.default.func,\n previewColor: _propTypes.default.string,\n disabled: _propTypes.default.bool,\n isPassive: _propTypes.default.bool,\n isToday: _propTypes.default.bool,\n isWeekend: _propTypes.default.bool,\n isStartOfWeek: _propTypes.default.bool,\n isEndOfWeek: _propTypes.default.bool,\n isStartOfMonth: _propTypes.default.bool,\n isEndOfMonth: _propTypes.default.bool,\n color: _propTypes.default.string,\n displayMode: _propTypes.default.oneOf(['dateRange', 'date']),\n styles: _propTypes.default.object,\n onMouseDown: _propTypes.default.func,\n onMouseUp: _propTypes.default.func,\n onMouseEnter: _propTypes.default.func,\n dayContentRenderer: _propTypes.default.func\n};\nvar _default = DayCell;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\n\nvar _defaultRanges = require(\"../../defaultRanges\");\n\nvar _DayCell = require(\"../DayCell\");\n\nvar _InputRangeField = _interopRequireDefault(require(\"../InputRangeField\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar DefinedRange = /*#__PURE__*/function (_Component) {\n _inherits(DefinedRange, _Component);\n\n var _super = _createSuper(DefinedRange);\n\n function DefinedRange(props) {\n var _this;\n\n _classCallCheck(this, DefinedRange);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRangeChange\", function (range) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n ranges = _this$props.ranges,\n focusedRange = _this$props.focusedRange;\n var selectedRange = ranges[focusedRange[0]];\n if (!onChange || !selectedRange) return;\n onChange(_defineProperty({}, selectedRange.key || \"range\".concat(focusedRange[0] + 1), _objectSpread(_objectSpread({}, selectedRange), range)));\n });\n\n _this.state = {\n rangeOffset: 0,\n focusedInput: -1\n };\n return _this;\n }\n\n _createClass(DefinedRange, [{\n key: \"getRangeOptionValue\",\n value: function getRangeOptionValue(option) {\n var _this$props2 = this.props,\n _this$props2$ranges = _this$props2.ranges,\n ranges = _this$props2$ranges === void 0 ? [] : _this$props2$ranges,\n _this$props2$focusedR = _this$props2.focusedRange,\n focusedRange = _this$props2$focusedR === void 0 ? [] : _this$props2$focusedR;\n\n if (typeof option.getCurrentValue !== 'function') {\n return '';\n }\n\n var selectedRange = ranges[focusedRange[0]] || {};\n return option.getCurrentValue(selectedRange) || '';\n }\n }, {\n key: \"getSelectedRange\",\n value: function getSelectedRange(ranges, staticRange) {\n var focusedRangeIndex = ranges.findIndex(function (range) {\n if (!range.startDate || !range.endDate || range.disabled) return false;\n return staticRange.isSelected(range);\n });\n var selectedRange = ranges[focusedRangeIndex];\n return {\n selectedRange: selectedRange,\n focusedRangeIndex: focusedRangeIndex\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n headerContent = _this$props3.headerContent,\n footerContent = _this$props3.footerContent,\n onPreviewChange = _this$props3.onPreviewChange,\n inputRanges = _this$props3.inputRanges,\n staticRanges = _this$props3.staticRanges,\n ranges = _this$props3.ranges,\n renderStaticRangeLabel = _this$props3.renderStaticRangeLabel,\n rangeColors = _this$props3.rangeColors,\n className = _this$props3.className;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(_styles.default.definedRangesWrapper, className)\n }, headerContent, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _styles.default.staticRanges\n }, staticRanges.map(function (staticRange, i) {\n var _this2$getSelectedRan = _this2.getSelectedRange(ranges, staticRange),\n selectedRange = _this2$getSelectedRan.selectedRange,\n focusedRangeIndex = _this2$getSelectedRan.focusedRangeIndex;\n\n var labelContent;\n\n if (staticRange.hasCustomRendering) {\n labelContent = renderStaticRangeLabel(staticRange);\n } else {\n labelContent = staticRange.label;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: (0, _classnames.default)(_styles.default.staticRange, _defineProperty({}, _styles.default.staticRangeSelected, Boolean(selectedRange))),\n style: {\n color: selectedRange ? selectedRange.color || rangeColors[focusedRangeIndex] : null\n },\n key: i,\n onClick: function onClick() {\n return _this2.handleRangeChange(staticRange.range(_this2.props));\n },\n onFocus: function onFocus() {\n return onPreviewChange && onPreviewChange(staticRange.range(_this2.props));\n },\n onMouseOver: function onMouseOver() {\n return onPreviewChange && onPreviewChange(staticRange.range(_this2.props));\n },\n onMouseLeave: function onMouseLeave() {\n onPreviewChange && onPreviewChange();\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n tabIndex: -1,\n className: _styles.default.staticRangeLabel\n }, labelContent));\n })), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _styles.default.inputRanges\n }, inputRanges.map(function (rangeOption, i) {\n return /*#__PURE__*/_react.default.createElement(_InputRangeField.default, {\n key: i,\n styles: _styles.default,\n label: rangeOption.label,\n onFocus: function onFocus() {\n return _this2.setState({\n focusedInput: i,\n rangeOffset: 0\n });\n },\n onBlur: function onBlur() {\n return _this2.setState({\n rangeOffset: 0\n });\n },\n onChange: function onChange(value) {\n return _this2.handleRangeChange(rangeOption.range(value, _this2.props));\n },\n value: _this2.getRangeOptionValue(rangeOption)\n });\n })), footerContent);\n }\n }]);\n\n return DefinedRange;\n}(_react.Component);\n\nDefinedRange.propTypes = {\n inputRanges: _propTypes.default.array,\n staticRanges: _propTypes.default.array,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n onPreviewChange: _propTypes.default.func,\n onChange: _propTypes.default.func,\n footerContent: _propTypes.default.any,\n headerContent: _propTypes.default.any,\n rangeColors: _propTypes.default.arrayOf(_propTypes.default.string),\n className: _propTypes.default.string,\n renderStaticRangeLabel: _propTypes.default.func\n};\nDefinedRange.defaultProps = {\n inputRanges: _defaultRanges.defaultInputRanges,\n staticRanges: _defaultRanges.defaultStaticRanges,\n ranges: [],\n rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],\n focusedRange: [0, 0]\n};\nvar _default = DefinedRange;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar MIN = 0;\nvar MAX = 99999;\n\nvar InputRangeField = /*#__PURE__*/function (_Component) {\n _inherits(InputRangeField, _Component);\n\n var _super = _createSuper(InputRangeField);\n\n function InputRangeField(props, context) {\n var _this;\n\n _classCallCheck(this, InputRangeField);\n\n _this = _super.call(this, props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"onChange\", function (e) {\n var onChange = _this.props.onChange;\n var value = parseInt(e.target.value, 10);\n value = isNaN(value) ? 0 : Math.max(Math.min(MAX, value), MIN);\n onChange(value);\n });\n\n return _this;\n }\n\n _createClass(InputRangeField, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this$props = this.props,\n value = _this$props.value,\n label = _this$props.label,\n placeholder = _this$props.placeholder;\n return value !== nextProps.value || label !== nextProps.label || placeholder !== nextProps.placeholder;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n label = _this$props2.label,\n placeholder = _this$props2.placeholder,\n value = _this$props2.value,\n styles = _this$props2.styles,\n onBlur = _this$props2.onBlur,\n onFocus = _this$props2.onFocus;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.inputRange\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n className: styles.inputRangeInput,\n placeholder: placeholder,\n value: value,\n min: MIN,\n max: MAX,\n onChange: this.onChange,\n onFocus: onFocus,\n onBlur: onBlur\n }), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.inputRangeLabel\n }, label));\n }\n }]);\n\n return InputRangeField;\n}(_react.Component);\n\nInputRangeField.propTypes = {\n value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n label: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.node]).isRequired,\n placeholder: _propTypes.default.string,\n styles: _propTypes.default.shape({\n inputRange: _propTypes.default.string,\n inputRangeInput: _propTypes.default.string,\n inputRangeLabel: _propTypes.default.string\n }).isRequired,\n onBlur: _propTypes.default.func.isRequired,\n onFocus: _propTypes.default.func.isRequired,\n onChange: _propTypes.default.func.isRequired\n};\nInputRangeField.defaultProps = {\n value: '',\n placeholder: '-'\n};\nvar _default = InputRangeField;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _DayCell = _interopRequireWildcard(require(\"../DayCell\"));\n\nvar _eachDayOfInterval = _interopRequireDefault(require(\"date-fns/eachDayOfInterval\"));\n\nvar _isWithinInterval = _interopRequireDefault(require(\"date-fns/isWithinInterval\"));\n\nvar _isWeekend = _interopRequireDefault(require(\"date-fns/isWeekend\"));\n\nvar _isAfter = _interopRequireDefault(require(\"date-fns/isAfter\"));\n\nvar _isSameDay = _interopRequireDefault(require(\"date-fns/isSameDay\"));\n\nvar _isBefore = _interopRequireDefault(require(\"date-fns/isBefore\"));\n\nvar _endOfWeek = _interopRequireDefault(require(\"date-fns/endOfWeek\"));\n\nvar _startOfWeek = _interopRequireDefault(require(\"date-fns/startOfWeek\"));\n\nvar _endOfDay = _interopRequireDefault(require(\"date-fns/endOfDay\"));\n\nvar _startOfDay = _interopRequireDefault(require(\"date-fns/startOfDay\"));\n\nvar _format = _interopRequireDefault(require(\"date-fns/format\"));\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction renderWeekdays(styles, dateOptions, weekdayDisplayFormat) {\n var now = new Date();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.weekDays\n }, (0, _eachDayOfInterval.default)({\n start: (0, _startOfWeek.default)(now, dateOptions),\n end: (0, _endOfWeek.default)(now, dateOptions)\n }).map(function (day, i) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.weekDay,\n key: i\n }, (0, _format.default)(day, weekdayDisplayFormat, dateOptions));\n }));\n}\n\nvar Month = /*#__PURE__*/function (_PureComponent) {\n _inherits(Month, _PureComponent);\n\n var _super = _createSuper(Month);\n\n function Month() {\n _classCallCheck(this, Month);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Month, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var now = new Date();\n var _this$props = this.props,\n displayMode = _this$props.displayMode,\n focusedRange = _this$props.focusedRange,\n drag = _this$props.drag,\n styles = _this$props.styles,\n disabledDates = _this$props.disabledDates,\n disabledDay = _this$props.disabledDay;\n var minDate = this.props.minDate && (0, _startOfDay.default)(this.props.minDate);\n var maxDate = this.props.maxDate && (0, _endOfDay.default)(this.props.maxDate);\n var monthDisplay = (0, _utils.getMonthDisplayRange)(this.props.month, this.props.dateOptions, this.props.fixedHeight);\n var ranges = this.props.ranges;\n\n if (displayMode === 'dateRange' && drag.status) {\n var _drag$range = drag.range,\n startDate = _drag$range.startDate,\n endDate = _drag$range.endDate;\n ranges = ranges.map(function (range, i) {\n if (i !== focusedRange[0]) return range;\n return _objectSpread(_objectSpread({}, range), {}, {\n startDate: startDate,\n endDate: endDate\n });\n });\n }\n\n var showPreview = this.props.showPreview && !drag.disablePreview;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.month,\n style: this.props.style\n }, this.props.showMonthName ? /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.monthName\n }, (0, _format.default)(this.props.month, this.props.monthDisplayFormat, this.props.dateOptions)) : null, this.props.showWeekDays && renderWeekdays(styles, this.props.dateOptions, this.props.weekdayDisplayFormat), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.days,\n onMouseLeave: this.props.onMouseLeave\n }, (0, _eachDayOfInterval.default)({\n start: monthDisplay.start,\n end: monthDisplay.end\n }).map(function (day, index) {\n var isStartOfMonth = (0, _isSameDay.default)(day, monthDisplay.startDateOfMonth);\n var isEndOfMonth = (0, _isSameDay.default)(day, monthDisplay.endDateOfMonth);\n var isOutsideMinMax = minDate && (0, _isBefore.default)(day, minDate) || maxDate && (0, _isAfter.default)(day, maxDate);\n var isDisabledSpecifically = disabledDates.some(function (disabledDate) {\n return (0, _isSameDay.default)(disabledDate, day);\n });\n var isDisabledDay = disabledDay(day);\n return /*#__PURE__*/_react.default.createElement(_DayCell.default, _extends({}, _this.props, {\n ranges: ranges,\n day: day,\n preview: showPreview ? _this.props.preview : null,\n isWeekend: (0, _isWeekend.default)(day, _this.props.dateOptions),\n isToday: (0, _isSameDay.default)(day, now),\n isStartOfWeek: (0, _isSameDay.default)(day, (0, _startOfWeek.default)(day, _this.props.dateOptions)),\n isEndOfWeek: (0, _isSameDay.default)(day, (0, _endOfWeek.default)(day, _this.props.dateOptions)),\n isStartOfMonth: isStartOfMonth,\n isEndOfMonth: isEndOfMonth,\n key: index,\n disabled: isOutsideMinMax || isDisabledSpecifically || isDisabledDay,\n isPassive: !(0, _isWithinInterval.default)(day, {\n start: monthDisplay.startDateOfMonth,\n end: monthDisplay.endDateOfMonth\n }),\n styles: styles,\n onMouseDown: _this.props.onDragSelectionStart,\n onMouseUp: _this.props.onDragSelectionEnd,\n onMouseEnter: _this.props.onDragSelectionMove,\n dragRange: drag.range,\n drag: drag.status\n }));\n })));\n }\n }]);\n\n return Month;\n}(_react.PureComponent);\n\nMonth.defaultProps = {};\nMonth.propTypes = {\n style: _propTypes.default.object,\n styles: _propTypes.default.object,\n month: _propTypes.default.object,\n drag: _propTypes.default.object,\n dateOptions: _propTypes.default.object,\n disabledDates: _propTypes.default.array,\n disabledDay: _propTypes.default.func,\n preview: _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object\n }),\n showPreview: _propTypes.default.bool,\n displayMode: _propTypes.default.oneOf(['dateRange', 'date']),\n minDate: _propTypes.default.object,\n maxDate: _propTypes.default.object,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n onDragSelectionStart: _propTypes.default.func,\n onDragSelectionEnd: _propTypes.default.func,\n onDragSelectionMove: _propTypes.default.func,\n onMouseLeave: _propTypes.default.func,\n monthDisplayFormat: _propTypes.default.string,\n weekdayDisplayFormat: _propTypes.default.string,\n dayDisplayFormat: _propTypes.default.string,\n showWeekDays: _propTypes.default.bool,\n showMonthName: _propTypes.default.bool,\n fixedHeight: _propTypes.default.bool\n};\nvar _default = Month;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createStaticRanges = createStaticRanges;\nexports.defaultInputRanges = exports.defaultStaticRanges = void 0;\n\nvar _differenceInCalendarDays = _interopRequireDefault(require(\"date-fns/differenceInCalendarDays\"));\n\nvar _isSameDay = _interopRequireDefault(require(\"date-fns/isSameDay\"));\n\nvar _endOfWeek = _interopRequireDefault(require(\"date-fns/endOfWeek\"));\n\nvar _startOfWeek = _interopRequireDefault(require(\"date-fns/startOfWeek\"));\n\nvar _addMonths = _interopRequireDefault(require(\"date-fns/addMonths\"));\n\nvar _endOfMonth = _interopRequireDefault(require(\"date-fns/endOfMonth\"));\n\nvar _startOfMonth = _interopRequireDefault(require(\"date-fns/startOfMonth\"));\n\nvar _startOfDay = _interopRequireDefault(require(\"date-fns/startOfDay\"));\n\nvar _endOfDay = _interopRequireDefault(require(\"date-fns/endOfDay\"));\n\nvar _addDays = _interopRequireDefault(require(\"date-fns/addDays\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar defineds = {\n startOfWeek: (0, _startOfWeek.default)(new Date()),\n endOfWeek: (0, _endOfWeek.default)(new Date()),\n startOfLastWeek: (0, _startOfWeek.default)((0, _addDays.default)(new Date(), -7)),\n endOfLastWeek: (0, _endOfWeek.default)((0, _addDays.default)(new Date(), -7)),\n startOfToday: (0, _startOfDay.default)(new Date()),\n endOfToday: (0, _endOfDay.default)(new Date()),\n startOfYesterday: (0, _startOfDay.default)((0, _addDays.default)(new Date(), -1)),\n endOfYesterday: (0, _endOfDay.default)((0, _addDays.default)(new Date(), -1)),\n startOfMonth: (0, _startOfMonth.default)(new Date()),\n endOfMonth: (0, _endOfMonth.default)(new Date()),\n startOfLastMonth: (0, _startOfMonth.default)((0, _addMonths.default)(new Date(), -1)),\n endOfLastMonth: (0, _endOfMonth.default)((0, _addMonths.default)(new Date(), -1))\n};\nvar staticRangeHandler = {\n range: {},\n isSelected: function isSelected(range) {\n var definedRange = this.range();\n return (0, _isSameDay.default)(range.startDate, definedRange.startDate) && (0, _isSameDay.default)(range.endDate, definedRange.endDate);\n }\n};\n\nfunction createStaticRanges(ranges) {\n return ranges.map(function (range) {\n return _objectSpread(_objectSpread({}, staticRangeHandler), range);\n });\n}\n\nvar defaultStaticRanges = createStaticRanges([{\n label: 'Today',\n range: function range() {\n return {\n startDate: defineds.startOfToday,\n endDate: defineds.endOfToday\n };\n }\n}, {\n label: 'Yesterday',\n range: function range() {\n return {\n startDate: defineds.startOfYesterday,\n endDate: defineds.endOfYesterday\n };\n }\n}, {\n label: 'This Week',\n range: function range() {\n return {\n startDate: defineds.startOfWeek,\n endDate: defineds.endOfWeek\n };\n }\n}, {\n label: 'Last Week',\n range: function range() {\n return {\n startDate: defineds.startOfLastWeek,\n endDate: defineds.endOfLastWeek\n };\n }\n}, {\n label: 'This Month',\n range: function range() {\n return {\n startDate: defineds.startOfMonth,\n endDate: defineds.endOfMonth\n };\n }\n}, {\n label: 'Last Month',\n range: function range() {\n return {\n startDate: defineds.startOfLastMonth,\n endDate: defineds.endOfLastMonth\n };\n }\n}]);\nexports.defaultStaticRanges = defaultStaticRanges;\nvar defaultInputRanges = [{\n label: 'days up to today',\n range: function range(value) {\n return {\n startDate: (0, _addDays.default)(defineds.startOfToday, (Math.max(Number(value), 1) - 1) * -1),\n endDate: defineds.endOfToday\n };\n },\n getCurrentValue: function getCurrentValue(range) {\n if (!(0, _isSameDay.default)(range.endDate, defineds.endOfToday)) return '-';\n if (!range.startDate) return '∞';\n return (0, _differenceInCalendarDays.default)(defineds.endOfToday, range.startDate) + 1;\n }\n}, {\n label: 'days starting today',\n range: function range(value) {\n var today = new Date();\n return {\n startDate: today,\n endDate: (0, _addDays.default)(today, Math.max(Number(value), 1) - 1)\n };\n },\n getCurrentValue: function getCurrentValue(range) {\n if (!(0, _isSameDay.default)(range.startDate, defineds.startOfToday)) return '-';\n if (!range.endDate) return '∞';\n return (0, _differenceInCalendarDays.default)(range.endDate, defineds.startOfToday) + 1;\n }\n}];\nexports.defaultInputRanges = defaultInputRanges;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DateRange\", {\n enumerable: true,\n get: function get() {\n return _DateRange.default;\n }\n});\nObject.defineProperty(exports, \"Calendar\", {\n enumerable: true,\n get: function get() {\n return _Calendar.default;\n }\n});\nObject.defineProperty(exports, \"DateRangePicker\", {\n enumerable: true,\n get: function get() {\n return _DateRangePicker.default;\n }\n});\nObject.defineProperty(exports, \"DefinedRange\", {\n enumerable: true,\n get: function get() {\n return _DefinedRange.default;\n }\n});\nObject.defineProperty(exports, \"defaultInputRanges\", {\n enumerable: true,\n get: function get() {\n return _defaultRanges.defaultInputRanges;\n }\n});\nObject.defineProperty(exports, \"defaultStaticRanges\", {\n enumerable: true,\n get: function get() {\n return _defaultRanges.defaultStaticRanges;\n }\n});\nObject.defineProperty(exports, \"createStaticRanges\", {\n enumerable: true,\n get: function get() {\n return _defaultRanges.createStaticRanges;\n }\n});\n\nvar _DateRange = _interopRequireDefault(require(\"./components/DateRange\"));\n\nvar _Calendar = _interopRequireDefault(require(\"./components/Calendar\"));\n\nvar _DateRangePicker = _interopRequireDefault(require(\"./components/DateRangePicker\"));\n\nvar _DefinedRange = _interopRequireDefault(require(\"./components/DefinedRange\"));\n\nvar _defaultRanges = require(\"./defaultRanges\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n dateRangeWrapper: 'rdrDateRangeWrapper',\n calendarWrapper: 'rdrCalendarWrapper',\n dateDisplay: 'rdrDateDisplay',\n dateDisplayItem: 'rdrDateDisplayItem',\n dateDisplayItemActive: 'rdrDateDisplayItemActive',\n monthAndYearWrapper: 'rdrMonthAndYearWrapper',\n monthAndYearPickers: 'rdrMonthAndYearPickers',\n nextPrevButton: 'rdrNextPrevButton',\n month: 'rdrMonth',\n weekDays: 'rdrWeekDays',\n weekDay: 'rdrWeekDay',\n days: 'rdrDays',\n day: 'rdrDay',\n dayNumber: 'rdrDayNumber',\n dayPassive: 'rdrDayPassive',\n dayToday: 'rdrDayToday',\n dayStartOfWeek: 'rdrDayStartOfWeek',\n dayEndOfWeek: 'rdrDayEndOfWeek',\n daySelected: 'rdrDaySelected',\n dayDisabled: 'rdrDayDisabled',\n dayStartOfMonth: 'rdrDayStartOfMonth',\n dayEndOfMonth: 'rdrDayEndOfMonth',\n dayWeekend: 'rdrDayWeekend',\n dayStartPreview: 'rdrDayStartPreview',\n dayInPreview: 'rdrDayInPreview',\n dayEndPreview: 'rdrDayEndPreview',\n dayHovered: 'rdrDayHovered',\n dayActive: 'rdrDayActive',\n inRange: 'rdrInRange',\n endEdge: 'rdrEndEdge',\n startEdge: 'rdrStartEdge',\n prevButton: 'rdrPprevButton',\n nextButton: 'rdrNextButton',\n selected: 'rdrSelected',\n months: 'rdrMonths',\n monthPicker: 'rdrMonthPicker',\n yearPicker: 'rdrYearPicker',\n dateDisplayWrapper: 'rdrDateDisplayWrapper',\n definedRangesWrapper: 'rdrDefinedRangesWrapper',\n staticRanges: 'rdrStaticRanges',\n staticRange: 'rdrStaticRange',\n inputRanges: 'rdrInputRanges',\n inputRange: 'rdrInputRange',\n inputRangeInput: 'rdrInputRangeInput',\n dateRangePickerWrapper: 'rdrDateRangePickerWrapper',\n staticRangeLabel: 'rdrStaticRangeLabel',\n staticRangeSelected: 'rdrStaticRangeSelected',\n monthName: 'rdrMonthName',\n infiniteMonths: 'rdrInfiniteMonths',\n monthsVertical: 'rdrMonthsVertical',\n monthsHorizontal: 'rdrMonthsHorizontal'\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calcFocusDate = calcFocusDate;\nexports.findNextRangeIndex = findNextRangeIndex;\nexports.getMonthDisplayRange = getMonthDisplayRange;\nexports.generateStyles = generateStyles;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _addDays = _interopRequireDefault(require(\"date-fns/addDays\"));\n\nvar _differenceInCalendarMonths = _interopRequireDefault(require(\"date-fns/differenceInCalendarMonths\"));\n\nvar _differenceInCalendarDays = _interopRequireDefault(require(\"date-fns/differenceInCalendarDays\"));\n\nvar _endOfWeek = _interopRequireDefault(require(\"date-fns/endOfWeek\"));\n\nvar _startOfWeek = _interopRequireDefault(require(\"date-fns/startOfWeek\"));\n\nvar _endOfMonth = _interopRequireDefault(require(\"date-fns/endOfMonth\"));\n\nvar _startOfMonth = _interopRequireDefault(require(\"date-fns/startOfMonth\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction calcFocusDate(currentFocusedDate, props) {\n var shownDate = props.shownDate,\n date = props.date,\n months = props.months,\n ranges = props.ranges,\n focusedRange = props.focusedRange,\n displayMode = props.displayMode; // find primary date according the props\n\n var targetInterval;\n\n if (displayMode === 'dateRange') {\n var range = ranges[focusedRange[0]] || {};\n targetInterval = {\n start: range.startDate,\n end: range.endDate\n };\n } else {\n targetInterval = {\n start: date,\n end: date\n };\n }\n\n targetInterval.start = (0, _startOfMonth.default)(targetInterval.start || new Date());\n targetInterval.end = (0, _endOfMonth.default)(targetInterval.end || targetInterval.start);\n var targetDate = targetInterval.start || targetInterval.end || shownDate || new Date(); // initial focus\n\n if (!currentFocusedDate) return shownDate || targetDate; // // just return targetDate for native scrolled calendars\n // if (props.scroll.enabled) return targetDate;\n\n if ((0, _differenceInCalendarMonths.default)(targetInterval.start, targetInterval.end) > months) {\n // don't change focused if new selection in view area\n return currentFocusedDate;\n }\n\n return targetDate;\n}\n\nfunction findNextRangeIndex(ranges) {\n var currentRangeIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n var nextIndex = ranges.findIndex(function (range, i) {\n return i > currentRangeIndex && range.autoFocus !== false && !range.disabled;\n });\n if (nextIndex !== -1) return nextIndex;\n return ranges.findIndex(function (range) {\n return range.autoFocus !== false && !range.disabled;\n });\n}\n\nfunction getMonthDisplayRange(date, dateOptions, fixedHeight) {\n var startDateOfMonth = (0, _startOfMonth.default)(date, dateOptions);\n var endDateOfMonth = (0, _endOfMonth.default)(date, dateOptions);\n var startDateOfCalendar = (0, _startOfWeek.default)(startDateOfMonth, dateOptions);\n var endDateOfCalendar = (0, _endOfWeek.default)(endDateOfMonth, dateOptions);\n\n if (fixedHeight && (0, _differenceInCalendarDays.default)(endDateOfCalendar, startDateOfCalendar) <= 34) {\n endDateOfCalendar = (0, _addDays.default)(endDateOfCalendar, 7);\n }\n\n return {\n start: startDateOfCalendar,\n end: endDateOfCalendar,\n startDateOfMonth: startDateOfMonth,\n endDateOfMonth: endDateOfMonth\n };\n}\n\nfunction generateStyles(sources) {\n if (!sources.length) return {};\n var generatedStyles = sources.filter(function (source) {\n return Boolean(source);\n }).reduce(function (styles, styleSource) {\n Object.keys(styleSource).forEach(function (key) {\n styles[key] = (0, _classnames.default)(styles[key], styleSource[key]);\n });\n return styles;\n }, {});\n return generatedStyles;\n}","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 length) size = length;\n from = type === 'simple' || !from ? 0 : Math.max(Math.min(from, length - size), 0);\n\n if (mod = from % itemsPerRow) {\n from -= mod;\n size += mod;\n }\n\n if (from === state.from && size == state.size) return state;\n return _objectSpread(_objectSpread({}, state), {}, {\n from: from,\n size: size\n });\n };\n\n module.exports = (_temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(ReactList, _Component);\n\n var _super = _createSuper(ReactList);\n\n _createClass(ReactList, null, [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var newState = constrain(props, state);\n return newState === state ? null : newState;\n }\n }]);\n\n function ReactList(props) {\n var _this;\n\n _classCallCheck(this, ReactList);\n\n _this = _super.call(this, props);\n _this.state = constrain(props, {\n itemsPerRow: 1,\n from: props.initialIndex,\n size: 0\n });\n _this.cache = {};\n _this.cachedScrollPosition = null;\n _this.prevPrevState = {};\n _this.unstable = false;\n _this.updateCounter = 0;\n return _this;\n }\n\n _createClass(ReactList, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateFrameAndClearCache = this.updateFrameAndClearCache.bind(this);\n window.addEventListener('resize', this.updateFrameAndClearCache);\n this.updateFrame(this.scrollTo.bind(this, this.props.initialIndex));\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n // Viewport scroll is no longer useful if axis changes\n if (this.props.axis !== prevProps.axis) this.clearSizeCache(); // If the list has reached an unstable state, prevent an infinite loop.\n\n if (this.unstable) return;\n\n if (++this.updateCounter > MAX_SYNC_UPDATES) {\n this.unstable = true;\n return console.error(UNSTABLE_MESSAGE);\n }\n\n if (!this.updateCounterTimeoutId) {\n this.updateCounterTimeoutId = setTimeout(function () {\n _this2.updateCounter = 0;\n delete _this2.updateCounterTimeoutId;\n }, 0);\n }\n\n this.updateFrame();\n }\n }, {\n key: \"maybeSetState\",\n value: function maybeSetState(b, cb) {\n if (isEqualSubset(this.state, b)) return cb();\n this.setState(b, cb);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.updateFrameAndClearCache);\n this.scrollParent.removeEventListener('scroll', this.updateFrameAndClearCache, PASSIVE);\n this.scrollParent.removeEventListener('mousewheel', NOOP, PASSIVE);\n }\n }, {\n key: \"getOffset\",\n value: function getOffset(el) {\n var axis = this.props.axis;\n var offset = el[CLIENT_START_KEYS[axis]] || 0;\n var offsetKey = OFFSET_START_KEYS[axis];\n\n do {\n offset += el[offsetKey] || 0;\n } while (el = el.offsetParent);\n\n return offset;\n }\n }, {\n key: \"getEl\",\n value: function getEl() {\n return this.el || this.items;\n }\n }, {\n key: \"getScrollPosition\",\n value: function getScrollPosition() {\n // Cache scroll position as this causes a forced synchronous layout.\n if (typeof this.cachedScrollPosition === 'number') {\n return this.cachedScrollPosition;\n }\n\n var scrollParent = this.scrollParent;\n var axis = this.props.axis;\n var scrollKey = SCROLL_START_KEYS[axis];\n var actual = scrollParent === window ? // Firefox always returns document.body[scrollKey] as 0 and Chrome/Safari\n // always return document.documentElement[scrollKey] as 0, so take\n // whichever has a value.\n document.body[scrollKey] || document.documentElement[scrollKey] : scrollParent[scrollKey];\n var max = this.getScrollSize() - this.props.scrollParentViewportSizeGetter(this);\n var scroll = Math.max(0, Math.min(actual, max));\n var el = this.getEl();\n this.cachedScrollPosition = this.getOffset(scrollParent) + scroll - this.getOffset(el);\n return this.cachedScrollPosition;\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(offset) {\n var scrollParent = this.scrollParent;\n var axis = this.props.axis;\n offset += this.getOffset(this.getEl());\n if (scrollParent === window) return window.scrollTo(0, offset);\n offset -= this.getOffset(this.scrollParent);\n scrollParent[SCROLL_START_KEYS[axis]] = offset;\n }\n }, {\n key: \"getScrollSize\",\n value: function getScrollSize() {\n var scrollParent = this.scrollParent;\n var _document = document,\n body = _document.body,\n documentElement = _document.documentElement;\n var key = SCROLL_SIZE_KEYS[this.props.axis];\n return scrollParent === window ? Math.max(body[key], documentElement[key]) : scrollParent[key];\n }\n }, {\n key: \"hasDeterminateSize\",\n value: function hasDeterminateSize() {\n var _this$props = this.props,\n itemSizeGetter = _this$props.itemSizeGetter,\n type = _this$props.type;\n return type === 'uniform' || itemSizeGetter;\n }\n }, {\n key: \"getStartAndEnd\",\n value: function getStartAndEnd() {\n var threshold = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.threshold;\n var scroll = this.getScrollPosition();\n var start = Math.max(0, scroll - threshold);\n var end = scroll + this.props.scrollParentViewportSizeGetter(this) + threshold;\n\n if (this.hasDeterminateSize()) {\n end = Math.min(end, this.getSpaceBefore(this.props.length));\n }\n\n return {\n start: start,\n end: end\n };\n }\n }, {\n key: \"getItemSizeAndItemsPerRow\",\n value: function getItemSizeAndItemsPerRow() {\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n useStaticSize = _this$props2.useStaticSize;\n var _this$state = this.state,\n itemSize = _this$state.itemSize,\n itemsPerRow = _this$state.itemsPerRow;\n\n if (useStaticSize && itemSize && itemsPerRow) {\n return {\n itemSize: itemSize,\n itemsPerRow: itemsPerRow\n };\n }\n\n var itemEls = this.items.children;\n if (!itemEls.length) return {};\n var firstEl = itemEls[0]; // Firefox has a problem where it will return a *slightly* (less than\n // thousandths of a pixel) different size for the same element between\n // renders. This can cause an infinite render loop, so only change the\n // itemSize when it is significantly different.\n\n var firstElSize = firstEl[OFFSET_SIZE_KEYS[axis]];\n var delta = Math.abs(firstElSize - itemSize);\n if (isNaN(delta) || delta >= 1) itemSize = firstElSize;\n if (!itemSize) return {};\n var startKey = OFFSET_START_KEYS[axis];\n var firstStart = firstEl[startKey];\n itemsPerRow = 1;\n\n for (var item = itemEls[itemsPerRow]; item && item[startKey] === firstStart; item = itemEls[itemsPerRow]) {\n ++itemsPerRow;\n }\n\n return {\n itemSize: itemSize,\n itemsPerRow: itemsPerRow\n };\n }\n }, {\n key: \"clearSizeCache\",\n value: function clearSizeCache() {\n this.cachedScrollPosition = null;\n } // Called by 'scroll' and 'resize' events, clears scroll position cache.\n\n }, {\n key: \"updateFrameAndClearCache\",\n value: function updateFrameAndClearCache(cb) {\n this.clearSizeCache();\n return this.updateFrame(cb);\n }\n }, {\n key: \"updateFrame\",\n value: function updateFrame(cb) {\n this.updateScrollParent();\n if (typeof cb != 'function') cb = NOOP;\n\n switch (this.props.type) {\n case 'simple':\n return this.updateSimpleFrame(cb);\n\n case 'variable':\n return this.updateVariableFrame(cb);\n\n case 'uniform':\n return this.updateUniformFrame(cb);\n }\n }\n }, {\n key: \"updateScrollParent\",\n value: function updateScrollParent() {\n var prev = this.scrollParent;\n this.scrollParent = this.props.scrollParentGetter(this);\n if (prev === this.scrollParent) return;\n\n if (prev) {\n prev.removeEventListener('scroll', this.updateFrameAndClearCache);\n prev.removeEventListener('mousewheel', NOOP);\n } // If we have a new parent, cached parent dimensions are no longer useful.\n\n\n this.clearSizeCache();\n this.scrollParent.addEventListener('scroll', this.updateFrameAndClearCache, PASSIVE); // You have to attach mousewheel listener to the scrollable element.\n // Just an empty listener. After that onscroll events will be fired synchronously.\n\n this.scrollParent.addEventListener('mousewheel', NOOP, PASSIVE);\n }\n }, {\n key: \"updateSimpleFrame\",\n value: function updateSimpleFrame(cb) {\n var _this$getStartAndEnd = this.getStartAndEnd(),\n end = _this$getStartAndEnd.end;\n\n var itemEls = this.items.children;\n var elEnd = 0;\n\n if (itemEls.length) {\n var axis = this.props.axis;\n var firstItemEl = itemEls[0];\n var lastItemEl = itemEls[itemEls.length - 1];\n elEnd = this.getOffset(lastItemEl) + lastItemEl[OFFSET_SIZE_KEYS[axis]] - this.getOffset(firstItemEl);\n }\n\n if (elEnd > end) return cb();\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n length = _this$props3.length;\n var size = Math.min(this.state.size + pageSize, length);\n this.maybeSetState({\n size: size\n }, cb);\n }\n }, {\n key: \"updateVariableFrame\",\n value: function updateVariableFrame(cb) {\n if (!this.props.itemSizeGetter) this.cacheSizes();\n\n var _this$getStartAndEnd2 = this.getStartAndEnd(),\n start = _this$getStartAndEnd2.start,\n end = _this$getStartAndEnd2.end;\n\n var _this$props4 = this.props,\n length = _this$props4.length,\n pageSize = _this$props4.pageSize;\n var space = 0;\n var from = 0;\n var size = 0;\n var maxFrom = length - 1;\n\n while (from < maxFrom) {\n var itemSize = this.getSizeOfItem(from);\n if (itemSize == null || space + itemSize > start) break;\n space += itemSize;\n ++from;\n }\n\n var maxSize = length - from;\n\n while (size < maxSize && space < end) {\n var _itemSize = this.getSizeOfItem(from + size);\n\n if (_itemSize == null) {\n size = Math.min(size + pageSize, maxSize);\n break;\n }\n\n space += _itemSize;\n ++size;\n }\n\n this.maybeSetState(constrain(this.props, {\n from: from,\n itemsPerRow: 1,\n size: size\n }), cb);\n }\n }, {\n key: \"updateUniformFrame\",\n value: function updateUniformFrame(cb) {\n var _this$getItemSizeAndI = this.getItemSizeAndItemsPerRow(),\n itemSize = _this$getItemSizeAndI.itemSize,\n itemsPerRow = _this$getItemSizeAndI.itemsPerRow;\n\n if (!itemSize || !itemsPerRow) return cb();\n\n var _this$getStartAndEnd3 = this.getStartAndEnd(),\n start = _this$getStartAndEnd3.start,\n end = _this$getStartAndEnd3.end;\n\n var _constrain = constrain(this.props, {\n from: Math.floor(start / itemSize) * itemsPerRow,\n size: (Math.ceil((end - start) / itemSize) + 1) * itemsPerRow,\n itemsPerRow: itemsPerRow\n }),\n from = _constrain.from,\n size = _constrain.size;\n\n return this.maybeSetState({\n itemsPerRow: itemsPerRow,\n from: from,\n itemSize: itemSize,\n size: size\n }, cb);\n }\n }, {\n key: \"getSpaceBefore\",\n value: function getSpaceBefore(index) {\n var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (cache[index] != null) return cache[index]; // Try the static itemSize.\n\n var _this$state2 = this.state,\n itemSize = _this$state2.itemSize,\n itemsPerRow = _this$state2.itemsPerRow;\n\n if (itemSize) {\n return cache[index] = Math.floor(index / itemsPerRow) * itemSize;\n } // Find the closest space to index there is a cached value for.\n\n\n var from = index;\n\n while (from > 0 && cache[--from] == null) {\n ;\n } // Finally, accumulate sizes of items from - index.\n\n\n var space = cache[from] || 0;\n\n for (var i = from; i < index; ++i) {\n cache[i] = space;\n\n var _itemSize2 = this.getSizeOfItem(i);\n\n if (_itemSize2 == null) break;\n space += _itemSize2;\n }\n\n return cache[index] = space;\n }\n }, {\n key: \"cacheSizes\",\n value: function cacheSizes() {\n var cache = this.cache;\n var from = this.state.from;\n var itemEls = this.items.children;\n var sizeKey = OFFSET_SIZE_KEYS[this.props.axis];\n\n for (var i = 0, l = itemEls.length; i < l; ++i) {\n cache[from + i] = itemEls[i][sizeKey];\n }\n }\n }, {\n key: \"getSizeOfItem\",\n value: function getSizeOfItem(index) {\n var cache = this.cache,\n items = this.items;\n var _this$props5 = this.props,\n axis = _this$props5.axis,\n itemSizeGetter = _this$props5.itemSizeGetter,\n itemSizeEstimator = _this$props5.itemSizeEstimator,\n type = _this$props5.type;\n var _this$state3 = this.state,\n from = _this$state3.from,\n itemSize = _this$state3.itemSize,\n size = _this$state3.size; // Try the static itemSize.\n\n if (itemSize) return itemSize; // Try the itemSizeGetter.\n\n if (itemSizeGetter) return itemSizeGetter(index); // Try the cache.\n\n if (index in cache) return cache[index]; // Try the DOM.\n\n if (type === 'simple' && index >= from && index < from + size && items) {\n var itemEl = items.children[index - from];\n if (itemEl) return itemEl[OFFSET_SIZE_KEYS[axis]];\n } // Try the itemSizeEstimator.\n\n\n if (itemSizeEstimator) return itemSizeEstimator(index, cache);\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(index) {\n if (index != null) this.setScroll(this.getSpaceBefore(index));\n }\n }, {\n key: \"scrollAround\",\n value: function scrollAround(index) {\n var current = this.getScrollPosition();\n var bottom = this.getSpaceBefore(index);\n var top = bottom - this.props.scrollParentViewportSizeGetter(this) + this.getSizeOfItem(index);\n var min = Math.min(top, bottom);\n var max = Math.max(top, bottom);\n if (current <= min) return this.setScroll(min);\n if (current > max) return this.setScroll(max);\n }\n }, {\n key: \"getVisibleRange\",\n value: function getVisibleRange() {\n var _this$state4 = this.state,\n from = _this$state4.from,\n size = _this$state4.size;\n\n var _this$getStartAndEnd4 = this.getStartAndEnd(0),\n start = _this$getStartAndEnd4.start,\n end = _this$getStartAndEnd4.end;\n\n var cache = {};\n var first, last;\n\n for (var i = from; i < from + size; ++i) {\n var itemStart = this.getSpaceBefore(i, cache);\n var itemEnd = itemStart + this.getSizeOfItem(i);\n if (first == null && itemEnd > start) first = i;\n if (first != null && itemStart < end) last = i;\n }\n\n return [first, last];\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this3 = this;\n\n var _this$props6 = this.props,\n itemRenderer = _this$props6.itemRenderer,\n itemsRenderer = _this$props6.itemsRenderer;\n var _this$state5 = this.state,\n from = _this$state5.from,\n size = _this$state5.size;\n var items = [];\n\n for (var i = 0; i < size; ++i) {\n items.push(itemRenderer(from + i, i));\n }\n\n return itemsRenderer(items, function (c) {\n return _this3.items = c;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props7 = this.props,\n axis = _this$props7.axis,\n length = _this$props7.length,\n type = _this$props7.type,\n useTranslate3d = _this$props7.useTranslate3d;\n var _this$state6 = this.state,\n from = _this$state6.from,\n itemsPerRow = _this$state6.itemsPerRow;\n var items = this.renderItems();\n if (type === 'simple') return items;\n var style = {\n position: 'relative'\n };\n var cache = {};\n var bottom = Math.ceil(length / itemsPerRow) * itemsPerRow;\n var size = this.getSpaceBefore(bottom, cache);\n\n if (size) {\n style[SIZE_KEYS[axis]] = size;\n if (axis === 'x') style.overflowX = 'hidden';\n }\n\n var offset = this.getSpaceBefore(from, cache);\n var x = axis === 'x' ? offset : 0;\n var y = axis === 'y' ? offset : 0;\n var transform = useTranslate3d ? \"translate3d(\".concat(x, \"px, \").concat(y, \"px, 0)\") : \"translate(\".concat(x, \"px, \").concat(y, \"px)\");\n var listStyle = {\n msTransform: transform,\n WebkitTransform: transform,\n transform: transform\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style,\n ref: function ref(c) {\n return _this4.el = c;\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: listStyle\n }, items));\n }\n }]);\n\n return ReactList;\n }(_react.Component), _defineProperty(_class, \"displayName\", 'ReactList'), _defineProperty(_class, \"propTypes\", {\n axis: _propTypes[\"default\"].oneOf(['x', 'y']),\n initialIndex: _propTypes[\"default\"].number,\n itemRenderer: _propTypes[\"default\"].func,\n itemSizeEstimator: _propTypes[\"default\"].func,\n itemSizeGetter: _propTypes[\"default\"].func,\n itemsRenderer: _propTypes[\"default\"].func,\n length: _propTypes[\"default\"].number,\n minSize: _propTypes[\"default\"].number,\n pageSize: _propTypes[\"default\"].number,\n scrollParentGetter: _propTypes[\"default\"].func,\n scrollParentViewportSizeGetter: _propTypes[\"default\"].func,\n threshold: _propTypes[\"default\"].number,\n type: _propTypes[\"default\"].oneOf(['simple', 'variable', 'uniform']),\n useStaticSize: _propTypes[\"default\"].bool,\n useTranslate3d: _propTypes[\"default\"].bool\n }), _defineProperty(_class, \"defaultProps\", {\n axis: 'y',\n itemRenderer: function itemRenderer(index, key) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: key\n }, index);\n },\n itemsRenderer: function itemsRenderer(items, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: ref\n }, items);\n },\n length: 0,\n minSize: 1,\n pageSize: 10,\n scrollParentGetter: defaultScrollParentGetter,\n scrollParentViewportSizeGetter: defaultScrollParentViewportSizeGetter,\n threshold: 100,\n type: 'simple',\n useStaticSize: false,\n useTranslate3d: false\n }), _temp);\n});\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\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 = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = exports.extractObject = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","function shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqualArrays, shallowEqualObjects };\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import * as React from 'react';\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n var _gT$ContextKey;\n\n if (!React.createContext) return {};\n const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n let realContext = contextMap.get(React.createContext);\n\n if (!realContext) {\n realContext = React.createContext(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n contextMap.set(React.createContext, realContext);\n }\n\n return realContext;\n}\n\nexport const ReactReduxContext = /*#__PURE__*/getContext();\nexport default ReactReduxContext;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n\n/**\r\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\r\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext() {\n const contextValue = useContext(context);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n };\n}\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport const useReduxContext = /*#__PURE__*/createReduxContextHook();","import { useCallback, useDebugValue, useRef } from 'react';\nimport { createReduxContextHook, useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : createReduxContextHook(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState,\n stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = useRef(true);\n const wrappedSelector = useCallback({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare,\n stack\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.', {\n stack\n });\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners; // Reasons to keep the subscription active\n\n let subscriptionsAmount = 0; // Is this specific subscription subscribed (or only nested ones?)\n\n let selfSubscribed = false;\n\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener); // cleanup nested sub\n\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return selfSubscribed;\n }\n\n function trySubscribe() {\n subscriptionsAmount++;\n\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--;\n\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}","import * as React from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a , ` + `or pass a custom React context provider to and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = React.useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","import * as React from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","import { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext, createReduxContextHook } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context = ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === ReactReduxContext ? useDefaultReduxContext : // @ts-ignore\n createReduxContextHook(context);\n return function useStore() {\n const {\n store\n } = useReduxContext(); // @ts-ignore\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport const useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context = ReactReduxContext) {\n const useStore = // @ts-ignore\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport const useDispatch = /*#__PURE__*/createDispatchHook();","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n *\n * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing\n * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global).\n *\n * Why worldwide?\n *\n * Why not?\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Integration } from '@sentry/types';\n\nimport type { SdkSource } from './env';\n\n/** Internal global with common properties and Sentry extensions */\nexport interface InternalGlobal {\n navigator?: { userAgent?: string };\n console: Console;\n Sentry?: {\n Integrations?: Integration[];\n };\n onerror?: {\n (event: object | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n onunhandledrejection?: {\n (event: unknown): boolean;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n SENTRY_SDK_SOURCE?: SdkSource;\n /**\n * Debug IDs are indirectly injected by Sentry CLI or bundler plugins to directly reference a particular source map\n * for resolving of a source file. The injected code will place an entry into the record for each loaded bundle/JS\n * file.\n */\n _sentryDebugIds?: Record;\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n /**\n * Raw module metadata that is injected by bundler plugins.\n *\n * Keys are `error.stack` strings, values are the metadata.\n */\n _sentryModuleMetadata?: Record;\n}\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj: { Math?: Math }): any | undefined {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nexport const GLOBAL_OBJ: InternalGlobal =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function (this: any) {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nexport function getGlobalObject(): T & InternalGlobal {\n return GLOBAL_OBJ as T & InternalGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name: keyof InternalGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const gbl = (obj || GLOBAL_OBJ) as InternalGlobal;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n","import type { ConsoleLevel } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS: readonly ConsoleLevel[] = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] as const;\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record;\n\n/** This may be mutated by the console instrumentation. */\nexport const originalConsoleMethods: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key in ConsoleLevel]?: (...args: any[]) => void;\n} = {};\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n isEnabled(): boolean;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console as Console;\n const wrappedFuncs: Partial = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) as ConsoleLevel[];\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] as LoggerMethod;\n wrappedFuncs[level] = console[level] as LoggerMethod | undefined;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] as LoggerMethod;\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\nexport const logger = makeLogger();\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport type { ParameterizedString, PolymorphicEvent, Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat: unknown, className: string): boolean {\n return objectToString.call(wat) === `[object ${className}]`;\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 */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isParameterizedString(wat: unknown): wat is ParameterizedString {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): wat is PolymorphicEvent {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\ninterface VueViewModel {\n // Vue3\n __isVue?: boolean;\n // Vue2\n _isVue?: boolean;\n}\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isVueViewModel(wat: unknown): boolean {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat as VueViewModel).__isVue || (wat as VueViewModel)._isVue));\n}\n","import { isString } from './is';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\ntype SimpleNode = {\n parentNode: SimpleNode;\n} | null;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(\n elem: unknown,\n options: string[] | { keyAttrs?: string[]; maxStringLength?: number } = {},\n): string {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset && elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getDomElement(selector: string): E | null {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) as unknown as E;\n }\n return null;\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` attribute. This attribute is added at build-time\n * by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nexport function getComponentName(elem: unknown): string | null {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement && currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n","import { isRegExp, isString, isVueViewModel } from './is';\n\nexport { escapeStringForRegex } from './vendor/escapeStringForRegex';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nexport function isMatchingPattern(\n value: string,\n pattern: RegExp | string,\n requireExactStringMatch: boolean = false,\n): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nexport function stringMatchesSomePattern(\n testString: string,\n patterns: Array = [],\n requireExactStringMatch: boolean = false,\n): boolean {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { DEBUG_BUILD } from './debug-build';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { logger } from './logger';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: object, name: string, value: unknown): void {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nexport function convertToPlainObject(\n value: V,\n):\n | {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n }\n | {\n [ownProps: string]: unknown;\n message: string;\n name: string;\n stack?: string;\n }\n | V {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj: {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n } = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: unknown): { [key: string]: unknown } {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj as Record)[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception: Record, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nexport function dropUndefinedKeys(inputValue: T): T {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue: T, memoizationMap: Map): T {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: { [key: string]: any } = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue as T;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: unknown[] = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item: unknown) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue as unknown as T;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input: unknown): input is Record {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) as { constructor: { name: string } }).constructor.name;\n return !name || name === 'Object';\n } catch {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\nimport { GLOBAL_OBJ } from './worldwide';\n\ninterface CryptoInternal {\n getRandomValues(array: Uint8Array): Uint8Array;\n randomUUID?(): string;\n}\n\n/** An interface for common properties on global */\ninterface CryptoGlobal {\n msCrypto?: CryptoInternal;\n crypto?: CryptoInternal;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const gbl = GLOBAL_OBJ as typeof GLOBAL_OBJ & CryptoGlobal;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = (): number => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] as unknown as string) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c as unknown as number) ^ ((getRandomByte() & 15) >> ((c as unknown as number) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nexport function arrayify(maybeArray: T | T[]): T[] {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\nexport function resolvedSyncPromise(): PromiseLike;\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value?: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]>;\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import type { Event, EventHint, EventProcessor } from '@sentry/types';\nimport { SyncPromise, getGlobalSingleton, isThenable, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\n\n/**\n * Returns the global event processors.\n * @deprecated Global event processors will be removed in v8.\n */\nexport function getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @deprecated Use `addEventProcessor` instead. Global event processors will be removed in v8.\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n // eslint-disable-next-line deprecation/deprecation\n getGlobalEventProcessors().push(callback);\n}\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nexport function notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint: EventHint,\n index: number = 0,\n): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n","import { GLOBAL_OBJ } from './worldwide';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n *\n * TODO(v8): Return type should be rounded.\n */\nexport function dateTimestampInSeconds(): number {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc(): () => number {\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & { performance?: Performance };\n if (!performance || !performance.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * 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 */\nexport const timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Re-exported with an old name for backwards-compatibility.\n * TODO (v8): Remove this\n *\n * @deprecated Use `timestampInSeconds` instead.\n */\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","export const DEFAULT_ENVIRONMENT = 'production';\n","import type { SerializedSession, Session, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nexport function makeSession(context?: Omit): Session {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session: Session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nexport function updateSession(session: Session, context: SessionContext = {}): void {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nexport function closeSession(session: Session, status?: Exclude): void {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session: Session): SerializedSession {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n","import type { StackFrame, StackLineParser, StackParser } from '@sentry/types';\n\nimport type { GetModuleFn } from './node-stack-trace';\nimport { filenameIsInApp, node } from './node-stack-trace';\n\nexport { filenameIsInApp };\n\nconst STACKTRACE_FRAME_LIMIT = 50;\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirst; i < lines.length; i++) {\n const line = lines[i];\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nexport function stackParserFromStackParserOptions(stackParser: StackParser | StackLineParser[]): StackParser {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: ReadonlyArray): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the hub itself, making it:\n //\n // Sentry.captureException()\n // getCurrentHub().captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || localStack[localStack.length - 1].filename,\n function: frame.function || '?',\n }));\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nexport function nodeStackLineParser(getModule?: GetModuleFn): StackLineParser {\n return [90, node(getModule)];\n}\n","import type { Primitive } from '@sentry/types';\n\nimport { isNaN, isSyntheticEvent, isVueViewModel } from './is';\nimport type { MemoFunc } from './memo';\nimport { memoBuilder } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function normalize(input: unknown, depth: number = 100, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))\n ) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value as ObjOrArray)['__sentry_skip_normalization__']) {\n return value as ObjOrArray;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value as ObjOrArray)['__sentry_override_normalization_depth__'] === 'number'\n ? ((value as ObjOrArray)['__sentry_override_normalization_depth__'] as number)\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value as unknown & { toJSON?: () => unknown };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value as ObjOrArray);\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * @deprecated This export will be removed in v8.\n */\nexport { visit as walk };\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value: unknown): string {\n const prototype: Prototype | null = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nexport function normalizeUrlToBase(url: string, basePath: string): string {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","import type { DynamicSamplingContext } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { isString } from './is';\nimport { logger } from './logger';\n\nexport const BAGGAGE_HEADER_NAME = 'baggage';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nexport const MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nexport function baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader: string | string[] | number | null | undefined | boolean,\n): Partial | undefined {\n if (!isString(baggageHeader) && !Array.isArray(baggageHeader)) {\n return undefined;\n }\n\n // Intermediary object to store baggage key value pairs of incoming baggage headers on.\n // It is later used to read Sentry-DSC-values from.\n let baggageObject: Readonly> = {};\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n baggageObject = baggageHeader.reduce>((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n for (const key of Object.keys(currBaggageObject)) {\n acc[key] = currBaggageObject[key];\n }\n return acc;\n }, {});\n } else {\n // Return undefined if baggage header is an empty string (technically an empty baggage header is not spec conform but\n // this is how we choose to handle it)\n if (!baggageHeader) {\n return undefined;\n }\n\n baggageObject = baggageHeaderToObject(baggageHeader);\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce>((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext as Partial;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nexport function dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext?: Partial,\n): string | undefined {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce>(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader: string): Record {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce>((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object: Record): string | undefined {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n","import type { PropagationContext, TraceparentData } from '@sentry/types';\n\nimport { baggageHeaderToDynamicSamplingContext } from './baggage';\nimport { uuid4 } from './misc';\n\n// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- RegExp is used for readability here\nexport const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent?: string): TraceparentData | undefined {\n if (!traceparent) {\n return undefined;\n }\n\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return undefined;\n }\n\n let parentSampled: boolean | undefined;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\n/**\n * Create tracing context from incoming headers.\n *\n * @deprecated Use `propagationContextFromHeaders` instead.\n */\n// TODO(v8): Remove this function\nexport function tracingContextFromHeaders(\n sentryTrace: Parameters[0],\n baggage: Parameters[0],\n): {\n traceparentData: ReturnType;\n dynamicSamplingContext: ReturnType;\n propagationContext: PropagationContext;\n} {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceparentData,\n dynamicSamplingContext: undefined,\n propagationContext: {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n },\n };\n } else {\n return {\n traceparentData,\n dynamicSamplingContext: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n propagationContext: {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n },\n };\n }\n}\n\n/**\n * Create a propagation context from incoming headers.\n */\nexport function propagationContextFromHeaders(\n sentryTrace: string | undefined,\n baggage: string | number | boolean | string[] | null | undefined,\n): PropagationContext {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n };\n } else {\n return {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n };\n }\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nexport function generateSentryTraceHeader(\n traceId: string = uuid4(),\n spanId: string = uuid4().substring(16),\n sampled?: boolean,\n): string {\n let sampledString = '';\n if (sampled !== undefined) {\n sampledString = sampled ? '-1' : '-0';\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\n","import type { Span, SpanJSON, SpanTimeInput, TraceContext } from '@sentry/types';\nimport { dropUndefinedKeys, generateSentryTraceHeader, timestampInSeconds } from '@sentry/utils';\nimport type { Span as SpanClass } from '../tracing/span';\n\n// These are aligned with OpenTelemetry trace flags\nexport const TRACE_FLAG_NONE = 0x0;\nexport const TRACE_FLAG_SAMPLED = 0x1;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n */\nexport function spanToTraceContext(span: Span): TraceContext {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, tags, origin } = spanToJSON(span);\n\n return dropUndefinedKeys({\n data,\n op,\n parent_span_id,\n span_id,\n status,\n tags,\n trace_id,\n origin,\n });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nexport function spanToTraceHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a span time input intp a timestamp in seconds.\n */\nexport function spanTimeInputToSeconds(input: SpanTimeInput | undefined): number {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n * Note that all fields returned here are optional and need to be guarded against.\n *\n * Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n * This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n * And `spanToJSON` needs the Span class from `span.ts` to check here.\n * TODO v8: When we remove the deprecated stuff from `span.ts`, we can remove the circular dependency again.\n */\nexport function spanToJSON(span: Span): Partial {\n if (spanIsSpanClass(span)) {\n return span.getSpanJSON();\n }\n\n // Fallback: We also check for `.toJSON()` here...\n // eslint-disable-next-line deprecation/deprecation\n if (typeof span.toJSON === 'function') {\n // eslint-disable-next-line deprecation/deprecation\n return span.toJSON();\n }\n\n return {};\n}\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSpanClass(span: Span): span is SpanClass {\n return typeof (span as SpanClass).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nexport function spanIsSampled(span: Span): boolean {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n // eslint-disable-next-line no-bitwise\n return Boolean(traceFlags & TRACE_FLAG_SAMPLED);\n}\n","import type {\n CaptureContext,\n Client,\n ClientOptions,\n Event,\n EventHint,\n Scope as ScopeInterface,\n ScopeContext,\n StackFrame,\n StackParser,\n} from '@sentry/types';\nimport { GLOBAL_OBJ, addExceptionMechanism, dateTimestampInSeconds, normalize, truncate, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getGlobalEventProcessors, notifyEventProcessors } from '../eventProcessors';\nimport { Scope, getGlobalScope } from '../scope';\nimport { applyScopeDataToEvent, mergeScopeData } from './applyScopeDataToEvent';\nimport { spanToJSON } from './spanUtils';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\nexport type ExclusiveEventHintOrCaptureContext =\n | (CaptureContext & Partial<{ [key in keyof EventHint]: never }>)\n | (EventHint & Partial<{ [key in keyof ScopeContext]: never }>);\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 * Note: This also triggers callbacks for `addGlobalEventProcessor`, but not `beforeSend`.\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 * @hidden\n */\nexport function prepareEvent(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n scope?: Scope,\n client?: Client,\n isolationScope?: Scope,\n): PromiseLike {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = options;\n const prepared: Event = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client && client.getEventProcessors ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n // TODO (v8): Update this order to be: Global > Client > Scope\n const eventProcessors = [\n ...clientEventProcessors,\n // eslint-disable-next-line deprecation/deprecation\n ...getGlobalEventProcessors(),\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event: Event, options: ClientOptions): void {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\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 const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\nconst debugIdStackParserCache = new WeakMap>();\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nexport function applyDebugIds(event: Event, stackParser: StackParser): void {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return;\n }\n\n let debugIdStackFramesCache: Map;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.keys(debugIdMap).reduce>((acc, debugIdStackTrace) => {\n let parsedStack: StackFrame[];\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n if (stackFrame.filename) {\n acc[stackFrame.filename] = debugIdMap[debugIdStackTrace];\n break;\n }\n }\n return acc;\n }, {});\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event!.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nexport function applyDebugMeta(event: Event): void {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap: Record = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.keys(filenameDebugIdMap).forEach(filename => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id: filenameDebugIdMap[filename],\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event: Event, integrationNames: string[]): void {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized: Event = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n const data = spanToJSON(span).data;\n\n if (data) {\n // This is a bit weird, as we generally have `Span` instances here, but to be safe we do not assume so\n // eslint-disable-next-line deprecation/deprecation\n span.data = normalize(data, depth, maxBreadth);\n }\n\n return span;\n });\n }\n\n return normalized;\n}\n\nfunction getFinalScope(scope: Scope | undefined, captureContext: CaptureContext | undefined): Scope | undefined {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nexport function parseEventHintOrCaptureContext(\n hint: ExclusiveEventHintOrCaptureContext | undefined,\n): EventHint | undefined {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(\n hint: CaptureContext | EventHint,\n): hint is ScopeInterface | ((scope: ScopeInterface) => ScopeInterface) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\ntype ScopeContextProperty = keyof ScopeContext;\nconst captureContextKeys: readonly ScopeContextProperty[] = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'requestSession',\n 'propagationContext',\n] as const;\n\nfunction hintIsScopeContext(hint: Partial | EventHint): hint is Partial {\n return Object.keys(hint).some(key => captureContextKeys.includes(key as ScopeContextProperty));\n}\n","/* eslint-disable max-lines */\nimport type {\n Attachment,\n Breadcrumb,\n CaptureContext,\n Client,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n PropagationContext,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n ScopeData,\n Session,\n Severity,\n SeverityLevel,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, isPlainObject, logger, uuid4 } from '@sentry/utils';\n\nimport { getGlobalEventProcessors, notifyEventProcessors } from './eventProcessors';\nimport { updateSession } from './session';\nimport { applyScopeDataToEvent } from './utils/applyScopeDataToEvent';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * The global scope is kept in this module.\n * When accessing this via `getGlobalScope()` we'll make sure to set one if none is currently present.\n */\nlet globalScope: ScopeInterface | undefined;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void>;\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[];\n\n /** User */\n protected _user: User;\n\n /** Tags */\n protected _tags: { [key: string]: Primitive };\n\n /** Extra */\n protected _extra: Extras;\n\n /** Contexts */\n protected _contexts: Contexts;\n\n /** Attachments */\n protected _attachments: Attachment[];\n\n /** Propagation Context for distributed tracing */\n protected _propagationContext: PropagationContext;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata: { [key: string]: unknown };\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n protected _level?: Severity | SeverityLevel;\n\n /**\n * Transaction Name\n */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /** The client on this scope */\n protected _client?: Client;\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n public constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = generatePropagationContext();\n }\n\n /**\n * Inherit values from the parent scope.\n * @deprecated Use `scope.clone()` and `new Scope()` instead.\n */\n public static clone(scope?: Scope): Scope {\n return scope ? scope.clone() : new Scope();\n }\n\n /**\n * Clone this scope instance.\n */\n public clone(): Scope {\n const newScope = new Scope();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._span = this._span;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n\n return newScope;\n }\n\n /** Update the client on the scope. */\n public setClient(client: Client | undefined): void {\n this._client = client;\n }\n\n /**\n * Get the client assigned to this scope.\n *\n * It is generally recommended to use the global function `Sentry.getClient()` instead, unless you know what you are doing.\n */\n public getClient(): Client | undefined {\n return this._client;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n segment: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel,\n ): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the transaction name on the scope for future events.\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the Span on the scope.\n * @param span Span\n * @deprecated Instead of setting a span on a scope, use `startSpan()`/`startSpanManual()` instead.\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Returns the `Span` if there is one.\n * @deprecated Use `getActiveSpan()` instead.\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * Returns the `Transaction` attached to the scope (if there is one).\n * @deprecated You should not rely on the transaction, but just use `startSpan()` APIs instead.\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this._span;\n // Cannot replace with getRootSpan because getRootSpan returns a span, not a transaction\n // Also, this method will be removed anyway.\n // eslint-disable-next-line deprecation/deprecation\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n if (scopeToMerge instanceof Scope) {\n const scopeData = scopeToMerge.getScopeData();\n\n this._tags = { ...this._tags, ...scopeData.tags };\n this._extra = { ...this._extra, ...scopeData.extra };\n this._contexts = { ...this._contexts, ...scopeData.contexts };\n if (scopeData.user && Object.keys(scopeData.user).length) {\n this._user = scopeData.user;\n }\n if (scopeData.level) {\n this._level = scopeData.level;\n }\n if (scopeData.fingerprint.length) {\n this._fingerprint = scopeData.fingerprint;\n }\n if (scopeToMerge.getRequestSession()) {\n this._requestSession = scopeToMerge.getRequestSession();\n }\n if (scopeData.propagationContext) {\n this._propagationContext = scopeData.propagationContext;\n }\n } else if (isPlainObject(scopeToMerge)) {\n const scopeContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...scopeContext.tags };\n this._extra = { ...this._extra, ...scopeContext.extra };\n this._contexts = { ...this._contexts, ...scopeContext.contexts };\n if (scopeContext.user) {\n this._user = scopeContext.user;\n }\n if (scopeContext.level) {\n this._level = scopeContext.level;\n }\n if (scopeContext.fingerprint) {\n this._fingerprint = scopeContext.fingerprint;\n }\n if (scopeContext.requestSession) {\n this._requestSession = scopeContext.requestSession;\n }\n if (scopeContext.propagationContext) {\n this._propagationContext = scopeContext.propagationContext;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n this._propagationContext = generatePropagationContext();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getLastBreadcrumb(): Breadcrumb | undefined {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addAttachment(attachment: Attachment): this {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `getScopeData()` instead.\n */\n public getAttachments(): Attachment[] {\n const data = this.getScopeData();\n\n return data.attachments;\n }\n\n /**\n * @inheritDoc\n */\n public clearAttachments(): this {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n public getScopeData(): ScopeData {\n const {\n _breadcrumbs,\n _attachments,\n _contexts,\n _tags,\n _extra,\n _user,\n _level,\n _fingerprint,\n _eventProcessors,\n _propagationContext,\n _sdkProcessingMetadata,\n _transactionName,\n _span,\n } = this;\n\n return {\n breadcrumbs: _breadcrumbs,\n attachments: _attachments,\n contexts: _contexts,\n tags: _tags,\n extra: _extra,\n user: _user,\n level: _level,\n fingerprint: _fingerprint || [],\n eventProcessors: _eventProcessors,\n propagationContext: _propagationContext,\n sdkProcessingMetadata: _sdkProcessingMetadata,\n transactionName: _transactionName,\n span: _span,\n };\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n * @deprecated Use `applyScopeDataToEvent()` directly\n */\n public applyToEvent(\n event: Event,\n hint: EventHint = {},\n additionalEventProcessors: EventProcessor[] = [],\n ): PromiseLike {\n applyScopeDataToEvent(event, this.getScopeData());\n\n // TODO (v8): Update this order to be: Global > Client > Scope\n const eventProcessors: EventProcessor[] = [\n ...additionalEventProcessors,\n // eslint-disable-next-line deprecation/deprecation\n ...getGlobalEventProcessors(),\n ...this._eventProcessors,\n ];\n\n return notifyEventProcessors(eventProcessors, event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setPropagationContext(context: PropagationContext): this {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getPropagationContext(): PropagationContext {\n return this._propagationContext;\n }\n\n /**\n * Capture an exception for this scope.\n *\n * @param exception The exception to capture.\n * @param hint Optinal additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Capture a message for this scope.\n *\n * @param message The message to capture.\n * @param level An optional severity level to report the message with.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured message.\n */\n public captureMessage(message: string, level?: SeverityLevel, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Captures a manually created event for this scope and sends it to Sentry.\n *\n * @param exception The event to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nexport function getGlobalScope(): ScopeInterface {\n if (!globalScope) {\n globalScope = new Scope();\n }\n\n return globalScope;\n}\n\n/**\n * This is mainly needed for tests.\n * DO NOT USE this, as this is an internal API and subject to change.\n * @hidden\n */\nexport function setGlobalScope(scope: ScopeInterface | undefined): void {\n globalScope = scope;\n}\n\nfunction generatePropagationContext(): PropagationContext {\n return {\n traceId: uuid4(),\n spanId: uuid4().substring(16),\n };\n}\n","import type {\n Breadcrumb,\n BreadcrumbHint,\n CaptureContext,\n CheckIn,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n FinishedCheckIn,\n MonitorConfig,\n Primitive,\n Scope as ScopeInterface,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Span,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { GLOBAL_OBJ, isThenable, logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { Hub } from './hub';\nimport { runWithAsyncContext } from './hub';\nimport { getCurrentHub, getIsolationScope } from './hub';\nimport type { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport type { ExclusiveEventHintOrCaptureContext } from './utils/prepareEvent';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nexport function captureException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exception: any,\n hint?: ExclusiveEventHintOrCaptureContext,\n): string {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nexport function captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n captureContext?: CaptureContext | Severity | SeverityLevel,\n): string {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param exception The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nexport function captureEvent(event: Event, hint?: EventHint): string {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n *\n * @deprecated Use getCurrentScope() directly.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function configureScope(callback: (scope: Scope) => void): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().addBreadcrumb(breadcrumb, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, deprecation/deprecation\nexport function setContext(name: string, context: { [key: string]: any } | null): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setExtras(extras: Extras): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setExtra(key: string, extra: Extra): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setTags(tags: { [key: string]: Primitive }): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setTag(key: string, value: Primitive): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setUser(user: User | null): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n */\nexport function withScope(callback: (scope: Scope) => T): T;\n/**\n * Set the given scope as the active scope in the callback.\n */\nexport function withScope(scope: ScopeInterface | undefined, callback: (scope: Scope) => T): T;\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nexport function withScope(\n ...rest: [callback: (scope: Scope) => T] | [scope: ScopeInterface | undefined, callback: (scope: Scope) => T]\n): T {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n if (!scope) {\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(callback);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(() => {\n // eslint-disable-next-line deprecation/deprecation\n hub.getStackTop().scope = scope as Scope;\n return callback(scope as Scope);\n });\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n *\n * @param callback The callback in which the passed isolation scope is active. (Note: In environments without async\n * context strategy, the currently active isolation scope may change within execution of the callback.)\n * @returns The same value that `callback` returns.\n */\nexport function withIsolationScope(callback: (isolationScope: Scope) => T): T {\n return runWithAsyncContext(() => {\n return callback(getIsolationScope());\n });\n}\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback.\n *\n * @param span Spans started in the context of the provided callback will be children of this span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nexport function withActiveSpan(span: Span, callback: (scope: Scope) => T): T {\n return withScope(scope => {\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(span);\n return callback(scope);\n });\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.end()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\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 * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n // eslint-disable-next-line deprecation/deprecation\n): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function captureCheckIn(checkIn: CheckIn, upsertMonitorConfig?: MonitorConfig): string {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function withMonitor(\n monitorSlug: CheckIn['monitorSlug'],\n callback: () => T,\n upsertMonitorConfig?: MonitorConfig,\n): T {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status: FinishedCheckIn['status']): void {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n () => {\n finishCheckIn('error');\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function flush(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function close(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().lastEventId();\n}\n\n/**\n * Get the currently active client.\n */\nexport function getClient(): C | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getClient();\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nexport function isInitialized(): boolean {\n return !!getClient();\n}\n\n/**\n * Get the currently active scope.\n */\nexport function getCurrentScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getScope();\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nexport function startSession(context?: SessionContext): Session {\n const client = getClient();\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nexport function endSession(): void {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate(): void {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const client = getClient();\n // TODO (v8): Remove currentScope and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nexport function captureSession(end: boolean = false): void {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n","import type { Span } from '@sentry/types';\n\n/**\n * Returns the root span of a given span.\n *\n * As long as we use `Transaction`s internally, the returned root span\n * will be a `Transaction` but be aware that this might change in the future.\n *\n * If the given span has no root span or transaction, `undefined` is returned.\n */\nexport function getRootSpan(span: Span): Span | undefined {\n // TODO (v8): Remove this check and just return span\n // eslint-disable-next-line deprecation/deprecation\n return span.transaction;\n}\n","import type { Client, DynamicSamplingContext, Scope, Span, Transaction } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getClient, getCurrentScope } from '../exports';\nimport { getRootSpan } from '../utils/getRootSpan';\nimport { spanIsSampled, spanToJSON } from '../utils/spanUtils';\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nexport function getDynamicSamplingContextFromClient(\n trace_id: string,\n client: Client,\n scope?: Scope,\n): DynamicSamplingContext {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n // TODO(v8): Remove segment from User\n // eslint-disable-next-line deprecation/deprecation\n const { segment: user_segment } = (scope && scope.getUser()) || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n user_segment,\n public_key,\n trace_id,\n }) as DynamicSamplingContext;\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * A Span with a frozen dynamic sampling context.\n */\ntype TransactionWithV7FrozenDsc = Transaction & { _frozenDynamicSamplingContext?: DynamicSamplingContext };\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nexport function getDynamicSamplingContextFromSpan(span: Span): Readonly> {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n // passing emit=false here to only emit later once the DSC is actually populated\n const dsc = getDynamicSamplingContextFromClient(spanToJSON(span).trace_id || '', client, getCurrentScope());\n\n // TODO (v8): Remove v7FrozenDsc as a Transaction will no longer have _frozenDynamicSamplingContext\n const txn = getRootSpan(span) as TransactionWithV7FrozenDsc | undefined;\n if (!txn) {\n return dsc;\n }\n\n // TODO (v8): Remove v7FrozenDsc as a Transaction will no longer have _frozenDynamicSamplingContext\n // For now we need to avoid breaking users who directly created a txn with a DSC, where this field is still set.\n // @see Transaction class constructor\n const v7FrozenDsc = txn && txn._frozenDynamicSamplingContext;\n if (v7FrozenDsc) {\n return v7FrozenDsc;\n }\n\n // TODO (v8): Replace txn.metadata with txn.attributes[]\n // We can't do this yet because attributes aren't always set yet.\n // eslint-disable-next-line deprecation/deprecation\n const { sampleRate: maybeSampleRate, source } = txn.metadata;\n if (maybeSampleRate != null) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const jsonSpan = spanToJSON(txn);\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n if (source && source !== 'url') {\n dsc.transaction = jsonSpan.description;\n }\n\n dsc.sampled = String(spanIsSampled(txn));\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n}\n","import type { Breadcrumb, Event, ScopeData, Span } from '@sentry/types';\nimport { arrayify, dropUndefinedKeys } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext';\nimport { getRootSpan } from './getRootSpan';\nimport { spanToJSON, spanToTraceContext } from './spanUtils';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nexport function applyScopeDataToEvent(event: Event, data: ScopeData): void {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nexport function mergeScopeData(data: ScopeData, mergeData: ScopeData): void {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n // eslint-disable-next-line deprecation/deprecation\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n mergeAndOverwriteScopeData(data, 'sdkProcessingMetadata', sdkProcessingMetadata);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n // eslint-disable-next-line deprecation/deprecation\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nexport function mergeAndOverwriteScopeData<\n Prop extends 'extra' | 'tags' | 'user' | 'contexts' | 'sdkProcessingMetadata',\n Data extends ScopeData,\n>(data: Data, prop: Prop, mergeVal: Data[Prop]): void {\n if (mergeVal && Object.keys(mergeVal).length) {\n // Clone object\n data[prop] = { ...data[prop] };\n for (const key in mergeVal) {\n if (Object.prototype.hasOwnProperty.call(mergeVal, key)) {\n data[prop][key] = mergeVal[key];\n }\n }\n }\n}\n\n/** Exported only for tests */\nexport function mergeArray(\n event: Event,\n prop: Prop,\n mergeVal: ScopeData[Prop],\n): void {\n const prevVal = event[prop];\n // If we are not merging any new values,\n // we only need to proceed if there was an empty array before (as we want to replace it with undefined)\n if (!mergeVal.length && (!prevVal || prevVal.length)) {\n return;\n }\n\n const merged = [...(prevVal || []), ...mergeVal] as ScopeData[Prop];\n event[prop] = merged.length ? merged : undefined;\n}\n\nfunction applyDataToEvent(event: Event, data: ScopeData): void {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n // eslint-disable-next-line deprecation/deprecation\n transactionName,\n } = data;\n\n const cleanedExtra = dropUndefinedKeys(extra);\n if (cleanedExtra && Object.keys(cleanedExtra).length) {\n event.extra = { ...cleanedExtra, ...event.extra };\n }\n\n const cleanedTags = dropUndefinedKeys(tags);\n if (cleanedTags && Object.keys(cleanedTags).length) {\n event.tags = { ...cleanedTags, ...event.tags };\n }\n\n const cleanedUser = dropUndefinedKeys(user);\n if (cleanedUser && Object.keys(cleanedUser).length) {\n event.user = { ...cleanedUser, ...event.user };\n }\n\n const cleanedContexts = dropUndefinedKeys(contexts);\n if (cleanedContexts && Object.keys(cleanedContexts).length) {\n event.contexts = { ...cleanedContexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n if (transactionName) {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event: Event, breadcrumbs: Breadcrumb[]): void {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event: Event, sdkProcessingMetadata: ScopeData['sdkProcessingMetadata']): void {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event: Event, span: Span): void {\n event.contexts = { trace: spanToTraceContext(span), ...event.contexts };\n const rootSpan = getRootSpan(span);\n if (rootSpan) {\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event: Event, fingerprint: ScopeData['fingerprint'] | undefined): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n","export const SDK_VERSION = '7.119.0';\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n GLOBAL_OBJ,\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalSingleton,\n isThenable,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport { SDK_VERSION } from './version';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = parseFloat(SDK_VERSION);\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\nexport interface RunWithAsyncContextOptions {\n /** Whether to reuse an existing async context if one exists. Defaults to false. */\n reuseExisting?: boolean;\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Strategy used to track async context.\n */\nexport interface AsyncContextStrategy {\n /**\n * Gets the current async context. Returns undefined if there is no current async context.\n */\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub: () => Hub | undefined;\n /**\n * Runs the supplied callback in its own async context.\n */\n runWithAsyncContext(callback: () => T, options: RunWithAsyncContextOptions): T;\n}\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n // eslint-disable-next-line deprecation/deprecation\n hub?: Hub;\n acs?: AsyncContextStrategy;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @deprecated The `Hub` class will be removed in version 8 of the SDK in favour of `Scope` and `Client` objects.\n *\n * If you previously used the `Hub` class directly, replace it with `Scope` and `Client` objects. More information:\n * - [Multiple Sentry Instances](https://docs.sentry.io/platforms/javascript/best-practices/multiple-sentry-instances/)\n * - [Browser Extensions](https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/)\n *\n * Some of our APIs are typed with the Hub class instead of the interface (e.g. `getCurrentHub`). Most of them are deprecated\n * themselves and will also be removed in version 8. More information:\n * - [Migration Guide](https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md#deprecate-hub)\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n private _isolationScope: Scope;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n *\n * @deprecated Instantiation of Hub objects is deprecated and the constructor will be removed in version 8 of the SDK.\n *\n * If you are currently using the Hub for multi-client use like so:\n *\n * ```\n * // OLD\n * const hub = new Hub();\n * hub.bindClient(client);\n * makeMain(hub)\n * ```\n *\n * instead initialize the client as follows:\n *\n * ```\n * // NEW\n * Sentry.withIsolationScope(() => {\n * Sentry.setCurrentClient(client);\n * client.init();\n * });\n * ```\n *\n * If you are using the Hub to capture events like so:\n *\n * ```\n * // OLD\n * const client = new Client();\n * const hub = new Hub(client);\n * hub.captureException()\n * ```\n *\n * instead capture isolated events as follows:\n *\n * ```\n * // NEW\n * const client = new Client();\n * const scope = new Scope();\n * scope.setClient(client);\n * scope.captureException();\n * ```\n */\n public constructor(\n client?: Client,\n scope?: Scope,\n isolationScope?: Scope,\n private readonly _version: number = API_VERSION,\n ) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n assignedScope.setClient(client);\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n assignedIsolationScope.setClient(client);\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n this._stack = [{ scope: assignedScope }];\n\n if (client) {\n // eslint-disable-next-line deprecation/deprecation\n this.bindClient(client);\n }\n\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Checks if this hub's version is older than the given version.\n *\n * @param version A version number to compare to.\n * @return True if the given version is newer; otherwise false.\n *\n * @deprecated This will be removed in v8.\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * This binds the given client to the current scope.\n * @param client An SDK client (client) instance.\n *\n * @deprecated Use `initAndBind()` directly, or `setCurrentClient()` and/or `client.init()` instead.\n */\n public bindClient(client?: Client): void {\n // eslint-disable-next-line deprecation/deprecation\n const top = this.getStackTop();\n top.client = client;\n top.scope.setClient(client);\n // eslint-disable-next-line deprecation/deprecation\n if (client && client.setupIntegrations) {\n // eslint-disable-next-line deprecation/deprecation\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `withScope` instead.\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.getScope().clone();\n // eslint-disable-next-line deprecation/deprecation\n this.getStack().push({\n // eslint-disable-next-line deprecation/deprecation\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `withScope` instead.\n */\n public popScope(): boolean {\n // eslint-disable-next-line deprecation/deprecation\n if (this.getStack().length <= 1) return false;\n // eslint-disable-next-line deprecation/deprecation\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.withScope()` instead.\n */\n public withScope(callback: (scope: Scope) => T): T {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.pushScope();\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n return res;\n },\n e => {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n throw e;\n },\n );\n }\n\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n return maybePromiseResult;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.getClient()` instead.\n */\n public getClient(): C | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return this.getStackTop().client as C;\n }\n\n /**\n * Returns the scope of the top stack.\n *\n * @deprecated Use `Sentry.getCurrentScope()` instead.\n */\n public getScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return this.getStackTop().scope;\n }\n\n /**\n * @deprecated Use `Sentry.getIsolationScope()` instead.\n */\n public getIsolationScope(): Scope {\n return this._isolationScope;\n }\n\n /**\n * Returns the scope stack for domains or the process.\n * @deprecated This will be removed in v8.\n */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n * @deprecated This will be removed in v8.\n */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureException()` instead.\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureException(exception, {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n });\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureMessage()` instead.\n */\n public captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n ): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureMessage(message, level, {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n });\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureEvent()` instead.\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureEvent(event, { ...hint, event_id: eventId });\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated This will be removed in v8.\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.addBreadcrumb()` instead.\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n // TODO(v8): I know this comment doesn't make much sense because the hub will be deprecated but I still wanted to\n // write it down. In theory, we would have to add the breadcrumbs to the isolation scope here, however, that would\n // duplicate all of the breadcrumbs. There was the possibility of adding breadcrumbs to both, the isolation scope\n // and the normal scope, and deduplicating it down the line in the event processing pipeline. However, that would\n // have been very fragile, because the breadcrumb objects would have needed to keep their identity all throughout\n // the event processing pipeline.\n // In the new implementation, the top level `Sentry.addBreadcrumb()` should ONLY write to the isolation scope.\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setUser()` instead.\n */\n public setUser(user: User | null): void {\n // TODO(v8): The top level `Sentry.setUser()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setUser(user);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setUser(user);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setTags()` instead.\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n // TODO(v8): The top level `Sentry.setTags()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setTags(tags);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setTags(tags);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setExtras()` instead.\n */\n public setExtras(extras: Extras): void {\n // TODO(v8): The top level `Sentry.setExtras()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setExtras(extras);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setExtras(extras);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setTag()` instead.\n */\n public setTag(key: string, value: Primitive): void {\n // TODO(v8): The top level `Sentry.setTag()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setTag(key, value);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setTag(key, value);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setExtra()` instead.\n */\n public setExtra(key: string, extra: Extra): void {\n // TODO(v8): The top level `Sentry.setExtra()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setExtra(key, extra);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setContext()` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n // TODO(v8): The top level `Sentry.setContext()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setContext(name, context);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setContext(name, context);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `getScope()` directly.\n */\n public configureScope(callback: (scope: Scope) => void): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n public run(callback: (hub: Hub) => void): void {\n // eslint-disable-next-line deprecation/deprecation\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n // eslint-disable-next-line deprecation/deprecation\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.getClient().getIntegrationByName()` instead.\n */\n public getIntegration(integration: IntegrationClass): T | null {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n if (!client) return null;\n try {\n // eslint-disable-next-line deprecation/deprecation\n return client.getIntegration(integration);\n } catch (_oO) {\n DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.end()` 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 * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n const result = this._callExtensionMethod('startTransaction', context, customSamplingContext);\n\n if (DEBUG_BUILD && !result) {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n if (!client) {\n logger.warn(\n \"Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'\",\n );\n } else {\n logger.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n`);\n }\n }\n\n return result;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `spanToTraceHeader()` instead.\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use top level `captureSession` instead.\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n // eslint-disable-next-line deprecation/deprecation\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top level `endSession` instead.\n */\n public endSession(): void {\n // eslint-disable-next-line deprecation/deprecation\n const layer = this.getStackTop();\n const scope = layer.scope;\n const session = scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n scope.setSession();\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top level `startSession` instead.\n */\n public startSession(context?: SessionContext): Session {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: scope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n // eslint-disable-next-line deprecation/deprecation\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n *\n * @deprecated Use top-level `getClient().getOptions().sendDefaultPii` instead. This function\n * only unnecessarily increased API surface but only wrapped accessing the option.\n */\n public shouldSendDefaultPii(): boolean {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n\n const session = scope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-expect-error 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 private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n *\n * @deprecated Use `setCurrentClient()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n *\n * @deprecated Use the respective replacement method directly instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n const hub = registry.__SENTRY__.acs.getCurrentHub();\n\n if (hub) {\n return hub;\n }\n }\n\n // Return hub that lives on a global object\n return getGlobalHub(registry);\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current exection context,\n * meaning that it will remain stable for the same Hub.\n */\nexport function getIsolationScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getIsolationScope();\n}\n\n// eslint-disable-next-line deprecation/deprecation\nfunction getGlobalHub(registry: Carrier = getMainCarrier()): Hub {\n // If there's no hub, or its an old API, assign a new one\n\n if (\n !hasHubOnCarrier(registry) ||\n // eslint-disable-next-line deprecation/deprecation\n getHubFromCarrier(registry).isOlderThan(API_VERSION)\n ) {\n // eslint-disable-next-line deprecation/deprecation\n setHubOnCarrier(registry, new Hub());\n }\n\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * If the carrier does not contain a hub, a new hub is created with the global hub client and scope.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function ensureHubOnCarrier(carrier: Carrier, parent: Hub = getGlobalHub()): void {\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (\n !hasHubOnCarrier(carrier) ||\n // eslint-disable-next-line deprecation/deprecation\n getHubFromCarrier(carrier).isOlderThan(API_VERSION)\n ) {\n // eslint-disable-next-line deprecation/deprecation\n const client = parent.getClient();\n // eslint-disable-next-line deprecation/deprecation\n const scope = parent.getScope();\n // eslint-disable-next-line deprecation/deprecation\n const isolationScope = parent.getIsolationScope();\n // eslint-disable-next-line deprecation/deprecation\n setHubOnCarrier(carrier, new Hub(client, scope.clone(), isolationScope.clone()));\n }\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nexport function setAsyncContextStrategy(strategy: AsyncContextStrategy | undefined): void {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n registry.__SENTRY__ = registry.__SENTRY__ || {};\n registry.__SENTRY__.acs = strategy;\n}\n\n/**\n * Runs the supplied callback in its own async context. Async Context strategies are defined per SDK.\n *\n * @param callback The callback to run in its own async context\n * @param options Options to pass to the async context strategy\n * @returns The result of the callback\n */\nexport function runWithAsyncContext(callback: () => T, options: RunWithAsyncContextOptions = {}): T {\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n return registry.__SENTRY__.acs.runWithAsyncContext(callback, options);\n }\n\n // if there was no strategy, fallback to just calling the callback\n return callback();\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n // eslint-disable-next-line deprecation/deprecation\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","import type {\n Client,\n Event,\n EventHint,\n Integration,\n IntegrationClass,\n IntegrationFn,\n IntegrationFnResult,\n Options,\n} from '@sentry/types';\nimport { arrayify, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { addGlobalEventProcessor } from './eventProcessors';\nimport { getClient } from './exports';\nimport { getCurrentHub } from './hub';\n\ndeclare module '@sentry/types' {\n interface Integration {\n isDefaultInstance?: boolean;\n }\n}\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n};\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n const integrationsByName: { [key: string]: Integration } = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.keys(integrationsByName).map(k => integrationsByName[k]);\n}\n\n/** Gets integrations to install */\nexport function getIntegrationsToSetup(options: Pick): Integration[] {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations: Integration[];\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = findIndex(finalIntegrations, integration => integration.name === 'Debug');\n if (debugIndex !== -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1);\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(client: Client, integrations: Integration[]): IntegrationIndex {\n const integrationIndex: IntegrationIndex = {};\n\n integrations.forEach(integration => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nexport function afterSetupIntegrations(client: Client, integrations: Integration[]): void {\n for (const integration of integrations) {\n // guard against empty provided integrations\n if (integration && integration.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\n\n/** Setup a single integration. */\nexport function setupIntegration(client: Client, integration: Integration, integrationIndex: IntegrationIndex): void {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && logger.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n\n // `setupOnce` is only called the first time\n if (installedIntegrations.indexOf(integration.name) === -1) {\n // eslint-disable-next-line deprecation/deprecation\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n }\n\n // `setup` is run for each client\n if (integration.setup && typeof integration.setup === 'function') {\n integration.setup(client);\n }\n\n if (client.on && typeof integration.preprocessEvent === 'function') {\n const callback = integration.preprocessEvent.bind(integration) as typeof integration.preprocessEvent;\n client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n }\n\n if (client.addEventProcessor && typeof integration.processEvent === 'function') {\n const callback = integration.processEvent.bind(integration) as typeof integration.processEvent;\n\n const processor = Object.assign((event: Event, hint: EventHint) => callback(event, hint, client), {\n id: integration.name,\n });\n\n client.addEventProcessor(processor);\n }\n\n DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current hub's client. */\nexport function addIntegration(integration: Integration): void {\n const client = getClient();\n\n if (!client || !client.addIntegration) {\n DEBUG_BUILD && logger.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n\n client.addIntegration(integration);\n}\n\n// Polyfill for Array.findIndex(), which is not supported in ES5\nfunction findIndex(arr: T[], callback: (item: T) => boolean): number {\n for (let i = 0; i < arr.length; i++) {\n if (callback(arr[i]) === true) {\n return i;\n }\n }\n\n return -1;\n}\n\n/**\n * Convert a new integration function to the legacy class syntax.\n * In v8, we can remove this and instead export the integration functions directly.\n *\n * @deprecated This will be removed in v8!\n */\nexport function convertIntegrationFnToClass(\n name: string,\n fn: Fn,\n): IntegrationClass {\n return Object.assign(\n function ConvertedIntegration(...args: Parameters): Integration {\n return fn(...args);\n },\n { id: name },\n ) as unknown as IntegrationClass;\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nexport function defineIntegration(fn: Fn): (...args: Parameters) => IntegrationFnResult {\n return fn;\n}\n","import type { Client, Event, EventHint, Integration, IntegrationClass, IntegrationFn, StackFrame } from '@sentry/types';\nimport { getEventDescription, logger, stringMatchesSomePattern } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { convertIntegrationFnToClass, defineIntegration } from '../integration';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/,\n /^Cannot redefine property: googletag$/,\n];\n\nconst DEFAULT_IGNORE_TRANSACTIONS = [\n /^.*\\/healthcheck$/,\n /^.*\\/healthy$/,\n /^.*\\/live$/,\n /^.*\\/ready$/,\n /^.*\\/heartbeat$/,\n /^.*\\/health$/,\n /^.*\\/healthz$/,\n];\n\n/** Options for the InboundFilters integration */\nexport interface InboundFiltersOptions {\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreTransactions: Array;\n ignoreInternal: boolean;\n disableErrorDefaults: boolean;\n disableTransactionDefaults: boolean;\n}\n\nconst INTEGRATION_NAME = 'InboundFilters';\nconst _inboundFiltersIntegration = ((options: Partial = {}) => {\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n processEvent(event, _hint, client) {\n const clientOptions = client.getOptions();\n const mergedOptions = _mergeOptions(options, clientOptions);\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n}) satisfies IntegrationFn;\n\nexport const inboundFiltersIntegration = defineIntegration(_inboundFiltersIntegration);\n\n/**\n * Inbound filters configurable by the user.\n * @deprecated Use `inboundFiltersIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const InboundFilters = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n inboundFiltersIntegration,\n) as IntegrationClass void }> & {\n new (\n options?: Partial<{\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreTransactions: Array;\n ignoreInternal: boolean;\n disableErrorDefaults: boolean;\n disableTransactionDefaults: boolean;\n }>,\n ): Integration;\n};\n\nfunction _mergeOptions(\n internalOptions: Partial = {},\n clientOptions: Partial = {},\n): Partial {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [\n ...(internalOptions.ignoreTransactions || []),\n ...(clientOptions.ignoreTransactions || []),\n ...(internalOptions.disableTransactionDefaults ? [] : DEFAULT_IGNORE_TRANSACTIONS),\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\nfunction _shouldDropEvent(event: Event, options: Partial): boolean {\n if (options.ignoreInternal && _isSentryError(event)) {\n DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array): boolean {\n // If event.type, this is not an error\n if (event.type || !ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event: Event, ignoreTransactions?: Array): boolean {\n if (event.type !== 'transaction' || !ignoreTransactions || !ignoreTransactions.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event: Event): string[] {\n const possibleMessages: string[] = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n let lastException;\n try {\n // @ts-expect-error Try catching to save bundle size\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n lastException = event.exception.values[event.exception.values.length - 1];\n } catch (e) {\n // try catching to save bundle size checking existence of variables\n }\n\n if (lastException) {\n if (lastException.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n }\n\n if (DEBUG_BUILD && possibleMessages.length === 0) {\n logger.error(`Could not extract message for event ${getEventDescription(event)}`);\n }\n\n return possibleMessages;\n}\n\nfunction _isSentryError(event: Event): boolean {\n try {\n // @ts-expect-error can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n let frames;\n try {\n // @ts-expect-error we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n","import type { Client, Integration, IntegrationClass, IntegrationFn, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\nimport { getClient } from '../exports';\nimport { convertIntegrationFnToClass, defineIntegration } from '../integration';\n\nlet originalFunctionToString: () => void;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() as Client) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nexport const functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * @deprecated Use `functionToStringIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const FunctionToString = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n functionToStringIntegration,\n) as IntegrationClass void }>;\n\n// eslint-disable-next-line deprecation/deprecation\nexport type FunctionToString = typeof FunctionToString;\n","import type { Client, ClientOptions } from '@sentry/types';\nimport { consoleSandbox, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { getCurrentScope } from './exports';\nimport { getCurrentHub } from './hub';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(\n clientClass: ClientClass,\n options: O,\n): void {\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n const client = new clientClass(options);\n setCurrentClient(client);\n initializeClient(client);\n}\n\n/**\n * Make the given client the current client.\n */\nexport function setCurrentClient(client: Client): void {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const top = hub.getStackTop();\n top.client = client;\n top.scope.setClient(client);\n}\n\n/**\n * Initialize the client for the current scope.\n * Make sure to call this after `setCurrentClient()`.\n */\nfunction initializeClient(client: Client): void {\n if (client.init) {\n client.init();\n // TODO v8: Remove this fallback\n // eslint-disable-next-line deprecation/deprecation\n } else if (client.setupIntegrations) {\n // eslint-disable-next-line deprecation/deprecation\n client.setupIntegrations();\n }\n}\n","import { DEBUG_BUILD } from './debug-build';\nimport { logger } from './logger';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\ndeclare const EdgeRuntime: string | undefined;\n\nexport { supportsHistory } from './vendor/supportsHistory';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\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\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n","// Based on https://github.com/angular/angular.js/pull/13945/files\n// The MIT License\n\n// Copyright (c) 2010-2016 Google, Inc. http://angularjs.org\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { getGlobalObject } from '../worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\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 /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chromeVar = (WINDOW as any).chrome;\n const isChromePackagedApp = chromeVar && chromeVar.app && chromeVar.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { logger } from '../logger';\nimport { getFunctionName } from '../stacktrace';\n\nexport type InstrumentHandlerType = 'console' | 'dom' | 'fetch' | 'history' | 'xhr' | 'error' | 'unhandledrejection';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type InstrumentHandlerCallback = (data: any) => void;\n\n// We keep the handlers globally\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Add a handler function. */\nexport function addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nexport function resetInstrumentationHandlers(): void {\n Object.keys(handlers).forEach(key => {\n handlers[key as InstrumentHandlerType] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nexport function maybeInstrument(type: InstrumentHandlerType, instrumentFn: () => void): void {\n if (!instrumented[type]) {\n instrumentFn();\n instrumented[type] = true;\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nexport function triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataHistory } from '@sentry/types';\n\nimport { fill } from '../object';\nimport { supportsHistory } from '../supports';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nlet lastHref: string | undefined;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addHistoryInstrumentationHandler(handler: (data: HandlerDataHistory) => void): void {\n const type = 'history';\n addHandler(type, handler);\n maybeInstrument(type, instrumentHistory);\n}\n\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n const handlerData: HandlerDataHistory = { from, to };\n triggerHandlers('history', handlerData);\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n const handlerData: HandlerDataHistory = { from, to };\n triggerHandlers('history', handlerData);\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n","import type { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { consoleSandbox, logger } from './logger';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nexport function dsnFromString(str: string): DsnComponents | undefined {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n // This should be logged to the console\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return undefined;\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean {\n if (!DEBUG_BUILD) {\n return true;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray = ['protocol', 'publicKey', 'host', 'projectId'];\n const hasMissingRequiredComponent = requiredComponents.find(component => {\n if (!dsn[component]) {\n logger.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n\n if (hasMissingRequiredComponent) {\n return false;\n }\n\n if (!projectId.match(/^\\d+$/)) {\n logger.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n\n if (!isValidProtocol(protocol)) {\n logger.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n logger.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nexport function makeDsn(from: DsnLike): DsnComponents | undefined {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return undefined;\n }\n return components;\n}\n","import type {\n Attachment,\n AttachmentItem,\n BaseEnvelopeHeaders,\n BaseEnvelopeItemHeaders,\n DataCategory,\n DsnComponents,\n Envelope,\n EnvelopeItemType,\n Event,\n EventEnvelopeHeaders,\n SdkInfo,\n SdkMetadata,\n TextEncoderInternal,\n} from '@sentry/types';\n\nimport { dsnToString } from './dsn';\nimport { normalize } from './normalize';\nimport { dropUndefinedKeys } from './object';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as unknown as E;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nexport function forEachEnvelopeItem(\n envelope: Envelope,\n callback: (envelopeItem: E[1][number], envelopeItemType: E[1][number][0]['type']) => boolean | void,\n): boolean {\n const envelopeItems = envelope[1];\n\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nexport function envelopeContainsItemType(envelope: Envelope, types: EnvelopeItemType[]): boolean {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8.\n */\nfunction encodeUTF8(input: string, textEncoder?: TextEncoderInternal): Uint8Array {\n const utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nexport function serializeEnvelope(envelope: Envelope, textEncoder?: TextEncoderInternal): string | Uint8Array {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts: string | Uint8Array[] = JSON.stringify(envHeaders);\n\n function append(next: string | Uint8Array): void {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload: string;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers: Uint8Array[]): Uint8Array {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\nexport interface TextDecoderInternal {\n decode(input?: Uint8Array): string;\n}\n\n/**\n * Parses an envelope\n */\nexport function parseEnvelope(\n env: string | Uint8Array,\n textEncoder: TextEncoderInternal,\n textDecoder: TextDecoderInternal,\n): Envelope {\n let buffer = typeof env === 'string' ? textEncoder.encode(env) : env;\n\n function readBinary(length: number): Uint8Array {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson(): T {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(textDecoder.decode(readBinary(i))) as T;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items: [any, any][] = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates attachment envelope items\n */\nexport function createAttachmentEnvelopeItem(\n attachment: Attachment,\n textEncoder?: TextEncoderInternal,\n): AttachmentItem {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP: Record = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n replay_event: 'replay',\n replay_recording: 'replay',\n check_in: 'monitor',\n feedback: 'feedback',\n span: 'span',\n statsd: 'metric_bucket',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nexport function envelopeItemTypeToDataCategory(type: EnvelopeItemType): DataCategory {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nexport function getSdkMetadataForEnvelopeHeader(metadataOrEvent?: SdkMetadata | Event): SdkInfo | undefined {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nexport function createEventEnvelopeHeaders(\n event: Event,\n sdkInfo: SdkInfo | undefined,\n tunnel: string | undefined,\n dsn?: DsnComponents,\n): EventEnvelopeHeaders {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n return {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n ...(dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n","import type { ConsoleLevel } from '@sentry/types';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public logLevel: ConsoleLevel;\n\n public constructor(public message: string, logLevel: ConsoleLevel = 'warn') {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n","import type { ClientOptions, DsnComponents, DsnLike, SdkInfo } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents, sdkInfo: SdkInfo | undefined): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(\n dsn: DsnComponents,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions: string | ClientOptions = {} as ClientOptions,\n): string {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n const sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'onClose') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","import type { DsnComponents, MetricBucketItem, SdkMetadata, StatsdEnvelope, StatsdItem } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\nimport { serializeMetricBuckets } from './utils';\n\n/**\n * Create envelope from a metric aggregate.\n */\nexport function createMetricEnvelope(\n metricBucketItems: Array,\n dsn?: DsnComponents,\n metadata?: SdkMetadata,\n tunnel?: string,\n): StatsdEnvelope {\n const headers: StatsdEnvelope[0] = {\n sent_at: new Date().toISOString(),\n };\n\n if (metadata && metadata.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n };\n }\n\n if (!!tunnel && dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n const item = createMetricEnvelopeItem(metricBucketItems);\n return createEnvelope(headers, [item]);\n}\n\nfunction createMetricEnvelopeItem(metricBucketItems: MetricBucketItem[]): StatsdItem {\n const payload = serializeMetricBuckets(metricBucketItems);\n const metricHeaders: StatsdItem[0] = {\n type: 'statsd',\n length: payload.length,\n };\n return [metricHeaders, payload];\n}\n","import type { MeasurementUnit, MetricBucketItem, Primitive } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\nimport type { MetricType } from './types';\n\n/**\n * Generate bucket key from metric properties.\n */\nexport function getBucketKey(\n metricType: MetricType,\n name: string,\n unit: MeasurementUnit,\n tags: Record,\n): string {\n const stringifiedTags = Object.entries(dropUndefinedKeys(tags)).sort((a, b) => a[0].localeCompare(b[0]));\n return `${metricType}${name}${unit}${stringifiedTags}`;\n}\n\n/* eslint-disable no-bitwise */\n/**\n * Simple hash function for strings.\n */\nexport function simpleHash(s: string): number {\n let rv = 0;\n for (let i = 0; i < s.length; i++) {\n const c = s.charCodeAt(i);\n rv = (rv << 5) - rv + c;\n rv &= rv;\n }\n return rv >>> 0;\n}\n/* eslint-enable no-bitwise */\n\n/**\n * Serialize metrics buckets into a string based on statsd format.\n *\n * Example of format:\n * metric.name@second:1:1.2|d|#a:value,b:anothervalue|T12345677\n * Segments:\n * name: metric.name\n * unit: second\n * value: [1, 1.2]\n * type of metric: d (distribution)\n * tags: { a: value, b: anothervalue }\n * timestamp: 12345677\n */\nexport function serializeMetricBuckets(metricBucketItems: MetricBucketItem[]): string {\n let out = '';\n for (const item of metricBucketItems) {\n const tagEntries = Object.entries(item.tags);\n const maybeTags = tagEntries.length > 0 ? `|#${tagEntries.map(([key, value]) => `${key}:${value}`).join(',')}` : '';\n out += `${item.name}@${item.unit}:${item.metric}|${item.metricType}${maybeTags}|T${item.timestamp}\\n`;\n }\n return out;\n}\n\n/** Sanitizes units */\nexport function sanitizeUnit(unit: string): string {\n return unit.replace(/[^\\w]+/gi, '_');\n}\n\n/** Sanitizes metric keys */\nexport function sanitizeMetricKey(key: string): string {\n return key.replace(/[^\\w\\-.]+/gi, '_');\n}\n\nfunction sanitizeTagKey(key: string): string {\n return key.replace(/[^\\w\\-./]+/gi, '');\n}\n\nconst tagValueReplacements: [string, string][] = [\n ['\\n', '\\\\n'],\n ['\\r', '\\\\r'],\n ['\\t', '\\\\t'],\n ['\\\\', '\\\\\\\\'],\n ['|', '\\\\u{7c}'],\n [',', '\\\\u{2c}'],\n];\n\nfunction getCharOrReplacement(input: string): string {\n for (const [search, replacement] of tagValueReplacements) {\n if (input === search) {\n return replacement;\n }\n }\n\n return input;\n}\n\nfunction sanitizeTagValue(value: string): string {\n return [...value].reduce((acc, char) => acc + getCharOrReplacement(char), '');\n}\n\n/**\n * Sanitizes tags.\n */\nexport function sanitizeTags(unsanitizedTags: Record): Record {\n const tags: Record = {};\n for (const key in unsanitizedTags) {\n if (Object.prototype.hasOwnProperty.call(unsanitizedTags, key)) {\n const sanitizedKey = sanitizeTagKey(key);\n tags[sanitizedKey] = sanitizeTagValue(String(unsanitizedTags[key]));\n }\n }\n return tags;\n}\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n ClientOptions,\n DataCategory,\n DsnComponents,\n DynamicSamplingContext,\n Envelope,\n ErrorEvent,\n Event,\n EventDropReason,\n EventHint,\n EventProcessor,\n FeedbackEvent,\n Integration,\n IntegrationClass,\n MetricBucketItem,\n MetricsAggregator,\n Outcome,\n ParameterizedString,\n SdkMetadata,\n Session,\n SessionAggregates,\n Severity,\n SeverityLevel,\n StartSpanOptions,\n Transaction,\n TransactionEvent,\n Transport,\n TransportMakeRequestResponse,\n} from '@sentry/types';\nimport {\n SentryError,\n SyncPromise,\n addItemToEnvelope,\n checkOrSetAlreadyCaught,\n createAttachmentEnvelopeItem,\n isParameterizedString,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n rejectedSyncPromise,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api';\nimport { DEBUG_BUILD } from './debug-build';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope';\nimport { getClient } from './exports';\nimport { getIsolationScope } from './hub';\nimport type { IntegrationIndex } from './integration';\nimport { afterSetupIntegrations } from './integration';\nimport { setupIntegration, setupIntegrations } from './integration';\nimport { createMetricEnvelope } from './metrics/envelope';\nimport type { Scope } from './scope';\nimport { updateSession } from './session';\nimport { getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext';\nimport { prepareEvent } from './utils/prepareEvent';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient implements Client {\n /**\n * A reference to a metrics aggregator\n *\n * @experimental Note this is alpha API. It may experience breaking changes in the future.\n */\n public metricsAggregator?: MetricsAggregator;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n protected readonly _transport?: Transport;\n\n /** Array of set up integrations. */\n protected _integrations: IntegrationIndex;\n\n /** Indicates whether this client's integrations have been set up. */\n protected _integrationsInitialized: boolean;\n\n /** Number of calls being processed */\n protected _numProcessing: number;\n\n protected _eventProcessors: EventProcessor[];\n\n /** Holds flushable */\n private _outcomes: { [key: string]: number };\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private _hooks: Record;\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n protected constructor(options: O) {\n this._options = options;\n this._integrations = {};\n this._integrationsInitialized = false;\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && logger.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n scope?: Scope,\n ): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(eventMessage, level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope: Scope | undefined = sdkProcessingMetadata.capturedSpanScope;\n\n this._process(\n this._captureEvent(event, hint, capturedSpanScope || scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!(typeof session.release === 'string')) {\n DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n public getSdkMetadata(): SdkMetadata | undefined {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport | undefined {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike {\n const transport = this._transport;\n if (transport) {\n if (this.metricsAggregator) {\n this.metricsAggregator.flush();\n }\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n if (this.metricsAggregator) {\n this.metricsAggregator.close();\n }\n return result;\n });\n }\n\n /** Get all installed event processors. */\n public getEventProcessors(): EventProcessor[] {\n return this._eventProcessors;\n }\n\n /** @inheritDoc */\n public addEventProcessor(eventProcessor: EventProcessor): void {\n this._eventProcessors.push(eventProcessor);\n }\n\n /**\n * This is an internal function to setup all integrations that should run on the client.\n * @deprecated Use `client.init()` instead.\n */\n public setupIntegrations(forceInitialize?: boolean): void {\n if ((forceInitialize && !this._integrationsInitialized) || (this._isEnabled() && !this._integrationsInitialized)) {\n this._setupIntegrations();\n }\n }\n\n /** @inheritdoc */\n public init(): void {\n if (this._isEnabled()) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n * @deprecated Use `getIntegrationByName()` instead.\n */\n public getIntegrationById(integrationId: string): Integration | undefined {\n return this.getIntegrationByName(integrationId);\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns The installed integration or `undefined` if no integration with that `name` was installed.\n */\n public getIntegrationByName(integrationName: string): T | undefined {\n return this._integrations[integrationName] as T | undefined;\n }\n\n /**\n * Returns the client's instance of the given integration class, it any.\n * @deprecated Use `getIntegrationByName()` instead.\n */\n public getIntegration(integration: IntegrationClass): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public addIntegration(integration: Integration): void {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event, hint: EventHint = {}): void {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n const promise = this._sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session | SessionAggregates): void {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(env);\n }\n\n /**\n * @inheritDoc\n */\n public recordDroppedEvent(reason: EventDropReason, category: DataCategory, eventOrCount?: Event | number): void {\n if (this._options.sendClientReports) {\n // TODO v9: We do not need the `event` passed as third argument anymore, and can possibly remove this overload\n // If event is passed as third argument, we assume this is a count of 1\n const count = typeof eventOrCount === 'number' ? eventOrCount : 1;\n\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && logger.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n /**\n * @inheritDoc\n */\n public captureAggregateMetrics(metricBucketItems: Array): void {\n DEBUG_BUILD && logger.log(`Flushing aggregated metrics, number of metrics: ${metricBucketItems.length}`);\n const metricsEnvelope = createMetricEnvelope(\n metricBucketItems,\n this._dsn,\n this._options._metadata,\n this._options.tunnel,\n );\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(metricsEnvelope);\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n /* eslint-disable @typescript-eslint/unified-signatures */\n\n /** @inheritdoc */\n public on(hook: 'startTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'finishTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeEnvelope', callback: (envelope: Envelope) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeSendEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'preprocessEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(\n hook: 'afterSendEvent',\n callback: (event: Event, sendResponse: TransportMakeRequestResponse | void) => void,\n ): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeAddBreadcrumb', callback: (breadcrumb: Breadcrumb, hint?: BreadcrumbHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'createDsc', callback: (dsc: DynamicSamplingContext) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'otelSpanEnd', callback: (otelSpan: unknown, mutableOptions: { drop: boolean }) => void): void;\n\n /** @inheritdoc */\n public on(\n hook: 'beforeSendFeedback',\n callback: (feedback: FeedbackEvent, options?: { includeReplay: boolean }) => void,\n ): void;\n\n /** @inheritdoc */\n public on(hook: 'startPageLoadSpan', callback: (options: StartSpanOptions) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'startNavigationSpan', callback: (options: StartSpanOptions) => void): void;\n\n /** @inheritdoc */\n public on(hook: string, callback: unknown): void {\n if (!this._hooks[hook]) {\n this._hooks[hook] = [];\n }\n\n // @ts-expect-error We assue the types are correct\n this._hooks[hook].push(callback);\n }\n\n /** @inheritdoc */\n public emit(hook: 'startTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'finishTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeEnvelope', envelope: Envelope): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeSendEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'preprocessEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'afterSendEvent', event: Event, sendResponse: TransportMakeRequestResponse | void): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeAddBreadcrumb', breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'createDsc', dsc: DynamicSamplingContext): void;\n\n /** @inheritdoc */\n public emit(hook: 'otelSpanEnd', otelSpan: unknown, mutableOptions: { drop: boolean }): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeSendFeedback', feedback: FeedbackEvent, options?: { includeReplay: boolean }): void;\n\n /** @inheritdoc */\n public emit(hook: 'startPageLoadSpan', options: StartSpanOptions): void;\n\n /** @inheritdoc */\n public emit(hook: 'startNavigationSpan', options: StartSpanOptions): void;\n\n /** @inheritdoc */\n public emit(hook: string, ...rest: unknown[]): void {\n if (this._hooks[hook]) {\n this._hooks[hook].forEach(callback => callback(...rest));\n }\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n protected _setupIntegrations(): void {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n\n // TODO v8: We don't need this flag anymore\n this._integrationsInitialized = true;\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(\n event: Event,\n hint: EventHint,\n scope?: Scope,\n isolationScope = getIsolationScope(),\n ): PromiseLike {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n return prepareEvent(options, event, hint, scope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n const propagationContext = {\n ...isolationScope.getPropagationContext(),\n ...(scope ? scope.getPropagationContext() : undefined),\n };\n\n const trace = evt.contexts && evt.contexts.trace;\n if (!trace && propagationContext) {\n const { traceId: trace_id, spanId, parentSpanId, dsc } = propagationContext;\n evt.contexts = {\n trace: {\n trace_id,\n span_id: spanId,\n parent_span_id: parentSpanId,\n },\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = dsc ? dsc : getDynamicSamplingContextFromClient(trace_id, this, scope);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n }\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint: EventHint = {}, scope?: Scope): PromiseLike {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason as SentryError;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (isError && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory: DataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanIsolationScope: Scope | undefined = sdkProcessingMetadata.capturedSpanIsolationScope;\n\n return this._prepareEvent(event, hint, scope, capturedSpanIsolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore =\n (processedEvent.sdkProcessingMetadata && processedEvent.sdkProcessingMetadata.spanCountBeforeProcessing) ||\n 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(promise: PromiseLike): void {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n protected _sendEnvelope(envelope: Envelope): PromiseLike | void {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n return this._transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n } else {\n DEBUG_BUILD && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n protected _clearOutcomes(): Outcome[] {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') as [EventDropReason, DataCategory];\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public abstract eventFromException(_exception: any, _hint?: EventHint): PromiseLike;\n\n /**\n * @inheritDoc\n */\n public abstract eventFromMessage(\n _message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n _level?: Severity | SeverityLevel,\n _hint?: EventHint,\n ): PromiseLike;\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult: PromiseLike | Event | null,\n beforeSendLabel: string,\n): PromiseLike | Event | null {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n): PromiseLike | Event | null {\n const { beforeSend, beforeSendTransaction } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event) && beforeSendTransaction) {\n if (event.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = event.spans.length;\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(event, hint);\n }\n\n return event;\n}\n\nfunction isErrorEvent(event: Event): event is ErrorEvent {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n\n/**\n * Add an event processor to the current client.\n * This event processor will run for all events processed by this client.\n */\nexport function addEventProcessor(callback: EventProcessor): void {\n const client = getClient();\n\n if (!client || !client.addEventProcessor) {\n return;\n }\n\n client.addEventProcessor(callback);\n}\n","import type { Options } from '@sentry/types';\nimport { SDK_VERSION } from '../version';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nexport function applySdkMetadata(options: Options, name: string, names = [name], source = 'npm'): void {\n const metadata = options._metadata || {};\n\n if (!metadata.sdk) {\n metadata.sdk = {\n name: `sentry.javascript.${name}`,\n packages: names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n })),\n version: SDK_VERSION,\n };\n }\n\n options._metadata = metadata;\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import { getClient } from '@sentry/core';\nimport type {\n Event,\n EventHint,\n Exception,\n ParameterizedString,\n Severity,\n SeverityLevel,\n StackFrame,\n StackParser,\n} from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isParameterizedString,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nexport function exceptionFromError(stackParser: StackParser, ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n stackParser: StackParser,\n exception: Record,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const client = getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception as { values: Exception[] }).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(stackParser: StackParser, ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(\n stackParser: StackParser,\n ex: Error & { framesToPop?: number; stacktrace?: string },\n): StackFrame[] {\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 const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n stackParser: StackParser,\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n stackParser: StackParser,\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n stackParser: StackParser,\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(stackParser, errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(stackParser, exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n // eslint-disable-next-line deprecation/deprecation\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(\n stackParser: StackParser,\n message: ParameterizedString,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n): Event {\n const event: Event = {};\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: message, stacktrace: { frames } }],\n };\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n exception: Record,\n { isUnhandledRejection }: { isUnhandledRejection?: boolean },\n): string {\n const keys = extractExceptionKeysForMessage(exception);\n const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n }\n\n if (isEvent(exception)) {\n const className = getObjectClassName(exception);\n return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n }\n\n return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj: unknown): string | undefined | void {\n try {\n const prototype: Prototype | null = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n","import type { browserTracingIntegration } from '@sentry-internal/tracing';\nimport { BrowserTracing } from '@sentry-internal/tracing';\nimport { captureException, withScope } from '@sentry/core';\nimport type { DsnLike, Integration, Mechanism, WrappedFunction } from '@sentry/types';\nimport {\n GLOBAL_OBJ,\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getOriginalFunction,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped: WrappedFunction = function (this: unknown): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const 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 // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n *\n * @deprecated This type will be removed in the next major version of the Sentry SDK. `showReportDialog` will still be around, however the `eventId` option will now be required.\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(this: void): void;\n /** Callback after reportDialog closed */\n onClose?(this: void): void;\n}\n\n/**\n * This is a slim shim of `browserTracingIntegration` for the CDN bundles.\n * Since the actual functional integration uses a different code from `BrowserTracing`,\n * we want to avoid shipping both of them in the CDN bundles, as that would blow up the size.\n * Instead, we provide a functional integration with the same API, but the old implementation.\n * This means that it's not possible to register custom routing instrumentation, but that's OK for now.\n * We also don't expose the utilities for this anyhow in the CDN bundles.\n * For users that need custom routing in CDN bundles, they have to continue using `new BrowserTracing()` until v8.\n */\nexport function bundleBrowserTracingIntegration(\n options: Parameters[0] = {},\n): Integration {\n // Migrate some options from the old integration to the new one\n // eslint-disable-next-line deprecation/deprecation\n const opts: ConstructorParameters[0] = options;\n\n if (typeof options.markBackgroundSpan === 'boolean') {\n opts.markBackgroundTransactions = options.markBackgroundSpan;\n }\n\n if (typeof options.instrumentPageLoad === 'boolean') {\n opts.startTransactionOnPageLoad = options.instrumentPageLoad;\n }\n\n if (typeof options.instrumentNavigation === 'boolean') {\n opts.startTransactionOnLocationChange = options.instrumentNavigation;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return new BrowserTracing(opts);\n}\n","import type { Scope } from '@sentry/core';\nimport { applySdkMetadata } from '@sentry/core';\nimport { BaseClient } from '@sentry/core';\nimport type {\n BrowserClientProfilingOptions,\n BrowserClientReplayOptions,\n ClientOptions,\n Event,\n EventHint,\n Options,\n ParameterizedString,\n Severity,\n SeverityLevel,\n UserFeedback,\n} from '@sentry/types';\nimport { createClientReportEnvelope, dsnToString, getSDKSource, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { WINDOW } from './helpers';\nimport type { BrowserTransportOptions } from './transports/types';\nimport { createUserFeedbackEnvelope } from './userfeedback';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\nexport type BrowserOptions = Options &\n BrowserClientReplayOptions &\n BrowserClientProfilingOptions;\n\n/**\n * Configuration options for the Sentry Browser SDK Client class\n * @see BrowserClient for more information.\n */\nexport type BrowserClientOptions = ClientOptions &\n BrowserClientReplayOptions &\n BrowserClientProfilingOptions;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserClientOptions) {\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n applySdkMetadata(options, 'browser', ['browser'], sdkSource);\n\n super(options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n ): PromiseLike {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * Sends user feedback to Sentry.\n */\n public captureUserFeedback(feedback: UserFeedback): void {\n if (!this._isEnabled()) {\n DEBUG_BUILD && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n private _flushOutcomes(): void {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && logger.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(envelope);\n }\n}\n","import type { DsnComponents, EventEnvelope, SdkMetadata, UserFeedback, UserFeedbackItem } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\n\n/**\n * Creates an envelope from a user feedback.\n */\nexport function createUserFeedbackEnvelope(\n feedback: UserFeedback,\n {\n metadata,\n tunnel,\n dsn,\n }: {\n metadata: SdkMetadata | undefined;\n tunnel: string | undefined;\n dsn: DsnComponents | undefined;\n },\n): EventEnvelope {\n const headers: EventEnvelope[0] = {\n event_id: feedback.event_id,\n sent_at: new Date().toISOString(),\n ...(metadata &&\n metadata.sdk && {\n sdk: {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n },\n }),\n ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n };\n const item = createUserFeedbackEnvelopeItem(feedback);\n\n return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback: UserFeedback): UserFeedbackItem {\n const feedbackHeaders: UserFeedbackItem[0] = {\n type: 'user_report',\n };\n return [feedbackHeaders, feedback];\n}\n","import type { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { ConsoleLevel, HandlerDataConsole } from '@sentry/types';\n\nimport { CONSOLE_LEVELS, originalConsoleMethods } from '../logger';\nimport { fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addConsoleInstrumentationHandler(handler: (data: HandlerDataConsole) => void): void {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole(): void {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: ConsoleLevel): void {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod: () => any): Function {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args: any[]): void {\n const handlerData: HandlerDataConsole = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log && log.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataDom } from '@sentry/types';\n\nimport { uuid4 } from '../misc';\nimport { addNonEnumerableProperty, fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\ntype SentryWrappedTarget = HTMLElement & { _sentryId?: string };\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID: number | undefined;\nlet lastCapturedEventType: string | undefined;\nlet lastCapturedEventTargetId: string | undefined;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addClickKeypressInstrumentationHandler(handler: (data: HandlerDataDom) => void): void {\n const type = 'dom';\n addHandler(type, handler);\n maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nexport function instrumentDOM(): void {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW as any)[target] && (WINDOW as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event: Event): boolean {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target as SentryWrappedTarget)._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType: string, target: SentryWrappedTarget | null): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n handler: (data: HandlerDataDom) => void,\n globalListener: boolean = false,\n): (event: Event) => void {\n return (event: Event & { _sentryCaptured?: true }): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n const handlerData: HandlerDataDom = { event, name, global: globalListener };\n handler(handlerData);\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\nfunction getEventTarget(event: Event): SentryWrappedTarget | null {\n try {\n return event.target as SentryWrappedTarget | null;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataXhr, SentryWrappedXMLHttpRequest, WrappedFunction } from '@sentry/types';\n\nimport { isString } from '../is';\nimport { fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nexport const SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addXhrInstrumentationHandler(handler: (data: HandlerDataXhr) => void): void {\n const type = 'xhr';\n addHandler(type, handler);\n maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nexport function instrumentXHR(): void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!(WINDOW as any).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const startTimestamp = Date.now();\n\n // open() should always be called with two or more arguments\n // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n const method = isString(args[0]) ? args[0].toUpperCase() : undefined;\n const url = parseUrl(args[1]);\n\n if (!method || !url) {\n return originalOpen.apply(this, args);\n }\n\n this[SENTRY_XHR_DATA_KEY] = {\n method,\n url,\n request_headers: {},\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n if (method === 'POST' && url.match(/sentry_key/)) {\n this.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler: () => void = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (this.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = this.status;\n } catch (e) {\n /* do nothing */\n }\n\n const handlerData: HandlerDataXhr = {\n args: [method, url],\n endTimestamp: Date.now(),\n startTimestamp,\n xhr: this,\n };\n triggerHandlers('xhr', handlerData);\n }\n };\n\n if ('onreadystatechange' in this && typeof this.onreadystatechange === 'function') {\n fill(this, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(this, readyStateArgs);\n };\n });\n } else {\n this.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n fill(this, 'setRequestHeader', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...setRequestHeaderArgs: unknown[]): void {\n const [header, value] = setRequestHeaderArgs;\n\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo && isString(header) && isString(value)) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return original.apply(this, setRequestHeaderArgs);\n };\n });\n\n return originalOpen.apply(this, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const sentryXhrData = this[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return originalSend.apply(this, args);\n }\n\n if (args[0] !== undefined) {\n sentryXhrData.body = args[0];\n }\n\n const handlerData: HandlerDataXhr = {\n args: [sentryXhrData.method, sentryXhrData.url],\n startTimestamp: Date.now(),\n xhr: this,\n };\n triggerHandlers('xhr', handlerData);\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nfunction parseUrl(url: string | unknown): string | undefined {\n if (isString(url)) {\n return url;\n }\n\n try {\n // url can be a string or URL\n // but since URL is not available in IE11, we do not check for it,\n // but simply assume it is an URL and return `toString()` from it (which returns the full URL)\n // If that fails, we just return undefined\n return (url as URL).toString();\n } catch {} // eslint-disable-line no-empty\n\n return undefined;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataFetch } from '@sentry/types';\n\nimport { fill } from '../object';\nimport { supportsNativeFetch } from '../supports';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\ntype FetchResource = string | { toString(): string } | { url: string };\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addFetchInstrumentationHandler(handler: (data: HandlerDataFetch) => void): void {\n const type = 'fetch';\n addHandler(type, handler);\n maybeInstrument(type, instrumentFetch);\n}\n\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const { method, url } = parseFetchArgs(args);\n\n const handlerData: HandlerDataFetch = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n (response: Response) => {\n const finishedHandlerData: HandlerDataFetch = {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n };\n\n triggerHandlers('fetch', finishedHandlerData);\n return response;\n },\n (error: Error) => {\n const erroredHandlerData: HandlerDataFetch = {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n };\n\n triggerHandlers('fetch', erroredHandlerData);\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nfunction hasProp(obj: unknown, prop: T): obj is Record {\n return !!obj && typeof obj === 'object' && !!(obj as Record)[prop];\n}\n\nfunction getUrlFromResource(resource: FetchResource): string {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nexport function parseFetchArgs(fetchArgs: unknown[]): { method: string; url: string } {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs as [FetchResource, object];\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg as FetchResource),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n","/* eslint-disable deprecation/deprecation */\nimport type { Severity, SeverityLevel } from '@sentry/types';\n\n// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nexport const validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nexport function severityFromString(level: Severity | SeverityLevel | string): Severity {\n return severityLevelFromString(level) as Severity;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nexport function severityLevelFromString(level: SeverityLevel | string): SeverityLevel {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') as SeverityLevel;\n}\n","type PartialURL = {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n search?: string;\n hash?: string;\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 */\nexport function parseUrl(url: string): PartialURL {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\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 */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nexport function getNumberOfUrlSegments(url: string): number {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span description\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nexport function getSanitizedUrlString(url: PartialURL): string {\n const { protocol, host, path } = url;\n\n const filteredHost =\n (host &&\n host\n // Always filter out authority\n .replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '')) ||\n '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n","/* eslint-disable max-lines */\nimport { addBreadcrumb, convertIntegrationFnToClass, defineIntegration, getClient } from '@sentry/core';\nimport type {\n Client,\n Event as SentryEvent,\n HandlerDataConsole,\n HandlerDataDom,\n HandlerDataFetch,\n HandlerDataHistory,\n HandlerDataXhr,\n Integration,\n IntegrationClass,\n IntegrationFn,\n} from '@sentry/types';\nimport type {\n Breadcrumb,\n FetchBreadcrumbData,\n FetchBreadcrumbHint,\n XhrBreadcrumbData,\n XhrBreadcrumbHint,\n} from '@sentry/types/build/types/breadcrumb';\nimport {\n SENTRY_XHR_DATA_KEY,\n addClickKeypressInstrumentationHandler,\n addConsoleInstrumentationHandler,\n addFetchInstrumentationHandler,\n addHistoryInstrumentationHandler,\n addXhrInstrumentationHandler,\n getComponentName,\n getEventDescription,\n htmlTreeAsString,\n logger,\n parseUrl,\n safeJoin,\n severityLevelFromString,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\ninterface BreadcrumbsOptions {\n console: boolean;\n dom:\n | boolean\n | {\n serializeAttribute?: string | string[];\n maxStringLength?: number;\n };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst INTEGRATION_NAME = 'Breadcrumbs';\n\nconst _breadcrumbsIntegration = ((options: Partial = {}) => {\n const _options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n setup(client) {\n if (_options.console) {\n addConsoleInstrumentationHandler(_getConsoleBreadcrumbHandler(client));\n }\n if (_options.dom) {\n addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n }\n if (_options.xhr) {\n addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n }\n if (_options.fetch) {\n addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n }\n if (_options.history) {\n addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n }\n if (_options.sentry && client.on) {\n client.on('beforeSendEvent', _getSentryBreadcrumbHandler(client));\n }\n },\n };\n}) satisfies IntegrationFn;\n\nexport const breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\n\n/**\n * Default Breadcrumbs instrumentations\n *\n * @deprecated Use `breadcrumbsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const Breadcrumbs = convertIntegrationFnToClass(INTEGRATION_NAME, breadcrumbsIntegration) as IntegrationClass<\n Integration & { setup: (client: Client) => void }\n> & {\n new (\n options?: Partial<{\n console: boolean;\n dom:\n | boolean\n | {\n serializeAttribute?: string | string[];\n maxStringLength?: number;\n };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n }>,\n ): Integration;\n};\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction _getSentryBreadcrumbHandler(client: Client): (event: SentryEvent) => void {\n return function addSentryBreadcrumb(event: SentryEvent): void {\n if (getClient() !== client) {\n return;\n }\n\n addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n };\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _getDomBreadcrumbHandler(\n client: Client,\n dom: BreadcrumbsOptions['dom'],\n): (handlerData: HandlerDataDom) => void {\n return function _innerDomBreadcrumb(handlerData: HandlerDataDom): void {\n if (getClient() !== client) {\n return;\n }\n\n let target;\n let componentName;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n const event = handlerData.event as Event | Node;\n const element = _isEvent(event) ? event.target : event;\n\n target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n componentName = getComponentName(element);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n const breadcrumb: Breadcrumb = {\n category: `ui.${handlerData.name}`,\n message: target,\n };\n\n if (componentName) {\n breadcrumb.data = { 'ui.component_name': componentName };\n }\n\n addBreadcrumb(breadcrumb, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _getConsoleBreadcrumbHandler(client: Client): (handlerData: HandlerDataConsole) => void {\n return function _consoleBreadcrumb(handlerData: HandlerDataConsole): void {\n if (getClient() !== client) {\n return;\n }\n\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _getXhrBreadcrumbHandler(client: Client): (handlerData: HandlerDataXhr) => void {\n return function _xhrBreadcrumb(handlerData: HandlerDataXhr): void {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n // We only capture complete, non-sentry requests\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return;\n }\n\n const { method, url, status_code, body } = sentryXhrData;\n\n const data: XhrBreadcrumbData = {\n method,\n url,\n status_code,\n };\n\n const hint: XhrBreadcrumbHint = {\n xhr: handlerData.xhr,\n input: body,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'xhr',\n data,\n type: 'http',\n },\n hint,\n );\n };\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _getFetchBreadcrumbHandler(client: Client): (handlerData: HandlerDataFetch) => void {\n return function _fetchBreadcrumb(handlerData: HandlerDataFetch): void {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n // We only capture complete fetch requests\n if (!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 const data: FetchBreadcrumbData = handlerData.fetchData;\n const hint: FetchBreadcrumbHint = {\n data: handlerData.error,\n input: handlerData.args,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n level: 'error',\n type: 'http',\n },\n hint,\n );\n } else {\n const response = handlerData.response as Response | undefined;\n const data: FetchBreadcrumbData = {\n ...handlerData.fetchData,\n status_code: response && response.status,\n };\n const hint: FetchBreadcrumbHint = {\n input: handlerData.args,\n response,\n startTimestamp,\n endTimestamp,\n };\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n type: 'http',\n },\n hint,\n );\n }\n };\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _getHistoryBreadcrumbHandler(client: Client): (handlerData: HandlerDataHistory) => void {\n return function _historyBreadcrumb(handlerData: HandlerDataHistory): void {\n if (getClient() !== client) {\n return;\n }\n\n let from: string | undefined = handlerData.from;\n let to: string | undefined = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = from ? parseUrl(from) : undefined;\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom || !parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n };\n}\n\nfunction _isEvent(event: unknown): event is Event {\n return !!event && !!(event as Record).target;\n}\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Event, Exception, Integration, IntegrationClass, IntegrationFn, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\n\nconst INTEGRATION_NAME = 'Dedupe';\n\nconst _dedupeIntegration = (() => {\n let previousEvent: Event | undefined;\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n processEvent(currentEvent) {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, previousEvent)) {\n DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n return (previousEvent = currentEvent);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const dedupeIntegration = defineIntegration(_dedupeIntegration);\n\n/**\n * Deduplication filter.\n * @deprecated Use `dedupeIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const Dedupe = convertIntegrationFnToClass(INTEGRATION_NAME, dedupeIntegration) as IntegrationClass<\n Integration & { processEvent: (event: Event) => Event }\n>;\n\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-expect-error Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n","import type { HandlerDataError } from '@sentry/types';\n\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nlet _oldOnErrorHandler: (typeof GLOBAL_OBJ)['onerror'] | null = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalErrorInstrumentationHandler(handler: (data: HandlerDataError) => void): void {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError(): void {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n GLOBAL_OBJ.onerror = function (\n msg: string | object,\n url?: string,\n line?: number,\n column?: number,\n error?: Error,\n ): boolean {\n const handlerData: HandlerDataError = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler && !_oldOnErrorHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { HandlerDataUnhandledRejection } from '@sentry/types';\n\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nlet _oldOnUnhandledRejectionHandler: (typeof GLOBAL_OBJ)['onunhandledrejection'] | null = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalUnhandledRejectionInstrumentationHandler(\n handler: (data: HandlerDataUnhandledRejection) => void,\n): void {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n GLOBAL_OBJ.onunhandledrejection = function (e: any): boolean {\n const handlerData: HandlerDataUnhandledRejection = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler && !_oldOnUnhandledRejectionHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { captureEvent, convertIntegrationFnToClass, defineIntegration, getClient } from '@sentry/core';\nimport type {\n Client,\n Event,\n Integration,\n IntegrationClass,\n IntegrationFn,\n Primitive,\n StackParser,\n} from '@sentry/types';\nimport {\n addGlobalErrorInstrumentationHandler,\n addGlobalUnhandledRejectionInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport type { BrowserClient } from '../client';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\ntype GlobalHandlersIntegrations = Record;\n\nconst INTEGRATION_NAME = 'GlobalHandlers';\n\nconst _globalHandlersIntegration = ((options: Partial = {}) => {\n const _options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n Error.stackTraceLimit = 50;\n },\n setup(client) {\n if (_options.onerror) {\n _installGlobalOnErrorHandler(client);\n globalHandlerLog('onerror');\n }\n if (_options.onunhandledrejection) {\n _installGlobalOnUnhandledRejectionHandler(client);\n globalHandlerLog('onunhandledrejection');\n }\n },\n };\n}) satisfies IntegrationFn;\n\nexport const globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\n\n/**\n * Global handlers.\n * @deprecated Use `globalHandlersIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const GlobalHandlers = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n globalHandlersIntegration,\n) as IntegrationClass void }> & {\n new (options?: Partial): Integration;\n};\n\nfunction _installGlobalOnErrorHandler(client: Client): void {\n addGlobalErrorInstrumentationHandler(data => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const { msg, url, line, column, error } = data;\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onerror',\n },\n });\n });\n}\n\nfunction _installGlobalOnUnhandledRejectionHandler(client: Client): void {\n addGlobalUnhandledRejectionInstrumentationHandler(e => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const error = _getUnhandledRejectionError(e as unknown);\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onunhandledrejection',\n },\n });\n });\n}\n\nfunction _getUnhandledRejectionError(error: unknown): unknown {\n if (isPrimitive(error)) {\n return error;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const e = error as any;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n return e.reason;\n }\n\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n return e.detail.reason;\n }\n } catch {} // eslint-disable-line no-empty\n\n return error;\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction getOptions(): { stackParser: StackParser; attachStacktrace?: boolean } {\n const client = getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return options;\n}\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Event, Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\n\nimport { WINDOW } from '../helpers';\n\nconst INTEGRATION_NAME = 'HttpContext';\n\nconst _httpContextIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n preprocessEvent(event) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n event.request = request;\n },\n };\n}) satisfies IntegrationFn;\n\nexport const httpContextIntegration = defineIntegration(_httpContextIntegration);\n\n/**\n * HttpContext integration collects information about HTTP request headers.\n * @deprecated Use `httpContextIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const HttpContext = convertIntegrationFnToClass(INTEGRATION_NAME, httpContextIntegration) as IntegrationClass<\n Integration & { preprocessEvent: (event: Event) => void }\n>;\n","import type { Event, EventHint, Exception, ExtendedError, StackParser } from '@sentry/types';\n\nimport { isInstanceOf } from './is';\nimport { truncate } from './string';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nexport function applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n maxValueLimit: number = 250,\n key: string,\n limit: number,\n event: Event,\n hint?: EventHint,\n): void {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException: Exception | undefined =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = truncateAggregateExceptions(\n aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException as ExtendedError,\n key,\n event.exception.values,\n originalException,\n 0,\n ),\n maxValueLimit,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n limit: number,\n error: ExtendedError,\n key: string,\n prevExceptions: Exception[],\n exception: Exception,\n exceptionId: number,\n): Exception[] {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (Array.isArray(error.errors)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception: Exception, exceptionId: number): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception: Exception,\n source: string,\n exceptionId: number,\n parentId: number | undefined,\n): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions: Exception[], maxValueLength: number): Exception[] {\n return exceptions.map(exception => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n return exception;\n });\n}\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Client, Event, EventHint, Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\nimport { applyAggregateErrorsToEvent } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder';\n\ninterface LinkedErrorsOptions {\n key?: string;\n limit?: number;\n}\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options: LinkedErrorsOptions = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n key,\n limit,\n event,\n hint,\n );\n },\n };\n}) satisfies IntegrationFn;\n\nexport const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\n/**\n * Aggregrate linked errors in an event.\n * @deprecated Use `linkedErrorsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const LinkedErrors = convertIntegrationFnToClass(INTEGRATION_NAME, linkedErrorsIntegration) as IntegrationClass<\n Integration & { preprocessEvent: (event: Event, hint: EventHint, client: Client) => void }\n> & { new (options?: { key?: string; limit?: number }): Integration };\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Integration, IntegrationClass, IntegrationFn, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\n\nimport { WINDOW, wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'BroadcastChannel',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'SharedWorker',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\nconst INTEGRATION_NAME = 'TryCatch';\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\nconst _browserApiErrorsIntegration = ((options: Partial = {}) => {\n const _options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO: This currently only works for the first client this is setup\n // We may want to adjust this to check for client etc.\n setupOnce() {\n if (_options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (_options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (_options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (_options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = _options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n },\n };\n}) satisfies IntegrationFn;\n\nexport const browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\n\n/**\n * Wrap timer functions and event targets to catch errors and provide better meta data.\n * @deprecated Use `browserApiErrorsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const TryCatch = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n browserApiErrorsIntegration,\n) as IntegrationClass & {\n new (options?: {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n }): Integration;\n};\n\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: false,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(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: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: VoidFunction,): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\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 const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","// This was originally forked from https://github.com/csnover/TraceKit, and was largely\n// re - written as part of raven - js.\n//\n// This code was later copied to the JavaScript mono - repo and further modified and\n// refactored over the years.\n\n// Copyright (c) 2013 Onur Can Cakmak onur.cakmak@gmail.com and all TraceKit contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this\n// software and associated documentation files(the 'Software'), to deal in the Software\n// without restriction, including without limitation the rights to use, copy, modify,\n// merge, publish, distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to the following\n// conditions:\n//\n// The above copyright notice and this permission notice shall be included in all copies\n// or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\n// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\n// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport type { StackFrame, StackLineParser, StackLineParserFn } from '@sentry/types';\nimport { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n in_app: true, // All browser frames are considered in_app\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\n// We cannot call this variable `chrome` because it can conflict with global `chrome` variable in certain environments\n// See: https://github.com/getsentry/sentry-javascript/issues/6880\nconst chromeStackParserFn: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackLineParser: StackLineParser = [CHROME_PRIORITY, chromeStackParserFn];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackLineParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackLineParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackLineParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackLineParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\nexport const defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nexport const defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import { SentryError } from './error';\nimport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array>;\n add(taskProducer: () => PromiseLike): PromiseLike;\n drain(timeout?: number): PromiseLike;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer(limit?: number): PromiseBuffer {\n const buffer: Array> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task: PromiseLike): PromiseLike {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike): PromiseLike {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","import type { DataCategory, TransportMakeRequestResponse } from '@sentry/types';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\nexport type RateLimits = Record;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nexport function disabledUntil(limits: RateLimits, dataCategory: DataCategory): number {\n return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, dataCategory: DataCategory, now: number = Date.now()): boolean {\n return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n { statusCode, headers }: TransportMakeRequestResponse,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : : \n * where\n * is a delay in seconds\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 * Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n","import type {\n Envelope,\n EnvelopeItem,\n EnvelopeItemType,\n Event,\n EventDropReason,\n EventItem,\n InternalBaseTransportOptions,\n Transport,\n TransportMakeRequestResponse,\n TransportRequestExecutor,\n} from '@sentry/types';\nimport type { PromiseBuffer, RateLimits } from '@sentry/utils';\nimport {\n SentryError,\n createEnvelope,\n envelopeItemTypeToDataCategory,\n forEachEnvelopeItem,\n isRateLimited,\n logger,\n makePromiseBuffer,\n resolvedSyncPromise,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n): Transport {\n let rateLimits: RateLimits = {};\n const flush = (timeout?: number): PromiseLike => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike {\n const filteredEnvelopeItems: EnvelopeItem[] = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', dataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope: Envelope = createEnvelope(envelope[0], filteredEnvelopeItems as any);\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason: EventDropReason): void => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = (): PromiseLike =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n DEBUG_BUILD && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n DEBUG_BUILD && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n // We use this to identifify if the transport is the base transport\n // TODO (v8): Remove this again as we'll no longer need it\n send.__sentry__baseTransport__ = true;\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item: Envelope[1][number], type: EnvelopeItemType): Event | undefined {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item as EventItem)[1] : undefined;\n}\n","import { isNativeFetch, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\nlet cachedFetchImpl: FetchImpl | undefined = undefined;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(WINDOW.fetch)) {\n return (cachedFetchImpl = WINDOW.fetch.bind(WINDOW));\n }\n\n const document = WINDOW.document;\n let fetchImpl = WINDOW.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n DEBUG_BUILD && logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(WINDOW));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/** Clears cached fetch impl */\nexport function clearCachedFetchImplementation(): void {\n cachedFetchImpl = undefined;\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { rejectedSyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\nimport type { FetchImpl } from './utils';\nimport { clearCachedFetchImplementation, getNativeFetchImplementation } from './utils';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeFetchTransport(\n options: BrowserTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): Transport {\n let pendingBodySize = 0;\n let pendingCount = 0;\n\n function makeRequest(request: TransportRequest): PromiseLike {\n const requestSize = request.body.length;\n pendingBodySize += requestSize;\n pendingCount++;\n\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n // If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n // We will therefore only activate the flag when we're below that limit.\n // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n keepalive: pendingBodySize <= 60_000 && pendingCount < 15,\n ...options.fetchOptions,\n };\n\n try {\n return nativeFetch(options.url, requestOptions).then(response => {\n pendingBodySize -= requestSize;\n pendingCount--;\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n };\n });\n } catch (e) {\n clearCachedFetchImplementation();\n pendingBodySize -= requestSize;\n pendingCount--;\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeXHRTransport(options: BrowserTransportOptions): Transport {\n function makeRequest(request: TransportRequest): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n","import type { Hub } from '@sentry/core';\nimport { functionToStringIntegration, inboundFiltersIntegration } from '@sentry/core';\nimport {\n captureSession,\n getClient,\n getCurrentHub,\n getIntegrationsToSetup,\n getReportDialogEndpoint,\n initAndBind,\n startSession,\n} from '@sentry/core';\nimport type { Integration, Options, UserFeedback } from '@sentry/types';\nimport {\n addHistoryInstrumentationHandler,\n logger,\n stackParserFromStackParserOptions,\n supportsFetch,\n} from '@sentry/utils';\n\nimport type { BrowserClientOptions, BrowserOptions } from './client';\nimport { BrowserClient } from './client';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { ReportDialogOptions } from './helpers';\nimport { WINDOW, wrap as internalWrap } from './helpers';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs';\nimport { dedupeIntegration } from './integrations/dedupe';\nimport { globalHandlersIntegration } from './integrations/globalhandlers';\nimport { httpContextIntegration } from './integrations/httpcontext';\nimport { linkedErrorsIntegration } from './integrations/linkederrors';\nimport { browserApiErrorsIntegration } from './integrations/trycatch';\nimport { defaultStackParser } from './stack-parsers';\nimport { makeFetchTransport, makeXHRTransport } from './transports';\n\n/** @deprecated Use `getDefaultIntegrations(options)` instead. */\nexport const defaultIntegrations = [\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n browserApiErrorsIntegration(),\n breadcrumbsIntegration(),\n globalHandlersIntegration(),\n linkedErrorsIntegration(),\n dedupeIntegration(),\n httpContextIntegration(),\n];\n\n/** Get the default integrations for the browser SDK. */\nexport function getDefaultIntegrations(_options: Options): Integration[] {\n // We return a copy of the defaultIntegrations here to avoid mutating this\n return [\n // eslint-disable-next-line deprecation/deprecation\n ...defaultIntegrations,\n ];\n}\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\ndeclare const __SENTRY_RELEASE__: string | undefined;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): void {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = getDefaultIntegrations(options);\n }\n if (options.release === undefined) {\n // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n if (typeof __SENTRY_RELEASE__ === 'string') {\n options.release = __SENTRY_RELEASE__;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id) {\n options.release = WINDOW.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n const clientOptions: BrowserClientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\ntype NewReportDialogOptions = ReportDialogOptions & { eventId: string }; // eslint-disable-line\n\ninterface ShowReportDialogFunction {\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 (options: NewReportDialogOptions): void;\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 * @deprecated Please always pass an `options` argument with `eventId`. The `hub` argument will not be used in the next version of the SDK.\n */\n // eslint-disable-next-line deprecation/deprecation\n (options?: ReportDialogOptions, hub?: Hub): void;\n}\n\nexport const showReportDialog: ShowReportDialogFunction = (\n // eslint-disable-next-line deprecation/deprecation\n options: ReportDialogOptions = {},\n // eslint-disable-next-line deprecation/deprecation\n hub: Hub = getCurrentHub(),\n) => {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n DEBUG_BUILD && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const { client, scope } = hub.getStackTop();\n const dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n DEBUG_BUILD && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n // eslint-disable-next-line deprecation/deprecation\n options.eventId = hub.lastEventId();\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.crossOrigin = 'anonymous';\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const { onClose } = options;\n if (onClose) {\n const reportDialogClosedMessageHandler = (event: MessageEvent): void => {\n if (event.data === '__sentry_reportdialog_closed__') {\n try {\n onClose();\n } finally {\n WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n }\n }\n };\n WINDOW.addEventListener('message', reportDialogClosedMessageHandler);\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n DEBUG_BUILD && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n};\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n callback();\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @deprecated This function will be removed in v8.\n * It is not part of Sentry's official API and it's easily replaceable by using a try/catch block\n * and calling Sentry.captureException.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// TODO(v8): Remove this function\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn: (...args: any) => any): any {\n return internalWrap(fn)();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking(): void {\n if (typeof WINDOW.document === 'undefined') {\n DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSession({ ignoreDuration: true });\n captureSession();\n\n // We want to create a session for every navigation as well\n addHistoryInstrumentationHandler(({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (from !== undefined && from !== to) {\n startSession({ ignoreDuration: true });\n captureSession();\n }\n });\n}\n\n/**\n * Captures user feedback and sends it to Sentry.\n */\nexport function captureUserFeedback(feedback: UserFeedback): void {\n const client = getClient();\n if (client) {\n client.captureUserFeedback(feedback);\n }\n}\n","import type { MeasurementUnit, Span } from '@sentry/types';\nimport type { MetricSummary } from '@sentry/types';\nimport type { Primitive } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\nimport { getActiveSpan } from '../tracing';\nimport type { MetricType } from './types';\n\n/**\n * key: bucketKey\n * value: [exportKey, MetricSummary]\n */\ntype MetricSummaryStorage = Map;\n\nlet SPAN_METRIC_SUMMARY: WeakMap | undefined;\n\nfunction getMetricStorageForSpan(span: Span): MetricSummaryStorage | undefined {\n return SPAN_METRIC_SUMMARY ? SPAN_METRIC_SUMMARY.get(span) : undefined;\n}\n\n/**\n * Fetches the metric summary if it exists for the passed span\n */\nexport function getMetricSummaryJsonForSpan(span: Span): Record> | undefined {\n const storage = getMetricStorageForSpan(span);\n\n if (!storage) {\n return undefined;\n }\n const output: Record> = {};\n\n for (const [, [exportKey, summary]] of storage) {\n if (!output[exportKey]) {\n output[exportKey] = [];\n }\n\n output[exportKey].push(dropUndefinedKeys(summary));\n }\n\n return output;\n}\n\n/**\n * Updates the metric summary on the currently active span\n */\nexport function updateMetricSummaryOnActiveSpan(\n metricType: MetricType,\n sanitizedName: string,\n value: number,\n unit: MeasurementUnit,\n tags: Record,\n bucketKey: string,\n): void {\n const span = getActiveSpan();\n if (span) {\n const storage = getMetricStorageForSpan(span) || new Map();\n\n const exportKey = `${metricType}:${sanitizedName}@${unit}`;\n const bucketItem = storage.get(bucketKey);\n\n if (bucketItem) {\n const [, summary] = bucketItem;\n storage.set(bucketKey, [\n exportKey,\n {\n min: Math.min(summary.min, value),\n max: Math.max(summary.max, value),\n count: (summary.count += 1),\n sum: (summary.sum += value),\n tags: summary.tags,\n },\n ]);\n } else {\n storage.set(bucketKey, [\n exportKey,\n {\n min: value,\n max: value,\n count: 1,\n sum: value,\n tags,\n },\n ]);\n }\n\n if (!SPAN_METRIC_SUMMARY) {\n SPAN_METRIC_SUMMARY = new WeakMap();\n }\n\n SPAN_METRIC_SUMMARY.set(span, storage);\n }\n}\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/**\n * The id of the profile that this span occured in.\n */\nexport const SEMANTIC_ATTRIBUTE_PROFILE_ID = 'profile_id';\n","import type { Span } from '@sentry/types';\n\n/** The status of an Span.\n *\n * @deprecated Use string literals - if you require type casting, cast to SpanStatusType type\n */\nexport enum SpanStatus {\n /** The operation completed successfully. */\n Ok = 'ok',\n /** Deadline expired before operation could complete. */\n DeadlineExceeded = 'deadline_exceeded',\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n Unauthenticated = 'unauthenticated',\n /** 403 Forbidden */\n PermissionDenied = 'permission_denied',\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n NotFound = 'not_found',\n /** 429 Too Many Requests */\n ResourceExhausted = 'resource_exhausted',\n /** Client specified an invalid argument. 4xx. */\n InvalidArgument = 'invalid_argument',\n /** 501 Not Implemented */\n Unimplemented = 'unimplemented',\n /** 503 Service Unavailable */\n Unavailable = 'unavailable',\n /** Other/generic 5xx. */\n InternalError = 'internal_error',\n /** Unknown. Any non-standard HTTP status code. */\n UnknownError = 'unknown_error',\n /** The operation was cancelled (typically by the user). */\n Cancelled = 'cancelled',\n /** Already exists (409) */\n AlreadyExists = 'already_exists',\n /** Operation was rejected because the system is not in a state required for the operation's */\n FailedPrecondition = 'failed_precondition',\n /** The operation was aborted, typically due to a concurrency issue. */\n Aborted = 'aborted',\n /** Operation was attempted past the valid range. */\n OutOfRange = 'out_of_range',\n /** Unrecoverable data loss or corruption */\n DataLoss = 'data_loss',\n}\n\nexport type SpanStatusType =\n /** The operation completed successfully. */\n | 'ok'\n /** Deadline expired before operation could complete. */\n | 'deadline_exceeded'\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n | 'unauthenticated'\n /** 403 Forbidden */\n | 'permission_denied'\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n | 'not_found'\n /** 429 Too Many Requests */\n | 'resource_exhausted'\n /** Client specified an invalid argument. 4xx. */\n | 'invalid_argument'\n /** 501 Not Implemented */\n | 'unimplemented'\n /** 503 Service Unavailable */\n | 'unavailable'\n /** Other/generic 5xx. */\n | 'internal_error'\n /** Unknown. Any non-standard HTTP status code. */\n | 'unknown_error'\n /** The operation was cancelled (typically by the user). */\n | 'cancelled'\n /** Already exists (409) */\n | 'already_exists'\n /** Operation was rejected because the system is not in a state required for the operation's */\n | 'failed_precondition'\n /** The operation was aborted, typically due to a concurrency issue. */\n | 'aborted'\n /** Operation was attempted past the valid range. */\n | 'out_of_range'\n /** Unrecoverable data loss or corruption */\n | 'data_loss';\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function getSpanStatusFromHttpCode(httpStatus: number): SpanStatusType {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n\n return 'unknown_error';\n}\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @deprecated Use {@link spanStatusFromHttpCode} instead.\n * This export will be removed in v8 as the signature contains a typo.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport const spanStatusfromHttpCode = getSpanStatusFromHttpCode;\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nexport function setHttpStatus(span: Span, httpStatus: number): void {\n // TODO (v8): Remove these calls\n // Relay does not require us to send the status code as a tag\n // For now, just because users might expect it to land as a tag we keep sending it.\n // Same with data.\n // In v8, we replace both, simply with\n // span.setAttribute('http.response.status_code', httpStatus);\n\n // eslint-disable-next-line deprecation/deprecation\n span.setTag('http.status_code', String(httpStatus));\n // eslint-disable-next-line deprecation/deprecation\n span.setData('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n","/* eslint-disable max-lines */\nimport type {\n Instrumenter,\n Measurements,\n Primitive,\n Span as SpanInterface,\n SpanAttributeValue,\n SpanAttributes,\n SpanContext,\n SpanContextData,\n SpanJSON,\n SpanOrigin,\n SpanTimeInput,\n TraceContext,\n Transaction,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getMetricSummaryJsonForSpan } from '../metrics/metric-summary';\nimport {\n SEMANTIC_ATTRIBUTE_PROFILE_ID,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n} from '../semanticAttributes';\nimport { getRootSpan } from '../utils/getRootSpan';\nimport {\n TRACE_FLAG_NONE,\n TRACE_FLAG_SAMPLED,\n spanTimeInputToSeconds,\n spanToJSON,\n spanToTraceContext,\n spanToTraceHeader,\n} from '../utils/spanUtils';\nimport type { SpanStatusType } from './spanstatus';\nimport { setHttpStatus } from './spanstatus';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nexport class SpanRecorder {\n public spans: Span[];\n\n private readonly _maxlen: number;\n\n public constructor(maxlen: number = 1000) {\n this._maxlen = maxlen;\n this.spans = [];\n }\n\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n public add(span: Span): void {\n if (this.spans.length > this._maxlen) {\n // eslint-disable-next-line deprecation/deprecation\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n }\n}\n\n/**\n * Span contains all data about a span\n */\nexport class Span implements SpanInterface {\n /**\n * Tags for the span.\n * @deprecated Use `spanToJSON(span).atttributes` instead.\n */\n public tags: { [key: string]: Primitive };\n\n /**\n * Data for the span.\n * @deprecated Use `spanToJSON(span).atttributes` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public data: { [key: string]: any };\n\n /**\n * List of spans that were finalized\n *\n * @deprecated This property will no longer be public. Span recording will be handled internally.\n */\n public spanRecorder?: SpanRecorder;\n\n /**\n * @inheritDoc\n * @deprecated Use top level `Sentry.getRootSpan()` instead\n */\n public transaction?: Transaction;\n\n /**\n * The instrumenter that created this span.\n *\n * TODO (v8): This can probably be replaced by an `instanceOf` check of the span class.\n * the instrumenter can only be sentry or otel so we can check the span instance\n * to verify which one it is and remove this field entirely.\n *\n * @deprecated This field will be removed.\n */\n public instrumenter: Instrumenter;\n\n protected _traceId: string;\n protected _spanId: string;\n protected _parentSpanId?: string | undefined;\n protected _sampled: boolean | undefined;\n protected _name?: string | undefined;\n protected _attributes: SpanAttributes;\n /** Epoch timestamp in seconds when the span started. */\n protected _startTime: number;\n /** Epoch timestamp in seconds when the span ended. */\n protected _endTime?: number | undefined;\n /** Internal keeper of the status */\n protected _status?: SpanStatusType | string | undefined;\n protected _exclusiveTime?: number;\n\n protected _measurements: Measurements;\n\n private _logMessage?: string;\n\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(spanContext: SpanContext = {}) {\n this._traceId = spanContext.traceId || uuid4();\n this._spanId = spanContext.spanId || uuid4().substring(16);\n this._startTime = spanContext.startTimestamp || timestampInSeconds();\n // eslint-disable-next-line deprecation/deprecation\n this.tags = spanContext.tags ? { ...spanContext.tags } : {};\n // eslint-disable-next-line deprecation/deprecation\n this.data = spanContext.data ? { ...spanContext.data } : {};\n // eslint-disable-next-line deprecation/deprecation\n this.instrumenter = spanContext.instrumenter || 'sentry';\n\n this._attributes = {};\n this.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanContext.origin || 'manual',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n ...spanContext.attributes,\n });\n\n // eslint-disable-next-line deprecation/deprecation\n this._name = spanContext.name || spanContext.description;\n\n if (spanContext.parentSpanId) {\n this._parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this._sampled = spanContext.sampled;\n }\n if (spanContext.status) {\n this._status = spanContext.status;\n }\n if (spanContext.endTimestamp) {\n this._endTime = spanContext.endTimestamp;\n }\n if (spanContext.exclusiveTime !== undefined) {\n this._exclusiveTime = spanContext.exclusiveTime;\n }\n this._measurements = spanContext.measurements ? { ...spanContext.measurements } : {};\n }\n\n // This rule conflicts with another eslint rule :(\n /* eslint-disable @typescript-eslint/member-ordering */\n\n /**\n * An alias for `description` of the Span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public get name(): string {\n return this._name || '';\n }\n\n /**\n * Update the name of the span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public set name(name: string) {\n this.updateName(name);\n }\n\n /**\n * Get the description of the Span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public get description(): string | undefined {\n return this._name;\n }\n\n /**\n * Get the description of the Span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public set description(description: string | undefined) {\n this._name = description;\n }\n\n /**\n * The ID of the trace.\n * @deprecated Use `spanContext().traceId` instead.\n */\n public get traceId(): string {\n return this._traceId;\n }\n\n /**\n * The ID of the trace.\n * @deprecated You cannot update the traceId of a span after span creation.\n */\n public set traceId(traceId: string) {\n this._traceId = traceId;\n }\n\n /**\n * The ID of the span.\n * @deprecated Use `spanContext().spanId` instead.\n */\n public get spanId(): string {\n return this._spanId;\n }\n\n /**\n * The ID of the span.\n * @deprecated You cannot update the spanId of a span after span creation.\n */\n public set spanId(spanId: string) {\n this._spanId = spanId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `startSpan` functions instead.\n */\n public set parentSpanId(string) {\n this._parentSpanId = string;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToJSON(span).parent_span_id` instead.\n */\n public get parentSpanId(): string | undefined {\n return this._parentSpanId;\n }\n\n /**\n * Was this span chosen to be sent as part of the sample?\n * @deprecated Use `isRecording()` instead.\n */\n public get sampled(): boolean | undefined {\n return this._sampled;\n }\n\n /**\n * Was this span chosen to be sent as part of the sample?\n * @deprecated You cannot update the sampling decision of a span after span creation.\n */\n public set sampled(sampled: boolean | undefined) {\n this._sampled = sampled;\n }\n\n /**\n * Attributes for the span.\n * @deprecated Use `spanToJSON(span).atttributes` instead.\n */\n public get attributes(): SpanAttributes {\n return this._attributes;\n }\n\n /**\n * Attributes for the span.\n * @deprecated Use `setAttributes()` instead.\n */\n public set attributes(attributes: SpanAttributes) {\n this._attributes = attributes;\n }\n\n /**\n * Timestamp in seconds (epoch time) indicating when the span started.\n * @deprecated Use `spanToJSON()` instead.\n */\n public get startTimestamp(): number {\n return this._startTime;\n }\n\n /**\n * Timestamp in seconds (epoch time) indicating when the span started.\n * @deprecated In v8, you will not be able to update the span start time after creation.\n */\n public set startTimestamp(startTime: number) {\n this._startTime = startTime;\n }\n\n /**\n * Timestamp in seconds when the span ended.\n * @deprecated Use `spanToJSON()` instead.\n */\n public get endTimestamp(): number | undefined {\n return this._endTime;\n }\n\n /**\n * Timestamp in seconds when the span ended.\n * @deprecated Set the end time via `span.end()` instead.\n */\n public set endTimestamp(endTime: number | undefined) {\n this._endTime = endTime;\n }\n\n /**\n * The status of the span.\n *\n * @deprecated Use `spanToJSON().status` instead to get the status.\n */\n public get status(): SpanStatusType | string | undefined {\n return this._status;\n }\n\n /**\n * The status of the span.\n *\n * @deprecated Use `.setStatus()` instead to set or update the status.\n */\n public set status(status: SpanStatusType | string | undefined) {\n this._status = status;\n }\n\n /**\n * Operation of the span\n *\n * @deprecated Use `spanToJSON().op` to read the op instead.\n */\n public get op(): string | undefined {\n return this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] as string | undefined;\n }\n\n /**\n * Operation of the span\n *\n * @deprecated Use `startSpan()` functions to set or `span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'op')\n * to update the span instead.\n */\n public set op(op: string | undefined) {\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, op);\n }\n\n /**\n * The origin of the span, giving context about what created the span.\n *\n * @deprecated Use `spanToJSON().origin` to read the origin instead.\n */\n public get origin(): SpanOrigin | undefined {\n return this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined;\n }\n\n /**\n * The origin of the span, giving context about what created the span.\n *\n * @deprecated Use `startSpan()` functions to set the origin instead.\n */\n public set origin(origin: SpanOrigin | undefined) {\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, origin);\n }\n\n /* eslint-enable @typescript-eslint/member-ordering */\n\n /** @inheritdoc */\n public spanContext(): SpanContextData {\n const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n return {\n spanId,\n traceId,\n traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE,\n };\n }\n\n /**\n * Creates a new `Span` while setting the current `Span.id` as `parentSpanId`.\n * Also the `sampled` decision will be inherited.\n *\n * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\n public startChild(\n spanContext?: Pick>,\n ): SpanInterface {\n const childSpan = new Span({\n ...spanContext,\n parentSpanId: this._spanId,\n sampled: this._sampled,\n traceId: this._traceId,\n });\n\n // eslint-disable-next-line deprecation/deprecation\n childSpan.spanRecorder = this.spanRecorder;\n // eslint-disable-next-line deprecation/deprecation\n if (childSpan.spanRecorder) {\n // eslint-disable-next-line deprecation/deprecation\n childSpan.spanRecorder.add(childSpan);\n }\n\n const rootSpan = getRootSpan(this);\n // TODO: still set span.transaction here until we have a more permanent solution\n // Probably similarly to the weakmap we hold in node-experimental\n // eslint-disable-next-line deprecation/deprecation\n childSpan.transaction = rootSpan as Transaction;\n\n if (DEBUG_BUILD && rootSpan) {\n const opStr = (spanContext && spanContext.op) || '< unknown op >';\n const nameStr = spanToJSON(childSpan).description || '< unknown name >';\n const idStr = rootSpan.spanContext().spanId;\n\n const logMessage = `[Tracing] Starting '${opStr}' span on transaction '${nameStr}' (${idStr}).`;\n logger.log(logMessage);\n this._logMessage = logMessage;\n }\n\n return childSpan;\n }\n\n /**\n * Sets the tag attribute on the current span.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key Tag key\n * @param value Tag value\n * @deprecated Use `setAttribute()` instead.\n */\n public setTag(key: string, value: Primitive): this {\n // eslint-disable-next-line deprecation/deprecation\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * Sets the data attribute on the current span\n * @param key Data key\n * @param value Data value\n * @deprecated Use `setAttribute()` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setData(key: string, value: any): this {\n // eslint-disable-next-line deprecation/deprecation\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /** @inheritdoc */\n public setAttribute(key: string, value: SpanAttributeValue | undefined): void {\n if (value === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._attributes[key];\n } else {\n this._attributes[key] = value;\n }\n }\n\n /** @inheritdoc */\n public setAttributes(attributes: SpanAttributes): void {\n Object.keys(attributes).forEach(key => this.setAttribute(key, attributes[key]));\n }\n\n /**\n * @inheritDoc\n */\n public setStatus(value: SpanStatusType): this {\n this._status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top-level `setHttpStatus()` instead.\n */\n public setHttpStatus(httpStatus: number): this {\n setHttpStatus(this, httpStatus);\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @deprecated Use `.updateName()` instead.\n */\n public setName(name: string): void {\n this.updateName(name);\n }\n\n /**\n * @inheritDoc\n */\n public updateName(name: string): this {\n this._name = name;\n return this;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToJSON(span).status === 'ok'` instead.\n */\n public isSuccess(): boolean {\n return this._status === 'ok';\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `.end()` instead.\n */\n public finish(endTimestamp?: number): void {\n return this.end(endTimestamp);\n }\n\n /** @inheritdoc */\n public end(endTimestamp?: SpanTimeInput): void {\n // If already ended, skip\n if (this._endTime) {\n return;\n }\n const rootSpan = getRootSpan(this);\n if (\n DEBUG_BUILD &&\n // Don't call this for transactions\n rootSpan &&\n rootSpan.spanContext().spanId !== this._spanId\n ) {\n const logMessage = this._logMessage;\n if (logMessage) {\n logger.log((logMessage as string).replace('Starting', 'Finishing'));\n }\n }\n\n this._endTime = spanTimeInputToSeconds(endTimestamp);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToTraceHeader()` instead.\n */\n public toTraceparent(): string {\n return spanToTraceHeader(this);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToJSON()` or access the fields directly instead.\n */\n public toContext(): SpanContext {\n return dropUndefinedKeys({\n data: this._getData(),\n description: this._name,\n endTimestamp: this._endTime,\n // eslint-disable-next-line deprecation/deprecation\n op: this.op,\n parentSpanId: this._parentSpanId,\n sampled: this._sampled,\n spanId: this._spanId,\n startTimestamp: this._startTime,\n status: this._status,\n // eslint-disable-next-line deprecation/deprecation\n tags: this.tags,\n traceId: this._traceId,\n });\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Update the fields directly instead.\n */\n public updateWithContext(spanContext: SpanContext): this {\n // eslint-disable-next-line deprecation/deprecation\n this.data = spanContext.data || {};\n // eslint-disable-next-line deprecation/deprecation\n this._name = spanContext.name || spanContext.description;\n this._endTime = spanContext.endTimestamp;\n // eslint-disable-next-line deprecation/deprecation\n this.op = spanContext.op;\n this._parentSpanId = spanContext.parentSpanId;\n this._sampled = spanContext.sampled;\n this._spanId = spanContext.spanId || this._spanId;\n this._startTime = spanContext.startTimestamp || this._startTime;\n this._status = spanContext.status;\n // eslint-disable-next-line deprecation/deprecation\n this.tags = spanContext.tags || {};\n this._traceId = spanContext.traceId || this._traceId;\n\n return this;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToTraceContext()` util function instead.\n */\n public getTraceContext(): TraceContext {\n return spanToTraceContext(this);\n }\n\n /**\n * Get JSON representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToJSON(span)` instead.\n */\n public getSpanJSON(): SpanJSON {\n return dropUndefinedKeys({\n data: this._getData(),\n description: this._name,\n op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] as string | undefined,\n parent_span_id: this._parentSpanId,\n span_id: this._spanId,\n start_timestamp: this._startTime,\n status: this._status,\n // eslint-disable-next-line deprecation/deprecation\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this._endTime,\n trace_id: this._traceId,\n origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined,\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID] as string | undefined,\n exclusive_time: this._exclusiveTime,\n measurements: Object.keys(this._measurements).length > 0 ? this._measurements : undefined,\n });\n }\n\n /** @inheritdoc */\n public isRecording(): boolean {\n return !this._endTime && !!this._sampled;\n }\n\n /**\n * Convert the object to JSON.\n * @deprecated Use `spanToJSON(span)` instead.\n */\n public toJSON(): SpanJSON {\n return this.getSpanJSON();\n }\n\n /**\n * Get the merged data for this span.\n * For now, this combines `data` and `attributes` together,\n * until eventually we can ingest `attributes` directly.\n */\n private _getData():\n | {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n }\n | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const { data, _attributes: attributes } = this;\n\n const hasData = Object.keys(data).length > 0;\n const hasAttributes = Object.keys(attributes).length > 0;\n\n if (!hasData && !hasAttributes) {\n return undefined;\n }\n\n if (hasData && hasAttributes) {\n return {\n ...data,\n ...attributes,\n };\n }\n\n return hasData ? data : attributes;\n }\n}\n","import type { Options } from '@sentry/types';\n\nimport { getClient } from '../exports';\n\n// Treeshakable guard to remove all code related to tracing\ndeclare const __SENTRY_TRACING__: boolean | undefined;\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(\n maybeOptions?: Pick | undefined,\n): boolean {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const client = getClient();\n const options = maybeOptions || (client && client.getOptions());\n return !!options && (options.enableTracing || 'tracesSampleRate' in options || 'tracesSampler' in options);\n}\n","import type { Scope, Span, SpanTimeInput, StartSpanOptions, TransactionContext } from '@sentry/types';\n\nimport { addNonEnumerableProperty, dropUndefinedKeys, logger, tracingContextFromHeaders } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '.';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getCurrentScope, withScope } from '../exports';\nimport type { Hub } from '../hub';\nimport { runWithAsyncContext } from '../hub';\nimport { getIsolationScope } from '../hub';\nimport { getCurrentHub } from '../hub';\nimport type { Scope as ScopeClass } from '../scope';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled';\nimport { spanIsSampled, spanTimeInputToSeconds, spanToJSON } from '../utils/spanUtils';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n *\n * This function is meant to be used internally and may break at any time. Use at your own risk.\n *\n * @internal\n * @private\n *\n * @deprecated Use `startSpan` instead.\n */\nexport function trace(\n context: TransactionContext,\n callback: (span?: Span) => T,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onError: (error: unknown, span?: Span) => void = () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n afterFinish: () => void = () => {},\n): T {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n const scope = getCurrentScope();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const spanContext = normalizeContext(context);\n const activeSpan = createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: false,\n scope,\n });\n\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(activeSpan);\n\n return handleCallbackErrors(\n () => callback(activeSpan),\n error => {\n activeSpan && activeSpan.setStatus('internal_error');\n onError(error, activeSpan);\n },\n () => {\n activeSpan && activeSpan.end();\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(parentSpan);\n afterFinish();\n },\n );\n}\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpan(context: StartSpanOptions, callback: (span: Span | undefined) => T): T {\n const spanContext = normalizeContext(context);\n\n return runWithAsyncContext(() => {\n return withScope(context.scope, scope => {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const shouldSkipSpan = context.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? undefined\n : createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: context.forceTransaction,\n scope,\n });\n\n return handleCallbackErrors(\n () => callback(activeSpan),\n () => {\n // Only update the span status if it hasn't been changed yet\n if (activeSpan) {\n const { status } = spanToJSON(activeSpan);\n if (!status || status === 'ok') {\n activeSpan.setStatus('internal_error');\n }\n }\n },\n () => activeSpan && activeSpan.end(),\n );\n });\n });\n}\n\n/**\n * @deprecated Use {@link startSpan} instead.\n */\nexport const startActiveSpan = startSpan;\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically. You'll have to call `span.end()` manually.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpanManual(\n context: StartSpanOptions,\n callback: (span: Span | undefined, finish: () => void) => T,\n): T {\n const spanContext = normalizeContext(context);\n\n return runWithAsyncContext(() => {\n return withScope(context.scope, scope => {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const shouldSkipSpan = context.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? undefined\n : createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: context.forceTransaction,\n scope,\n });\n\n function finishAndSetSpan(): void {\n activeSpan && activeSpan.end();\n }\n\n return handleCallbackErrors(\n () => callback(activeSpan, finishAndSetSpan),\n () => {\n // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n if (activeSpan && activeSpan.isRecording()) {\n const { status } = spanToJSON(activeSpan);\n if (!status || status === 'ok') {\n activeSpan.setStatus('internal_error');\n }\n }\n },\n );\n });\n });\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate` or `tracesSampler`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startInactiveSpan(context: StartSpanOptions): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n\n const spanContext = normalizeContext(context);\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n const parentSpan = context.scope\n ? // eslint-disable-next-line deprecation/deprecation\n context.scope.getSpan()\n : getActiveSpan();\n\n const shouldSkipSpan = context.onlyIfParent && !parentSpan;\n\n if (shouldSkipSpan) {\n return undefined;\n }\n\n const scope = context.scope || getCurrentScope();\n\n // Even though we don't actually want to make this span active on the current scope,\n // we need to make it active on a temporary scope that we use for event processing\n // as otherwise, it won't pick the correct span for the event when processing it\n const temporaryScope = (scope as ScopeClass).clone();\n\n return createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: context.forceTransaction,\n scope: temporaryScope,\n });\n}\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentScope().getSpan();\n}\n\ninterface ContinueTrace {\n /**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers,\n * or in the browser from `` and `` HTML tags.\n *\n * @deprecated Use the version of this function taking a callback as second parameter instead:\n *\n * ```\n * Sentry.continueTrace(sentryTrace: '...', baggage: '...' }, () => {\n * // ...\n * })\n * ```\n *\n */\n ({\n sentryTrace,\n baggage,\n }: {\n // eslint-disable-next-line deprecation/deprecation\n sentryTrace: Parameters[0];\n // eslint-disable-next-line deprecation/deprecation\n baggage: Parameters[1];\n }): Partial;\n\n /**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n *\n * Deprecation notice: In the next major version of the SDK the provided callback will not receive a transaction\n * context argument.\n */\n (\n {\n sentryTrace,\n baggage,\n }: {\n // eslint-disable-next-line deprecation/deprecation\n sentryTrace: Parameters[0];\n // eslint-disable-next-line deprecation/deprecation\n baggage: Parameters[1];\n },\n // TODO(v8): Remove parameter from this callback.\n callback: (transactionContext: Partial) => V,\n ): V;\n}\n\nexport const continueTrace: ContinueTrace = (\n {\n sentryTrace,\n baggage,\n }: {\n // eslint-disable-next-line deprecation/deprecation\n sentryTrace: Parameters[0];\n // eslint-disable-next-line deprecation/deprecation\n baggage: Parameters[1];\n },\n callback?: (transactionContext: Partial) => V,\n): V | Partial => {\n // TODO(v8): Change this function so it doesn't do anything besides setting the propagation context on the current scope:\n /*\n return withScope((scope) => {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n scope.setPropagationContext(propagationContext);\n return callback();\n })\n */\n\n const currentScope = getCurrentScope();\n\n // eslint-disable-next-line deprecation/deprecation\n const { traceparentData, dynamicSamplingContext, propagationContext } = tracingContextFromHeaders(\n sentryTrace,\n baggage,\n );\n\n currentScope.setPropagationContext(propagationContext);\n\n if (DEBUG_BUILD && traceparentData) {\n logger.log(`[Tracing] Continuing trace ${traceparentData.traceId}.`);\n }\n\n const transactionContext: Partial = {\n ...traceparentData,\n metadata: dropUndefinedKeys({\n dynamicSamplingContext,\n }),\n };\n\n if (!callback) {\n return transactionContext;\n }\n\n return runWithAsyncContext(() => {\n return callback(transactionContext);\n });\n};\n\nfunction createChildSpanOrTransaction(\n // eslint-disable-next-line deprecation/deprecation\n hub: Hub,\n {\n parentSpan,\n spanContext,\n forceTransaction,\n scope,\n }: {\n parentSpan: Span | undefined;\n spanContext: TransactionContext;\n forceTransaction?: boolean;\n scope: Scope;\n },\n): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n\n const isolationScope = getIsolationScope();\n\n let span: Span | undefined;\n if (parentSpan && !forceTransaction) {\n // eslint-disable-next-line deprecation/deprecation\n span = parentSpan.startChild(spanContext);\n } else if (parentSpan) {\n // If we forced a transaction but have a parent span, make sure to continue from the parent span, not the scope\n const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n const sampled = spanIsSampled(parentSpan);\n\n // eslint-disable-next-line deprecation/deprecation\n span = hub.startTransaction({\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...spanContext,\n metadata: {\n dynamicSamplingContext: dsc,\n // eslint-disable-next-line deprecation/deprecation\n ...spanContext.metadata,\n },\n });\n } else {\n const { traceId, dsc, parentSpanId, sampled } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n // eslint-disable-next-line deprecation/deprecation\n span = hub.startTransaction({\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...spanContext,\n metadata: {\n dynamicSamplingContext: dsc,\n // eslint-disable-next-line deprecation/deprecation\n ...spanContext.metadata,\n },\n });\n }\n\n // We always set this as active span on the scope\n // In the case of this being an inactive span, we ensure to pass a detached scope in here in the first place\n // But by having this here, we can ensure that the lookup through `getCapturedScopesOnSpan` results in the correct scope & span combo\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(span);\n\n setCapturedScopesOnSpan(span, scope, isolationScope);\n\n return span;\n}\n\n/**\n * This converts StartSpanOptions to TransactionContext.\n * For the most part (for now) we accept the same options,\n * but some of them need to be transformed.\n *\n * Eventually the StartSpanOptions will be more aligned with OpenTelemetry.\n */\nfunction normalizeContext(context: StartSpanOptions): TransactionContext {\n if (context.startTime) {\n const ctx: TransactionContext & { startTime?: SpanTimeInput } = { ...context };\n ctx.startTimestamp = spanTimeInputToSeconds(context.startTime);\n delete ctx.startTime;\n return ctx;\n }\n\n return context;\n}\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\ntype SpanWithScopes = Span & {\n [SCOPE_ON_START_SPAN_FIELD]?: Scope;\n [ISOLATION_SCOPE_ON_START_SPAN_FIELD]?: Scope;\n};\n\nfunction setCapturedScopesOnSpan(span: Span | undefined, scope: Scope, isolationScope: Scope): void {\n if (span) {\n addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, isolationScope);\n addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n */\nexport function getCapturedScopesOnSpan(span: Span): { scope?: Scope; isolationScope?: Scope } {\n return {\n scope: (span as SpanWithScopes)[SCOPE_ON_START_SPAN_FIELD],\n isolationScope: (span as SpanWithScopes)[ISOLATION_SCOPE_ON_START_SPAN_FIELD],\n };\n}\n","import type {\n Context,\n Contexts,\n DynamicSamplingContext,\n MeasurementUnit,\n SpanTimeInput,\n Transaction as TransactionInterface,\n TransactionContext,\n TransactionEvent,\n TransactionMetadata,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\nimport { getMetricSummaryJsonForSpan } from '../metrics/metric-summary';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes';\nimport { spanTimeInputToSeconds, spanToJSON, spanToTraceContext } from '../utils/spanUtils';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext';\nimport { Span as SpanClass, SpanRecorder } from './span';\nimport { getCapturedScopesOnSpan } from './trace';\n\n/** JSDoc */\nexport class Transaction extends SpanClass implements TransactionInterface {\n /**\n * The reference to the current hub.\n */\n // eslint-disable-next-line deprecation/deprecation\n public _hub: Hub;\n\n protected _name: string;\n\n private _contexts: Contexts;\n\n private _trimEnd?: boolean | undefined;\n\n // DO NOT yet remove this property, it is used in a hack for v7 backwards compatibility.\n private _frozenDynamicSamplingContext: Readonly> | undefined;\n\n private _metadata: Partial;\n\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n *\n * @deprecated Transactions will be removed in v8. Use spans instead.\n */\n // eslint-disable-next-line deprecation/deprecation\n public constructor(transactionContext: TransactionContext, hub?: Hub) {\n super(transactionContext);\n this._contexts = {};\n\n // eslint-disable-next-line deprecation/deprecation\n this._hub = hub || getCurrentHub();\n\n this._name = transactionContext.name || '';\n\n this._metadata = {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.metadata,\n };\n\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n // TODO (v8): Replace this with another way to set the root span\n // eslint-disable-next-line deprecation/deprecation\n this.transaction = this;\n\n // If Dynamic Sampling Context is provided during the creation of the transaction, we freeze it as it usually means\n // there is incoming Dynamic Sampling Context. (Either through an incoming request, a baggage meta-tag, or other means)\n const incomingDynamicSamplingContext = this._metadata.dynamicSamplingContext;\n if (incomingDynamicSamplingContext) {\n // We shallow copy this in case anything writes to the original reference of the passed in `dynamicSamplingContext`\n this._frozenDynamicSamplingContext = { ...incomingDynamicSamplingContext };\n }\n }\n\n // This sadly conflicts with the getter/setter ordering :(\n /* eslint-disable @typescript-eslint/member-ordering */\n\n /**\n * Getter for `name` property.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public get name(): string {\n return this._name;\n }\n\n /**\n * Setter for `name` property, which also sets `source` as custom.\n * @deprecated Use `updateName()` and `setMetadata()` instead.\n */\n public set name(newName: string) {\n // eslint-disable-next-line deprecation/deprecation\n this.setName(newName);\n }\n\n /**\n * Get the metadata for this transaction.\n * @deprecated Use `spanGetMetadata(transaction)` instead.\n */\n public get metadata(): TransactionMetadata {\n // We merge attributes in for backwards compatibility\n return {\n // Defaults\n // eslint-disable-next-line deprecation/deprecation\n source: 'custom',\n spanMetadata: {},\n\n // Legacy metadata\n ...this._metadata,\n\n // From attributes\n ...(this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] && {\n source: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] as TransactionMetadata['source'],\n }),\n ...(this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] && {\n sampleRate: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] as TransactionMetadata['sampleRate'],\n }),\n };\n }\n\n /**\n * Update the metadata for this transaction.\n * @deprecated Use `spanGetMetadata(transaction)` instead.\n */\n public set metadata(metadata: TransactionMetadata) {\n this._metadata = metadata;\n }\n\n /* eslint-enable @typescript-eslint/member-ordering */\n\n /**\n * Setter for `name` property, which also sets `source` on the metadata.\n *\n * @deprecated Use `.updateName()` and `.setAttribute()` instead.\n */\n public setName(name: string, source: TransactionMetadata['source'] = 'custom'): void {\n this._name = name;\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, source);\n }\n\n /** @inheritdoc */\n public updateName(name: string): this {\n this._name = name;\n return this;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n public initSpanRecorder(maxlen: number = 1000): void {\n // eslint-disable-next-line deprecation/deprecation\n if (!this.spanRecorder) {\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.add(this);\n }\n\n /**\n * Set the context of a transaction event.\n * @deprecated Use either `.setAttribute()`, or set the context on the scope before creating the transaction.\n */\n public setContext(key: string, context: Context | null): void {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use top-level `setMeasurement()` instead.\n */\n public setMeasurement(name: string, value: number, unit: MeasurementUnit = ''): void {\n this._measurements[name] = { value, unit };\n }\n\n /**\n * Store metadata on this transaction.\n * @deprecated Use attributes or store data on the scope instead.\n */\n public setMetadata(newMetadata: Partial): void {\n this._metadata = { ...this._metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n public end(endTimestamp?: SpanTimeInput): string | undefined {\n const timestampInS = spanTimeInputToSeconds(endTimestamp);\n const transaction = this._finishTransaction(timestampInS);\n if (!transaction) {\n return undefined;\n }\n // eslint-disable-next-line deprecation/deprecation\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): TransactionContext {\n // eslint-disable-next-line deprecation/deprecation\n const spanContext = super.toContext();\n\n return dropUndefinedKeys({\n ...spanContext,\n name: this._name,\n trimEnd: this._trimEnd,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(transactionContext: TransactionContext): this {\n // eslint-disable-next-line deprecation/deprecation\n super.updateWithContext(transactionContext);\n\n this._name = transactionContext.name || '';\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @experimental\n *\n * @deprecated Use top-level `getDynamicSamplingContextFromSpan` instead.\n */\n public getDynamicSamplingContext(): Readonly> {\n return getDynamicSamplingContextFromSpan(this);\n }\n\n /**\n * Override the current hub with a new one.\n * Used if you want another hub to finish the transaction.\n *\n * @internal\n */\n // eslint-disable-next-line deprecation/deprecation\n public setHub(hub: Hub): void {\n this._hub = hub;\n }\n\n /**\n * Get the profile id of the transaction.\n */\n public getProfileId(): string | undefined {\n if (this._contexts !== undefined && this._contexts['profile'] !== undefined) {\n return this._contexts['profile'].profile_id as string;\n }\n return undefined;\n }\n\n /**\n * Finish the transaction & prepare the event to send to Sentry.\n */\n protected _finishTransaction(endTimestamp?: number): TransactionEvent | undefined {\n // This transaction is already finished, so we should not flush it again.\n if (this._endTime !== undefined) {\n return undefined;\n }\n\n if (!this._name) {\n DEBUG_BUILD && logger.warn('Transaction has no name, falling back to ``.');\n this._name = '';\n }\n\n // just sets the end timestamp\n super.end(endTimestamp);\n\n // eslint-disable-next-line deprecation/deprecation\n const client = this._hub.getClient();\n if (client && client.emit) {\n client.emit('finishTransaction', this);\n }\n\n if (this._sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n if (client) {\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const finishedSpans = this.spanRecorder\n ? // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.spans.filter(span => span !== this && spanToJSON(span).timestamp)\n : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n const endTimes = finishedSpans.map(span => spanToJSON(span).timestamp).filter(Boolean) as number[];\n this._endTime = endTimes.reduce((prev, current) => {\n return prev > current ? prev : current;\n });\n }\n\n const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n\n // eslint-disable-next-line deprecation/deprecation\n const { metadata } = this;\n // eslint-disable-next-line deprecation/deprecation\n const { source } = metadata;\n\n const transaction: TransactionEvent = {\n contexts: {\n ...this._contexts,\n // We don't want to override trace context\n trace: spanToTraceContext(this),\n },\n // TODO: Pass spans serialized via `spanToJSON()` here instead in v8.\n spans: finishedSpans,\n start_timestamp: this._startTime,\n // eslint-disable-next-line deprecation/deprecation\n tags: this.tags,\n timestamp: this._endTime,\n transaction: this._name,\n type: 'transaction',\n sdkProcessingMetadata: {\n ...metadata,\n capturedSpanScope,\n capturedSpanIsolationScope,\n ...dropUndefinedKeys({\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n }),\n },\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n ...(source && {\n transaction_info: {\n source,\n },\n }),\n };\n\n const hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n DEBUG_BUILD &&\n logger.log(\n '[Measurements] Adding measurements to transaction',\n JSON.stringify(this._measurements, undefined, 2),\n );\n transaction.measurements = this._measurements;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n DEBUG_BUILD && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this._name}.`);\n\n return transaction;\n }\n}\n","/* eslint-disable max-lines */\nimport type { SpanTimeInput, TransactionContext } from '@sentry/types';\nimport { logger, timestampInSeconds } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { spanTimeInputToSeconds, spanToJSON } from '../utils/spanUtils';\nimport type { Span } from './span';\nimport { SpanRecorder } from './span';\nimport { Transaction } from './transaction';\n\nexport const TRACING_DEFAULTS = {\n idleTimeout: 1000,\n finalTimeout: 30000,\n heartbeatInterval: 5000,\n};\n\nconst FINISH_REASON_TAG = 'finishReason';\n\nconst IDLE_TRANSACTION_FINISH_REASONS = [\n 'heartbeatFailed',\n 'idleTimeout',\n 'documentHidden',\n 'finalTimeout',\n 'externalFinish',\n 'cancelled',\n];\n\n/**\n * @inheritDoc\n */\nexport class IdleTransactionSpanRecorder extends SpanRecorder {\n public constructor(\n private readonly _pushActivity: (id: string) => void,\n private readonly _popActivity: (id: string) => void,\n public transactionSpanId: string,\n maxlen?: number,\n ) {\n super(maxlen);\n }\n\n /**\n * @inheritDoc\n */\n public add(span: Span): void {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanContext().spanId !== this.transactionSpanId) {\n // We patch span.end() to pop an activity after setting an endTimestamp.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalEnd = span.end;\n span.end = (...rest: unknown[]) => {\n this._popActivity(span.spanContext().spanId);\n return originalEnd.apply(span, rest);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (spanToJSON(span).timestamp === undefined) {\n this._pushActivity(span.spanContext().spanId);\n }\n }\n\n super.add(span);\n }\n}\n\nexport type BeforeFinishCallback = (transactionSpan: IdleTransaction, endTimestamp: number) => void;\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nexport class IdleTransaction extends Transaction {\n // Activities store a list of active spans\n public activities: Record;\n // Track state of activities in previous heartbeat\n private _prevHeartbeatString: string | undefined;\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n private _heartbeatCounter: number;\n\n // We should not use heartbeat if we finished a transaction\n private _finished: boolean;\n\n // Idle timeout was canceled and we should finish the transaction with the last span end.\n private _idleTimeoutCanceledPermanently: boolean;\n\n private readonly _beforeFinishCallbacks: BeforeFinishCallback[];\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n private _idleTimeoutID: ReturnType | undefined;\n\n private _finishReason: (typeof IDLE_TRANSACTION_FINISH_REASONS)[number];\n\n private _autoFinishAllowed: boolean;\n\n /**\n * @deprecated Transactions will be removed in v8. Use spans instead.\n */\n public constructor(\n transactionContext: TransactionContext,\n // eslint-disable-next-line deprecation/deprecation\n private readonly _idleHub: Hub,\n /**\n * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n * there are no active spans on this transaction.\n */\n private readonly _idleTimeout: number = TRACING_DEFAULTS.idleTimeout,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n private readonly _finalTimeout: number = TRACING_DEFAULTS.finalTimeout,\n private readonly _heartbeatInterval: number = TRACING_DEFAULTS.heartbeatInterval,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n private readonly _onScope: boolean = false,\n /**\n * When set to `true`, will disable the idle timeout (`_idleTimeout` option) and heartbeat mechanisms (`_heartbeatInterval`\n * option) until the `sendAutoFinishSignal()` method is called. The final timeout mechanism (`_finalTimeout` option)\n * will not be affected by this option, meaning the transaction will definitely be finished when the final timeout is\n * reached, no matter what this option is configured to.\n *\n * Defaults to `false`.\n */\n delayAutoFinishUntilSignal: boolean = false,\n ) {\n super(transactionContext, _idleHub);\n\n this.activities = {};\n this._heartbeatCounter = 0;\n this._finished = false;\n this._idleTimeoutCanceledPermanently = false;\n this._beforeFinishCallbacks = [];\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[4];\n this._autoFinishAllowed = !delayAutoFinishUntilSignal;\n\n if (_onScope) {\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n DEBUG_BUILD && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanContext().spanId}`);\n // eslint-disable-next-line deprecation/deprecation\n _idleHub.getScope().setSpan(this);\n }\n\n if (!delayAutoFinishUntilSignal) {\n this._restartIdleTimeout();\n }\n\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[3];\n this.end();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n public end(endTimestamp?: SpanTimeInput): string | undefined {\n const endTimestampInS = spanTimeInputToSeconds(endTimestamp);\n\n this._finished = true;\n this.activities = {};\n\n // eslint-disable-next-line deprecation/deprecation\n if (this.op === 'ui.action.click') {\n this.setAttribute(FINISH_REASON_TAG, this._finishReason);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n if (this.spanRecorder) {\n DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestampInS * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestampInS);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span: Span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanContext().spanId === this.spanContext().spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!spanToJSON(span).timestamp) {\n span.setStatus('cancelled');\n span.end(endTimestampInS);\n DEBUG_BUILD &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const { start_timestamp: startTime, timestamp: endTime } = spanToJSON(span);\n const spanStartedBeforeTransactionFinish = startTime && startTime < endTimestampInS;\n\n // Add a delta with idle timeout so that we prevent false positives\n const timeoutWithMarginOfError = (this._finalTimeout + this._idleTimeout) / 1000;\n const spanEndedBeforeFinalTimeout = endTime && startTime && endTime - startTime < timeoutWithMarginOfError;\n\n if (DEBUG_BUILD) {\n const stringifiedSpan = JSON.stringify(span, undefined, 2);\n if (!spanStartedBeforeTransactionFinish) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', stringifiedSpan);\n } else if (!spanEndedBeforeFinalTimeout) {\n logger.log('[Tracing] discarding Span since it finished after Transaction final timeout', stringifiedSpan);\n }\n }\n\n return spanStartedBeforeTransactionFinish && spanEndedBeforeFinalTimeout;\n });\n\n DEBUG_BUILD && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n DEBUG_BUILD && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this._idleHub.getScope();\n // eslint-disable-next-line deprecation/deprecation\n if (scope.getTransaction() === this) {\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(undefined);\n }\n }\n\n return super.end(endTimestamp);\n }\n\n /**\n * Register a callback function that gets executed before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n public registerBeforeFinishCallback(callback: BeforeFinishCallback): void {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public initSpanRecorder(maxlen?: number): void {\n // eslint-disable-next-line deprecation/deprecation\n if (!this.spanRecorder) {\n const pushActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanContext().spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n DEBUG_BUILD && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idle timeout, if there is one.\n * @param restartOnChildSpanChange Default is `true`.\n * If set to false the transaction will end\n * with the last child span.\n */\n public cancelIdleTimeout(\n endTimestamp?: Parameters[0],\n {\n restartOnChildSpanChange,\n }: {\n restartOnChildSpanChange?: boolean;\n } = {\n restartOnChildSpanChange: true,\n },\n ): void {\n this._idleTimeoutCanceledPermanently = restartOnChildSpanChange === false;\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n\n if (Object.keys(this.activities).length === 0 && this._idleTimeoutCanceledPermanently) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.end(endTimestamp);\n }\n }\n }\n\n /**\n * Temporary method used to externally set the transaction's `finishReason`\n *\n * ** WARNING**\n * This is for the purpose of experimentation only and will be removed in the near future, do not use!\n *\n * @internal\n *\n */\n public setFinishReason(reason: string): void {\n this._finishReason = reason;\n }\n\n /**\n * Permits the IdleTransaction to automatically end itself via the idle timeout and heartbeat mechanisms when the `delayAutoFinishUntilSignal` option was set to `true`.\n */\n public sendAutoFinishSignal(): void {\n if (!this._autoFinishAllowed) {\n DEBUG_BUILD && logger.log('[Tracing] Received finish signal for idle transaction.');\n this._restartIdleTimeout();\n this._autoFinishAllowed = true;\n }\n }\n\n /**\n * Restarts idle timeout, if there is no running idle timeout it will start one.\n */\n private _restartIdleTimeout(endTimestamp?: Parameters[0]): void {\n this.cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[1];\n this.end(endTimestamp);\n }\n }, this._idleTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n private _pushActivity(spanId: string): void {\n this.cancelIdleTimeout(undefined, { restartOnChildSpanChange: !this._idleTimeoutCanceledPermanently });\n DEBUG_BUILD && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n private _popActivity(spanId: string): void {\n if (this.activities[spanId]) {\n DEBUG_BUILD && logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n const endTimestamp = timestampInSeconds();\n if (this._idleTimeoutCanceledPermanently) {\n if (this._autoFinishAllowed) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.end(endTimestamp);\n }\n } else {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampInSeconds is in seconds, timeout is in ms\n this._restartIdleTimeout(endTimestamp + this._idleTimeout / 1000);\n }\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n private _beat(): void {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter++;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n if (this._autoFinishAllowed) {\n DEBUG_BUILD && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[0];\n this.end();\n }\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n private _pingHeartbeat(): void {\n DEBUG_BUILD && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, this._heartbeatInterval);\n }\n}\n","import type { Transaction } from '@sentry/types';\nimport { extractTraceparentData as _extractTraceparentData } from '@sentry/utils';\n\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\n\n/**\n * Grabs active transaction off scope.\n *\n * @deprecated You should not rely on the transaction, but just use `startSpan()` APIs instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveTransaction(maybeHub?: Hub): T | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const hub = maybeHub || getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const scope = hub.getScope();\n // eslint-disable-next-line deprecation/deprecation\n return scope.getTransaction() as T | undefined;\n}\n\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n\n/**\n * The `extractTraceparentData` function and `TRACEPARENT_REGEXP` constant used\n * to be declared in this file. It was later moved into `@sentry/utils` as part of a\n * move to remove `@sentry/tracing` dependencies from `@sentry/node` (`extractTraceparentData`\n * is the only tracing function used by `@sentry/node`).\n *\n * These exports are kept here for backwards compatability's sake.\n *\n * See https://github.com/getsentry/sentry-javascript/issues/4642 for more details.\n *\n * @deprecated Import this function from `@sentry/utils` instead\n */\nexport const extractTraceparentData = _extractTraceparentData;\n","import {\n addGlobalErrorInstrumentationHandler,\n addGlobalUnhandledRejectionInstrumentationHandler,\n logger,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { SpanStatusType } from './spanstatus';\nimport { getActiveTransaction } from './utils';\n\nlet errorsInstrumented = false;\n\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation(): void {\n if (errorsInstrumented) {\n return;\n }\n\n errorsInstrumented = true;\n addGlobalErrorInstrumentationHandler(errorCallback);\n addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback(): void {\n // eslint-disable-next-line deprecation/deprecation\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const status: SpanStatusType = 'internal_error';\n DEBUG_BUILD && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n\n// The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n// node.js default exit behaviour\nerrorCallback.tag = 'sentry_tracingErrorCallback';\n","import type { Options, SamplingContext } from '@sentry/types';\nimport { isNaN, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE } from '../semanticAttributes';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled';\nimport { spanToJSON } from '../utils/spanUtils';\nimport type { Transaction } from './transaction';\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * This method muttes the given `transaction` and will set the `sampled` value on it.\n * It returns the same transaction, for convenience.\n */\nexport function sampleTransaction(\n transaction: T,\n options: Pick,\n samplingContext: SamplingContext,\n): T {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = false;\n return transaction;\n }\n\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n // eslint-disable-next-line deprecation/deprecation\n if (transaction.sampled !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, Number(transaction.sampled));\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` nor `enableTracing` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, Number(sampleRate));\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, Number(sampleRate));\n } else {\n // When `enableTracing === true`, we use a sample rate of 100%\n sampleRate = 1;\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, sampleRate);\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = false;\n return transaction;\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = false;\n return transaction;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = Math.random() < (sampleRate as number | boolean);\n\n // if we're not going to keep it, we're done\n // eslint-disable-next-line deprecation/deprecation\n if (!transaction.sampled) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return transaction;\n }\n\n DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.log(`[Tracing] starting ${transaction.op} transaction - ${spanToJSON(transaction).description}`);\n return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nexport function isValidSampleRate(rate: unknown): boolean {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n DEBUG_BUILD &&\n logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n","import type { ClientOptions, CustomSamplingContext, TransactionContext } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { getMainCarrier } from '../hub';\nimport { spanToTraceHeader } from '../utils/spanUtils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { sampleTransaction } from './sampling';\nimport { Transaction } from './transaction';\n\n/** Returns all trace headers that are currently on the top scope. */\n// eslint-disable-next-line deprecation/deprecation\nfunction traceHeaders(this: Hub): { [key: string]: string } {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.getScope();\n // eslint-disable-next-line deprecation/deprecation\n const span = scope.getSpan();\n\n return span\n ? {\n 'sentry-trace': spanToTraceHeader(span),\n }\n : {};\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n // eslint-disable-next-line deprecation/deprecation\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n const configInstrumenter = options.instrumenter || 'sentry';\n const transactionInstrumenter = transactionContext.instrumenter || 'sentry';\n\n if (configInstrumenter !== transactionInstrumenter) {\n DEBUG_BUILD &&\n logger.error(\n `A transaction was started with instrumenter=\\`${transactionInstrumenter}\\`, but the SDK is configured with the \\`${configInstrumenter}\\` instrumenter.\nThe transaction will not be sampled. Please use the ${configInstrumenter} instrumentation to start transactions.`,\n );\n\n // eslint-disable-next-line deprecation/deprecation\n transactionContext.sampled = false;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n let transaction = new Transaction(transactionContext, this);\n transaction = sampleTransaction(transaction, options, {\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n ...customSamplingContext,\n });\n if (transaction.isRecording()) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(\n // eslint-disable-next-line deprecation/deprecation\n hub: Hub,\n transactionContext: TransactionContext,\n idleTimeout: number,\n finalTimeout: number,\n onScope?: boolean,\n customSamplingContext?: CustomSamplingContext,\n heartbeatInterval?: number,\n delayAutoFinishUntilSignal: boolean = false,\n): IdleTransaction {\n // eslint-disable-next-line deprecation/deprecation\n const client = hub.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n // eslint-disable-next-line deprecation/deprecation\n let transaction = new IdleTransaction(\n transactionContext,\n hub,\n idleTimeout,\n finalTimeout,\n heartbeatInterval,\n onScope,\n delayAutoFinishUntilSignal,\n );\n transaction = sampleTransaction(transaction, options, {\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n ...customSamplingContext,\n });\n if (transaction.isRecording()) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Adds tracing extensions to the global hub.\n */\nexport function addTracingExtensions(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n\n registerErrorInstrumentation();\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ &\n // document is not available in all browser environments (webworkers). We make it optional so you have to explicitly check for it\n Omit &\n Partial>;\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Metric, ReportCallback } from '../types';\n\nexport const bindReporter = (\n callback: ReportCallback,\n metric: Metric,\n reportAllChanges?: boolean,\n): ((forceReport?: boolean) => void) => {\n let prevValue: number;\n let delta: number;\n return (forceReport?: boolean) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (delta || prevValue === undefined) {\n prevValue = metric.value;\n metric.delta = delta;\n callback(metric);\n }\n }\n }\n };\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport type { NavigationTimingPolyfillEntry } from '../types';\n\nconst getNavigationEntryFromPerformanceTiming = (): NavigationTimingPolyfillEntry => {\n // eslint-disable-next-line deprecation/deprecation\n const timing = WINDOW.performance.timing;\n // eslint-disable-next-line deprecation/deprecation\n const type = WINDOW.performance.navigation.type;\n\n const navigationEntry: { [key: string]: number | string } = {\n entryType: 'navigation',\n startTime: 0,\n type: type == 2 ? 'back_forward' : type === 1 ? 'reload' : 'navigate',\n };\n\n for (const key in timing) {\n if (key !== 'navigationStart' && key !== 'toJSON') {\n // eslint-disable-next-line deprecation/deprecation\n navigationEntry[key] = Math.max((timing[key as keyof PerformanceTiming] as number) - timing.navigationStart, 0);\n }\n }\n return navigationEntry as unknown as NavigationTimingPolyfillEntry;\n};\n\nexport const getNavigationEntry = (): PerformanceNavigationTiming | NavigationTimingPolyfillEntry | undefined => {\n if (WINDOW.__WEB_VITALS_POLYFILL__) {\n return (\n WINDOW.performance &&\n ((performance.getEntriesByType && performance.getEntriesByType('navigation')[0]) ||\n getNavigationEntryFromPerformanceTiming())\n );\n } else {\n return WINDOW.performance && performance.getEntriesByType && performance.getEntriesByType('navigation')[0];\n }\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const getActivationStart = (): number => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport type { Metric } from '../types';\nimport { generateUniqueID } from './generateUniqueID';\nimport { getActivationStart } from './getActivationStart';\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const initMetric = (name: Metric['name'], value?: number): Metric => {\n const navEntry = getNavigationEntry();\n let navigationType: Metric['navigationType'] = 'navigate';\n\n if (navEntry) {\n if ((WINDOW.document && WINDOW.document.prerendering) || getActivationStart() > 0) {\n navigationType = 'prerender';\n } else {\n navigationType = navEntry.type.replace(/_/g, '-') as Metric['navigationType'];\n }\n }\n\n return {\n name,\n value: typeof value === 'undefined' ? -1 : value,\n rating: 'good', // Will be updated if the value changes.\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n navigationType,\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport const generateUniqueID = (): string => {\n return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { FirstInputPolyfillEntry, NavigationTimingPolyfillEntry, PerformancePaintTiming } from '../types';\n\nexport interface PerformanceEntryHandler {\n (entry: PerformanceEntry): void;\n}\n\ninterface PerformanceEntryMap {\n event: PerformanceEventTiming[];\n paint: PerformancePaintTiming[];\n 'layout-shift': LayoutShift[];\n 'largest-contentful-paint': LargestContentfulPaint[];\n 'first-input': PerformanceEventTiming[] | FirstInputPolyfillEntry[];\n navigation: PerformanceNavigationTiming[] | NavigationTimingPolyfillEntry[];\n resource: PerformanceResourceTiming[];\n longtask: PerformanceEntry[];\n}\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport const observe = (\n type: K,\n callback: (entries: PerformanceEntryMap[K]) => void,\n opts?: PerformanceObserverInit,\n): PerformanceObserver | undefined => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n callback(list.getEntries() as PerformanceEntryMap[K]);\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) as PerformanceObserverInit,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\n\nexport interface OnHiddenCallback {\n (event: Event): void;\n}\n\nexport const onHidden = (cb: OnHiddenCallback, once?: boolean): void => {\n const onHiddenOrPageHide = (event: Event): void => {\n if (event.type === 'pagehide' || WINDOW.document!.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n\n if (WINDOW.document) {\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n }\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport { onHidden } from './onHidden';\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = (): void => {\n // If the document is hidden and not prerendering, assume it was always\n // hidden and the page was loaded in the background.\n if (WINDOW.document && WINDOW.document.visibilityState) {\n firstHiddenTime = WINDOW.document.visibilityState === 'hidden' && !WINDOW.document.prerendering ? 0 : Infinity;\n }\n};\n\nconst trackChanges = (): void => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nexport const getVisibilityWatcher = (): {\n readonly firstHiddenTime: number;\n} => {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Metric } from '../../types';\nimport { observe } from '../observe';\n\ndeclare global {\n interface Performance {\n interactionCount: number;\n }\n}\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\n\nconst updateEstimate = (entries: Metric['entries']): void => {\n (entries as PerformanceEventTiming[]).forEach(e => {\n if (e.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, e.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, e.interactionId);\n\n interactionCountEstimate = maxKnownInteractionId ? (maxKnownInteractionId - minKnownInteractionId) / 7 + 1 : 0;\n }\n });\n};\n\nlet po: PerformanceObserver | undefined;\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport const getInteractionCount = (): number => {\n return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\n\n/**\n * Feature detects native support or initializes the polyfill if needed.\n */\nexport const initInteractionCountPolyfill = (): void => {\n if ('interactionCount' in performance || po) return;\n\n po = observe('event', updateEstimate, {\n type: 'event',\n buffered: true,\n durationThreshold: 0,\n } as PerformanceObserverInit);\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { getInteractionCount, initInteractionCountPolyfill } from './lib/polyfills/interactionCountPolyfill';\nimport type { ReportCallback, ReportOpts } from './types';\nimport type { INPMetric } from './types/inp';\n\ninterface Interaction {\n id: number;\n latency: number;\n entries: PerformanceEventTiming[];\n}\n\n/**\n * Returns the interaction count since the last bfcache restore (or for the\n * full page lifecycle if there were no bfcache restores).\n */\nconst getInteractionCountForNavigation = (): number => {\n return getInteractionCount();\n};\n\n// To prevent unnecessary memory usage on pages with lots of interactions,\n// store at most 10 of the longest interactions to consider as INP candidates.\nconst MAX_INTERACTIONS_TO_CONSIDER = 10;\n\n// A list of longest interactions on the page (by latency) sorted so the\n// longest one is first. The list is as most MAX_INTERACTIONS_TO_CONSIDER long.\nconst longestInteractionList: Interaction[] = [];\n\n// A mapping of longest interactions by their interaction ID.\n// This is used for faster lookup.\nconst longestInteractionMap: { [interactionId: string]: Interaction } = {};\n\n/**\n * Takes a performance entry and adds it to the list of worst interactions\n * if its duration is long enough to make it among the worst. If the\n * entry is part of an existing interaction, it is merged and the latency\n * and entries list is updated as needed.\n */\nconst processEntry = (entry: PerformanceEventTiming): void => {\n // The least-long of the 10 longest interactions.\n const minLongestInteraction = longestInteractionList[longestInteractionList.length - 1];\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const existingInteraction = longestInteractionMap[entry.interactionId!];\n\n // Only process the entry if it's possibly one of the ten longest,\n // or if it's part of an existing interaction.\n if (\n existingInteraction ||\n longestInteractionList.length < MAX_INTERACTIONS_TO_CONSIDER ||\n entry.duration > minLongestInteraction.latency\n ) {\n // If the interaction already exists, update it. Otherwise create one.\n if (existingInteraction) {\n existingInteraction.entries.push(entry);\n existingInteraction.latency = Math.max(existingInteraction.latency, entry.duration);\n } else {\n const interaction = {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n id: entry.interactionId!,\n latency: entry.duration,\n entries: [entry],\n };\n longestInteractionMap[interaction.id] = interaction;\n longestInteractionList.push(interaction);\n }\n\n // Sort the entries by latency (descending) and keep only the top ten.\n longestInteractionList.sort((a, b) => b.latency - a.latency);\n longestInteractionList.splice(MAX_INTERACTIONS_TO_CONSIDER).forEach(i => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete longestInteractionMap[i.id];\n });\n }\n};\n\n/**\n * Returns the estimated p98 longest interaction based on the stored\n * interaction candidates and the interaction count for the current page.\n */\nconst estimateP98LongestInteraction = (): Interaction => {\n const candidateInteractionIndex = Math.min(\n longestInteractionList.length - 1,\n Math.floor(getInteractionCountForNavigation() / 50),\n );\n\n return longestInteractionList[candidateInteractionIndex];\n};\n\n/**\n * Calculates the [INP](https://web.dev/responsiveness/) value for the current\n * page and calls the `callback` function once the value is ready, along with\n * the `event` performance entries reported for that interaction. The reported\n * value is a `DOMHighResTimeStamp`.\n *\n * A custom `durationThreshold` configuration option can optionally be passed to\n * control what `event-timing` entries are considered for INP reporting. The\n * default threshold is `40`, which means INP scores of less than 40 are\n * reported as 0. Note that this will not affect your 75th percentile INP value\n * unless that value is also less than 40 (well below the recommended\n * [good](https://web.dev/inp/#what-is-a-good-inp-score) threshold).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** INP should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nexport const onINP = (onReport: ReportCallback, opts?: ReportOpts): void => {\n // Set defaults\n // eslint-disable-next-line no-param-reassign\n opts = opts || {};\n\n // https://web.dev/inp/#what's-a-%22good%22-inp-value\n // const thresholds = [200, 500];\n\n // TODO(philipwalton): remove once the polyfill is no longer needed.\n initInteractionCountPolyfill();\n\n const metric = initMetric('INP');\n // eslint-disable-next-line prefer-const\n let report: ReturnType;\n\n const handleEntries = (entries: INPMetric['entries']): void => {\n entries.forEach(entry => {\n if (entry.interactionId) {\n processEntry(entry);\n }\n\n // Entries of type `first-input` don't currently have an `interactionId`,\n // so to consider them in INP we have to first check that an existing\n // entry doesn't match the `duration` and `startTime`.\n // Note that this logic assumes that `event` entries are dispatched\n // before `first-input` entries. This is true in Chrome but it is not\n // true in Firefox; however, Firefox doesn't support interactionId, so\n // it's not an issue at the moment.\n // TODO(philipwalton): remove once crbug.com/1325826 is fixed.\n if (entry.entryType === 'first-input') {\n const noMatchingEntry = !longestInteractionList.some(interaction => {\n return interaction.entries.some(prevEntry => {\n return entry.duration === prevEntry.duration && entry.startTime === prevEntry.startTime;\n });\n });\n if (noMatchingEntry) {\n processEntry(entry);\n }\n }\n });\n\n const inp = estimateP98LongestInteraction();\n\n if (inp && inp.latency !== metric.value) {\n metric.value = inp.latency;\n metric.entries = inp.entries;\n report();\n }\n };\n\n const po = observe('event', handleEntries, {\n // Event Timing entries have their durations rounded to the nearest 8ms,\n // so a duration of 40ms would be any event that spans 2.5 or more frames\n // at 60Hz. This threshold is chosen to strike a balance between usefulness\n // and performance. Running this callback for any interaction that spans\n // just one or two frames is likely not worth the insight that could be\n // gained.\n durationThreshold: opts.durationThreshold || 40,\n } as PerformanceObserverInit);\n\n report = bindReporter(onReport, metric, opts.reportAllChanges);\n\n if (po) {\n // Also observe entries of type `first-input`. This is useful in cases\n // where the first interaction is less than the `durationThreshold`.\n po.observe({ type: 'first-input', buffered: true });\n\n onHidden(() => {\n handleEntries(po.takeRecords() as INPMetric['entries']);\n\n // If the interaction count shows that there were interactions but\n // none were captured by the PerformanceObserver, report a latency of 0.\n if (metric.value < 0 && getInteractionCountForNavigation() > 0) {\n metric.value = 0;\n metric.entries = [];\n }\n\n report(true);\n });\n }\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../types';\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { LCPMetric, ReportCallback, StopListening } from './types';\n\nconst reportedMetricIDs: Record = {};\n\n/**\n * Calculates the [LCP](https://web.dev/lcp/) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n */\nexport const onLCP = (onReport: ReportCallback): StopListening | undefined => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report: ReturnType;\n\n const handleEntries = (entries: LCPMetric['entries']): void => {\n const lastEntry = entries[entries.length - 1] as LargestContentfulPaint;\n if (lastEntry) {\n // The startTime attribute returns the value of the renderTime if it is\n // not 0, and the value of the loadTime otherwise. The activationStart\n // reference is used because LCP should be relative to page activation\n // rather than navigation start if the page was prerendered.\n const value = Math.max(lastEntry.startTime - getActivationStart(), 0);\n\n // Only report if the page wasn't hidden prior to LCP.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries = [lastEntry];\n report();\n }\n }\n };\n\n const po = observe('largest-contentful-paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric);\n\n const stopListening = (): void => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() as LCPMetric['entries']);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n if (WINDOW.document) {\n addEventListener(type, stopListening, { once: true, capture: true });\n }\n });\n\n onHidden(stopListening, true);\n\n return stopListening;\n }\n\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../types';\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getNavigationEntry } from './lib/getNavigationEntry';\nimport { initMetric } from './lib/initMetric';\nimport type { ReportCallback, ReportOpts } from './types';\nimport type { TTFBMetric } from './types/ttfb';\n\n/**\n * Runs in the next task after the page is done loading and/or prerendering.\n * @param callback\n */\nconst whenReady = (callback: () => void): void => {\n if (!WINDOW.document) {\n return;\n }\n\n if (WINDOW.document.prerendering) {\n addEventListener('prerenderingchange', () => whenReady(callback), true);\n } else if (WINDOW.document.readyState !== 'complete') {\n addEventListener('load', () => whenReady(callback), true);\n } else {\n // Queue a task so the callback runs after `loadEventEnd`.\n setTimeout(callback, 0);\n }\n};\n\n/**\n * Calculates the [TTFB](https://web.dev/time-to-first-byte/) value for the\n * current page and calls the `callback` function once the page has loaded,\n * along with the relevant `navigation` performance entry used to determine the\n * value. The reported value is a `DOMHighResTimeStamp`.\n *\n * Note, this function waits until after the page is loaded to call `callback`\n * in order to ensure all properties of the `navigation` entry are populated.\n * This is useful if you want to report on other metrics exposed by the\n * [Navigation Timing API](https://w3c.github.io/navigation-timing/). For\n * example, the TTFB metric starts from the page's [time\n * origin](https://www.w3.org/TR/hr-time-2/#sec-time-origin), which means it\n * includes time spent on DNS lookup, connection negotiation, network latency,\n * and server processing time.\n */\nexport const onTTFB = (onReport: ReportCallback, opts?: ReportOpts): void => {\n // Set defaults\n // eslint-disable-next-line no-param-reassign\n opts = opts || {};\n\n // https://web.dev/ttfb/#what-is-a-good-ttfb-score\n // const thresholds = [800, 1800];\n\n const metric = initMetric('TTFB');\n const report = bindReporter(onReport, metric, opts.reportAllChanges);\n\n whenReady(() => {\n const navEntry = getNavigationEntry() as TTFBMetric['entries'][number];\n\n if (navEntry) {\n // The activationStart reference is used because TTFB should be\n // relative to page activation rather than navigation start if the\n // page was prerendered. But in cases where `activationStart` occurs\n // after the first byte is received, this time should be clamped at 0.\n metric.value = Math.max(navEntry.responseStart - getActivationStart(), 0);\n\n // In some cases the value reported is negative or is larger\n // than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n if (metric.value < 0 || metric.value > performance.now()) return;\n\n metric.entries = [navEntry];\n\n report(true);\n }\n });\n};\n","import { getFunctionName, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { onCLS } from './web-vitals/getCLS';\nimport { onFID } from './web-vitals/getFID';\nimport { onINP } from './web-vitals/getINP';\nimport { onLCP } from './web-vitals/getLCP';\nimport { observe } from './web-vitals/lib/observe';\nimport { onTTFB } from './web-vitals/onTTFB';\n\ntype InstrumentHandlerTypePerformanceObserver =\n | 'longtask'\n | 'event'\n | 'navigation'\n | 'paint'\n | 'resource'\n | 'first-input';\n\ntype InstrumentHandlerTypeMetric = 'cls' | 'lcp' | 'fid' | 'ttfb' | 'inp';\n\n// We provide this here manually instead of relying on a global, as this is not available in non-browser environements\n// And we do not want to expose such types\ninterface PerformanceEntry {\n readonly duration: number;\n readonly entryType: string;\n readonly name: string;\n readonly startTime: number;\n toJSON(): Record;\n}\ninterface PerformanceEventTiming extends PerformanceEntry {\n processingStart: number;\n processingEnd: number;\n duration: number;\n cancelable?: boolean;\n target?: unknown | null;\n interactionId?: number;\n}\n\ninterface Metric {\n /**\n * The name of the metric (in acronym form).\n */\n name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB';\n\n /**\n * The current value of the metric.\n */\n value: number;\n\n /**\n * The rating as to whether the metric value is within the \"good\",\n * \"needs improvement\", or \"poor\" thresholds of the metric.\n */\n rating: 'good' | 'needs-improvement' | 'poor';\n\n /**\n * The delta between the current value and the last-reported value.\n * On the first report, `delta` and `value` will always be the same.\n */\n delta: number;\n\n /**\n * A unique ID representing this particular metric instance. This ID can\n * be used by an analytics tool to dedupe multiple values sent for the same\n * metric instance, or to group multiple deltas together and calculate a\n * total. It can also be used to differentiate multiple different metric\n * instances sent from the same page, which can happen if the page is\n * restored from the back/forward cache (in that case new metrics object\n * get created).\n */\n id: string;\n\n /**\n * Any performance entries relevant to the metric value calculation.\n * The array may also be empty if the metric value was not based on any\n * entries (e.g. a CLS value of 0 given no layout shifts).\n */\n entries: PerformanceEntry[];\n\n /**\n * The type of navigation\n *\n * Navigation Timing API (or `undefined` if the browser doesn't\n * support that API). For pages that are restored from the bfcache, this\n * value will be 'back-forward-cache'.\n */\n navigationType: 'navigate' | 'reload' | 'back-forward' | 'back-forward-cache' | 'prerender';\n}\n\ntype InstrumentHandlerType = InstrumentHandlerTypeMetric | InstrumentHandlerTypePerformanceObserver;\n\ntype StopListening = undefined | void | (() => void);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype InstrumentHandlerCallback = (data: any) => void;\n\ntype CleanupHandlerCallback = () => void;\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\nlet _previousCls: Metric | undefined;\nlet _previousFid: Metric | undefined;\nlet _previousLcp: Metric | undefined;\nlet _previousTtfb: Metric | undefined;\nlet _previousInp: Metric | undefined;\n\n/**\n * Add a callback that will be triggered when a CLS metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for CLS when the cleanup callback is called.\n * This will lead to the CLS being finalized and frozen.\n */\nexport function addClsInstrumentationHandler(\n callback: (data: { metric: Metric }) => void,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n return addMetricObserver('cls', callback, instrumentCls, _previousCls, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a LCP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for LCP when the cleanup callback is called.\n * This will lead to the LCP being finalized and frozen.\n */\nexport function addLcpInstrumentationHandler(\n callback: (data: { metric: Metric }) => void,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n return addMetricObserver('lcp', callback, instrumentLcp, _previousLcp, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n */\nexport function addTtfbInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\n return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addFidInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\n return addMetricObserver('fid', callback, instrumentFid, _previousFid);\n}\n\n/**\n * Add a callback that will be triggered when a INP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addInpInstrumentationHandler(\n callback: (data: { metric: Omit & { entries: PerformanceEventTiming[] } }) => void,\n): CleanupHandlerCallback {\n return addMetricObserver('inp', callback, instrumentInp, _previousInp);\n}\n\nexport function addPerformanceInstrumentationHandler(\n type: 'event' | 'first-input',\n callback: (data: { entries: ((PerformanceEntry & { target?: unknown | null }) | PerformanceEventTiming)[] }) => void,\n): CleanupHandlerCallback;\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback;\n\n/**\n * Add a callback that will be triggered when a performance observer is triggered,\n * and receives the entries of the observer.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback {\n addHandler(type, callback);\n\n if (!instrumented[type]) {\n instrumentPerformanceObserver(type);\n instrumented[type] = true;\n }\n\n return getCleanupCallback(type, callback);\n}\n\n/** Trigger all handlers of a given type. */\nfunction triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n const typeHandlers = handlers[type];\n\n if (!typeHandlers || !typeHandlers.length) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nfunction instrumentCls(): StopListening {\n return onCLS(\n metric => {\n triggerHandlers('cls', {\n metric,\n });\n _previousCls = metric;\n },\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentFid(): void {\n return onFID(metric => {\n triggerHandlers('fid', {\n metric,\n });\n _previousFid = metric;\n });\n}\n\nfunction instrumentLcp(): StopListening {\n return onLCP(metric => {\n triggerHandlers('lcp', {\n metric,\n });\n _previousLcp = metric;\n });\n}\n\nfunction instrumentTtfb(): StopListening {\n return onTTFB(metric => {\n triggerHandlers('ttfb', {\n metric,\n });\n _previousTtfb = metric;\n });\n}\n\nfunction instrumentInp(): void {\n return onINP(metric => {\n triggerHandlers('inp', {\n metric,\n });\n _previousInp = metric;\n });\n}\n\nfunction addMetricObserver(\n type: InstrumentHandlerTypeMetric,\n callback: InstrumentHandlerCallback,\n instrumentFn: () => StopListening,\n previousValue: Metric | undefined,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n addHandler(type, callback);\n\n let stopListening: StopListening | undefined;\n\n if (!instrumented[type]) {\n stopListening = instrumentFn();\n instrumented[type] = true;\n }\n\n if (previousValue) {\n callback({ metric: previousValue });\n }\n\n return getCleanupCallback(type, callback, stopOnCallback ? stopListening : undefined);\n}\n\nfunction instrumentPerformanceObserver(type: InstrumentHandlerTypePerformanceObserver): void {\n const options: PerformanceObserverInit = {};\n\n // Special per-type options we want to use\n if (type === 'event') {\n options.durationThreshold = 0;\n }\n\n observe(\n type,\n entries => {\n triggerHandlers(type, { entries });\n },\n options,\n );\n}\n\nfunction addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(\n type: InstrumentHandlerType,\n callback: InstrumentHandlerCallback,\n stopListening: StopListening,\n): CleanupHandlerCallback {\n return () => {\n if (stopListening) {\n stopListening();\n }\n\n const typeHandlers = handlers[type];\n\n if (!typeHandlers) {\n return;\n }\n\n const index = typeHandlers.indexOf(callback);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n };\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { CLSMetric, ReportCallback, StopListening } from './types';\n\n/**\n * Calculates the [CLS](https://web.dev/cls/) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/cls/#layout-shift-score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nexport const onCLS = (\n onReport: ReportCallback,\n options: { reportAllChanges?: boolean } = {},\n): StopListening | undefined => {\n const metric = initMetric('CLS', 0);\n let report: ReturnType;\n\n let sessionValue = 0;\n let sessionEntries: PerformanceEntry[] = [];\n\n // const handleEntries = (entries: Metric['entries']) => {\n const handleEntries = (entries: LayoutShift[]): void => {\n entries.forEach(entry => {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (\n sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n });\n };\n\n const po = observe('layout-shift', handleEntries);\n if (po) {\n report = bindReporter(onReport, metric, options.reportAllChanges);\n\n const stopListening = (): void => {\n handleEntries(po.takeRecords() as CLSMetric['entries']);\n report(true);\n };\n\n onHidden(stopListening);\n\n return stopListening;\n }\n\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { FIDMetric, PerformanceEventTiming, ReportCallback } from './types';\n\n/**\n * Calculates the [FID](https://web.dev/fid/) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `first-input` performance entry used to determine the value. The\n * reported value is a `DOMHighResTimeStamp`.\n *\n * _**Important:** since FID is only reported after the user interacts with the\n * page, it's possible that it will not be reported for some page loads._\n */\nexport const onFID = (onReport: ReportCallback): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report: ReturnType;\n\n const handleEntry = (entry: PerformanceEventTiming): void => {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const handleEntries = (entries: FIDMetric['entries']): void => {\n (entries as PerformanceEventTiming[]).forEach(handleEntry);\n };\n\n const po = observe('first-input', handleEntries);\n report = bindReporter(onReport, metric);\n\n if (po) {\n onHidden(() => {\n handleEntries(po.takeRecords() as FIDMetric['entries']);\n po.disconnect();\n }, true);\n }\n};\n","import type { DsnComponents, SpanEnvelope, SpanItem } from '@sentry/types';\nimport type { Span } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\n\n/**\n * Create envelope from Span item.\n */\nexport function createSpanEnvelope(spans: Span[], dsn?: DsnComponents): SpanEnvelope {\n const headers: SpanEnvelope[0] = {\n sent_at: new Date().toISOString(),\n };\n\n if (dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n const items = spans.map(createSpanItem);\n return createEnvelope(headers, items);\n}\n\nfunction createSpanItem(span: Span): SpanItem {\n const spanHeaders: SpanItem[0] = {\n type: 'span',\n };\n return [spanHeaders, span];\n}\n","import type { Transaction } from '@sentry/core';\nimport type { Span, SpanContext } from '@sentry/types';\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nexport function isMeasurementValue(value: unknown): value is number {\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n *\n * Note: this will not be possible anymore in v8,\n * unless we do some special handling for browser here...\n */\nexport function _startChild(transaction: Transaction, { startTimestamp, ...ctx }: SpanContext): Span {\n // eslint-disable-next-line deprecation/deprecation\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.startTimestamp = startTimestamp;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n","/* eslint-disable max-lines */\nimport type { IdleTransaction, Transaction } from '@sentry/core';\nimport {\n Span,\n getActiveTransaction,\n getClient,\n hasTracingEnabled,\n isValidSampleRate,\n setMeasurement,\n} from '@sentry/core';\nimport type { ClientOptions, Measurements, SpanContext, TransactionContext } from '@sentry/types';\nimport { browserPerformanceTimeOrigin, getComponentName, htmlTreeAsString, logger, parseUrl } from '@sentry/utils';\n\nimport { spanToJSON } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport {\n addClsInstrumentationHandler,\n addFidInstrumentationHandler,\n addInpInstrumentationHandler,\n addLcpInstrumentationHandler,\n addPerformanceInstrumentationHandler,\n addTtfbInstrumentationHandler,\n} from '../instrument';\nimport { WINDOW } from '../types';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher';\nimport type {\n InteractionRouteNameMapping,\n NavigatorDeviceMemory,\n NavigatorNetworkInformation,\n} from '../web-vitals/types';\nimport { _startChild, isMeasurementValue } from './utils';\n\nimport { createSpanEnvelope } from '@sentry/core';\nimport { getNavigationEntry } from '../web-vitals/lib/getNavigationEntry';\n\nconst MAX_INT_AS_BYTES = 2147483647;\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time: number): number {\n return time / 1000;\n}\n\nfunction getBrowserPerformanceAPI(): Performance | undefined {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n return WINDOW && WINDOW.addEventListener && WINDOW.performance;\n}\n\nlet _performanceCursor: number = 0;\n\nlet _measurements: Measurements = {};\nlet _lcpEntry: LargestContentfulPaint | undefined;\nlet _clsEntry: LayoutShift | undefined;\n\n/**\n * Start tracking web vitals.\n * The callback returned by this function can be used to stop tracking & ensure all measurements are final & captured.\n *\n * @returns A function that forces web vitals collection\n */\nexport function startTrackingWebVitals(): () => void {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n if (performance.mark) {\n WINDOW.performance.mark('sentry-tracing-init');\n }\n const fidCallback = _trackFID();\n const clsCallback = _trackCLS();\n const lcpCallback = _trackLCP();\n const ttfbCallback = _trackTtfb();\n\n return (): void => {\n fidCallback();\n clsCallback();\n lcpCallback();\n ttfbCallback();\n };\n }\n\n return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nexport function startTrackingLongTasks(): void {\n addPerformanceInstrumentationHandler('longtask', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n // eslint-disable-next-line deprecation/deprecation\n transaction.startChild({\n description: 'Main UI thread blocked',\n op: 'ui.long-task',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n });\n }\n });\n}\n\n/**\n * Start tracking interaction events.\n */\nexport function startTrackingInteractions(): void {\n addPerformanceInstrumentationHandler('event', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n\n if (entry.name === 'click') {\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n const span: SpanContext = {\n description: htmlTreeAsString(entry.target),\n op: `ui.interaction.${entry.name}`,\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n };\n\n const componentName = getComponentName(entry.target);\n if (componentName) {\n span.attributes = { 'ui.component_name': componentName };\n }\n\n // eslint-disable-next-line deprecation/deprecation\n transaction.startChild(span);\n }\n }\n });\n}\n\n/**\n * Start tracking INP webvital events.\n */\nexport function startTrackingINP(\n interactionIdtoRouteNameMapping: InteractionRouteNameMapping,\n interactionsSampleRate: number,\n): () => void {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n const inpCallback = _trackINP(interactionIdtoRouteNameMapping, interactionsSampleRate);\n\n return (): void => {\n inpCallback();\n };\n }\n\n return () => undefined;\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS(): () => void {\n return addClsInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding CLS');\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry as LayoutShift;\n }, true);\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(): () => void {\n return addLcpInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _lcpEntry = entry as LargestContentfulPaint;\n }, true);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID(): () => void {\n return addFidInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime);\n DEBUG_BUILD && logger.log('[Measurements] Adding FID');\n _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n });\n}\n\nfunction _trackTtfb(): () => void {\n return addTtfbInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = { value: metric.value, unit: 'millisecond' };\n });\n}\n\nconst INP_ENTRY_MAP: Record = {\n click: 'click',\n pointerdown: 'click',\n pointerup: 'click',\n mousedown: 'click',\n mouseup: 'click',\n touchstart: 'click',\n touchend: 'click',\n mouseover: 'hover',\n mouseout: 'hover',\n mouseenter: 'hover',\n mouseleave: 'hover',\n pointerover: 'hover',\n pointerout: 'hover',\n pointerenter: 'hover',\n pointerleave: 'hover',\n dragstart: 'drag',\n dragend: 'drag',\n drag: 'drag',\n dragenter: 'drag',\n dragleave: 'drag',\n dragover: 'drag',\n drop: 'drag',\n keydown: 'press',\n keyup: 'press',\n keypress: 'press',\n input: 'press',\n};\n\n/** Starts tracking the Interaction to Next Paint on the current page. */\nfunction _trackINP(\n interactionIdToRouteNameMapping: InteractionRouteNameMapping,\n interactionsSampleRate: number,\n): () => void {\n return addInpInstrumentationHandler(({ metric }) => {\n if (metric.value === undefined) {\n return;\n }\n const entry = metric.entries.find(\n entry => entry.duration === metric.value && INP_ENTRY_MAP[entry.name] !== undefined,\n );\n const client = getClient();\n if (!entry || !client) {\n return;\n }\n const interactionType = INP_ENTRY_MAP[entry.name];\n const options = client.getOptions();\n /** Build the INP span, create an envelope from the span, and then send the envelope */\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(metric.value);\n const interaction =\n entry.interactionId !== undefined ? interactionIdToRouteNameMapping[entry.interactionId] : undefined;\n if (interaction === undefined) {\n return;\n }\n const { routeName, parentContext, activeTransaction, user, replayId } = interaction;\n const userDisplay = user !== undefined ? user.email || user.id || user.ip_address : undefined;\n // eslint-disable-next-line deprecation/deprecation\n const profileId = activeTransaction !== undefined ? activeTransaction.getProfileId() : undefined;\n const span = new Span({\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n op: `ui.interaction.${interactionType}`,\n name: htmlTreeAsString(entry.target),\n attributes: {\n release: options.release,\n environment: options.environment,\n transaction: routeName,\n ...(userDisplay !== undefined && userDisplay !== '' ? { user: userDisplay } : {}),\n ...(profileId !== undefined ? { profile_id: profileId } : {}),\n ...(replayId !== undefined ? { replay_id: replayId } : {}),\n },\n exclusiveTime: metric.value,\n measurements: {\n inp: { value: metric.value, unit: 'millisecond' },\n },\n });\n\n /** Check to see if the span should be sampled */\n const sampleRate = getSampleRate(parentContext, options, interactionsSampleRate);\n\n if (!sampleRate) {\n return;\n }\n\n if (Math.random() < (sampleRate as number | boolean)) {\n const envelope = span ? createSpanEnvelope([span], client.getDsn()) : undefined;\n const transport = client && client.getTransport();\n if (transport && envelope) {\n transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending interaction:', reason);\n });\n }\n return;\n }\n });\n}\n\n/** Add performance related spans to a transaction */\nexport function addPerformanceEntries(transaction: Transaction): void {\n const performance = getBrowserPerformanceAPI();\n if (!performance || !WINDOW.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n DEBUG_BUILD && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n const performanceEntries = performance.getEntries();\n\n const { op, start_timestamp: transactionStartTime } = spanToJSON(transaction);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n performanceEntries.slice(_performanceCursor).forEach((entry: Record) => {\n const startTime = msToSec(entry.startTime);\n const duration = msToSec(entry.duration);\n\n // eslint-disable-next-line deprecation/deprecation\n if (transaction.op === 'navigation' && transactionStartTime && timeOrigin + startTime < transactionStartTime) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(transaction, entry, timeOrigin);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n break;\n }\n case 'resource': {\n _addResourceSpans(transaction, entry, entry.name as string, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n _trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (op === 'pageload') {\n _addTtfbRequestTimeToMeasurements(_measurements);\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!_measurements[name] || !transactionStartTime || timeOrigin >= transactionStartTime) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n const oldValue = _measurements[name].value;\n const measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n // normalizedValue should be in milliseconds\n const normalizedValue = Math.abs((measurementTimestamp - transactionStartTime) * 1000);\n const delta = normalizedValue - oldValue;\n\n DEBUG_BUILD && logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n _measurements[name].value = normalizedValue;\n });\n\n const fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: fidMark.value + msToSec(_measurements['fid'].value),\n op: 'ui.action',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: fidMark.value,\n });\n\n // Delete mark.fid as we don't want it to be part of final payload\n delete _measurements['mark.fid'];\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in _measurements)) {\n delete _measurements.cls;\n }\n\n Object.keys(_measurements).forEach(measurementName => {\n setMeasurement(measurementName, _measurements[measurementName].value, _measurements[measurementName].unit);\n });\n\n _tagMetricInfo(transaction);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nexport function _addMeasureSpans(\n transaction: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): number {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name as string,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType as string,\n origin: 'auto.resource.browser.metrics',\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addNavigationSpans(transaction: Transaction, entry: Record, timeOrigin: number): void {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n _addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n transaction: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record,\n event: string,\n timeOrigin: number,\n description?: string,\n eventEnd?: string,\n): void {\n const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined);\n const start = entry[`${event}Start`] as number | undefined;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: description || event,\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addRequest(transaction: Transaction, entry: Record, timeOrigin: number): void {\n if (entry.responseEnd) {\n // It is possible that we are collecting these metrics when the page hasn't finished loading yet, for example when the HTML slowly streams in.\n // In this case, ie. when the document request hasn't finished yet, `entry.responseEnd` will be 0.\n // In order not to produce faulty spans, where the end timestamp is before the start timestamp, we will only collect\n // these spans when the responseEnd value is available. The backend (Relay) would drop the entire transaction if it contained faulty spans.\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n }\n}\n\nexport interface ResourceEntry extends Record {\n initiatorType?: string;\n transferSize?: number;\n encodedBodySize?: number;\n decodedBodySize?: number;\n renderBlockingStatus?: string;\n}\n\n/** Create resource-related spans */\nexport function _addResourceSpans(\n transaction: Transaction,\n entry: ResourceEntry,\n resourceUrl: string,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): void {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n const parsedUrl = parseUrl(resourceUrl);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data: Record = {};\n setResourceEntrySizeData(data, entry, 'transferSize', 'http.response_transfer_size');\n setResourceEntrySizeData(data, entry, 'encodedBodySize', 'http.response_content_length');\n setResourceEntrySizeData(data, entry, 'decodedBodySize', 'http.decoded_response_content_length');\n\n if ('renderBlockingStatus' in entry) {\n data['resource.render_blocking_status'] = entry.renderBlockingStatus;\n }\n if (parsedUrl.protocol) {\n data['url.scheme'] = parsedUrl.protocol.split(':').pop(); // the protocol returned by parseUrl includes a :, but OTEL spec does not, so we remove it.\n }\n\n if (parsedUrl.host) {\n data['server.address'] = parsedUrl.host;\n }\n\n data['url.same_origin'] = resourceUrl.includes(WINDOW.location.origin);\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceUrl.replace(WINDOW.location.origin, ''),\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other',\n origin: 'auto.resource.browser.metrics',\n startTimestamp,\n data,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction: Transaction): void {\n const navigator = WINDOW.navigator as null | (Navigator & NavigatorNetworkInformation & NavigatorDeviceMemory);\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction: Transaction): void {\n if (_lcpEntry) {\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n DEBUG_BUILD && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) =>\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n\nfunction setResourceEntrySizeData(\n data: Record,\n entry: ResourceEntry,\n key: keyof Pick,\n dataKey: 'http.response_transfer_size' | 'http.response_content_length' | 'http.decoded_response_content_length',\n): void {\n const entryVal = entry[key];\n if (entryVal != null && entryVal < MAX_INT_AS_BYTES) {\n data[dataKey] = entryVal;\n }\n}\n\n/**\n * Add ttfb request time information to measurements.\n *\n * ttfb information is added via vendored web vitals library.\n */\nfunction _addTtfbRequestTimeToMeasurements(_measurements: Measurements): void {\n const navEntry = getNavigationEntry();\n if (!navEntry) {\n return;\n }\n\n const { responseStart, requestStart } = navEntry;\n\n if (requestStart <= responseStart) {\n DEBUG_BUILD && logger.log('[Measurements] Adding TTFB Request Time');\n _measurements['ttfb.requestTime'] = {\n value: responseStart - requestStart,\n unit: 'millisecond',\n };\n }\n}\n\n/** Taken from @sentry/core sampling.ts */\nfunction getSampleRate(\n transactionContext: TransactionContext | undefined,\n options: ClientOptions,\n interactionsSampleRate: number,\n): number | boolean {\n if (!hasTracingEnabled(options)) {\n return false;\n }\n let sampleRate;\n if (transactionContext !== undefined && typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler({\n transactionContext,\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n location: WINDOW.location,\n });\n } else if (transactionContext !== undefined && transactionContext.sampled !== undefined) {\n sampleRate = transactionContext.sampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n } else {\n sampleRate = 1;\n }\n if (!isValidSampleRate(sampleRate)) {\n DEBUG_BUILD && logger.warn('[Tracing] Discarding interaction span because of invalid sample rate.');\n return false;\n }\n if (sampleRate === true) {\n return interactionsSampleRate;\n } else if (sampleRate === false) {\n return 0;\n }\n return sampleRate * interactionsSampleRate;\n}\n","import type { MeasurementUnit } from '@sentry/types';\n\nimport { getActiveTransaction } from './utils';\n\n/**\n * Adds a measurement to the current active transaction.\n */\nexport function setMeasurement(name: string, value: number, unit: MeasurementUnit): void {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction();\n if (transaction) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.setMeasurement(name, value, unit);\n }\n}\n","import {\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromClient,\n getDynamicSamplingContextFromSpan,\n getIsolationScope,\n hasTracingEnabled,\n setHttpStatus,\n spanToTraceHeader,\n startInactiveSpan,\n} from '@sentry/core';\nimport type { Client, HandlerDataFetch, Scope, Span, SpanOrigin } from '@sentry/types';\nimport {\n BAGGAGE_HEADER_NAME,\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n isInstanceOf,\n parseUrl,\n} from '@sentry/utils';\n\ntype PolymorphicRequestHeaders =\n | Record\n | Array<[string, string]>\n // the below is not preicsely the Header type used in Request, but it'll pass duck-typing\n | {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n append: (key: string, value: string) => void;\n get: (key: string) => string | null | undefined;\n };\n\n/**\n * Create and track fetch request spans for usage in combination with `addInstrumentationHandler`.\n *\n * @returns Span if a span was created, otherwise void.\n */\nexport function instrumentFetchRequest(\n handlerData: HandlerDataFetch,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n spanOrigin: SpanOrigin = 'auto.http.browser',\n): Span | undefined {\n if (!hasTracingEnabled() || !handlerData.fetchData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(handlerData.fetchData.url);\n\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n endSpan(span, handlerData);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const scope = getCurrentScope();\n const client = getClient();\n\n const { method, url } = handlerData.fetchData;\n\n const fullUrl = getFullURL(url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n\n const span = shouldCreateSpanResult\n ? startInactiveSpan({\n name: `${method} ${url}`,\n onlyIfParent: true,\n attributes: {\n url,\n type: 'fetch',\n 'http.method': method,\n 'http.url': fullUrl,\n 'server.address': host,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n },\n op: 'http.client',\n })\n : undefined;\n\n if (span) {\n handlerData.fetchData.__span = span.spanContext().spanId;\n spans[span.spanContext().spanId] = span;\n }\n\n if (shouldAttachHeaders(handlerData.fetchData.url) && client) {\n const request: string | Request = handlerData.args[0];\n\n // In case the user hasn't set the second argument of a fetch call we default it to `{}`.\n handlerData.args[1] = handlerData.args[1] || {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options: { [key: string]: any } = handlerData.args[1];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n options.headers = addTracingHeadersToFetchRequest(request, client, scope, options, span);\n }\n\n return span;\n}\n\n/**\n * Adds sentry-trace and baggage headers to the various forms of fetch headers\n */\nexport function addTracingHeadersToFetchRequest(\n request: string | unknown, // unknown is actually type Request but we can't export DOM types from this package,\n client: Client,\n scope: Scope,\n options: {\n headers?:\n | {\n [key: string]: string[] | string | undefined;\n }\n | PolymorphicRequestHeaders;\n },\n requestSpan?: Span,\n): PolymorphicRequestHeaders | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const span = requestSpan || scope.getSpan();\n\n const isolationScope = getIsolationScope();\n\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader = span ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc ||\n (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client, scope)),\n );\n\n const headers =\n options.headers ||\n (typeof Request !== 'undefined' && isInstanceOf(request, Request) ? (request as Request).headers : undefined);\n\n if (!headers) {\n return { 'sentry-trace': sentryTraceHeader, baggage: sentryBaggageHeader };\n } else if (typeof Headers !== 'undefined' && isInstanceOf(headers, Headers)) {\n const newHeaders = new Headers(headers as Headers);\n\n newHeaders.append('sentry-trace', sentryTraceHeader);\n\n if (sentryBaggageHeader) {\n // If the same header is appended multiple times the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.append(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n\n return newHeaders as PolymorphicRequestHeaders;\n } else if (Array.isArray(headers)) {\n const newHeaders = [...headers, ['sentry-trace', sentryTraceHeader]];\n\n if (sentryBaggageHeader) {\n // If there are multiple entries with the same key, the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.push([BAGGAGE_HEADER_NAME, sentryBaggageHeader]);\n }\n\n return newHeaders as PolymorphicRequestHeaders;\n } else {\n const existingBaggageHeader = 'baggage' in headers ? headers.baggage : undefined;\n const newBaggageHeaders: string[] = [];\n\n if (Array.isArray(existingBaggageHeader)) {\n newBaggageHeaders.push(...existingBaggageHeader);\n } else if (existingBaggageHeader) {\n newBaggageHeaders.push(existingBaggageHeader);\n }\n\n if (sentryBaggageHeader) {\n newBaggageHeaders.push(sentryBaggageHeader);\n }\n\n return {\n ...(headers as Exclude),\n 'sentry-trace': sentryTraceHeader,\n baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n };\n }\n}\n\nfunction getFullURL(url: string): string | undefined {\n try {\n const parsed = new URL(url);\n return parsed.href;\n } catch {\n return undefined;\n }\n}\n\nfunction endSpan(span: Span, handlerData: HandlerDataFetch): void {\n if (handlerData.response) {\n setHttpStatus(span, handlerData.response.status);\n\n const contentLength =\n handlerData.response && handlerData.response.headers && handlerData.response.headers.get('content-length');\n\n if (contentLength) {\n const contentLengthNum = parseInt(contentLength);\n if (contentLengthNum > 0) {\n span.setAttribute('http.response_content_length', contentLengthNum);\n }\n }\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.end();\n}\n","/* eslint-disable max-lines */\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromClient,\n getDynamicSamplingContextFromSpan,\n getIsolationScope,\n hasTracingEnabled,\n setHttpStatus,\n spanToJSON,\n spanToTraceHeader,\n startInactiveSpan,\n} from '@sentry/core';\nimport type { HandlerDataXhr, SentryWrappedXMLHttpRequest, Span } from '@sentry/types';\nimport {\n BAGGAGE_HEADER_NAME,\n SENTRY_XHR_DATA_KEY,\n addFetchInstrumentationHandler,\n addXhrInstrumentationHandler,\n browserPerformanceTimeOrigin,\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n parseUrl,\n stringMatchesSomePattern,\n} from '@sentry/utils';\n\nimport { instrumentFetchRequest } from '../common/fetch';\nimport { addPerformanceInstrumentationHandler } from './instrument';\nimport { WINDOW } from './types';\n\nexport const DEFAULT_TRACE_PROPAGATION_TARGETS = ['localhost', /^\\/(?!\\/)/];\n\n/** Options for Request Instrumentation */\nexport interface RequestInstrumentationOptions {\n /**\n * @deprecated Will be removed in v8.\n * Use `shouldCreateSpanForRequest` to control span creation and `tracePropagationTargets` to control\n * trace header attachment.\n */\n tracingOrigins: Array;\n\n /**\n * List of strings and/or regexes used to determine which outgoing requests will have `sentry-trace` and `baggage`\n * headers attached.\n *\n * @deprecated Use the top-level `tracePropagationTargets` option in `Sentry.init` instead.\n * This option will be removed in v8.\n *\n * Default: ['localhost', /^\\//] @see {DEFAULT_TRACE_PROPAGATION_TARGETS}\n */\n tracePropagationTargets: Array;\n\n /**\n * Flag to disable patching all together for fetch requests.\n *\n * Default: true\n */\n traceFetch: boolean;\n\n /**\n * Flag to disable patching all together for xhr requests.\n *\n * Default: true\n */\n traceXHR: boolean;\n\n /**\n * If true, Sentry will capture http timings and add them to the corresponding http spans.\n *\n * Default: true\n */\n enableHTTPTimings: boolean;\n\n /**\n * This function will be called before creating a span for a request with the given url.\n * Return false if you don't want a span for the given url.\n *\n * Default: (url: string) => true\n */\n shouldCreateSpanForRequest?(this: void, url: string): boolean;\n}\n\nexport const defaultRequestInstrumentationOptions: RequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n enableHTTPTimings: true,\n // TODO (v8): Remove this property\n tracingOrigins: DEFAULT_TRACE_PROPAGATION_TARGETS,\n tracePropagationTargets: DEFAULT_TRACE_PROPAGATION_TARGETS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options?: Partial): void {\n const {\n traceFetch,\n traceXHR,\n // eslint-disable-next-line deprecation/deprecation\n tracePropagationTargets,\n // eslint-disable-next-line deprecation/deprecation\n tracingOrigins,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n } = {\n traceFetch: defaultRequestInstrumentationOptions.traceFetch,\n traceXHR: defaultRequestInstrumentationOptions.traceXHR,\n ..._options,\n };\n\n const shouldCreateSpan =\n typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : (_: string) => true;\n\n // TODO(v8) Remove tracingOrigins here\n // The only reason we're passing it in here is because this instrumentOutgoingRequests function is publicly exported\n // and we don't want to break the API. We can remove it in v8.\n const shouldAttachHeadersWithTargets = (url: string): boolean =>\n shouldAttachHeaders(url, tracePropagationTargets || tracingOrigins);\n\n const spans: Record = {};\n\n if (traceFetch) {\n addFetchInstrumentationHandler(handlerData => {\n const createdSpan = instrumentFetchRequest(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n // We cannot use `window.location` in the generic fetch instrumentation,\n // but we need it for reliable `server.address` attribute.\n // so we extend this in here\n if (createdSpan) {\n const fullUrl = getFullURL(handlerData.fetchData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n createdSpan.setAttributes({\n 'http.url': fullUrl,\n 'server.address': host,\n });\n }\n\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n\n if (traceXHR) {\n addXhrInstrumentationHandler(handlerData => {\n const createdSpan = xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n}\n\nfunction isPerformanceResourceTiming(entry: PerformanceEntry): entry is PerformanceResourceTiming {\n return (\n entry.entryType === 'resource' &&\n 'initiatorType' in entry &&\n typeof (entry as PerformanceResourceTiming).nextHopProtocol === 'string' &&\n (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest')\n );\n}\n\n/**\n * Creates a temporary observer to listen to the next fetch/xhr resourcing timings,\n * so that when timings hit their per-browser limit they don't need to be removed.\n *\n * @param span A span that has yet to be finished, must contain `url` on data.\n */\nfunction addHTTPTimings(span: Span): void {\n const { url } = spanToJSON(span).data || {};\n\n if (!url || typeof url !== 'string') {\n return;\n }\n\n const cleanup = addPerformanceInstrumentationHandler('resource', ({ entries }) => {\n entries.forEach(entry => {\n if (isPerformanceResourceTiming(entry) && entry.name.endsWith(url)) {\n const spanData = resourceTimingEntryToSpanData(entry);\n spanData.forEach(data => span.setAttribute(...data));\n // In the next tick, clean this handler up\n // We have to wait here because otherwise this cleans itself up before it is fully done\n setTimeout(cleanup);\n }\n });\n });\n}\n\n/**\n * Converts ALPN protocol ids to name and version.\n *\n * (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)\n * @param nextHopProtocol PerformanceResourceTiming.nextHopProtocol\n */\nexport function extractNetworkProtocol(nextHopProtocol: string): { name: string; version: string } {\n let name = 'unknown';\n let version = 'unknown';\n let _name = '';\n for (const char of nextHopProtocol) {\n // http/1.1 etc.\n if (char === '/') {\n [name, version] = nextHopProtocol.split('/');\n break;\n }\n // h2, h3 etc.\n if (!isNaN(Number(char))) {\n name = _name === 'h' ? 'http' : _name;\n version = nextHopProtocol.split(_name)[1];\n break;\n }\n _name += char;\n }\n if (_name === nextHopProtocol) {\n // webrtc, ftp, etc.\n name = _name;\n }\n return { name, version };\n}\n\nfunction getAbsoluteTime(time: number = 0): number {\n return ((browserPerformanceTimeOrigin || performance.timeOrigin) + time) / 1000;\n}\n\nfunction resourceTimingEntryToSpanData(resourceTiming: PerformanceResourceTiming): [string, string | number][] {\n const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n\n const timingSpanData: [string, string | number][] = [];\n\n timingSpanData.push(['network.protocol.version', version], ['network.protocol.name', name]);\n\n if (!browserPerformanceTimeOrigin) {\n return timingSpanData;\n }\n return [\n ...timingSpanData,\n ['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)],\n ['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)],\n ['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)],\n ['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)],\n ['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)],\n ['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)],\n ['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)],\n ['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)],\n ['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)],\n ['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)],\n ];\n}\n\n/**\n * A function that determines whether to attach tracing headers to a request.\n * This was extracted from `instrumentOutgoingRequests` to make it easier to test shouldAttachHeaders.\n * We only export this fuction for testing purposes.\n */\nexport function shouldAttachHeaders(url: string, tracePropagationTargets: (string | RegExp)[] | undefined): boolean {\n return stringMatchesSomePattern(url, tracePropagationTargets || DEFAULT_TRACE_PROPAGATION_TARGETS);\n}\n\n/**\n * Create and track xhr request spans\n *\n * @returns Span if a span was created, otherwise void.\n */\n// eslint-disable-next-line complexity\nexport function xhrCallback(\n handlerData: HandlerDataXhr,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n): Span | undefined {\n const xhr = handlerData.xhr;\n const sentryXhrData = xhr && xhr[SENTRY_XHR_DATA_KEY];\n\n if (!hasTracingEnabled() || !xhr || xhr.__sentry_own_request__ || !sentryXhrData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(sentryXhrData.url);\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span && sentryXhrData.status_code !== undefined) {\n setHttpStatus(span, sentryXhrData.status_code);\n span.end();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const scope = getCurrentScope();\n const isolationScope = getIsolationScope();\n\n const fullUrl = getFullURL(sentryXhrData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n\n const span = shouldCreateSpanResult\n ? startInactiveSpan({\n name: `${sentryXhrData.method} ${sentryXhrData.url}`,\n onlyIfParent: true,\n attributes: {\n type: 'xhr',\n 'http.method': sentryXhrData.method,\n 'http.url': fullUrl,\n url: sentryXhrData.url,\n 'server.address': host,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser',\n },\n op: 'http.client',\n })\n : undefined;\n\n if (span) {\n xhr.__sentry_xhr_span_id__ = span.spanContext().spanId;\n spans[xhr.__sentry_xhr_span_id__] = span;\n }\n\n const client = getClient();\n\n if (xhr.setRequestHeader && shouldAttachHeaders(sentryXhrData.url) && client) {\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader = span ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc ||\n (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client, scope)),\n );\n\n setHeaderOnXhr(xhr, sentryTraceHeader, sentryBaggageHeader);\n }\n\n return span;\n}\n\nfunction setHeaderOnXhr(\n xhr: SentryWrappedXMLHttpRequest,\n sentryTraceHeader: string,\n sentryBaggageHeader: string | undefined,\n): void {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader!('sentry-trace', sentryTraceHeader);\n if (sentryBaggageHeader) {\n // From MDN: \"If this method is called several times with the same header, the values are merged into one single request header.\"\n // We can therefore simply set a baggage header without checking what was there before\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader!(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n}\n\nfunction getFullURL(url: string): string | undefined {\n try {\n // By adding a base URL to new URL(), this will also work for relative urls\n // If `url` is a full URL, the base URL is ignored anyhow\n const parsed = new URL(url, WINDOW.location.origin);\n return parsed.href;\n } catch {\n return undefined;\n }\n}\n","/* eslint-disable max-lines */\nimport type { Hub, IdleTransaction } from '@sentry/core';\nimport { getClient, getCurrentScope } from '@sentry/core';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n TRACING_DEFAULTS,\n addTracingExtensions,\n getActiveTransaction,\n startIdleTransaction,\n} from '@sentry/core';\nimport type { EventProcessor, Integration, Transaction, TransactionContext, TransactionSource } from '@sentry/types';\nimport { getDomElement, logger, propagationContextFromHeaders } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { addPerformanceInstrumentationHandler } from './instrument';\nimport {\n addPerformanceEntries,\n startTrackingINP,\n startTrackingInteractions,\n startTrackingLongTasks,\n startTrackingWebVitals,\n} from './metrics';\nimport type { RequestInstrumentationOptions } from './request';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request';\nimport { instrumentRoutingWithDefaults } from './router';\nimport { WINDOW } from './types';\nimport type { InteractionRouteNameMapping } from './web-vitals/types';\n\nexport const BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\n/** Options for Browser Tracing integration */\nexport interface BrowserTracingOptions extends RequestInstrumentationOptions {\n /**\n * The time to wait in ms until the transaction will be finished during an idle state. An idle state is defined\n * by a moment where there are no in-progress spans.\n *\n * The transaction will use the end timestamp of the last finished span as the endtime for the transaction.\n * If there are still active spans when this the `idleTimeout` is set, the `idleTimeout` will get reset.\n * Time is in ms.\n *\n * Default: 1000\n */\n idleTimeout: number;\n\n /**\n * The max duration for a transaction. If a transaction duration hits the `finalTimeout` value, it\n * will be finished.\n * Time is in ms.\n *\n * Default: 30000\n */\n finalTimeout: number;\n\n /**\n * The heartbeat interval. If no new spans are started or open spans are finished within 3 heartbeats,\n * the transaction will be finished.\n * Time is in ms.\n *\n * Default: 5000\n */\n heartbeatInterval: number;\n\n /**\n * Flag to enable/disable creation of `navigation` transaction on history changes.\n *\n * Default: true\n */\n startTransactionOnLocationChange: boolean;\n\n /**\n * Flag to enable/disable creation of `pageload` transaction on first pageload.\n *\n * Default: true\n */\n startTransactionOnPageLoad: boolean;\n\n /**\n * Flag Transactions where tabs moved to background with \"cancelled\". Browser background tab timing is\n * not suited towards doing precise measurements of operations. By default, we recommend that this option\n * be enabled as background transactions can mess up your statistics in nondeterministic ways.\n *\n * Default: true\n */\n markBackgroundTransactions: boolean;\n\n /**\n * If true, Sentry will capture long tasks and add them to the corresponding transaction.\n *\n * Default: true\n */\n enableLongTask: boolean;\n\n /**\n * If true, Sentry will capture INP web vitals as standalone spans .\n *\n * Default: false\n */\n enableInp: boolean;\n\n /**\n * Sample rate to determine interaction span sampling.\n * interactionsSampleRate is applied on top of the global tracesSampleRate.\n * ie a tracesSampleRate of 0.1 and interactionsSampleRate of 0.5 will result in a 0.05 sample rate for interactions.\n *\n * Default: 1\n */\n interactionsSampleRate: number;\n\n /**\n * _metricOptions allows the user to send options to change how metrics are collected.\n *\n * _metricOptions is currently experimental.\n *\n * Default: undefined\n */\n _metricOptions?: Partial<{\n /**\n * @deprecated This property no longer has any effect and will be removed in v8.\n */\n _reportAllChanges: boolean;\n }>;\n\n /**\n * _experiments allows the user to send options to define how this integration works.\n * Note that the `enableLongTask` options is deprecated in favor of the option at the top level, and will be removed in v8.\n *\n * TODO (v8): Remove enableLongTask\n *\n * Default: undefined\n */\n _experiments: Partial<{\n enableLongTask: boolean;\n enableInteractions: boolean;\n // eslint-disable-next-line deprecation/deprecation\n onStartRouteTransaction: (t: Transaction | undefined, ctx: TransactionContext, getCurrentHub: () => Hub) => void;\n }>;\n\n /**\n * beforeNavigate is called before a pageload/navigation transaction is created and allows users to modify transaction\n * context data, or drop the transaction entirely (by setting `sampled = false` in the context).\n *\n * Note: For legacy reasons, transactions can also be dropped by returning `undefined`.\n *\n * @param context: The context data which will be passed to `startTransaction` by default\n *\n * @returns A (potentially) modified context object, with `sampled = false` if the transaction should be dropped.\n */\n beforeNavigate?(this: void, context: TransactionContext): TransactionContext | undefined;\n\n /**\n * Instrumentation that creates routing change transactions. By default creates\n * pageload and navigation transactions.\n */\n routingInstrumentation(\n this: void,\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad?: boolean,\n startTransactionOnLocationChange?: boolean,\n ): void;\n}\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS: BrowserTracingOptions = {\n ...TRACING_DEFAULTS,\n markBackgroundTransactions: true,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n enableLongTask: true,\n enableInp: false,\n interactionsSampleRate: 1,\n _experiments: {},\n ...defaultRequestInstrumentationOptions,\n};\n\n/** We store up to 10 interaction candidates max to cap memory usage. This is the same cap as getINP from web-vitals */\nconst MAX_INTERACTIONS = 10;\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n *\n * @deprecated Use `browserTracingIntegration()` instead.\n */\nexport class BrowserTracing implements Integration {\n // This class currently doesn't have a static `id` field like the other integration classes, because it prevented\n // @sentry/tracing from being treeshaken. Tree shakers do not like static fields, because they behave like side effects.\n // TODO: Come up with a better plan, than using static fields on integration classes, and use that plan on all\n // integrations.\n\n /** Browser Tracing integration options */\n public options: BrowserTracingOptions;\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n // eslint-disable-next-line deprecation/deprecation\n private _getCurrentHub?: () => Hub;\n\n private _collectWebVitals: () => void;\n\n private _hasSetTracePropagationTargets: boolean;\n private _interactionIdToRouteNameMapping: InteractionRouteNameMapping;\n private _latestRoute: {\n name: string | undefined;\n context: TransactionContext | undefined;\n };\n\n public constructor(_options?: Partial) {\n this.name = BROWSER_TRACING_INTEGRATION_ID;\n this._hasSetTracePropagationTargets = false;\n\n addTracingExtensions();\n\n if (DEBUG_BUILD) {\n this._hasSetTracePropagationTargets = !!(\n _options &&\n // eslint-disable-next-line deprecation/deprecation\n (_options.tracePropagationTargets || _options.tracingOrigins)\n );\n }\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n };\n\n // Special case: enableLongTask can be set in _experiments\n // TODO (v8): Remove this in v8\n if (this.options._experiments.enableLongTask !== undefined) {\n this.options.enableLongTask = this.options._experiments.enableLongTask;\n }\n\n // TODO (v8): remove this block after tracingOrigins is removed\n // Set tracePropagationTargets to tracingOrigins if specified by the user\n // In case both are specified, tracePropagationTargets takes precedence\n // eslint-disable-next-line deprecation/deprecation\n if (_options && !_options.tracePropagationTargets && _options.tracingOrigins) {\n // eslint-disable-next-line deprecation/deprecation\n this.options.tracePropagationTargets = _options.tracingOrigins;\n }\n\n this._collectWebVitals = startTrackingWebVitals();\n /** Stores a mapping of interactionIds from PerformanceEventTimings to the origin interaction path */\n this._interactionIdToRouteNameMapping = {};\n\n if (this.options.enableInp) {\n startTrackingINP(this._interactionIdToRouteNameMapping, this.options.interactionsSampleRate);\n }\n if (this.options.enableLongTask) {\n startTrackingLongTasks();\n }\n if (this.options._experiments.enableInteractions) {\n startTrackingInteractions();\n }\n\n this._latestRoute = {\n name: undefined,\n context: undefined,\n };\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this._getCurrentHub = getCurrentHub;\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const client = hub.getClient();\n const clientOptions = client && client.getOptions();\n\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n _experiments,\n } = this.options;\n\n const clientOptionsTracePropagationTargets = clientOptions && clientOptions.tracePropagationTargets;\n // There are three ways to configure tracePropagationTargets:\n // 1. via top level client option `tracePropagationTargets`\n // 2. via BrowserTracing option `tracePropagationTargets`\n // 3. via BrowserTracing option `tracingOrigins` (deprecated)\n //\n // To avoid confusion, favour top level client option `tracePropagationTargets`, and fallback to\n // BrowserTracing option `tracePropagationTargets` and then `tracingOrigins` (deprecated).\n // This is done as it minimizes bundle size (we don't have to have undefined checks).\n //\n // If both 1 and either one of 2 or 3 are set (from above), we log out a warning.\n // eslint-disable-next-line deprecation/deprecation\n const tracePropagationTargets = clientOptionsTracePropagationTargets || this.options.tracePropagationTargets;\n if (DEBUG_BUILD && this._hasSetTracePropagationTargets && clientOptionsTracePropagationTargets) {\n logger.warn(\n '[Tracing] The `tracePropagationTargets` option was set in the BrowserTracing integration and top level `Sentry.init`. The top level `Sentry.init` value is being used.',\n );\n }\n\n instrumentRouting(\n (context: TransactionContext) => {\n const transaction = this._createRouteTransaction(context);\n\n this.options._experiments.onStartRouteTransaction &&\n this.options._experiments.onStartRouteTransaction(transaction, context, getCurrentHub);\n\n return transaction;\n },\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n if (_experiments.enableInteractions) {\n this._registerInteractionListener();\n }\n\n if (this.options.enableInp) {\n this._registerInpInteractionListener();\n }\n\n instrumentOutgoingRequests({\n traceFetch,\n traceXHR,\n tracePropagationTargets,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n });\n }\n\n /** Create routing idle transaction. */\n private _createRouteTransaction(context: TransactionContext): Transaction | undefined {\n if (!this._getCurrentHub) {\n DEBUG_BUILD &&\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n\n const { beforeNavigate, idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n\n const isPageloadTransaction = context.op === 'pageload';\n\n let expandedContext: TransactionContext;\n if (isPageloadTransaction) {\n const sentryTrace = isPageloadTransaction ? getMetaContent('sentry-trace') : '';\n const baggage = isPageloadTransaction ? getMetaContent('baggage') : undefined;\n const { traceId, dsc, parentSpanId, sampled } = propagationContextFromHeaders(sentryTrace, baggage);\n expandedContext = {\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...context,\n metadata: {\n // eslint-disable-next-line deprecation/deprecation\n ...context.metadata,\n dynamicSamplingContext: dsc,\n },\n trimEnd: true,\n };\n } else {\n expandedContext = {\n trimEnd: true,\n ...context,\n };\n }\n\n const modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n const finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n // If `beforeNavigate` set a custom name, record that fact\n // eslint-disable-next-line deprecation/deprecation\n finalContext.metadata =\n finalContext.name !== expandedContext.name\n ? // eslint-disable-next-line deprecation/deprecation\n { ...finalContext.metadata, source: 'custom' }\n : // eslint-disable-next-line deprecation/deprecation\n finalContext.metadata;\n\n this._latestRoute.name = finalContext.name;\n this._latestRoute.context = finalContext;\n\n // eslint-disable-next-line deprecation/deprecation\n if (finalContext.sampled === false) {\n DEBUG_BUILD && logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n DEBUG_BUILD && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n const { location } = WINDOW;\n\n const idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n isPageloadTransaction, // should wait for finish signal if it's a pageload transaction\n );\n\n if (isPageloadTransaction) {\n if (WINDOW.document) {\n WINDOW.document.addEventListener('readystatechange', () => {\n if (['interactive', 'complete'].includes(WINDOW.document!.readyState)) {\n idleTransaction.sendAutoFinishSignal();\n }\n });\n\n if (['interactive', 'complete'].includes(WINDOW.document.readyState)) {\n idleTransaction.sendAutoFinishSignal();\n }\n }\n }\n\n idleTransaction.registerBeforeFinishCallback(transaction => {\n this._collectWebVitals();\n addPerformanceEntries(transaction);\n });\n\n return idleTransaction as Transaction;\n }\n\n /** Start listener for interaction transactions */\n private _registerInteractionListener(): void {\n let inflightInteractionTransaction: IdleTransaction | undefined;\n const registerInteractionTransaction = (): void => {\n const { idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n const op = 'ui.action.click';\n\n // eslint-disable-next-line deprecation/deprecation\n const currentTransaction = getActiveTransaction();\n if (currentTransaction && currentTransaction.op && ['navigation', 'pageload'].includes(currentTransaction.op)) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Did not create ${op} transaction because a pageload or navigation transaction is in progress.`,\n );\n return undefined;\n }\n\n if (inflightInteractionTransaction) {\n inflightInteractionTransaction.setFinishReason('interactionInterrupted');\n inflightInteractionTransaction.end();\n inflightInteractionTransaction = undefined;\n }\n\n if (!this._getCurrentHub) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n if (!this._latestRoute.name) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n const { location } = WINDOW;\n\n const context: TransactionContext = {\n name: this._latestRoute.name,\n op,\n trimEnd: true,\n data: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: this._latestRoute.context\n ? getSource(this._latestRoute.context)\n : undefined || 'url',\n },\n };\n\n inflightInteractionTransaction = startIdleTransaction(\n hub,\n context,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n );\n };\n\n ['click'].forEach(type => {\n if (WINDOW.document) {\n addEventListener(type, registerInteractionTransaction, { once: false, capture: true });\n }\n });\n }\n\n /** Creates a listener on interaction entries, and maps interactionIds to the origin path of the interaction */\n private _registerInpInteractionListener(): void {\n const handleEntries = ({ entries }: { entries: PerformanceEntry[] }): void => {\n const client = getClient();\n // We need to get the replay, user, and activeTransaction from the current scope\n // so that we can associate replay id, profile id, and a user display to the span\n const replay =\n client !== undefined && client.getIntegrationByName !== undefined\n ? (client.getIntegrationByName('Replay') as Integration & { getReplayId: () => string })\n : undefined;\n const replayId = replay !== undefined ? replay.getReplayId() : undefined;\n // eslint-disable-next-line deprecation/deprecation\n const activeTransaction = getActiveTransaction();\n const currentScope = getCurrentScope();\n const user = currentScope !== undefined ? currentScope.getUser() : undefined;\n entries.forEach(entry => {\n if (isPerformanceEventTiming(entry)) {\n const interactionId = entry.interactionId;\n if (interactionId === undefined) {\n return;\n }\n const existingInteraction = this._interactionIdToRouteNameMapping[interactionId];\n const duration = entry.duration;\n const startTime = entry.startTime;\n const keys = Object.keys(this._interactionIdToRouteNameMapping);\n const minInteractionId =\n keys.length > 0\n ? keys.reduce((a, b) => {\n return this._interactionIdToRouteNameMapping[a].duration <\n this._interactionIdToRouteNameMapping[b].duration\n ? a\n : b;\n })\n : undefined;\n // For a first input event to be considered, we must check that an interaction event does not already exist with the same duration and start time.\n // This is also checked in the web-vitals library.\n if (entry.entryType === 'first-input') {\n const matchingEntry = keys\n .map(key => this._interactionIdToRouteNameMapping[key])\n .some(interaction => {\n return interaction.duration === duration && interaction.startTime === startTime;\n });\n if (matchingEntry) {\n return;\n }\n }\n // Interactions with an id of 0 and are not first-input are not valid.\n if (!interactionId) {\n return;\n }\n // If the interaction already exists, we want to use the duration of the longest entry, since that is what the INP metric uses.\n if (existingInteraction) {\n existingInteraction.duration = Math.max(existingInteraction.duration, duration);\n } else if (\n keys.length < MAX_INTERACTIONS ||\n minInteractionId === undefined ||\n duration > this._interactionIdToRouteNameMapping[minInteractionId].duration\n ) {\n // If the interaction does not exist, we want to add it to the mapping if there is space, or if the duration is longer than the shortest entry.\n const routeName = this._latestRoute.name;\n const parentContext = this._latestRoute.context;\n if (routeName && parentContext) {\n if (minInteractionId && Object.keys(this._interactionIdToRouteNameMapping).length >= MAX_INTERACTIONS) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._interactionIdToRouteNameMapping[minInteractionId];\n }\n this._interactionIdToRouteNameMapping[interactionId] = {\n routeName,\n duration,\n parentContext,\n user,\n activeTransaction,\n replayId,\n startTime,\n };\n }\n }\n }\n });\n };\n addPerformanceInstrumentationHandler('event', handleEntries);\n addPerformanceInstrumentationHandler('first-input', handleEntries);\n }\n}\n\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName: string): string | undefined {\n // Can't specify generic to `getDomElement` because tracing can be used\n // in a variety of environments, have to disable `no-unsafe-member-access`\n // as a result.\n const metaTag = getDomElement(`meta[name=${metaName}]`);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return metaTag ? metaTag.getAttribute('content') : undefined;\n}\n\nfunction getSource(context: TransactionContext): TransactionSource | undefined {\n const sourceFromAttributes = context.attributes && context.attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n // eslint-disable-next-line deprecation/deprecation\n const sourceFromData = context.data && context.data[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n // eslint-disable-next-line deprecation/deprecation\n const sourceFromMetadata = context.metadata && context.metadata.source;\n\n return sourceFromAttributes || sourceFromData || sourceFromMetadata;\n}\n\nfunction isPerformanceEventTiming(entry: PerformanceEntry): entry is PerformanceEventTiming {\n return 'duration' in entry;\n}\n","import type { Transaction, TransactionContext } from '@sentry/types';\nimport { addHistoryInstrumentationHandler, browserPerformanceTimeOrigin, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { WINDOW } from './types';\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad: boolean = true,\n startTransactionOnLocationChange: boolean = true,\n): void {\n if (!WINDOW || !WINDOW.location) {\n DEBUG_BUILD && logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl: string | undefined = WINDOW.location.href;\n\n let activeTransaction: T | undefined;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n // pageload should always start at timeOrigin (and needs to be in s, not ms)\n startTimestamp: browserPerformanceTimeOrigin ? browserPerformanceTimeOrigin / 1000 : undefined,\n op: 'pageload',\n origin: 'auto.pageload.browser',\n metadata: { source: 'url' },\n });\n }\n\n if (startTransactionOnLocationChange) {\n addHistoryInstrumentationHandler(({ to, from }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.end();\n }\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n op: 'navigation',\n origin: 'auto.navigation.browser',\n metadata: { source: 'url' },\n });\n }\n });\n }\n}\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\nimport type { GenericFunction } from './types';\n\n/**\n * Polyfill for the optional chain operator, `?.`, given previous conversion of the expression into an array of values,\n * descriptors, and functions.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n * See https://github.com/alangpierce/sucrase/blob/265887868966917f3b924ce38dfad01fbab1329f/src/transformers/OptionalChainingNullishTransformer.ts#L15\n *\n * @param ops Array result of expression conversion\n * @returns The value of the expression\n */\nexport function _optionalChain(ops: unknown[]): unknown {\n let lastAccessLHS: unknown = undefined;\n let value = ops[0];\n let i = 1;\n while (i < ops.length) {\n const op = ops[i] as string;\n const fn = ops[i + 1] as (intermediateValue: unknown) => unknown;\n i += 2;\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n // really we're meaning to return `undefined` as an actual value here, but it saves bytes not to write it\n return;\n }\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn((...args: unknown[]) => (value as GenericFunction).call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n}\n\n// Sucrase version\n// function _optionalChain(ops) {\n// let lastAccessLHS = undefined;\n// let value = ops[0];\n// let i = 1;\n// while (i < ops.length) {\n// const op = ops[i];\n// const fn = ops[i + 1];\n// i += 2;\n// if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n// return undefined;\n// }\n// if (op === 'access' || op === 'optionalAccess') {\n// lastAccessLHS = value;\n// value = fn(value);\n// } else if (op === 'call' || op === 'optionalCall') {\n// value = fn((...args) => value.call(lastAccessLHS, ...args));\n// lastAccessLHS = undefined;\n// }\n// }\n// return value;\n// }\n","import type { Client, DsnComponents, Hub } from '@sentry/types';\n\n/**\n * Checks whether given url points to Sentry server\n * @param url url to verify\n *\n * TODO(v8): Remove Hub fallback type\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function isSentryRequestUrl(url: string, hubOrClient: Hub | Client | undefined): boolean {\n const client =\n hubOrClient && isHub(hubOrClient)\n ? // eslint-disable-next-line deprecation/deprecation\n hubOrClient.getClient()\n : hubOrClient;\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n\n return checkDsn(url, dsn) || checkTunnel(url, tunnel);\n}\n\nfunction checkTunnel(url: string, tunnel: string | undefined): boolean {\n if (!tunnel) {\n return false;\n }\n\n return removeTrailingSlash(url) === removeTrailingSlash(tunnel);\n}\n\nfunction checkDsn(url: string, dsn: DsnComponents | undefined): boolean {\n return dsn ? url.includes(dsn.host) : false;\n}\n\nfunction removeTrailingSlash(str: string): string {\n return str[str.length - 1] === '/' ? str.slice(0, -1) : str;\n}\n\n// eslint-disable-next-line deprecation/deprecation\nfunction isHub(hubOrClient: Hub | Client | undefined): hubOrClient is Hub {\n // eslint-disable-next-line deprecation/deprecation\n return (hubOrClient as Hub).getClient !== undefined;\n}\n","import { isNodeEnv } from './node';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/**\n * Returns true if we are in the browser.\n */\nexport function isBrowser(): boolean {\n // eslint-disable-next-line no-restricted-globals\n return typeof window !== 'undefined' && (!isNodeEnv() || isElectronNodeRenderer());\n}\n\ntype ElectronProcess = { type?: string };\n\n// Electron renderers with nodeIntegration enabled are detected as Node.js so we specifically test for them\nfunction isElectronNodeRenderer(): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (GLOBAL_OBJ as any).process !== undefined && ((GLOBAL_OBJ as any).process as ElectronProcess).type === 'renderer'\n );\n}\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and replay packages should `@sentry/browser` import\n// from `@sentry/replay` in the future\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nexport const REPLAY_SESSION_KEY = 'sentryReplaySession';\nexport const REPLAY_EVENT_NAME = 'replay_event';\nexport const RECORDING_EVENT_NAME = 'replay_recording';\nexport const UNABLE_TO_SEND_REPLAY = 'Unable to send Replay';\n\n// The idle limit for a session after which recording is paused.\nexport const SESSION_IDLE_PAUSE_DURATION = 300_000; // 5 minutes in ms\n\n// The idle limit for a session after which the session expires.\nexport const SESSION_IDLE_EXPIRE_DURATION = 900_000; // 15 minutes in ms\n\n/** Default flush delays */\nexport const DEFAULT_FLUSH_MIN_DELAY = 5_000;\n// XXX: Temp fix for our debounce logic where `maxWait` would never occur if it\n// was the same as `wait`\nexport const DEFAULT_FLUSH_MAX_DELAY = 5_500;\n\n/* How long to wait for error checkouts */\nexport const BUFFER_CHECKOUT_TIME = 60_000;\n\nexport const RETRY_BASE_INTERVAL = 5000;\nexport const RETRY_MAX_COUNT = 3;\n\n/* The max (uncompressed) size in bytes of a network body. Any body larger than this will be truncated. */\nexport const NETWORK_BODY_MAX_SIZE = 150_000;\n\n/* The max size of a single console arg that is captured. Any arg larger than this will be truncated. */\nexport const CONSOLE_ARG_MAX_SIZE = 5_000;\n\n/* Min. time to wait before we consider something a slow click. */\nexport const SLOW_CLICK_THRESHOLD = 3_000;\n/* For scroll actions after a click, we only look for a very short time period to detect programmatic scrolling. */\nexport const SLOW_CLICK_SCROLL_TIMEOUT = 300;\n\n/** When encountering a total segment size exceeding this size, stop the replay (as we cannot properly ingest it). */\nexport const REPLAY_MAX_EVENT_BUFFER_SIZE = 20_000_000; // ~20MB\n\n/** Replays must be min. 5s long before we send them. */\nexport const MIN_REPLAY_DURATION = 4_999;\n/* The max. allowed value that the minReplayDuration can be set to. */\nexport const MIN_REPLAY_DURATION_LIMIT = 15_000;\n\n/** The max. length of a replay. */\nexport const MAX_REPLAY_DURATION = 3_600_000; // 60 minutes in ms;\n\n/** Default attributes to be ignored when `maskAllText` is enabled */\nexport const DEFAULT_IGNORED_ATTRIBUTES = ['title', 'placeholder'];\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n?.host;\r\n return Boolean(host?.shadowRoot === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n if (!n)\r\n return -1;\r\n const id = this.getMeta(n)?.id;\r\n return id ?? -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\r\n if (tagName === 'OPTION') {\r\n tagName = 'SELECT';\r\n }\r\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\r\n (type && maskInputOptions[type]) ||\r\n type === 'password' ||\r\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\r\n}\r\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\r\n let text = value || '';\r\n if (!isMasked) {\r\n return text;\r\n }\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n return '*'.repeat(text.length);\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nfunction toUpperCase(str) {\r\n return str.toUpperCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType.Comment ||\r\n a.type === NodeType.Text ||\r\n a.type === NodeType.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction getInputValue(el, tagName, type) {\r\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\r\n return el.getAttribute('value') || '';\r\n }\r\n return el.value;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n if (typeof maskAttributeFn === 'function') {\r\n return maskAttributeFn(name, value, element);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\r\n try {\r\n if (unblockSelector && element.matches(unblockSelector)) {\r\n return false;\r\n }\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction elementClassMatchesRegex(el, regex) {\r\n for (let eIndex = el.classList.length; eIndex--;) {\r\n const className = el.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\r\n if (!node)\r\n return -1;\r\n if (node.nodeType !== node.ELEMENT_NODE)\r\n return -1;\r\n if (distance > limit)\r\n return -1;\r\n if (matchPredicate(node))\r\n return distance;\r\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\r\n}\r\nfunction createMatchPredicate(className, selector) {\r\n return (node) => {\r\n const el = node;\r\n if (el === null)\r\n return false;\r\n try {\r\n if (className) {\r\n if (typeof className === 'string') {\r\n if (el.matches(`.${className}`))\r\n return true;\r\n }\r\n else if (elementClassMatchesRegex(el, className)) {\r\n return true;\r\n }\r\n }\r\n if (selector && el.matches(selector))\r\n return true;\r\n return false;\r\n }\r\n catch {\r\n return false;\r\n }\r\n };\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (el.tagName === 'INPUT') {\r\n const autocomplete = el.getAttribute('autocomplete');\r\n const disallowedAutocompleteValues = [\r\n 'current-password',\r\n 'new-password',\r\n 'cc-number',\r\n 'cc-exp',\r\n 'cc-exp-month',\r\n 'cc-exp-year',\r\n 'cc-csc',\r\n ];\r\n if (disallowedAutocompleteValues.includes(autocomplete)) {\r\n return true;\r\n }\r\n }\r\n let maskDistance = -1;\r\n let unmaskDistance = -1;\r\n if (maskAllText) {\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\r\n if (unmaskDistance < 0) {\r\n return true;\r\n }\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\r\n }\r\n else {\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\r\n if (maskDistance < 0) {\r\n return false;\r\n }\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\r\n }\r\n return maskDistance >= 0\r\n ? unmaskDistance >= 0\r\n ? maskDistance <= unmaskDistance\r\n : true\r\n : unmaskDistance >= 0\r\n ? false\r\n : !!maskAllText;\r\n }\r\n catch (e) {\r\n }\r\n return !!maskAllText;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n inlineStylesheet,\r\n maskAttributeFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskTextFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if (n.parentNode.sheet?.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\r\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\r\n textContent = maskInputFn\r\n ? maskInputFn(textContent, n.parentNode)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (parentTagName === 'OPTION' && textContent) {\r\n const isInputMasked = shouldMaskInput({\r\n type: null,\r\n tagName: parentTagName,\r\n maskInputOptions,\r\n });\r\n textContent = maskInputValue({\r\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\r\n element: n,\r\n value: textContent,\r\n maskInputFn,\r\n });\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' ||\r\n tagName === 'textarea' ||\r\n tagName === 'select' ||\r\n tagName === 'option') {\r\n const el = n;\r\n const type = getInputType(el);\r\n const value = getInputValue(el, toUpperCase(tagName), type);\r\n const checked = el.checked;\r\n if (type !== 'submit' && type !== 'button' && value) {\r\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\r\n type,\r\n tagName: toUpperCase(tagName),\r\n maskInputOptions,\r\n }));\r\n attributes.value = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value,\r\n maskInputFn,\r\n });\r\n }\r\n if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n }\r\n : maskAllInputs === false\r\n ? {}\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n whitespace();\r\n while (css[0] == '}') {\r\n error('extra closing bracket');\r\n css = css.slice(1);\r\n whitespace();\r\n }\r\n const m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const cleanedInput = m[0]\r\n .trim()\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n });\r\n return customSplit(cleanedInput).map((s) => s.replace(/\\u200C/g, ',').trim());\r\n }\r\n function customSplit(input) {\r\n const result = [];\r\n let currentSegment = '';\r\n let depthParentheses = 0;\r\n let depthBrackets = 0;\r\n let currentStringChar = null;\r\n for (const char of input) {\r\n const hasStringEscape = currentSegment.endsWith('\\\\');\r\n if (currentStringChar) {\r\n if (currentStringChar === char && !hasStringEscape) {\r\n currentStringChar = null;\r\n }\r\n }\r\n else if (char === '(') {\r\n depthParentheses++;\r\n }\r\n else if (char === ')') {\r\n depthParentheses--;\r\n }\r\n else if (char === '[') {\r\n depthBrackets++;\r\n }\r\n else if (char === ']') {\r\n depthBrackets--;\r\n }\r\n else if ('\\'\"'.includes(char)) {\r\n currentStringChar = char;\r\n }\r\n if (char === ',' && depthParentheses === 0 && depthBrackets === 0) {\r\n result.push(currentSegment);\r\n currentSegment = '';\r\n }\r\n else {\r\n currentSegment += char;\r\n }\r\n }\r\n if (currentSegment) {\r\n result.push(currentSegment);\r\n }\r\n return result;\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n const cachedStyle = cache?.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n if (cssText.length >= 1000000) {\r\n return cssText;\r\n }\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n ast.stylesheet.rules.forEach((rule) => {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n const result = cssText.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n cache?.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n doc.defaultView?.customElements &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n const child = doc.createTextNode(value);\r\n for (const c of Array.from(node.childNodes)) {\r\n if (c.nodeType === node.TEXT_NODE) {\r\n node.removeChild(c);\r\n }\r\n }\r\n node.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.setProperty('width', value.toString());\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.setProperty('height', value.toString());\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('');\r\n }\r\n else {\r\n doc.write('');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType.Document &&\r\n childN.type == NodeType.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if (n?.type !== NodeType.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, createCache, createMatchPredicate, createMirror, distanceToMatch, escapeImportStatement, fixSafariColons, genId, getInputType, getInputValue, ignoreAttribute, is2DCanvasBlank, isCSSImportRule, isCSSStyleRule, isElement, isNativeShadowDom, isNodeMetaEqual, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, shouldMaskInput, snapshot, stringifyRule, stringifyStylesheet, toLowerCase, toUpperCase, transformAttribute };\n","import { distanceToMatch, IGNORED_NODE, isShadowRoot, createMatchPredicate } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nlet _mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n _mirror = new Proxy(_mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch {\r\n return () => {\r\n };\r\n }\r\n}\r\nlet nowTimestamp = Date.now;\r\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\r\n nowTimestamp = () => new Date().getTime();\r\n}\r\nfunction getWindowScroll(win) {\r\n const doc = win.document;\r\n return {\r\n left: doc.scrollingElement\r\n ? doc.scrollingElement.scrollLeft\r\n : win.pageXOffset !== undefined\r\n ? win.pageXOffset\r\n : doc?.documentElement.scrollLeft ||\r\n doc?.body?.parentElement?.scrollLeft ||\r\n doc?.body?.scrollLeft ||\r\n 0,\r\n top: doc.scrollingElement\r\n ? doc.scrollingElement.scrollTop\r\n : win.pageYOffset !== undefined\r\n ? win.pageYOffset\r\n : doc?.documentElement.scrollTop ||\r\n doc?.body?.parentElement?.scrollTop ||\r\n doc?.body?.scrollTop ||\r\n 0,\r\n };\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction closestElementOfNode(node) {\r\n if (!node) {\r\n return null;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n return el;\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = closestElementOfNode(node);\r\n if (!el) {\r\n return false;\r\n }\r\n const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\r\n if (!checkAncestors) {\r\n const isUnblocked = unblockSelector && el.matches(unblockSelector);\r\n return blockedPredicate(el) && !isUnblocked;\r\n }\r\n const blockDistance = distanceToMatch(el, blockedPredicate);\r\n let unblockDistance = -1;\r\n if (blockDistance < 0) {\r\n return false;\r\n }\r\n if (unblockSelector) {\r\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\r\n }\r\n if (blockDistance > -1 && unblockDistance < 0) {\r\n return true;\r\n }\r\n return blockDistance < unblockDistance;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction legacy_isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction queueToResolveTrees(queue) {\r\n const queueNodeMap = {};\r\n const putIntoMap = (m, parent) => {\r\n const nodeInTree = {\r\n value: m,\r\n parent,\r\n children: [],\r\n };\r\n queueNodeMap[m.node.id] = nodeInTree;\r\n return nodeInTree;\r\n };\r\n const queueNodeTrees = [];\r\n for (const mutation of queue) {\r\n const { nextId, parentId } = mutation;\r\n if (nextId && nextId in queueNodeMap) {\r\n const nextInTree = queueNodeMap[nextId];\r\n if (nextInTree.parent) {\r\n const idx = nextInTree.parent.children.indexOf(nextInTree);\r\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\r\n }\r\n else {\r\n const idx = queueNodeTrees.indexOf(nextInTree);\r\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\r\n }\r\n continue;\r\n }\r\n if (parentId in queueNodeMap) {\r\n const parentInTree = queueNodeMap[parentId];\r\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\r\n continue;\r\n }\r\n queueNodeTrees.push(putIntoMap(mutation, null));\r\n }\r\n return queueNodeTrees;\r\n}\r\nfunction iterateResolveTree(tree, cb) {\r\n cb(tree.value);\r\n for (let i = tree.children.length - 1; i >= 0; i--) {\r\n iterateResolveTree(tree.children[i], cb);\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction getBaseDimension(node, rootIframe) {\r\n const frameElement = node.ownerDocument?.defaultView?.frameElement;\r\n if (!frameElement || frameElement === rootIframe) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n relativeScale: 1,\r\n absoluteScale: 1,\r\n };\r\n }\r\n const frameDimension = frameElement.getBoundingClientRect();\r\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\r\n const relativeScale = frameDimension.height / frameElement.clientHeight;\r\n return {\r\n x: frameDimension.x * frameBaseDimension.relativeScale +\r\n frameBaseDimension.x,\r\n y: frameDimension.y * frameBaseDimension.relativeScale +\r\n frameBaseDimension.y,\r\n relativeScale,\r\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\r\n };\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n?.shadowRoot);\r\n}\r\nfunction getNestedRule(rules, position) {\r\n const rule = rules[position[0]];\r\n if (position.length === 1) {\r\n return rule;\r\n }\r\n else {\r\n return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));\r\n }\r\n}\r\nfunction getPositionsAndIndex(nestedIndex) {\r\n const positions = [...nestedIndex];\r\n const index = positions.pop();\r\n return { positions, index };\r\n}\r\nfunction uniqueTextMutations(mutations) {\r\n const idSet = new Set();\r\n const uniqueMutations = [];\r\n for (let i = mutations.length; i--;) {\r\n const mutation = mutations[i];\r\n if (!idSet.has(mutation.id)) {\r\n uniqueMutations.push(mutation);\r\n idSet.add(mutation.id);\r\n }\r\n }\r\n return uniqueMutations;\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n return this.styleIDMap.get(stylesheet) ?? -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\r\nfunction getShadowHost(n) {\r\n let shadowHost = null;\r\n if (n.getRootNode?.()?.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n return shadowHost;\r\n}\r\nfunction getRootShadowHost(n) {\r\n let rootShadowHost = n;\r\n let shadowHost;\r\n while ((shadowHost = getShadowHost(rootShadowHost)))\r\n rootShadowHost = shadowHost;\r\n return rootShadowHost;\r\n}\r\nfunction shadowHostInDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n const shadowHost = getRootShadowHost(n);\r\n return doc.contains(shadowHost);\r\n}\r\nfunction inDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n return doc.contains(n) || shadowHostInDom(n);\r\n}\r\nconst cachedImplementations = {};\r\nfunction getImplementation(name) {\r\n const cached = cachedImplementations[name];\r\n if (cached) {\r\n return cached;\r\n }\r\n const document = window.document;\r\n let impl = window[name];\r\n if (document && typeof document.createElement === 'function') {\r\n try {\r\n const sandbox = document.createElement('iframe');\r\n sandbox.hidden = true;\r\n document.head.appendChild(sandbox);\r\n const contentWindow = sandbox.contentWindow;\r\n if (contentWindow && contentWindow[name]) {\r\n impl =\r\n contentWindow[name];\r\n }\r\n document.head.removeChild(sandbox);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return (cachedImplementations[name] = impl.bind(window));\r\n}\r\nfunction onRequestAnimationFrame(...rest) {\r\n return getImplementation('requestAnimationFrame')(...rest);\r\n}\r\nfunction setTimeout(...rest) {\r\n return getImplementation('setTimeout')(...rest);\r\n}\r\nfunction clearTimeout(...rest) {\r\n return getImplementation('clearTimeout')(...rest);\r\n}\n\nexport { StyleSheetMirror, _mirror, clearTimeout, closestElementOfNode, getBaseDimension, getNestedRule, getPositionsAndIndex, getRootShadowHost, getShadowHost, getWindowHeight, getWindowScroll, getWindowWidth, hasShadowRoot, hookSetter, inDom, isAncestorRemoved, isBlocked, isIgnored, isSerialized, isSerializedIframe, isSerializedStylesheet, iterateResolveTree, legacy_isTouchEvent, nowTimestamp, on, onRequestAnimationFrame, patch, polyfill, queueToResolveTrees, setTimeout, shadowHostInDom, throttle, uniqueTextMutations };\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n/**\n * Polyfill for the nullish coalescing operator (`??`).\n *\n * Note that the RHS is wrapped in a function so that if it's a computed value, that evaluation won't happen unless the\n * LHS evaluates to a nullish value, to mimic the operator's short-circuiting behavior.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n *\n * @param lhs The value of the expression to the left of the `??`\n * @param rhsFn A function returning the value of the expression to the right of the `??`\n * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value\n */\nexport function _nullishCoalesce(lhs: unknown, rhsFn: () => unknown): unknown {\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n return lhs != null ? lhs : rhsFn();\n}\n\n// Sucrase version:\n// function _nullishCoalesce(lhs, rhsFn) {\n// if (lhs != null) {\n// return lhs;\n// } else {\n// return rhsFn();\n// }\n// }\n","var EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\n\nexport { CanvasContext, EventType, IncrementalSource, MouseInteractions, PointerTypes, ReplayerEvents };\n","import { isShadowRoot, isNativeShadowDom, getInputType, getInputValue, shouldMaskInput, needMaskingText, maskInputValue, ignoreAttribute, transformAttribute, toLowerCase, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isSerialized, isAncestorRemoved, closestElementOfNode, hasShadowRoot, inDom, getShadowHost, isSerializedIframe, isSerializedStylesheet } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n this.tail = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = current?.next || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n if (node.next === null) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n else {\r\n this.tail = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addedIds = new Set();\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n if (!n.parentNode || !inDom(n)) {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(getShadowHost(n))\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskAllText: this.maskAllText,\r\n unblockSelector: this.unblockSelector,\r\n maskTextClass: this.maskTextClass,\r\n unmaskTextClass: this.unmaskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n unmaskTextSelector: this.unmaskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskAttributeFn: this.maskAttributeFn,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n addedIds.add(sn.id);\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of this.movedSet) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of this.addedSet) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n let tailNode = addList.tail;\r\n while (tailNode) {\r\n const _node = tailNode;\r\n tailNode = tailNode.previous;\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => ({\r\n id: this.mirror.getId(text.node),\r\n value: text.value,\r\n }))\r\n .filter((text) => !addedIds.has(text.id))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => {\r\n const { attributes } = attribute;\r\n if (typeof attributes.style === 'string') {\r\n const diffAsStr = JSON.stringify(attribute.styleDiff);\r\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\r\n if (diffAsStr.length < attributes.style.length) {\r\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\r\n attributes.style.split('var(').length) {\r\n attributes.style = attribute.styleDiff;\r\n }\r\n }\r\n }\r\n return {\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attributes,\r\n };\r\n })\r\n .filter((attribute) => !addedIds.has(attribute.id))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, this.maskAllText) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value, closestElementOfNode(m.target))\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let attributeName = m.attributeName;\r\n let value = m.target.getAttribute(attributeName);\r\n if (attributeName === 'value') {\r\n const type = getInputType(target);\r\n const tagName = target.tagName;\r\n value = getInputValue(target, tagName, type);\r\n const isInputMasked = shouldMaskInput({\r\n maskInputOptions: this.maskInputOptions,\r\n tagName,\r\n type,\r\n });\r\n const forceMask = needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, isInputMasked);\r\n value = maskInputValue({\r\n isMasked: forceMask,\r\n element: target,\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributeMap.get(m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(m.target, item);\r\n }\r\n if (attributeName === 'type' &&\r\n target.tagName === 'INPUT' &&\r\n (m.oldValue || '').toLowerCase() === 'password') {\r\n target.setAttribute('data-rr-is-password', 'true');\r\n }\r\n if (!ignoreAttribute(target.tagName, attributeName)) {\r\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value, target, this.maskAttributeFn);\r\n if (attributeName === 'style') {\r\n if (!this.unattachedDoc) {\r\n try {\r\n this.unattachedDoc =\r\n document.implementation.createHTMLDocument();\r\n }\r\n catch (e) {\r\n this.unattachedDoc = this.doc;\r\n }\r\n }\r\n const old = this.unattachedDoc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n item.styleDiff[pname] = newValue;\r\n }\r\n else {\r\n item.styleDiff[pname] = [newValue, newPriority];\r\n }\r\n }\r\n else {\r\n item._unchangedStyles[pname] = [newValue, newPriority];\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n item.styleDiff[pname] = false;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, true)) {\r\n return;\r\n }\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.processedNodeManager.inOtherBuffer(n, this))\r\n return;\r\n if (this.addedSet.has(n) || this.movedSet.has(n))\r\n return;\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n if (hasShadowRoot(n)) {\r\n n.shadowRoot.childNodes.forEach((childN) => {\r\n this.processedNodeManager.add(childN, this);\r\n this.genAdds(childN, n);\r\n });\r\n }\r\n }\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'unblockSelector',\r\n 'maskAllText',\r\n 'maskTextClass',\r\n 'unmaskTextClass',\r\n 'maskTextSelector',\r\n 'unmaskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskAttributeFn',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n 'processedNodeManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nexport { MutationBuffer as default };\n","let errorHandler;\r\nfunction registerErrorHandler(handler) {\r\n errorHandler = handler;\r\n}\r\nfunction unregisterErrorHandler() {\r\n errorHandler = undefined;\r\n}\r\nconst callbackWrapper = (cb) => {\r\n if (!errorHandler) {\r\n return cb;\r\n }\r\n const rrwebWrapped = ((...rest) => {\r\n try {\r\n return cb(...rest);\r\n }\r\n catch (error) {\r\n if (errorHandler && errorHandler(error) === true) {\r\n return () => {\r\n };\r\n }\r\n throw error;\r\n }\r\n });\r\n return rrwebWrapped;\r\n};\n\nexport { callbackWrapper, registerErrorHandler, unregisterErrorHandler };\n","import { toLowerCase, toUpperCase, getInputType, getInputValue, shouldMaskInput, needMaskingText, maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isBlocked, getWindowScroll, hookSetter, patch, setTimeout, legacy_isTouchEvent, nowTimestamp, getWindowHeight, getWindowWidth } from '../utils.js';\nimport { MouseInteractions, IncrementalSource, PointerTypes } from '../../../types/dist/rrweb-types.js';\nimport MutationBuffer from './mutation.js';\nimport { callbackWrapper } from './error-handler.js';\n\nconst mutationBuffers = [];\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n }\r\n catch {\r\n }\r\n return event && event.target;\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = window?.Zone?.__symbol__?.('MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(callbackWrapper((mutations) => {\r\n if (options.onMutation && options.onMutation(mutations) === false) {\r\n return;\r\n }\r\n mutationBuffer.processMutations.bind(mutationBuffer)(mutations);\r\n }));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle(callbackWrapper((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }), callbackThreshold);\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = legacy_isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = nowTimestamp();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: nowTimestamp() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource.MouseMove\r\n : IncrementalSource.TouchMove);\r\n }), threshold, {\r\n trailing: false,\r\n }));\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n let currentPointerType = null;\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n let pointerType = null;\r\n let thisEventKey = eventKey;\r\n if ('pointerType' in event) {\r\n switch (event.pointerType) {\r\n case 'mouse':\r\n pointerType = PointerTypes.Mouse;\r\n break;\r\n case 'touch':\r\n pointerType = PointerTypes.Touch;\r\n break;\r\n case 'pen':\r\n pointerType = PointerTypes.Pen;\r\n break;\r\n }\r\n if (pointerType === PointerTypes.Touch) {\r\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\r\n thisEventKey = 'TouchStart';\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\r\n thisEventKey = 'TouchEnd';\r\n }\r\n }\r\n else if (pointerType === PointerTypes.Pen) ;\r\n }\r\n else if (legacy_isTouchEvent(event)) {\r\n pointerType = PointerTypes.Touch;\r\n }\r\n if (pointerType !== null) {\r\n currentPointerType = pointerType;\r\n if ((thisEventKey.startsWith('Touch') &&\r\n pointerType === PointerTypes.Touch) ||\r\n (thisEventKey.startsWith('Mouse') &&\r\n pointerType === PointerTypes.Mouse)) {\r\n pointerType = null;\r\n }\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\r\n pointerType = currentPointerType;\r\n currentPointerType = null;\r\n }\r\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n callbackWrapper(mouseInteractionCb)({\r\n type: MouseInteractions[thisEventKey],\r\n id,\r\n x: clientX,\r\n y: clientY,\r\n ...(pointerType !== null && { pointerType }),\r\n });\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n let eventName = toLowerCase(eventKey);\r\n const handler = getHandler(eventKey);\r\n if (window.PointerEvent) {\r\n switch (MouseInteractions[eventKey]) {\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n eventName = eventName.replace('mouse', 'pointer');\r\n break;\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n return;\r\n }\r\n }\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc && doc.defaultView) {\r\n const scrollLeftTop = getWindowScroll(doc.defaultView);\r\n scrollCb({\r\n id,\r\n x: scrollLeftTop.left,\r\n y: scrollLeftTop.top,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }), sampling.scroll || 100));\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = callbackWrapper(throttle(callbackWrapper(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }), 200));\r\n return on('resize', updateDimension, win);\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, unblockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n const tagName = target && toUpperCase(target.tagName);\r\n if (tagName === 'OPTION')\r\n target = target.parentElement;\r\n if (!target ||\r\n !tagName ||\r\n INPUT_TAGS.indexOf(tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const el = target;\r\n if (el.classList.contains(ignoreClass) ||\r\n (ignoreSelector && el.matches(ignoreSelector))) {\r\n return;\r\n }\r\n const type = getInputType(target);\r\n let text = getInputValue(el, tagName, type);\r\n let isChecked = false;\r\n const isInputMasked = shouldMaskInput({\r\n maskInputOptions,\r\n tagName,\r\n type,\r\n });\r\n const forceMask = needMaskingText(target, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked);\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n text = maskInputValue({\r\n isMasked: forceMask,\r\n element: target,\r\n value: text,\r\n maskInputFn,\r\n });\r\n cbWithDedup(target, userTriggeredOnInput\r\n ? { text, isChecked, userTriggered }\r\n : { text, isChecked });\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n const text = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value: getInputValue(el, tagName, type),\r\n maskInputFn,\r\n });\r\n cbWithDedup(el, userTriggeredOnInput\r\n ? { text, isChecked: !isChecked, userTriggered: false }\r\n : { text, isChecked: !isChecked });\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n callbackWrapper(inputCb)({\r\n ...v,\r\n id,\r\n });\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n callbackWrapper(eventHandler)({\r\n target: this,\r\n isTrusted: false,\r\n });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((hasNestedCSSRule('CSSGroupingRule') &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (hasNestedCSSRule('CSSMediaRule') &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (hasNestedCSSRule('CSSSupportsRule') &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (hasNestedCSSRule('CSSConditionRule') &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\r\n return () => {\r\n };\r\n }\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(thisArg),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(thisArg), index] },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n });\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? host.defaultView?.Document\r\n : host.ownerDocument?.defaultView?.ShadowRoot;\r\n const originalPropertyDescriptor = patchTarget?.prototype\r\n ? Object.getOwnPropertyDescriptor(patchTarget?.prototype, 'adoptedStyleSheets')\r\n : undefined;\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n return originalPropertyDescriptor.get?.call(this);\r\n },\r\n set(sheets) {\r\n const result = originalPropertyDescriptor.set?.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return callbackWrapper(() => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n });\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [property, value, priority] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(thisArg, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentRule?.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [property] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(thisArg, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentRule?.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n });\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, unblockSelector, mirror, sampling, doc, }) {\r\n const handler = callbackWrapper((type) => throttle(callbackWrapper((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n });\r\n }), sampling.media || 500));\r\n const handlers = [\r\n on('play', handler(0), doc),\r\n on('pause', handler(1), doc),\r\n on('seeked', handler(2), doc),\r\n on('volumechange', handler(3), doc),\r\n on('ratechange', handler(4), doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(callbackWrapper(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }), 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, selectionCb, } = param;\r\n let collapsed = true;\r\n const updateSelection = callbackWrapper(() => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && selection?.isCollapsed))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, unblockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, unblockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n });\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction initCustomElementObserver({ doc, customElementCb, }) {\r\n const win = doc.defaultView;\r\n if (!win || !win.customElements)\r\n return () => { };\r\n const restoreHandler = patch(win.customElements, 'define', function (original) {\r\n return function (name, constructor, options) {\r\n try {\r\n customElementCb({\r\n define: {\r\n name,\r\n },\r\n });\r\n }\r\n catch (e) {\r\n }\r\n return original.apply(this, [name, constructor, options]);\r\n };\r\n });\r\n return restoreHandler;\r\n}\r\nfunction initObservers(o, _hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n const mutationObserver = initMutationObserver(o, o.doc);\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o, {\r\n win: currentWindow,\r\n });\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n const styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n const adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n const styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n const fontObserver = o.collectFonts\r\n ? initFontObserver(o)\r\n : () => {\r\n };\r\n const selectionObserver = initSelectionObserver(o);\r\n const customElementObserver = initCustomElementObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return callbackWrapper(() => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n customElementObserver();\r\n pluginHandlers.forEach((h) => h());\r\n });\r\n}\r\nfunction hasNestedCSSRule(prop) {\r\n return typeof window[prop] !== 'undefined';\r\n}\r\nfunction canMonkeyPatchNestedCSSRule(prop) {\r\n return Boolean(typeof window[prop] !== 'undefined' &&\r\n window[prop].prototype &&\r\n 'insertRule' in window[prop].prototype &&\r\n 'deleteRule' in window[prop].prototype);\r\n}\n\nexport { INPUT_TAGS, initAdoptedStyleSheetObserver, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","class CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nexport { CrossOriginIframeMirror as default };\n","import { genId, NodeType } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/rrweb-types.js';\n\nclass IframeManagerNoop {\r\n constructor() {\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n }\r\n addIframe() {\r\n }\r\n addLoadListener() {\r\n }\r\n attachIframe() {\r\n }\r\n}\r\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n this.loadListener?.(iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n const crossOriginMessageEvent = message;\r\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\r\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\r\n return;\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n switch (e.type) {\r\n case EventType.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n const rootId = e.data.node.id;\r\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\r\n this.patchRootIdOnNode(e.data.node, rootId);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType.Meta:\r\n case EventType.Load:\r\n case EventType.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType.Plugin: {\r\n return e;\r\n }\r\n case EventType.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\r\n rootId && this.patchRootIdOnNode(n.node, rootId);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource.MediaInteraction:\r\n case IncrementalSource.MouseInteraction:\r\n case IncrementalSource.Scroll:\r\n case IncrementalSource.CanvasMutation:\r\n case IncrementalSource.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource.Font: {\r\n return e;\r\n }\r\n case IncrementalSource.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n e.data.styles?.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n patchRootIdOnNode(node, rootId) {\r\n if (node.type !== NodeType.Document && !node.rootId)\r\n node.rootId = rootId;\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.patchRootIdOnNode(child, rootId);\r\n });\r\n }\r\n }\r\n}\n\nexport { IframeManager, IframeManagerNoop };\n","import { initMutationObserver, initScrollObserver, initAdoptedStyleSheetObserver } from './observer.js';\nimport { setTimeout, patch, inDom } from '../utils.js';\nimport { isNativeShadowDom } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nclass ShadowDomManagerNoop {\r\n init() {\r\n }\r\n addShadowRoot() {\r\n }\r\n observeAttachShadow() {\r\n }\r\n reset() {\r\n }\r\n}\r\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restoreHandlers = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n this.init();\r\n }\r\n init() {\r\n this.reset();\r\n this.patchAttachShadow(Element, document);\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n const observer = initMutationObserver({\r\n ...this.bypassOptions,\r\n doc,\r\n mutationCb: this.mutationCb,\r\n mirror: this.mirror,\r\n shadowDomManager: this,\r\n }, shadowRoot);\r\n this.restoreHandlers.push(() => observer.disconnect());\r\n this.restoreHandlers.push(initScrollObserver({\r\n ...this.bypassOptions,\r\n scrollCb: this.scrollCb,\r\n doc: shadowRoot,\r\n mirror: this.mirror,\r\n }));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot));\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\r\n return;\r\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\r\n }\r\n patchAttachShadow(element, doc) {\r\n const manager = this;\r\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot && inDom(this))\r\n manager.addShadowRoot(this.shadowRoot, doc);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n reset() {\r\n this.restoreHandlers.forEach((handler) => {\r\n try {\r\n handler();\r\n }\r\n catch (e) {\r\n }\r\n });\r\n this.restoreHandlers = [];\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\nexport { ShadowDomManager, ShadowDomManagerNoop };\n","import { onRequestAnimationFrame, isBlocked } from '../../../utils.js';\nimport { CanvasContext } from '../../../../../types/dist/rrweb-types.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\nimport { getImageBitmapDataUrlWorkerURL as t } from '../../../../../rrweb-worker/es/rrweb-worker/index.js';\nimport { callbackWrapper, registerErrorHandler } from '../../error-handler.js';\n\nclass CanvasManagerNoop {\r\n reset() {\r\n }\r\n freeze() {\r\n }\r\n unfreeze() {\r\n }\r\n lock() {\r\n }\r\n unlock() {\r\n }\r\n snapshot() {\r\n }\r\n}\r\nclass CanvasManager {\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, unblockSelector, maxCanvasSize, recordCanvas, dataURLOptions, errorHandler, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n this.options = options;\r\n if (errorHandler) {\r\n registerErrorHandler(errorHandler);\r\n }\r\n if (options.enableManualSnapshot) {\r\n return;\r\n }\r\n callbackWrapper(() => {\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, {\r\n dataURLOptions,\r\n });\r\n })();\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, true);\r\n const rafId = this.takeSnapshot(false, fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, options.dataURLOptions);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, false);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n snapshot(canvasElement) {\r\n const { options } = this;\r\n const rafId = this.takeSnapshot(true, options.sampling === 'all' ? 2 : options.sampling || 2, options.win, options.blockClass, options.blockSelector, options.unblockSelector, options.maxCanvasSize, options.dataURLOptions, canvasElement);\r\n this.resetObservers = () => {\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n takeSnapshot(isManualSnapshot, fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, dataURLOptions, canvasElement) {\r\n const snapshotInProgressMap = new Map();\r\n const worker = new Worker(t());\r\n worker.onmessage = (e) => {\r\n const data = e.data;\r\n const { id } = data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in data))\r\n return;\r\n const { base64, type, width, height } = data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n width,\r\n height,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = (canvasElement) => {\r\n if (canvasElement) {\r\n return [canvasElement];\r\n }\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, unblockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas(canvasElement).forEach((canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n if (!canvas.width || !canvas.height)\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (!isManualSnapshot &&\r\n ['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (context?.getContextAttributes()?.preserveDrawingBuffer === false) {\r\n context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n createImageBitmap(canvas)\r\n .then((bitmap) => {\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions,\r\n maxCanvasSize,\r\n }, [bitmap]);\r\n })\r\n .catch((error) => {\r\n callbackWrapper(() => {\r\n throw error;\r\n })();\r\n });\r\n });\r\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\r\n return rafId;\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n onRequestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n onRequestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const { type, ...rest } = value;\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nexport { CanvasManager, CanvasManagerNoop };\n","import { stringifyRule } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { StyleSheetMirror } from '../utils.js';\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n styles.push({\r\n styleId,\r\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\r\n rule: stringifyRule(r),\r\n index,\r\n })),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nexport { StylesheetManager };\n","import { onRequestAnimationFrame } from '../utils.js';\n\nclass ProcessedNodeManager {\r\n constructor() {\r\n this.nodeMap = new WeakMap();\r\n this.loop = true;\r\n this.periodicallyClear();\r\n }\r\n periodicallyClear() {\r\n onRequestAnimationFrame(() => {\r\n this.clear();\r\n if (this.loop)\r\n this.periodicallyClear();\r\n });\r\n }\r\n inOtherBuffer(node, thisBuffer) {\r\n const buffers = this.nodeMap.get(node);\r\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\r\n }\r\n add(node, buffer) {\r\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\r\n }\r\n clear() {\r\n this.nodeMap = new WeakMap();\r\n }\r\n destroy() {\r\n this.loop = false;\r\n }\r\n}\n\nexport { ProcessedNodeManager as default };\n","import { createMirror, snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, on, nowTimestamp, getWindowWidth, getWindowHeight, getWindowScroll, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/rrweb-types.js';\nimport { IframeManagerNoop, IframeManager } from './iframe-manager.js';\nimport { ShadowDomManagerNoop, ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManagerNoop } from './observers/canvas/canvas-manager.js';\nexport { CanvasManager } from './observers/canvas/canvas-manager.js';\nimport { StylesheetManager } from './stylesheet-manager.js';\nimport ProcessedNodeManager from './processed-node-manager.js';\nimport { callbackWrapper, unregisterErrorHandler, registerErrorHandler } from './error-handler.js';\n\nlet wrappedEmit;\r\nlet _wrappedEmit;\r\nlet _takeFullSnapshot;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, unblockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskAttributeFn, maskInputFn, maskTextFn, maxCanvasSize = null, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\r\n ? options.recordAfter\r\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, onMutation, getCanvasManager, } = options;\r\n registerErrorHandler(errorHandler);\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n if (window.parent.document) {\r\n passEmitsToParent = false;\r\n }\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n radio: true,\r\n checkbox: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : {};\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn &&\r\n !passEmitsToParent) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (r, isCheckout) => {\r\n const e = r;\r\n e.timestamp = nowTimestamp();\r\n if (mutationBuffers[0]?.isFrozen() &&\r\n e.type !== EventType.FullSnapshot &&\r\n !(e.type === EventType.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit?.(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n origin: window.location.origin,\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n lastFullSnapshotEvent &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n _wrappedEmit = wrappedEmit;\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n ...m,\r\n },\r\n });\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Scroll,\r\n ...p,\r\n },\r\n });\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.CanvasMutation,\r\n ...p,\r\n },\r\n });\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.AdoptedStyleSheet,\r\n ...a,\r\n },\r\n });\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = typeof __RRWEB_EXCLUDE_IFRAME__ === 'boolean' && __RRWEB_EXCLUDE_IFRAME__\r\n ? new IframeManagerNoop()\r\n : new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n const processedNodeManager = new ProcessedNodeManager();\r\n const canvasManager = _getCanvasManager(getCanvasManager, {\r\n mirror,\r\n win: window,\r\n mutationCb: (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.CanvasMutation,\r\n ...p,\r\n },\r\n }),\r\n recordCanvas,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maxCanvasSize,\r\n sampling: sampling['canvas'],\r\n dataURLOptions,\r\n errorHandler,\r\n });\r\n const shadowDomManager = typeof __RRWEB_EXCLUDE_SHADOW_DOM__ === 'boolean' &&\r\n __RRWEB_EXCLUDE_SHADOW_DOM__\r\n ? new ShadowDomManagerNoop()\r\n : new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n onMutation,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n processedNodeManager,\r\n },\r\n mirror,\r\n });\r\n const takeFullSnapshot = (isCheckout = false) => {\r\n wrappedEmit({\r\n type: EventType.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }, isCheckout);\r\n stylesheetManager.reset();\r\n shadowDomManager.init();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskAttributeFn,\r\n maskInputFn,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit({\r\n type: EventType.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: getWindowScroll(window),\r\n },\r\n });\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n _takeFullSnapshot = takeFullSnapshot;\r\n try {\r\n const handlers = [];\r\n const observe = (doc) => {\r\n return callbackWrapper(initObservers)({\r\n onMutation,\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n }),\r\n mouseInteractionCb: (d) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.MouseInteraction,\r\n ...d,\r\n },\r\n }),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.ViewportResize,\r\n ...d,\r\n },\r\n }),\r\n inputCb: (v) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Input,\r\n ...v,\r\n },\r\n }),\r\n mediaInteractionCb: (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.MediaInteraction,\r\n ...p,\r\n },\r\n }),\r\n styleSheetRuleCb: (r) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.StyleSheetRule,\r\n ...r,\r\n },\r\n }),\r\n styleDeclarationCb: (r) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.StyleDeclaration,\r\n ...r,\r\n },\r\n }),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Font,\r\n ...p,\r\n },\r\n }),\r\n selectionCb: (p) => {\r\n wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Selection,\r\n ...p,\r\n },\r\n });\r\n },\r\n customElementCb: (c) => {\r\n wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.CustomElement,\r\n ...c,\r\n },\r\n });\r\n },\r\n blockClass,\r\n ignoreClass,\r\n ignoreSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskAttributeFn,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n unblockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n processedNodeManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: plugins\r\n ?.filter((p) => p.observer)\r\n ?.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit({\r\n type: EventType.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n }),\r\n })) || [],\r\n }, {});\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n try {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit({\r\n type: EventType.DomContentLoaded,\r\n data: {},\r\n });\r\n if (recordAfter === 'DOMContentLoaded')\r\n init();\r\n }));\r\n handlers.push(on('load', () => {\r\n wrappedEmit({\r\n type: EventType.Load,\r\n data: {},\r\n });\r\n if (recordAfter === 'load')\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n processedNodeManager.destroy();\r\n _takeFullSnapshot = undefined;\r\n unregisterErrorHandler();\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nfunction addCustomEvent(tag, payload) {\r\n if (!_wrappedEmit) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit({\r\n type: EventType.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n });\r\n}\r\nfunction freezePage() {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n}\r\nfunction takeFullSnapshot(isCheckout) {\r\n if (!_takeFullSnapshot) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n _takeFullSnapshot(isCheckout);\r\n}\r\nrecord.mirror = mirror;\r\nrecord.takeFullSnapshot = takeFullSnapshot;\r\nfunction _getCanvasManager(getCanvasManagerFn, options) {\r\n try {\r\n return getCanvasManagerFn\r\n ? getCanvasManagerFn(options)\r\n : new CanvasManagerNoop();\r\n }\r\n catch {\r\n console.warn('Unable to initialize CanvasManager');\r\n return new CanvasManagerNoop();\r\n }\r\n}\n\nexport { addCustomEvent, record as default, freezePage, mirror, takeFullSnapshot };\n","/**\n * Converts a timestamp to ms, if it was in s, or keeps it as ms.\n */\nexport function timestampToMs(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp : timestamp * 1000;\n}\n\n/**\n * Converts a timestamp to s, if it was in ms, or keeps it as s.\n */\nexport function timestampToS(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport type { Breadcrumb } from '@sentry/types';\nimport { normalize } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../../types';\n\n/**\n * Add a breadcrumb event to replay.\n */\nexport function addBreadcrumbEvent(replay: ReplayContainer, breadcrumb: Breadcrumb): void {\n if (breadcrumb.category === 'sentry.transaction') {\n return;\n }\n\n if (['ui.click', 'ui.input'].includes(breadcrumb.category as string)) {\n replay.triggerUserActivity();\n } else {\n replay.checkAndHandleExpiredSession();\n }\n\n replay.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n // TODO: We were converting from ms to seconds for breadcrumbs, spans,\n // but maybe we should just keep them as milliseconds\n timestamp: (breadcrumb.timestamp || 0) * 1000,\n data: {\n tag: 'breadcrumb',\n // normalize to max. 10 depth and 1_000 properties per object\n payload: normalize(breadcrumb, 10, 1_000),\n },\n });\n\n // Do not flush after console log messages\n return breadcrumb.category === 'console';\n });\n}\n","import type { INode } from '@sentry-internal/rrweb-snapshot';\n\nconst INTERACTIVE_SELECTOR = 'button,a';\n\n/** Get the closest interactive parent element, or else return the given element. */\nexport function getClosestInteractive(element: Element): Element {\n const closestInteractive = element.closest(INTERACTIVE_SELECTOR);\n return closestInteractive || element;\n}\n\n/**\n * For clicks, we check if the target is inside of a button or link\n * If so, we use this as the target instead\n * This is useful because if you click on the image in ,\n * The target will be the image, not the button, which we don't want here\n */\nexport function getClickTargetNode(event: Event | MouseEvent | Node): Node | INode | null {\n const target = getTargetNode(event);\n\n if (!target || !(target instanceof Element)) {\n return target;\n }\n\n return getClosestInteractive(target);\n}\n\n/** Get the event target node. */\nexport function getTargetNode(event: Node | { target: EventTarget | null }): Node | INode | null {\n if (isEventWithTarget(event)) {\n return event.target as Node | null;\n }\n\n return event;\n}\n\nfunction isEventWithTarget(event: unknown): event is { target: EventTarget | null } {\n return typeof event === 'object' && !!event && 'target' in event;\n}\n","import { fill } from '@sentry/utils';\n\nimport { WINDOW } from '../../constants';\n\ntype WindowOpenHandler = () => void;\n\nlet handlers: undefined | WindowOpenHandler[];\n\n/**\n * Register a handler to be called when `window.open()` is called.\n * Returns a cleanup function.\n */\nexport function onWindowOpen(cb: WindowOpenHandler): () => void {\n // Ensure to only register this once\n if (!handlers) {\n handlers = [];\n monkeyPatchWindowOpen();\n }\n\n handlers.push(cb);\n\n return () => {\n const pos = handlers ? handlers.indexOf(cb) : -1;\n if (pos > -1) {\n (handlers as WindowOpenHandler[]).splice(pos, 1);\n }\n };\n}\n\nfunction monkeyPatchWindowOpen(): void {\n fill(WINDOW, 'open', function (originalWindowOpen: () => void): () => void {\n return function (...args: unknown[]): void {\n if (handlers) {\n try {\n handlers.forEach(handler => handler());\n } catch (e) {\n // ignore errors in here\n }\n }\n\n return originalWindowOpen.apply(WINDOW, args);\n };\n });\n}\n","import { IncrementalSource, MouseInteractions, record } from '@sentry-internal/rrweb';\nimport type { Breadcrumb } from '@sentry/types';\n\nimport { WINDOW } from '../constants';\nimport type {\n RecordingEvent,\n ReplayClickDetector,\n ReplayContainer,\n ReplayMultiClickFrame,\n ReplaySlowClickFrame,\n SlowClickConfig,\n} from '../types';\nimport { ReplayEventTypeIncrementalSnapshot } from '../types';\nimport { timestampToS } from '../util/timestamp';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\nimport { getClosestInteractive } from './util/domUtils';\nimport { onWindowOpen } from './util/onWindowOpen';\n\ntype ClickBreadcrumb = Breadcrumb & {\n timestamp: number;\n};\n\ninterface Click {\n timestamp: number;\n mutationAfter?: number;\n scrollAfter?: number;\n clickBreadcrumb: ClickBreadcrumb;\n clickCount: number;\n node: HTMLElement;\n}\n\ntype IncrementalRecordingEvent = RecordingEvent & {\n type: typeof ReplayEventTypeIncrementalSnapshot;\n data: { source: IncrementalSource };\n};\n\ntype IncrementalMouseInteractionRecordingEvent = IncrementalRecordingEvent & {\n type: typeof ReplayEventTypeIncrementalSnapshot;\n data: { type: MouseInteractions; id: number };\n};\n\n/** Handle a click. */\nexport function handleClick(clickDetector: ReplayClickDetector, clickBreadcrumb: Breadcrumb, node: HTMLElement): void {\n clickDetector.handleClick(clickBreadcrumb, node);\n}\n\n/** A click detector class that can be used to detect slow or rage clicks on elements. */\nexport class ClickDetector implements ReplayClickDetector {\n // protected for testing\n protected _lastMutation: number;\n protected _lastScroll: number;\n\n private _clicks: Click[];\n private _teardown: undefined | (() => void);\n\n private _threshold: number;\n private _scollTimeout: number;\n private _timeout: number;\n private _ignoreSelector: string;\n\n private _replay: ReplayContainer;\n private _checkClickTimeout?: ReturnType;\n private _addBreadcrumbEvent: typeof addBreadcrumbEvent;\n\n public constructor(\n replay: ReplayContainer,\n slowClickConfig: SlowClickConfig,\n // Just for easier testing\n _addBreadcrumbEvent = addBreadcrumbEvent,\n ) {\n this._lastMutation = 0;\n this._lastScroll = 0;\n this._clicks = [];\n\n // We want everything in s, but options are in ms\n this._timeout = slowClickConfig.timeout / 1000;\n this._threshold = slowClickConfig.threshold / 1000;\n this._scollTimeout = slowClickConfig.scrollTimeout / 1000;\n this._replay = replay;\n this._ignoreSelector = slowClickConfig.ignoreSelector;\n this._addBreadcrumbEvent = _addBreadcrumbEvent;\n }\n\n /** Register click detection handlers on mutation or scroll. */\n public addListeners(): void {\n const cleanupWindowOpen = onWindowOpen(() => {\n // Treat window.open as mutation\n this._lastMutation = nowInSeconds();\n });\n\n this._teardown = () => {\n cleanupWindowOpen();\n\n this._clicks = [];\n this._lastMutation = 0;\n this._lastScroll = 0;\n };\n }\n\n /** Clean up listeners. */\n public removeListeners(): void {\n if (this._teardown) {\n this._teardown();\n }\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n }\n\n /** @inheritDoc */\n public handleClick(breadcrumb: Breadcrumb, node: HTMLElement): void {\n if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n return;\n }\n\n const newClick: Click = {\n timestamp: timestampToS(breadcrumb.timestamp),\n clickBreadcrumb: breadcrumb,\n // Set this to 0 so we know it originates from the click breadcrumb\n clickCount: 0,\n node,\n };\n\n // If there was a click in the last 1s on the same element, ignore it - only keep a single reference per second\n if (\n this._clicks.some(click => click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1)\n ) {\n return;\n }\n\n this._clicks.push(newClick);\n\n // If this is the first new click, set a timeout to check for multi clicks\n if (this._clicks.length === 1) {\n this._scheduleCheckClicks();\n }\n }\n\n /** @inheritDoc */\n public registerMutation(timestamp = Date.now()): void {\n this._lastMutation = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n public registerScroll(timestamp = Date.now()): void {\n this._lastScroll = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n public registerClick(element: HTMLElement): void {\n const node = getClosestInteractive(element);\n this._handleMultiClick(node as HTMLElement);\n }\n\n /** Count multiple clicks on elements. */\n private _handleMultiClick(node: HTMLElement): void {\n this._getClicks(node).forEach(click => {\n click.clickCount++;\n });\n }\n\n /** Get all pending clicks for a given node. */\n private _getClicks(node: HTMLElement): Click[] {\n return this._clicks.filter(click => click.node === node);\n }\n\n /** Check the clicks that happened. */\n private _checkClicks(): void {\n const timedOutClicks: Click[] = [];\n\n const now = nowInSeconds();\n\n this._clicks.forEach(click => {\n if (!click.mutationAfter && this._lastMutation) {\n click.mutationAfter = click.timestamp <= this._lastMutation ? this._lastMutation - click.timestamp : undefined;\n }\n if (!click.scrollAfter && this._lastScroll) {\n click.scrollAfter = click.timestamp <= this._lastScroll ? this._lastScroll - click.timestamp : undefined;\n }\n\n // All of these are in seconds!\n if (click.timestamp + this._timeout <= now) {\n timedOutClicks.push(click);\n }\n });\n\n // Remove \"old\" clicks\n for (const click of timedOutClicks) {\n const pos = this._clicks.indexOf(click);\n\n if (pos > -1) {\n this._generateBreadcrumbs(click);\n this._clicks.splice(pos, 1);\n }\n }\n\n // Trigger new check, unless no clicks left\n if (this._clicks.length) {\n this._scheduleCheckClicks();\n }\n }\n\n /** Generate matching breadcrumb(s) for the click. */\n private _generateBreadcrumbs(click: Click): void {\n const replay = this._replay;\n const hadScroll = click.scrollAfter && click.scrollAfter <= this._scollTimeout;\n const hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n\n const isSlowClick = !hadScroll && !hadMutation;\n const { clickCount, clickBreadcrumb } = click;\n\n // Slow click\n if (isSlowClick) {\n // If `mutationAfter` is set, it means a mutation happened after the threshold, but before the timeout\n // If not, it means we just timed out without scroll & mutation\n const timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1000;\n const endReason = timeAfterClickMs < this._timeout * 1000 ? 'mutation' : 'timeout';\n\n const breadcrumb: ReplaySlowClickFrame = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.slowClickDetected',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n timeAfterClickMs,\n endReason,\n // If clickCount === 0, it means multiClick was not correctly captured here\n // - we still want to send 1 in this case\n clickCount: clickCount || 1,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n return;\n }\n\n // Multi click\n if (clickCount > 1) {\n const breadcrumb: ReplayMultiClickFrame = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.multiClick',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n clickCount,\n metric: true,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n }\n }\n\n /** Schedule to check current clicks. */\n private _scheduleCheckClicks(): void {\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n\n this._checkClickTimeout = setTimeout(() => this._checkClicks(), 1000);\n }\n}\n\nconst SLOW_CLICK_TAGS = ['A', 'BUTTON', 'INPUT'];\n\n/** exported for tests only */\nexport function ignoreElement(node: HTMLElement, ignoreSelector: string): boolean {\n if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n return true;\n }\n\n // If tag, we only want to consider input[type='submit'] & input[type='button']\n if (node.tagName === 'INPUT' && !['submit', 'button'].includes(node.getAttribute('type') || '')) {\n return true;\n }\n\n // If tag, detect special variants that may not lead to an action\n // If target !== _self, we may open the link somewhere else, which would lead to no action\n // Also, when downloading a file, we may not leave the page, but still not trigger an action\n if (\n node.tagName === 'A' &&\n (node.hasAttribute('download') || (node.hasAttribute('target') && node.getAttribute('target') !== '_self'))\n ) {\n return true;\n }\n\n if (ignoreSelector && node.matches(ignoreSelector)) {\n return true;\n }\n\n return false;\n}\n\nfunction isClickBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is ClickBreadcrumb {\n return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === 'number' && breadcrumb.timestamp);\n}\n\n// This is good enough for us, and is easier to test/mock than `timestampInSeconds`\nfunction nowInSeconds(): number {\n return Date.now() / 1000;\n}\n\n/** Update the click detector based on a recording event of rrweb. */\nexport function updateClickDetectorForRecordingEvent(clickDetector: ReplayClickDetector, event: RecordingEvent): void {\n try {\n // note: We only consider incremental snapshots here\n // This means that any full snapshot is ignored for mutation detection - the reason is that we simply cannot know if a mutation happened here.\n // E.g. think that we are buffering, an error happens and we take a full snapshot because we switched to session mode -\n // in this scenario, we would not know if a dead click happened because of the error, which is a key dead click scenario.\n // Instead, by ignoring full snapshots, we have the risk that we generate a false positive\n // (if a mutation _did_ happen but was \"swallowed\" by the full snapshot)\n // But this should be more unlikely as we'd generally capture the incremental snapshot right away\n\n if (!isIncrementalEvent(event)) {\n return;\n }\n\n const { source } = event.data;\n if (source === IncrementalSource.Mutation) {\n clickDetector.registerMutation(event.timestamp);\n }\n\n if (source === IncrementalSource.Scroll) {\n clickDetector.registerScroll(event.timestamp);\n }\n\n if (isIncrementalMouseInteraction(event)) {\n const { type, id } = event.data;\n const node = record.mirror.getNode(id);\n\n if (node instanceof HTMLElement && type === MouseInteractions.Click) {\n clickDetector.registerClick(node);\n }\n }\n } catch {\n // ignore errors here, e.g. if accessing something that does not exist\n }\n}\n\nfunction isIncrementalEvent(event: RecordingEvent): event is IncrementalRecordingEvent {\n return event.type === ReplayEventTypeIncrementalSnapshot;\n}\n\nfunction isIncrementalMouseInteraction(\n event: IncrementalRecordingEvent,\n): event is IncrementalMouseInteractionRecordingEvent {\n return event.data.source === IncrementalSource.MouseInteraction;\n}\n","type ClassOption = string | RegExp;\n\n/** Duplicate this from @sentry-internal/rrweb so we can export this as well. */\nexport const ReplayEventTypeDomContentLoaded = 0;\nexport const ReplayEventTypeLoad = 1;\nexport const ReplayEventTypeFullSnapshot = 2;\nexport const ReplayEventTypeIncrementalSnapshot = 3;\nexport const ReplayEventTypeMeta = 4;\nexport const ReplayEventTypeCustom = 5;\nexport const ReplayEventTypePlugin = 6;\n\nexport type ReplayEventType =\n | typeof ReplayEventTypeDomContentLoaded\n | typeof ReplayEventTypeLoad\n | typeof ReplayEventTypeFullSnapshot\n | typeof ReplayEventTypeIncrementalSnapshot\n | typeof ReplayEventTypeMeta\n | typeof ReplayEventTypeCustom\n | typeof ReplayEventTypePlugin;\n\n/**\n * This is a partial copy of rrweb's eventWithTime type which only contains the properties\n * we specifcally need in the SDK.\n */\nexport type ReplayEventWithTime = {\n type: ReplayEventType;\n data: unknown;\n timestamp: number;\n delay?: number;\n};\n\n/**\n * This is a partial copy of rrweb's recording options which only contains the properties\n * we specifically us in the SDK. Users can specify additional properties, hence we add the\n * Record union type.\n */\nexport type RrwebRecordOptions = {\n maskAllText?: boolean;\n maskAllInputs?: boolean;\n blockClass?: ClassOption;\n ignoreClass?: string;\n maskTextClass?: ClassOption;\n maskTextSelector?: string;\n blockSelector?: string;\n maskInputOptions?: Record;\n} & Record;\n\nexport interface CanvasManagerInterface {\n reset(): void;\n freeze(): void;\n unfreeze(): void;\n lock(): void;\n unlock(): void;\n snapshot(): void;\n}\n\nexport interface CanvasManagerOptions {\n recordCanvas: boolean;\n enableManualSnapshot?: boolean;\n blockClass: string | RegExp;\n blockSelector: string | null;\n unblockSelector: string | null;\n sampling?: 'all' | number;\n dataURLOptions: Partial<{\n type: string;\n quality: number;\n }>;\n mutationCb: (p: any) => void;\n win: typeof globalThis & Window;\n mirror: any;\n}\n","import type { ReplayBreadcrumbFrame } from '../types/replayFrame';\n\n/**\n * Create a breadcrumb for a replay.\n */\nexport function createBreadcrumb(\n breadcrumb: Omit & Partial>,\n): ReplayBreadcrumbFrame {\n return {\n timestamp: Date.now() / 1000,\n type: 'default',\n ...breadcrumb,\n };\n}\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n?.host;\r\n return Boolean(host?.shadowRoot === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n if (!n)\r\n return -1;\r\n const id = this.getMeta(n)?.id;\r\n return id ?? -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\r\n if (tagName === 'OPTION') {\r\n tagName = 'SELECT';\r\n }\r\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\r\n (type && maskInputOptions[type]) ||\r\n type === 'password' ||\r\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\r\n}\r\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\r\n let text = value || '';\r\n if (!isMasked) {\r\n return text;\r\n }\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n return '*'.repeat(text.length);\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nfunction toUpperCase(str) {\r\n return str.toUpperCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType.Comment ||\r\n a.type === NodeType.Text ||\r\n a.type === NodeType.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction getInputValue(el, tagName, type) {\r\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\r\n return el.getAttribute('value') || '';\r\n }\r\n return el.value;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n if (typeof maskAttributeFn === 'function') {\r\n return maskAttributeFn(name, value, element);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\r\n try {\r\n if (unblockSelector && element.matches(unblockSelector)) {\r\n return false;\r\n }\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction elementClassMatchesRegex(el, regex) {\r\n for (let eIndex = el.classList.length; eIndex--;) {\r\n const className = el.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (checkAncestors) {\r\n return (distanceToMatch(node, (node) => elementClassMatchesRegex(node, regex)) >= 0);\r\n }\r\n else if (node.nodeType === node.ELEMENT_NODE) {\r\n return elementClassMatchesRegex(node, regex);\r\n }\r\n return false;\r\n}\r\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\r\n if (!node)\r\n return -1;\r\n if (node.nodeType !== node.ELEMENT_NODE)\r\n return -1;\r\n if (distance > limit)\r\n return -1;\r\n if (matchPredicate(node))\r\n return distance;\r\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\r\n}\r\nfunction createMatchPredicate(className, selector) {\r\n return (node) => {\r\n const el = node;\r\n if (el === null)\r\n return false;\r\n try {\r\n if (className) {\r\n if (typeof className === 'string') {\r\n if (el.matches(`.${className}`))\r\n return true;\r\n }\r\n else if (elementClassMatchesRegex(el, className)) {\r\n return true;\r\n }\r\n }\r\n if (selector && el.matches(selector))\r\n return true;\r\n return false;\r\n }\r\n catch {\r\n return false;\r\n }\r\n };\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (el.tagName === 'INPUT') {\r\n const autocomplete = el.getAttribute('autocomplete');\r\n const disallowedAutocompleteValues = [\r\n 'current-password',\r\n 'new-password',\r\n 'cc-number',\r\n 'cc-exp',\r\n 'cc-exp-month',\r\n 'cc-exp-year',\r\n 'cc-csc',\r\n ];\r\n if (disallowedAutocompleteValues.includes(autocomplete)) {\r\n return true;\r\n }\r\n }\r\n let maskDistance = -1;\r\n let unmaskDistance = -1;\r\n if (maskAllText) {\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\r\n if (unmaskDistance < 0) {\r\n return true;\r\n }\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\r\n }\r\n else {\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\r\n if (maskDistance < 0) {\r\n return false;\r\n }\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\r\n }\r\n return maskDistance >= 0\r\n ? unmaskDistance >= 0\r\n ? maskDistance <= unmaskDistance\r\n : true\r\n : unmaskDistance >= 0\r\n ? false\r\n : !!maskAllText;\r\n }\r\n catch (e) {\r\n }\r\n return !!maskAllText;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n inlineStylesheet,\r\n maskAttributeFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskTextFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if (n.parentNode.sheet?.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\r\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\r\n textContent = maskInputFn\r\n ? maskInputFn(textContent, n.parentNode)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (parentTagName === 'OPTION' && textContent) {\r\n const isInputMasked = shouldMaskInput({\r\n type: null,\r\n tagName: parentTagName,\r\n maskInputOptions,\r\n });\r\n textContent = maskInputValue({\r\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\r\n element: n,\r\n value: textContent,\r\n maskInputFn,\r\n });\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' ||\r\n tagName === 'textarea' ||\r\n tagName === 'select' ||\r\n tagName === 'option') {\r\n const el = n;\r\n const type = getInputType(el);\r\n const value = getInputValue(el, toUpperCase(tagName), type);\r\n const checked = el.checked;\r\n if (type !== 'submit' && type !== 'button' && value) {\r\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\r\n type,\r\n tagName: toUpperCase(tagName),\r\n maskInputOptions,\r\n }));\r\n attributes.value = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value,\r\n maskInputFn,\r\n });\r\n }\r\n if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n }\r\n : maskAllInputs === false\r\n ? {}\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\nfunction visitSnapshot(node, onVisit) {\r\n function walk(current) {\r\n onVisit(current);\r\n if (current.type === NodeType.Document ||\r\n current.type === NodeType.Element) {\r\n current.childNodes.forEach(walk);\r\n }\r\n }\r\n walk(node);\r\n}\r\nfunction cleanupSnapshot() {\r\n _id = 1;\r\n}\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n whitespace();\r\n while (css[0] == '}') {\r\n error('extra closing bracket');\r\n css = css.slice(1);\r\n whitespace();\r\n }\r\n const m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const cleanedInput = m[0]\r\n .trim()\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n });\r\n return customSplit(cleanedInput).map((s) => s.replace(/\\u200C/g, ',').trim());\r\n }\r\n function customSplit(input) {\r\n const result = [];\r\n let currentSegment = '';\r\n let depthParentheses = 0;\r\n let depthBrackets = 0;\r\n let currentStringChar = null;\r\n for (const char of input) {\r\n const hasStringEscape = currentSegment.endsWith('\\\\');\r\n if (currentStringChar) {\r\n if (currentStringChar === char && !hasStringEscape) {\r\n currentStringChar = null;\r\n }\r\n }\r\n else if (char === '(') {\r\n depthParentheses++;\r\n }\r\n else if (char === ')') {\r\n depthParentheses--;\r\n }\r\n else if (char === '[') {\r\n depthBrackets++;\r\n }\r\n else if (char === ']') {\r\n depthBrackets--;\r\n }\r\n else if ('\\'\"'.includes(char)) {\r\n currentStringChar = char;\r\n }\r\n if (char === ',' && depthParentheses === 0 && depthBrackets === 0) {\r\n result.push(currentSegment);\r\n currentSegment = '';\r\n }\r\n else {\r\n currentSegment += char;\r\n }\r\n }\r\n if (currentSegment) {\r\n result.push(currentSegment);\r\n }\r\n return result;\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n const cachedStyle = cache?.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n if (cssText.length >= 1000000) {\r\n return cssText;\r\n }\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n ast.stylesheet.rules.forEach((rule) => {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n const result = cssText.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n cache?.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n doc.defaultView?.customElements &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n const child = doc.createTextNode(value);\r\n for (const c of Array.from(node.childNodes)) {\r\n if (c.nodeType === node.TEXT_NODE) {\r\n node.removeChild(c);\r\n }\r\n }\r\n node.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.setProperty('width', value.toString());\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.setProperty('height', value.toString());\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('');\r\n }\r\n else {\r\n doc.write('');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType.Document &&\r\n childN.type == NodeType.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if (n?.type !== NodeType.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, classMatchesRegex, cleanupSnapshot, createCache, createMatchPredicate, createMirror, distanceToMatch, escapeImportStatement, fixSafariColons, genId, getInputType, getInputValue, ignoreAttribute, is2DCanvasBlank, isCSSImportRule, isCSSStyleRule, isElement, isNativeShadowDom, isNodeMetaEqual, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, shouldMaskInput, snapshot, stringifyRule, stringifyStylesheet, toLowerCase, toUpperCase, transformAttribute, visitSnapshot };\n","// Note that these are the serialized attributes and not attributes directly on\n// the DOM Node. Attributes we are interested in:\nconst ATTRIBUTES_TO_RECORD = new Set([\n 'id',\n 'class',\n 'aria-label',\n 'role',\n 'name',\n 'alt',\n 'title',\n 'data-test-id',\n 'data-testid',\n 'disabled',\n 'aria-disabled',\n 'data-sentry-component',\n]);\n\n/**\n * Inclusion list of attributes that we want to record from the DOM element\n */\nexport function getAttributesToRecord(attributes: Record): Record {\n const obj: Record = {};\n for (const key in attributes) {\n if (ATTRIBUTES_TO_RECORD.has(key)) {\n let normalizedKey = key;\n\n if (key === 'data-testid' || key === 'data-test-id') {\n normalizedKey = 'testId';\n }\n\n obj[normalizedKey] = attributes[key];\n }\n }\n\n return obj;\n}\n","import { record } from '@sentry-internal/rrweb';\nimport type { serializedElementNodeWithId, serializedNodeWithId } from '@sentry-internal/rrweb-snapshot';\nimport { NodeType } from '@sentry-internal/rrweb-snapshot';\nimport type { Breadcrumb, HandlerDataDom } from '@sentry/types';\nimport { htmlTreeAsString } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { handleClick } from './handleClick';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\nimport { getClickTargetNode, getTargetNode } from './util/domUtils';\nimport { getAttributesToRecord } from './util/getAttributesToRecord';\n\nexport const handleDomListener: (replay: ReplayContainer) => (handlerData: HandlerDataDom) => void = (\n replay: ReplayContainer,\n) => {\n return (handlerData: HandlerDataDom): void => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleDom(handlerData);\n\n if (!result) {\n return;\n }\n\n const isClick = handlerData.name === 'click';\n const event = isClick ? (handlerData.event as PointerEvent) : undefined;\n // Ignore clicks if ctrl/alt/meta/shift keys are held down as they alter behavior of clicks (e.g. open in new tab)\n if (\n isClick &&\n replay.clickDetector &&\n event &&\n event.target &&\n !event.altKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey\n ) {\n handleClick(\n replay.clickDetector,\n result as Breadcrumb & { timestamp: number; data: { nodeId: number } },\n getClickTargetNode(handlerData.event as Event) as HTMLElement,\n );\n }\n\n addBreadcrumbEvent(replay, result);\n };\n};\n\n/** Get the base DOM breadcrumb. */\nexport function getBaseDomBreadcrumb(target: Node | null, message: string): Breadcrumb {\n const nodeId = record.mirror.getId(target);\n const node = nodeId && record.mirror.getNode(nodeId);\n const meta = node && record.mirror.getMeta(node);\n const element = meta && isElement(meta) ? meta : null;\n\n return {\n message,\n data: element\n ? {\n nodeId,\n node: {\n id: nodeId,\n tagName: element.tagName,\n textContent: Array.from(element.childNodes)\n .map((node: serializedNodeWithId) => node.type === NodeType.Text && node.textContent)\n .filter(Boolean) // filter out empty values\n .map(text => (text as string).trim())\n .join(''),\n attributes: getAttributesToRecord(element.attributes),\n },\n }\n : {},\n };\n}\n\n/**\n * An event handler to react to DOM events.\n * Exported for tests.\n */\nexport function handleDom(handlerData: HandlerDataDom): Breadcrumb | null {\n const { target, message } = getDomTarget(handlerData);\n\n return createBreadcrumb({\n category: `ui.${handlerData.name}`,\n ...getBaseDomBreadcrumb(target, message),\n });\n}\n\nfunction getDomTarget(handlerData: HandlerDataDom): { target: Node | null; message: string } {\n const isClick = handlerData.name === 'click';\n\n let message: string | undefined;\n let target: Node | null = null;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = isClick ? getClickTargetNode(handlerData.event as Event) : getTargetNode(handlerData.event as Event);\n message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n } catch (e) {\n message = '';\n }\n\n return { target, message };\n}\n\nfunction isElement(node: serializedNodeWithId): node is serializedElementNodeWithId {\n return node.type === NodeType.Element;\n}\n","import type { Breadcrumb } from '@sentry/types';\nimport { htmlTreeAsString } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { getBaseDomBreadcrumb } from './handleDom';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\n/** Handle keyboard events & create breadcrumbs. */\nexport function handleKeyboardEvent(replay: ReplayContainer, event: KeyboardEvent): void {\n if (!replay.isEnabled()) {\n return;\n }\n\n // Update user activity, but do not restart recording as it can create\n // noisy/low-value replays (e.g. user comes back from idle, hits alt-tab, new\n // session with a single \"keydown\" breadcrumb is created)\n replay.updateUserActivity();\n\n const breadcrumb = getKeyboardBreadcrumb(event);\n\n if (!breadcrumb) {\n return;\n }\n\n addBreadcrumbEvent(replay, breadcrumb);\n}\n\n/** exported only for tests */\nexport function getKeyboardBreadcrumb(event: KeyboardEvent): Breadcrumb | null {\n const { metaKey, shiftKey, ctrlKey, altKey, key, target } = event;\n\n // never capture for input fields\n if (!target || isInputElement(target as HTMLElement) || !key) {\n return null;\n }\n\n // Note: We do not consider shift here, as that means \"uppercase\"\n const hasModifierKey = metaKey || ctrlKey || altKey;\n const isCharacterKey = key.length === 1; // other keys like Escape, Tab, etc have a longer length\n\n // Do not capture breadcrumb if only a word key is pressed\n // This could leak e.g. user input\n if (!hasModifierKey && isCharacterKey) {\n return null;\n }\n\n const message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n const baseBreadcrumb = getBaseDomBreadcrumb(target as Node, message);\n\n return createBreadcrumb({\n category: 'ui.keyDown',\n message,\n data: {\n ...baseBreadcrumb.data,\n metaKey,\n shiftKey,\n ctrlKey,\n altKey,\n key,\n },\n });\n}\n\nfunction isInputElement(target: HTMLElement): boolean {\n return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;\n}\n","import { record } from '@sentry-internal/rrweb';\nimport { browserPerformanceTimeOrigin } from '@sentry/utils';\n\nimport { WINDOW } from '../constants';\nimport type {\n AllPerformanceEntry,\n AllPerformanceEntryData,\n ExperimentalPerformanceResourceTiming,\n LargestContentfulPaintData,\n NavigationData,\n PaintData,\n ReplayPerformanceEntry,\n ResourceData,\n} from '../types';\n\n// Map entryType -> function to normalize data for event\nconst ENTRY_TYPES: Record<\n string,\n (entry: AllPerformanceEntry) => null | ReplayPerformanceEntry\n> = {\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n resource: createResourceEntry,\n paint: createPaintEntry,\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n navigation: createNavigationEntry,\n};\n\n/**\n * Create replay performance entries from the browser performance entries.\n */\nexport function createPerformanceEntries(\n entries: AllPerformanceEntry[],\n): ReplayPerformanceEntry[] {\n return entries.map(createPerformanceEntry).filter(Boolean) as ReplayPerformanceEntry[];\n}\n\nfunction createPerformanceEntry(entry: AllPerformanceEntry): ReplayPerformanceEntry | null {\n if (!ENTRY_TYPES[entry.entryType]) {\n return null;\n }\n\n return ENTRY_TYPES[entry.entryType](entry);\n}\n\nfunction getAbsoluteTime(time: number): number {\n // browserPerformanceTimeOrigin can be undefined if `performance` or\n // `performance.now` doesn't exist, but this is already checked by this integration\n return ((browserPerformanceTimeOrigin || WINDOW.performance.timeOrigin) + time) / 1000;\n}\n\nfunction createPaintEntry(entry: PerformancePaintTiming): ReplayPerformanceEntry {\n const { duration, entryType, name, startTime } = entry;\n\n const start = getAbsoluteTime(startTime);\n return {\n type: entryType,\n name,\n start,\n end: start + duration,\n data: undefined,\n };\n}\n\nfunction createNavigationEntry(entry: PerformanceNavigationTiming): ReplayPerformanceEntry | null {\n const {\n entryType,\n name,\n decodedBodySize,\n duration,\n domComplete,\n encodedBodySize,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n domInteractive,\n loadEventStart,\n loadEventEnd,\n redirectCount,\n startTime,\n transferSize,\n type,\n } = entry;\n\n // Ignore entries with no duration, they do not seem to be useful and cause dupes\n if (duration === 0) {\n return null;\n }\n\n return {\n type: `${entryType}.${type}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(domComplete),\n name,\n data: {\n size: transferSize,\n decodedBodySize,\n encodedBodySize,\n duration,\n domInteractive,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n loadEventStart,\n loadEventEnd,\n domComplete,\n redirectCount,\n },\n };\n}\n\nfunction createResourceEntry(\n entry: ExperimentalPerformanceResourceTiming,\n): ReplayPerformanceEntry | null {\n const {\n entryType,\n initiatorType,\n name,\n responseEnd,\n startTime,\n decodedBodySize,\n encodedBodySize,\n responseStatus,\n transferSize,\n } = entry;\n\n // Core SDK handles these\n if (['fetch', 'xmlhttprequest'].includes(initiatorType)) {\n return null;\n }\n\n return {\n type: `${entryType}.${initiatorType}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(responseEnd),\n name,\n data: {\n size: transferSize,\n statusCode: responseStatus,\n decodedBodySize,\n encodedBodySize,\n },\n };\n}\n\n/**\n * Add a LCP event to the replay based on an LCP metric.\n */\nexport function getLargestContentfulPaint(metric: {\n value: number;\n entries: PerformanceEntry[];\n}): ReplayPerformanceEntry {\n const entries = metric.entries;\n const lastEntry = entries[entries.length - 1] as (PerformanceEntry & { element?: Element }) | undefined;\n const element = lastEntry ? lastEntry.element : undefined;\n\n const value = metric.value;\n\n const end = getAbsoluteTime(value);\n\n const data: ReplayPerformanceEntry = {\n type: 'largest-contentful-paint',\n name: 'largest-contentful-paint',\n start: end,\n end,\n data: {\n value,\n size: value,\n nodeId: element ? record.mirror.getId(element) : undefined,\n },\n };\n\n return data;\n}\n","import { addLcpInstrumentationHandler, addPerformanceInstrumentationHandler } from '@sentry-internal/tracing';\n\nimport type { ReplayContainer } from '../types';\nimport { getLargestContentfulPaint } from '../util/createPerformanceEntries';\n\n/**\n * Sets up a PerformanceObserver to listen to all performance entry types.\n * Returns a callback to stop observing.\n */\nexport function setupPerformanceObserver(replay: ReplayContainer): () => void {\n function addPerformanceEntry(entry: PerformanceEntry): void {\n // It is possible for entries to come up multiple times\n if (!replay.performanceEntries.includes(entry)) {\n replay.performanceEntries.push(entry);\n }\n }\n\n function onEntries({ entries }: { entries: PerformanceEntry[] }): void {\n entries.forEach(addPerformanceEntry);\n }\n\n const clearCallbacks: (() => void)[] = [];\n\n (['navigation', 'paint', 'resource'] as const).forEach(type => {\n clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n });\n\n clearCallbacks.push(\n addLcpInstrumentationHandler(({ metric }) => {\n replay.replayPerformanceEntries.push(getLargestContentfulPaint(metric));\n }),\n );\n\n // A callback to cleanup all handlers\n return () => {\n clearCallbacks.forEach(clearCallback => clearCallback());\n };\n}\n","import { addBreadcrumb } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\n\n/**\n * Log a message in debug mode, and add a breadcrumb when _experiment.traceInternals is enabled.\n */\nexport function logInfo(message: string, shouldAddBreadcrumb?: boolean): void {\n if (!DEBUG_BUILD) {\n return;\n }\n\n logger.info(message);\n\n if (shouldAddBreadcrumb) {\n addLogBreadcrumb(message);\n }\n}\n\n/**\n * Log a message, and add a breadcrumb in the next tick.\n * This is necessary when the breadcrumb may be added before the replay is initialized.\n */\nexport function logInfoNextTick(message: string, shouldAddBreadcrumb?: boolean): void {\n if (!DEBUG_BUILD) {\n return;\n }\n\n logger.info(message);\n\n if (shouldAddBreadcrumb) {\n // Wait a tick here to avoid race conditions for some initial logs\n // which may be added before replay is initialized\n setTimeout(() => {\n addLogBreadcrumb(message);\n }, 0);\n }\n}\n\nfunction addLogBreadcrumb(message: string): void {\n addBreadcrumb(\n {\n category: 'console',\n data: {\n logger: 'replay',\n },\n level: 'info',\n message,\n },\n { level: 'info' },\n );\n}\n","import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\n\n/** This error indicates that the event buffer size exceeded the limit.. */\nexport class EventBufferSizeExceededError extends Error {\n public constructor() {\n super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`);\n }\n}\n","import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { timestampToMs } from '../util/timestamp';\nimport { EventBufferSizeExceededError } from './error';\n\n/**\n * A basic event buffer that does not do any compression.\n * Used as fallback if the compression worker cannot be loaded or is disabled.\n */\nexport class EventBufferArray implements EventBuffer {\n /** All the events that are buffered to be sent. */\n public events: RecordingEvent[];\n\n /** @inheritdoc */\n public hasCheckout: boolean;\n\n private _totalSize: number;\n\n public constructor() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public get hasEvents(): boolean {\n return this.events.length > 0;\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return 'sync';\n }\n\n /** @inheritdoc */\n public destroy(): void {\n this.events = [];\n }\n\n /** @inheritdoc */\n public async addEvent(event: RecordingEvent): Promise {\n const eventSize = JSON.stringify(event).length;\n this._totalSize += eventSize;\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n throw new EventBufferSizeExceededError();\n }\n\n this.events.push(event);\n }\n\n /** @inheritdoc */\n public finish(): Promise {\n return new Promise(resolve => {\n // Make a copy of the events array reference and immediately clear the\n // events member so that we do not lose new events while uploading\n // attachment.\n const eventsRet = this.events;\n this.clear();\n resolve(JSON.stringify(eventsRet));\n });\n }\n\n /** @inheritdoc */\n public clear(): void {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n const timestamp = this.events.map(event => event.timestamp).sort()[0];\n\n if (!timestamp) {\n return null;\n }\n\n return timestampToMs(timestamp);\n }\n}\n","import { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { WorkerRequest, WorkerResponse } from '../types';\nimport { logInfo } from '../util/log';\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nexport class WorkerHandler {\n private _worker: Worker;\n private _id: number;\n private _ensureReadyPromise?: Promise;\n\n public constructor(worker: Worker) {\n this._worker = worker;\n this._id = 0;\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n public ensureReady(): Promise {\n // Ensure we only check once\n if (this._ensureReadyPromise) {\n return this._ensureReadyPromise;\n }\n\n this._ensureReadyPromise = new Promise((resolve, reject) => {\n this._worker.addEventListener(\n 'message',\n ({ data }: MessageEvent) => {\n if ((data as WorkerResponse).success) {\n resolve();\n } else {\n reject();\n }\n },\n { once: true },\n );\n\n this._worker.addEventListener(\n 'error',\n error => {\n reject(error);\n },\n { once: true },\n );\n });\n\n return this._ensureReadyPromise;\n }\n\n /**\n * Destroy the worker.\n */\n public destroy(): void {\n logInfo('[Replay] Destroying compression worker');\n this._worker.terminate();\n }\n\n /**\n * Post message to worker and wait for response before resolving promise.\n */\n public postMessage(method: WorkerRequest['method'], arg?: WorkerRequest['arg']): Promise {\n const id = this._getAndIncrementId();\n\n return new Promise((resolve, reject) => {\n const listener = ({ data }: MessageEvent): void => {\n const response = data as WorkerResponse;\n if (response.method !== method) {\n return;\n }\n\n // There can be multiple listeners for a single method, the id ensures\n // that the response matches the caller.\n if (response.id !== id) {\n return;\n }\n\n // At this point, we'll always want to remove listener regardless of result status\n this._worker.removeEventListener('message', listener);\n\n if (!response.success) {\n // TODO: Do some error handling, not sure what\n DEBUG_BUILD && logger.error('[Replay]', response.response);\n\n reject(new Error('Error in compression worker'));\n return;\n }\n\n resolve(response.response as T);\n };\n\n // Note: we can't use `once` option because it's possible it needs to\n // listen to multiple messages\n this._worker.addEventListener('message', listener);\n this._worker.postMessage({ id, method, arg });\n });\n }\n\n /** Get the current ID and increment it for the next call. */\n private _getAndIncrementId(): number {\n return this._id++;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\n\nimport { logger } from '@sentry/utils';\nimport { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { timestampToMs } from '../util/timestamp';\nimport { WorkerHandler } from './WorkerHandler';\nimport { EventBufferSizeExceededError } from './error';\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nexport class EventBufferCompressionWorker implements EventBuffer {\n /** @inheritdoc */\n public hasCheckout: boolean;\n\n private _worker: WorkerHandler;\n private _earliestTimestamp: number | null;\n private _totalSize;\n\n public constructor(worker: Worker) {\n this._worker = new WorkerHandler(worker);\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public get hasEvents(): boolean {\n return !!this._earliestTimestamp;\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return 'worker';\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n public ensureReady(): Promise {\n return this._worker.ensureReady();\n }\n\n /**\n * Destroy the event buffer.\n */\n public destroy(): void {\n this._worker.destroy();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfuly received and processed by worker.\n */\n public addEvent(event: RecordingEvent): Promise {\n const timestamp = timestampToMs(event.timestamp);\n if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n this._earliestTimestamp = timestamp;\n }\n\n const data = JSON.stringify(event);\n this._totalSize += data.length;\n\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n return Promise.reject(new EventBufferSizeExceededError());\n }\n\n return this._sendEventToWorker(data);\n }\n\n /**\n * Finish the event buffer and return the compressed data.\n */\n public finish(): Promise {\n return this._finishRequest();\n }\n\n /** @inheritdoc */\n public clear(): void {\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n\n // We do not wait on this, as we assume the order of messages is consistent for the worker\n this._worker.postMessage('clear').then(null, e => {\n DEBUG_BUILD && logger.warn('[Replay] Sending \"clear\" message to worker failed', e);\n });\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n return this._earliestTimestamp;\n }\n\n /**\n * Send the event to the worker.\n */\n private _sendEventToWorker(data: string): Promise {\n return this._worker.postMessage('addEvent', data);\n }\n\n /**\n * Finish the request and return the compressed data from the worker.\n */\n private async _finishRequest(): Promise {\n const response = await this._worker.postMessage('finish');\n\n this._earliestTimestamp = null;\n this._totalSize = 0;\n\n return response;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { logInfo } from '../util/log';\nimport { EventBufferArray } from './EventBufferArray';\nimport { EventBufferCompressionWorker } from './EventBufferCompressionWorker';\n\n/**\n * This proxy will try to use the compression worker, and fall back to use the simple buffer if an error occurs there.\n * This can happen e.g. if the worker cannot be loaded.\n * Exported only for testing.\n */\nexport class EventBufferProxy implements EventBuffer {\n private _fallback: EventBufferArray;\n private _compression: EventBufferCompressionWorker;\n private _used: EventBuffer;\n private _ensureWorkerIsLoadedPromise: Promise;\n\n public constructor(worker: Worker) {\n this._fallback = new EventBufferArray();\n this._compression = new EventBufferCompressionWorker(worker);\n this._used = this._fallback;\n\n this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return this._used.type;\n }\n\n /** @inheritDoc */\n public get hasEvents(): boolean {\n return this._used.hasEvents;\n }\n\n /** @inheritdoc */\n public get hasCheckout(): boolean {\n return this._used.hasCheckout;\n }\n /** @inheritdoc */\n public set hasCheckout(value: boolean) {\n this._used.hasCheckout = value;\n }\n\n /** @inheritDoc */\n public destroy(): void {\n this._fallback.destroy();\n this._compression.destroy();\n }\n\n /** @inheritdoc */\n public clear(): void {\n return this._used.clear();\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n return this._used.getEarliestTimestamp();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully added.\n */\n public addEvent(event: RecordingEvent): Promise {\n return this._used.addEvent(event);\n }\n\n /** @inheritDoc */\n public async finish(): Promise {\n // Ensure the worker is loaded, so the sent event is compressed\n await this.ensureWorkerIsLoaded();\n\n return this._used.finish();\n }\n\n /** Ensure the worker has loaded. */\n public ensureWorkerIsLoaded(): Promise {\n return this._ensureWorkerIsLoadedPromise;\n }\n\n /** Actually check if the worker has been loaded. */\n private async _ensureWorkerIsLoaded(): Promise {\n try {\n await this._compression.ensureReady();\n } catch (error) {\n // If the worker fails to load, we fall back to the simple buffer.\n // Nothing more to do from our side here\n logInfo('[Replay] Failed to load the compression worker, falling back to simple buffer');\n return;\n }\n\n // Now we need to switch over the array buffer to the compression worker\n await this._switchToCompressionWorker();\n }\n\n /** Switch the used buffer to the compression worker. */\n private async _switchToCompressionWorker(): Promise {\n const { events, hasCheckout } = this._fallback;\n\n const addEventPromises: Promise[] = [];\n for (const event of events) {\n addEventPromises.push(this._compression.addEvent(event));\n }\n\n this._compression.hasCheckout = hasCheckout;\n\n // We switch over to the new buffer immediately - any further events will be added\n // after the previously buffered ones\n this._used = this._compression;\n\n // Wait for original events to be re-added before resolving\n try {\n await Promise.all(addEventPromises);\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to add events when switching buffers.', error);\n }\n }\n}\n","import { getWorkerURL } from '@sentry-internal/replay-worker';\n\nimport type { EventBuffer } from '../types';\nimport { logInfo } from '../util/log';\nimport { EventBufferArray } from './EventBufferArray';\nimport { EventBufferProxy } from './EventBufferProxy';\n\ninterface CreateEventBufferParams {\n useCompression: boolean;\n workerUrl?: string;\n}\n\n// Treeshakable guard to remove the code of the included compression worker\ndeclare const __SENTRY_EXCLUDE_REPLAY_WORKER__: boolean;\n\n/**\n * Create an event buffer for replays.\n */\nexport function createEventBuffer({\n useCompression,\n workerUrl: customWorkerUrl,\n}: CreateEventBufferParams): EventBuffer {\n if (\n useCompression &&\n // eslint-disable-next-line no-restricted-globals\n window.Worker\n ) {\n const worker = _loadWorker(customWorkerUrl);\n\n if (worker) {\n return worker;\n }\n }\n\n logInfo('[Replay] Using simple buffer');\n return new EventBufferArray();\n}\n\nfunction _loadWorker(customWorkerUrl?: string): EventBufferProxy | void {\n try {\n const workerUrl = customWorkerUrl || _getWorkerUrl();\n\n if (!workerUrl) {\n return;\n }\n\n logInfo(`[Replay] Using compression worker${customWorkerUrl ? ` from ${customWorkerUrl}` : ''}`);\n const worker = new Worker(workerUrl);\n return new EventBufferProxy(worker);\n } catch (error) {\n logInfo('[Replay] Failed to create compression worker');\n // Fall back to use simple event buffer array\n }\n}\n\nfunction _getWorkerUrl(): string {\n if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === 'undefined' || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n return getWorkerURL();\n }\n\n return '';\n}\n","import r from\"./worker\";function e(){const e=new Blob([r]);return URL.createObjectURL(e)}export{e as getWorkerURL};\n","export default `var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a>h]=l}else for(o=new n(i),a=0;a>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;ad&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<e))break;p+=m-(1<>=y;p>0;){var M=o[a].s;g[M]=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;Pnt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if(\"function\"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,a=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),s=a.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(a,n),O(a,s-8,r.d()),O(a,s-4,e),a}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),G=\"undefined\"!=typeof TextEncoder&&new TextEncoder,H=\"undefined\"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(r){for(var e=new t(n.length),i=0;i>1)),o=0,f=function(t){s[o++]=t};for(i=0;is.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\"Adding invalid event\");const n=this._hasEvents?\",\":\"\";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push(\"]\",!0);const t=function(t){let n=0;for(let r=0,e=t.length;r{this._deflatedData.push(t)},this.stream=new J(((t,n)=>{this.deflate.push(t,n)})),this.stream.push(\"[\")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener(\"message\",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&\"function\"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:\"init\",success:!0,response:void 0});`;\n","import { WINDOW } from '../constants';\n\n/** If sessionStorage is available. */\nexport function hasSessionStorage(): boolean {\n try {\n // This can throw, e.g. when being accessed in a sandboxed iframe\n return 'sessionStorage' in WINDOW && !!WINDOW.sessionStorage;\n } catch {\n return false;\n }\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../../src/constants';\nimport type { ReplayContainer } from '../../src/types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\n\n/**\n * Removes the session from Session Storage and unsets session in replay instance\n */\nexport function clearSession(replay: ReplayContainer): void {\n deleteSession();\n replay.session = undefined;\n}\n\n/**\n * Deletes a session from storage\n */\nfunction deleteSession(): void {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n } catch {\n // Ignore potential SecurityError exceptions\n }\n}\n","/**\n * Given a sample rate, returns true if replay should be sampled.\n *\n * 1.0 = 100% sampling\n * 0.0 = 0% sampling\n */\nexport function isSampled(sampleRate?: number): boolean {\n if (sampleRate === undefined) {\n return false;\n }\n\n // Math.random() returns a number in range of 0 to 1 (inclusive of 0, but not 1)\n return Math.random() < sampleRate;\n}\n","import { uuid4 } from '@sentry/utils';\n\nimport type { Sampled, Session } from '../types';\n\n/**\n * Get a session with defaults & applied sampling.\n */\nexport function makeSession(session: Partial & { sampled: Sampled }): Session {\n const now = Date.now();\n const id = session.id || uuid4();\n // Note that this means we cannot set a started/lastActivity of `0`, but this should not be relevant outside of tests.\n const started = session.started || now;\n const lastActivity = session.lastActivity || now;\n const segmentId = session.segmentId || 0;\n const sampled = session.sampled;\n const previousSessionId = session.previousSessionId;\n\n return {\n id,\n started,\n lastActivity,\n segmentId,\n sampled,\n previousSessionId,\n };\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../constants';\nimport type { Session } from '../types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\n\n/**\n * Save a session to session storage.\n */\nexport function saveSession(session: Session): void {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n } catch {\n // Ignore potential SecurityError exceptions\n }\n}\n","import type { Sampled, Session, SessionOptions } from '../types';\nimport { isSampled } from '../util/isSampled';\nimport { makeSession } from './Session';\nimport { saveSession } from './saveSession';\n\n/**\n * Get the sampled status for a session based on sample rates & current sampled status.\n */\nexport function getSessionSampleType(sessionSampleRate: number, allowBuffering: boolean): Sampled {\n return isSampled(sessionSampleRate) ? 'session' : allowBuffering ? 'buffer' : false;\n}\n\n/**\n * Create a new session, which in its current implementation is a Sentry event\n * that all replays will be saved to as attachments. Currently, we only expect\n * one of these Sentry events per \"replay session\".\n */\nexport function createSession(\n { sessionSampleRate, allowBuffering, stickySession = false }: SessionOptions,\n { previousSessionId }: { previousSessionId?: string } = {},\n): Session {\n const sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n const session = makeSession({\n sampled,\n previousSessionId,\n });\n\n if (stickySession) {\n saveSession(session);\n }\n\n return session;\n}\n","/**\n * Given an initial timestamp and an expiry duration, checks to see if current\n * time should be considered as expired.\n */\nexport function isExpired(\n initialTime: null | number,\n expiry: undefined | number,\n targetTime: number = +new Date(),\n): boolean {\n // Always expired if < 0\n if (initialTime === null || expiry === undefined || expiry < 0) {\n return true;\n }\n\n // Never expires if == 0\n if (expiry === 0) {\n return false;\n }\n\n return initialTime + expiry <= targetTime;\n}\n","import type { Session } from '../types';\nimport { isExpired } from './isExpired';\n\n/**\n * Checks to see if session is expired\n */\nexport function isSessionExpired(\n session: Session,\n {\n maxReplayDuration,\n sessionIdleExpire,\n targetTime = Date.now(),\n }: { maxReplayDuration: number; sessionIdleExpire: number; targetTime?: number },\n): boolean {\n return (\n // First, check that maximum session length has not been exceeded\n isExpired(session.started, maxReplayDuration, targetTime) ||\n // check that the idle timeout has not been exceeded (i.e. user has\n // performed an action within the last `sessionIdleExpire` ms)\n isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n );\n}\n","import type { Session } from '../types';\nimport { isSessionExpired } from '../util/isSessionExpired';\n\n/** If the session should be refreshed or not. */\nexport function shouldRefreshSession(\n session: Session,\n { sessionIdleExpire, maxReplayDuration }: { sessionIdleExpire: number; maxReplayDuration: number },\n): boolean {\n // If not expired, all good, just keep the session\n if (!isSessionExpired(session, { sessionIdleExpire, maxReplayDuration })) {\n return false;\n }\n\n // If we are buffering & haven't ever flushed yet, always continue\n if (session.sampled === 'buffer' && session.segmentId === 0) {\n return false;\n }\n\n return true;\n}\n","import type { Session, SessionOptions } from '../types';\nimport { logInfoNextTick } from '../util/log';\nimport { createSession } from './createSession';\nimport { fetchSession } from './fetchSession';\nimport { shouldRefreshSession } from './shouldRefreshSession';\n\n/**\n * Get or create a session, when initializing the replay.\n * Returns a session that may be unsampled.\n */\nexport function loadOrCreateSession(\n {\n traceInternals,\n sessionIdleExpire,\n maxReplayDuration,\n previousSessionId,\n }: {\n sessionIdleExpire: number;\n maxReplayDuration: number;\n traceInternals?: boolean;\n previousSessionId?: string;\n },\n sessionOptions: SessionOptions,\n): Session {\n const existingSession = sessionOptions.stickySession && fetchSession(traceInternals);\n\n // No session exists yet, just create a new one\n if (!existingSession) {\n logInfoNextTick('[Replay] Creating new session', traceInternals);\n return createSession(sessionOptions, { previousSessionId });\n }\n\n if (!shouldRefreshSession(existingSession, { sessionIdleExpire, maxReplayDuration })) {\n return existingSession;\n }\n\n logInfoNextTick('[Replay] Session in sessionStorage is expired, creating new one...');\n return createSession(sessionOptions, { previousSessionId: existingSession.id });\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../constants';\nimport type { Session } from '../types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\nimport { logInfoNextTick } from '../util/log';\nimport { makeSession } from './Session';\n\n/**\n * Fetches a session from storage\n */\nexport function fetchSession(traceInternals?: boolean): Session | null {\n if (!hasSessionStorage()) {\n return null;\n }\n\n try {\n // This can throw if cookies are disabled\n const sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n\n if (!sessionStringFromStorage) {\n return null;\n }\n\n const sessionObj = JSON.parse(sessionStringFromStorage) as Session;\n\n logInfoNextTick('[Replay] Loading existing session', traceInternals);\n\n return makeSession(sessionObj);\n } catch {\n return null;\n }\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport { getClient } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { EventBufferSizeExceededError } from '../eventBuffer/error';\nimport type { AddEventResult, RecordingEvent, ReplayContainer, ReplayFrameEvent, ReplayPluginOptions } from '../types';\nimport { logInfo } from './log';\nimport { timestampToMs } from './timestamp';\n\nfunction isCustomEvent(event: RecordingEvent): event is ReplayFrameEvent {\n return event.type === EventType.Custom;\n}\n\n/**\n * Add an event to the event buffer.\n * In contrast to `addEvent`, this does not return a promise & does not wait for the adding of the event to succeed/fail.\n * Instead this returns `true` if we tried to add the event, else false.\n * It returns `false` e.g. if we are paused, disabled, or out of the max replay duration.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nexport function addEventSync(replay: ReplayContainer, event: RecordingEvent, isCheckout?: boolean): boolean {\n if (!shouldAddEvent(replay, event)) {\n return false;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _addEvent(replay, event, isCheckout);\n\n return true;\n}\n\n/**\n * Add an event to the event buffer.\n * Resolves to `null` if no event was added, else to `void`.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nexport function addEvent(\n replay: ReplayContainer,\n event: RecordingEvent,\n isCheckout?: boolean,\n): Promise {\n if (!shouldAddEvent(replay, event)) {\n return Promise.resolve(null);\n }\n\n return _addEvent(replay, event, isCheckout);\n}\n\nasync function _addEvent(\n replay: ReplayContainer,\n event: RecordingEvent,\n isCheckout?: boolean,\n): Promise {\n if (!replay.eventBuffer) {\n return null;\n }\n\n try {\n if (isCheckout && replay.recordingMode === 'buffer') {\n replay.eventBuffer.clear();\n }\n\n if (isCheckout) {\n replay.eventBuffer.hasCheckout = true;\n }\n\n const replayOptions = replay.getOptions();\n\n const eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n\n if (!eventAfterPossibleCallback) {\n return;\n }\n\n return await replay.eventBuffer.addEvent(eventAfterPossibleCallback);\n } catch (error) {\n const reason = error && error instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';\n\n DEBUG_BUILD && logger.error(error);\n await replay.stop({ reason });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('internal_sdk_error', 'replay');\n }\n }\n}\n\n/** Exported only for tests. */\nexport function shouldAddEvent(replay: ReplayContainer, event: RecordingEvent): boolean {\n if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n return false;\n }\n\n const timestampInMs = timestampToMs(event.timestamp);\n\n // Throw out events that happen more than 5 minutes ago. This can happen if\n // page has been left open and idle for a long period of time and user\n // comes back to trigger a new session. The performance entries rely on\n // `performance.timeOrigin`, which is when the page first opened.\n if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n return false;\n }\n\n // Throw out events that are +60min from the initial timestamp\n if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n logInfo(\n `[Replay] Skipping event with timestamp ${timestampInMs} because it is after maxReplayDuration`,\n replay.getOptions()._experiments.traceInternals,\n );\n return false;\n }\n\n return true;\n}\n\nfunction maybeApplyCallback(\n event: RecordingEvent,\n callback: ReplayPluginOptions['beforeAddRecordingEvent'],\n): RecordingEvent | null | undefined {\n try {\n if (typeof callback === 'function' && isCustomEvent(event)) {\n return callback(event);\n }\n } catch (error) {\n DEBUG_BUILD &&\n logger.error('[Replay] An error occured in the `beforeAddRecordingEvent` callback, skipping the event...', error);\n return null;\n }\n\n return event;\n}\n","import type { ErrorEvent, Event, FeedbackEvent, ReplayEvent, TransactionEvent } from '@sentry/types';\n\n/** If the event is an error event */\nexport function isErrorEvent(event: Event): event is ErrorEvent {\n return !event.type;\n}\n\n/** If the event is a transaction event */\nexport function isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n\n/** If the event is an replay event */\nexport function isReplayEvent(event: Event): event is ReplayEvent {\n return event.type === 'replay_event';\n}\n\n/** If the event is a feedback event */\nexport function isFeedbackEvent(event: Event): event is FeedbackEvent {\n return event.type === 'feedback';\n}\n","import { getClient } from '@sentry/core';\nimport type { ErrorEvent, Event, TransactionEvent, Transport, TransportMakeRequestResponse } from '@sentry/types';\n\nimport type { ReplayContainer } from '../types';\nimport { isErrorEvent, isTransactionEvent } from '../util/eventUtils';\n\ntype AfterSendEventCallback = (event: Event, sendResponse: TransportMakeRequestResponse | void) => void;\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nexport function handleAfterSendEvent(replay: ReplayContainer): AfterSendEventCallback {\n // Custom transports may still be returning `Promise`, which means we cannot expect the status code to be available there\n // TODO (v8): remove this check as it will no longer be necessary\n const enforceStatusCode = isBaseTransportSend();\n\n return (event: Event, sendResponse: TransportMakeRequestResponse | void) => {\n if (!replay.isEnabled() || (!isErrorEvent(event) && !isTransactionEvent(event))) {\n return;\n }\n\n const statusCode = sendResponse && sendResponse.statusCode;\n\n // We only want to do stuff on successful error sending, otherwise you get error replays without errors attached\n // If not using the base transport, we allow `undefined` response (as a custom transport may not implement this correctly yet)\n // If we do use the base transport, we skip if we encountered an non-OK status code\n if (enforceStatusCode && (!statusCode || statusCode < 200 || statusCode >= 300)) {\n return;\n }\n\n if (isTransactionEvent(event)) {\n handleTransactionEvent(replay, event);\n return;\n }\n\n handleErrorEvent(replay, event);\n };\n}\n\nfunction handleTransactionEvent(replay: ReplayContainer, event: TransactionEvent): void {\n const replayContext = replay.getContext();\n\n // Collect traceIds in _context regardless of `recordingMode`\n // In error mode, _context gets cleared on every checkout\n // We limit to max. 100 transactions linked\n if (event.contexts && event.contexts.trace && event.contexts.trace.trace_id && replayContext.traceIds.size < 100) {\n replayContext.traceIds.add(event.contexts.trace.trace_id as string);\n }\n}\n\nfunction handleErrorEvent(replay: ReplayContainer, event: ErrorEvent): void {\n const replayContext = replay.getContext();\n\n // Add error to list of errorIds of replay. This is ok to do even if not\n // sampled because context will get reset at next checkout.\n // XXX: There is also a race condition where it's possible to capture an\n // error to Sentry before Replay SDK has loaded, but response returns after\n // it was loaded, and this gets called.\n // We limit to max. 100 errors linked\n if (event.event_id && replayContext.errorIds.size < 100) {\n replayContext.errorIds.add(event.event_id);\n }\n\n // If error event is tagged with replay id it means it was sampled (when in buffer mode)\n // Need to be very careful that this does not cause an infinite loop\n if (replay.recordingMode !== 'buffer' || !event.tags || !event.tags.replayId) {\n return;\n }\n\n const { beforeErrorSampling } = replay.getOptions();\n if (typeof beforeErrorSampling === 'function' && !beforeErrorSampling(event)) {\n return;\n }\n\n setTimeout(() => {\n // Capture current event buffer as new replay\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.sendBufferedReplayOrFlush();\n });\n}\n\nfunction isBaseTransportSend(): boolean {\n const client = getClient();\n if (!client) {\n return false;\n }\n\n const transport = client.getTransport();\n if (!transport) {\n return false;\n }\n\n return (\n (transport.send as Transport['send'] & { __sentry__baseTransport__?: true }).__sentry__baseTransport__ || false\n );\n}\n","import type { ErrorEvent, Event } from '@sentry/types';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { isErrorEvent } from '../util/eventUtils';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\ntype BeforeSendEventCallback = (event: Event) => void;\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nexport function handleBeforeSendEvent(replay: ReplayContainer): BeforeSendEventCallback {\n return (event: Event) => {\n if (!replay.isEnabled() || !isErrorEvent(event)) {\n return;\n }\n\n handleHydrationError(replay, event);\n };\n}\n\nfunction handleHydrationError(replay: ReplayContainer, event: ErrorEvent): void {\n const exceptionValue = event.exception && event.exception.values && event.exception.values[0].value;\n if (typeof exceptionValue !== 'string') {\n return;\n }\n\n if (\n // Only matches errors in production builds of react-dom\n // Example https://reactjs.org/docs/error-decoder.html?invariant=423\n exceptionValue.match(/reactjs\\.org\\/docs\\/error-decoder\\.html\\?invariant=(418|419|422|423|425)/) ||\n // Development builds of react-dom\n // Error 1: Hydration failed because the initial UI does not match what was rendered on the server.\n // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match.\n exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)\n ) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.hydrate-error',\n });\n addBreadcrumbEvent(replay, breadcrumb);\n }\n}\n","import type { Event, EventHint } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { ReplayContainer } from '../types';\nimport { isErrorEvent, isFeedbackEvent, isReplayEvent, isTransactionEvent } from '../util/eventUtils';\nimport { isRrwebError } from '../util/isRrwebError';\nimport { handleAfterSendEvent } from './handleAfterSendEvent';\nimport { addFeedbackBreadcrumb } from './util/addFeedbackBreadcrumb';\nimport { shouldSampleForBufferEvent } from './util/shouldSampleForBufferEvent';\n\n/**\n * Returns a listener to be added to `addEventProcessor(listener)`.\n */\nexport function handleGlobalEventListener(\n replay: ReplayContainer,\n includeAfterSendEventHandling = false,\n): (event: Event, hint: EventHint) => Event | null {\n const afterSendHandler = includeAfterSendEventHandling ? handleAfterSendEvent(replay) : undefined;\n\n return Object.assign(\n (event: Event, hint: EventHint) => {\n // Do nothing if replay has been disabled\n if (!replay.isEnabled()) {\n return event;\n }\n\n if (isReplayEvent(event)) {\n // Replays have separate set of breadcrumbs, do not include breadcrumbs\n // from core SDK\n delete event.breadcrumbs;\n return event;\n }\n\n // We only want to handle errors, transactions, and feedbacks, nothing else\n if (!isErrorEvent(event) && !isTransactionEvent(event) && !isFeedbackEvent(event)) {\n return event;\n }\n\n // Ensure we do not add replay_id if the session is expired\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (!isSessionActive) {\n return event;\n }\n\n if (isFeedbackEvent(event)) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.flush();\n event.contexts.feedback.replay_id = replay.getSessionId();\n // Add a replay breadcrumb for this piece of feedback\n addFeedbackBreadcrumb(replay, event);\n return event;\n }\n\n // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb\n // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users\n if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n DEBUG_BUILD && logger.log('[Replay] Ignoring error from rrweb internals', event);\n return null;\n }\n\n // When in buffer mode, we decide to sample here.\n // Later, in `handleAfterSendEvent`, if the replayId is set, we know that we sampled\n // And convert the buffer session to a full session\n const isErrorEventSampled = shouldSampleForBufferEvent(replay, event);\n\n // Tag errors if it has been sampled in buffer mode, or if it is session mode\n // Only tag transactions if in session mode\n const shouldTagReplayId = isErrorEventSampled || replay.recordingMode === 'session';\n\n if (shouldTagReplayId) {\n event.tags = { ...event.tags, replayId: replay.getSessionId() };\n }\n\n // In cases where a custom client is used that does not support the new hooks (yet),\n // we manually call this hook method here\n if (afterSendHandler) {\n // Pretend the error had a 200 response so we always capture it\n afterSendHandler(event, { statusCode: 200 });\n }\n\n return event;\n },\n { id: 'Replay' },\n );\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport type { FeedbackEvent } from '@sentry/types';\n\nimport type { ReplayBreadcrumbFrameEvent, ReplayContainer } from '../../types';\n\n/**\n * Add a feedback breadcrumb event to replay.\n */\nexport function addFeedbackBreadcrumb(replay: ReplayContainer, event: FeedbackEvent): void {\n replay.triggerUserActivity();\n replay.addUpdate(() => {\n if (!event.timestamp) {\n // Ignore events that don't have timestamps (this shouldn't happen, more of a typing issue)\n // Return true here so that we don't flush\n return true;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: event.timestamp * 1000,\n data: {\n tag: 'breadcrumb',\n payload: {\n timestamp: event.timestamp,\n type: 'default',\n category: 'sentry.feedback',\n data: {\n feedbackId: event.event_id,\n },\n },\n },\n } as ReplayBreadcrumbFrameEvent);\n\n return false;\n });\n}\n","import type { Event, EventHint } from '@sentry/types';\n\n/**\n * Returns true if we think the given event is an error originating inside of rrweb.\n */\nexport function isRrwebError(event: Event, hint: EventHint): boolean {\n if (event.type || !event.exception || !event.exception.values || !event.exception.values.length) {\n return false;\n }\n\n // @ts-expect-error this may be set by rrweb when it finds errors\n if (hint.originalException && hint.originalException.__rrweb__) {\n return true;\n }\n\n return false;\n}\n","import type { Event } from '@sentry/types';\n\nimport { UNABLE_TO_SEND_REPLAY } from '../../constants';\nimport type { ReplayContainer } from '../../types';\nimport { isSampled } from '../../util/isSampled';\n\n/**\n * Determine if event should be sampled (only applies in buffer mode).\n * When an event is captured by `hanldleGlobalEvent`, when in buffer mode\n * we determine if we want to sample the error or not.\n */\nexport function shouldSampleForBufferEvent(replay: ReplayContainer, event: Event): boolean {\n if (replay.recordingMode !== 'buffer') {\n return false;\n }\n\n // ignore this error because otherwise we could loop indefinitely with\n // trying to capture replay and failing\n if (event.message === UNABLE_TO_SEND_REPLAY) {\n return false;\n }\n\n // Require the event to be an error event & to have an exception\n if (!event.exception || event.type) {\n return false;\n }\n\n return isSampled(replay.getOptions().errorSampleRate);\n}\n","import { EventType } from '@sentry-internal/rrweb';\n\nimport type { AddEventResult, AllEntryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\n\n/**\n * Create a \"span\" for each performance entry.\n */\nexport function createPerformanceSpans(\n replay: ReplayContainer,\n entries: ReplayPerformanceEntry[],\n): Promise[] {\n return entries.map(({ type, start, end, name, data }) => {\n const response = replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: start,\n data: {\n tag: 'performanceSpan',\n payload: {\n op: type,\n description: name,\n startTimestamp: start,\n endTimestamp: end,\n data,\n },\n },\n });\n\n // If response is a string, it means its either THROTTLED or SKIPPED\n return typeof response === 'string' ? Promise.resolve(null) : response;\n });\n}\n","import type { HandlerDataHistory } from '@sentry/types';\n\nimport type { HistoryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { createPerformanceSpans } from '../util/createPerformanceSpans';\n\nfunction handleHistory(handlerData: HandlerDataHistory): ReplayPerformanceEntry {\n const { from, to } = handlerData;\n\n const now = Date.now() / 1000;\n\n return {\n type: 'navigation.push',\n start: now,\n end: now,\n name: to,\n data: {\n previous: from,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addHistoryInstrumentationHandler(listener)`.\n */\nexport function handleHistorySpanListener(replay: ReplayContainer): (handlerData: HandlerDataHistory) => void {\n return (handlerData: HandlerDataHistory) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleHistory(handlerData);\n\n if (result === null) {\n return;\n }\n\n // Need to collect visited URLs\n replay.getContext().urls.push(result.name);\n replay.triggerUserActivity();\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning false to flush\n return false;\n });\n };\n}\n","import type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../../types';\nimport { createPerformanceSpans } from '../../util/createPerformanceSpans';\nimport { shouldFilterRequest } from '../../util/shouldFilterRequest';\n\n/** Add a performance entry breadcrumb */\nexport function addNetworkBreadcrumb(\n replay: ReplayContainer,\n result: ReplayPerformanceEntry | null,\n): void {\n if (!replay.isEnabled()) {\n return;\n }\n\n if (result === null) {\n return;\n }\n\n if (shouldFilterRequest(replay, result.name)) {\n return;\n }\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning true will cause `addUpdate` to not flush\n // We do not want network requests to cause a flush. This will prevent\n // recurring/polling requests from keeping the replay session alive.\n return true;\n });\n}\n","import { getClient, isSentryRequestUrl } from '@sentry/core';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { ReplayContainer } from '../types';\n\n/**\n * Check whether a given request URL should be filtered out. This is so we\n * don't log Sentry ingest requests.\n */\nexport function shouldFilterRequest(replay: ReplayContainer, url: string): boolean {\n // If we enabled the `traceInternals` experiment, we want to trace everything\n if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {\n return false;\n }\n\n return isSentryRequestUrl(url, getClient());\n}\n","import type { HandlerDataXhr } from '@sentry/types';\nimport { SENTRY_XHR_DATA_KEY } from '@sentry/utils';\n\nimport type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { addNetworkBreadcrumb } from './util/addNetworkBreadcrumb';\n\n/** only exported for tests */\nexport function handleXhr(handlerData: HandlerDataXhr): ReplayPerformanceEntry | null {\n const { startTimestamp, endTimestamp, xhr } = handlerData;\n\n const sentryXhrData = xhr[SENTRY_XHR_DATA_KEY];\n\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url, status_code: statusCode } = sentryXhrData;\n\n if (url === undefined) {\n return null;\n }\n\n return {\n type: 'resource.xhr',\n name: url,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n data: {\n method,\n statusCode,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addXhrInstrumentationHandler(listener)`.\n */\nexport function handleXhrSpanListener(replay: ReplayContainer): (handlerData: HandlerDataXhr) => void {\n return (handlerData: HandlerDataXhr) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleXhr(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n","import type { TextEncoderInternal } from '@sentry/types';\nimport { dropUndefinedKeys, logger, stringMatchesSomePattern } from '@sentry/utils';\n\nimport { NETWORK_BODY_MAX_SIZE, WINDOW } from '../../constants';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type {\n NetworkBody,\n NetworkMetaWarning,\n NetworkRequestData,\n ReplayNetworkRequestData,\n ReplayNetworkRequestOrResponse,\n ReplayPerformanceEntry,\n} from '../../types';\n\n/** Get the size of a body. */\nexport function getBodySize(\n body: RequestInit['body'],\n textEncoder: TextEncoder | TextEncoderInternal,\n): number | undefined {\n if (!body) {\n return undefined;\n }\n\n try {\n if (typeof body === 'string') {\n return textEncoder.encode(body).length;\n }\n\n if (body instanceof URLSearchParams) {\n return textEncoder.encode(body.toString()).length;\n }\n\n if (body instanceof FormData) {\n const formDataStr = _serializeFormData(body);\n return textEncoder.encode(formDataStr).length;\n }\n\n if (body instanceof Blob) {\n return body.size;\n }\n\n if (body instanceof ArrayBuffer) {\n return body.byteLength;\n }\n\n // Currently unhandled types: ArrayBufferView, ReadableStream\n } catch {\n // just return undefined\n }\n\n return undefined;\n}\n\n/** Convert a Content-Length header to number/undefined. */\nexport function parseContentLengthHeader(header: string | null | undefined): number | undefined {\n if (!header) {\n return undefined;\n }\n\n const size = parseInt(header, 10);\n return isNaN(size) ? undefined : size;\n}\n\n/** Get the string representation of a body. */\nexport function getBodyString(body: unknown): [string | undefined, NetworkMetaWarning?] {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof URLSearchParams) {\n return [body.toString()];\n }\n\n if (body instanceof FormData) {\n return [_serializeFormData(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('[Replay] Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\n/** Merge a warning into an existing network request/response. */\nexport function mergeWarning(\n info: ReplayNetworkRequestOrResponse | undefined,\n warning: NetworkMetaWarning,\n): ReplayNetworkRequestOrResponse {\n if (!info) {\n return {\n headers: {},\n size: undefined,\n _meta: {\n warnings: [warning],\n },\n };\n }\n\n const newMeta = { ...info._meta };\n const existingWarnings = newMeta.warnings || [];\n newMeta.warnings = [...existingWarnings, warning];\n\n info._meta = newMeta;\n return info;\n}\n\n/** Convert ReplayNetworkRequestData to a PerformanceEntry. */\nexport function makeNetworkReplayBreadcrumb(\n type: string,\n data: ReplayNetworkRequestData | null,\n): ReplayPerformanceEntry | null {\n if (!data) {\n return null;\n }\n\n const { startTimestamp, endTimestamp, url, method, statusCode, request, response } = data;\n\n const result: ReplayPerformanceEntry = {\n type,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: dropUndefinedKeys({\n method,\n statusCode,\n request,\n response,\n }),\n };\n\n return result;\n}\n\n/** Build the request or response part of a replay network breadcrumb that was skipped. */\nexport function buildSkippedNetworkRequestOrResponse(bodySize: number | undefined): ReplayNetworkRequestOrResponse {\n return {\n headers: {},\n size: bodySize,\n _meta: {\n warnings: ['URL_SKIPPED'],\n },\n };\n}\n\n/** Build the request or response part of a replay network breadcrumb. */\nexport function buildNetworkRequestOrResponse(\n headers: Record,\n bodySize: number | undefined,\n body: string | undefined,\n): ReplayNetworkRequestOrResponse | undefined {\n if (!bodySize && Object.keys(headers).length === 0) {\n return undefined;\n }\n\n if (!bodySize) {\n return {\n headers,\n };\n }\n\n if (!body) {\n return {\n headers,\n size: bodySize,\n };\n }\n\n const info: ReplayNetworkRequestOrResponse = {\n headers,\n size: bodySize,\n };\n\n const { body: normalizedBody, warnings } = normalizeNetworkBody(body);\n info.body = normalizedBody;\n if (warnings && warnings.length > 0) {\n info._meta = {\n warnings,\n };\n }\n\n return info;\n}\n\n/** Filter a set of headers */\nexport function getAllowedHeaders(headers: Record, allowedHeaders: string[]): Record {\n return Object.keys(headers).reduce((filteredHeaders: Record, key: string) => {\n const normalizedKey = key.toLowerCase();\n // Avoid putting empty strings into the headers\n if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n filteredHeaders[normalizedKey] = headers[key];\n }\n return filteredHeaders;\n }, {});\n}\n\nfunction _serializeFormData(formData: FormData): string {\n // This is a bit simplified, but gives us a decent estimate\n // This converts e.g. { name: 'Anne Smith', age: 13 } to 'name=Anne+Smith&age=13'\n // @ts-expect-error passing FormData to URLSearchParams actually works\n return new URLSearchParams(formData).toString();\n}\n\nfunction normalizeNetworkBody(body: string | undefined): {\n body: NetworkBody | undefined;\n warnings?: NetworkMetaWarning[];\n} {\n if (!body || typeof body !== 'string') {\n return {\n body,\n };\n }\n\n const exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n const isProbablyJson = _strIsProbablyJson(body);\n\n if (exceedsSizeLimit) {\n const truncatedBody = body.slice(0, NETWORK_BODY_MAX_SIZE);\n\n if (isProbablyJson) {\n return {\n body: truncatedBody,\n warnings: ['MAYBE_JSON_TRUNCATED'],\n };\n }\n\n return {\n body: `${truncatedBody}…`,\n warnings: ['TEXT_TRUNCATED'],\n };\n }\n\n if (isProbablyJson) {\n try {\n const jsonBody = JSON.parse(body);\n return {\n body: jsonBody,\n };\n } catch {\n // fall back to just send the body as string\n }\n }\n\n return {\n body,\n };\n}\n\nfunction _strIsProbablyJson(str: string): boolean {\n const first = str[0];\n const last = str[str.length - 1];\n\n // Simple check: If this does not start & end with {} or [], it's not JSON\n return (first === '[' && last === ']') || (first === '{' && last === '}');\n}\n\n/** Match an URL against a list of strings/Regex. */\nexport function urlMatches(url: string, urls: (string | RegExp)[]): boolean {\n const fullUrl = getFullUrl(url);\n\n return stringMatchesSomePattern(fullUrl, urls);\n}\n\n/** exported for tests */\nexport function getFullUrl(url: string, baseURI = WINDOW.document.baseURI): string {\n // Short circuit for common cases:\n if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith(WINDOW.location.origin)) {\n return url;\n }\n const fixedUrl = new URL(url, baseURI);\n\n // If these do not match, we are not dealing with a relative URL, so just return it\n if (fixedUrl.origin !== new URL(baseURI).origin) {\n return url;\n }\n\n const fullUrl = fixedUrl.href;\n\n // Remove trailing slashes, if they don't match the original URL\n if (!url.endsWith('/') && fullUrl.endsWith('/')) {\n return fullUrl.slice(0, -1);\n }\n\n return fullUrl;\n}\n","import type { Breadcrumb, FetchBreadcrumbData, TextEncoderInternal } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type {\n FetchHint,\n NetworkMetaWarning,\n ReplayContainer,\n ReplayNetworkOptions,\n ReplayNetworkRequestData,\n ReplayNetworkRequestOrResponse,\n} from '../../types';\nimport { addNetworkBreadcrumb } from './addNetworkBreadcrumb';\nimport {\n buildNetworkRequestOrResponse,\n buildSkippedNetworkRequestOrResponse,\n getAllowedHeaders,\n getBodySize,\n getBodyString,\n makeNetworkReplayBreadcrumb,\n mergeWarning,\n parseContentLengthHeader,\n urlMatches,\n} from './networkUtils';\n\n/**\n * Capture a fetch breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nexport async function captureFetchBreadcrumbToReplay(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions & {\n textEncoder: TextEncoderInternal;\n replay: ReplayContainer;\n },\n): Promise {\n try {\n const data = await _prepareFetchData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.fetch', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.error('[Replay] Failed to capture fetch breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nexport function enrichFetchBreadcrumb(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: Partial,\n options: { textEncoder: TextEncoderInternal },\n): void {\n const { input, response } = hint;\n\n const body = input ? _getFetchRequestArgBody(input) : undefined;\n const reqSize = getBodySize(body, options.textEncoder);\n\n const resSize = response ? parseContentLengthHeader(response.headers.get('content-length')) : undefined;\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nasync function _prepareFetchData(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions & {\n textEncoder: TextEncoderInternal;\n },\n): Promise {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n const captureDetails =\n urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n\n const request = captureDetails\n ? _getRequestInfo(options, hint.input, requestBodySize)\n : buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = await _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n}\n\nfunction _getRequestInfo(\n { networkCaptureBodies, networkRequestHeaders }: ReplayNetworkOptions,\n input: FetchHint['input'] | undefined,\n requestBodySize?: number,\n): ReplayNetworkRequestOrResponse | undefined {\n const headers = input ? getRequestHeaders(input, networkRequestHeaders) : {};\n\n if (!networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, requestBodySize, undefined);\n }\n\n // We only want to transmit string or string-like bodies\n const requestBody = _getFetchRequestArgBody(input);\n const [bodyStr, warning] = getBodyString(requestBody);\n const data = buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n\n if (warning) {\n return mergeWarning(data, warning);\n }\n\n return data;\n}\n\n/** Exported only for tests. */\nexport async function _getResponseInfo(\n captureDetails: boolean,\n {\n networkCaptureBodies,\n textEncoder,\n networkResponseHeaders,\n }: Pick & {\n textEncoder: TextEncoderInternal;\n },\n response: Response | undefined,\n responseBodySize?: number,\n): Promise {\n if (!captureDetails && responseBodySize !== undefined) {\n return buildSkippedNetworkRequestOrResponse(responseBodySize);\n }\n\n const headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};\n\n if (!response || (!networkCaptureBodies && responseBodySize !== undefined)) {\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n\n const [bodyText, warning] = await _parseFetchResponseBody(response);\n const result = getResponseData(bodyText, {\n networkCaptureBodies,\n textEncoder,\n responseBodySize,\n captureDetails,\n headers,\n });\n\n if (warning) {\n return mergeWarning(result, warning);\n }\n\n return result;\n}\n\nfunction getResponseData(\n bodyText: string | undefined,\n {\n networkCaptureBodies,\n textEncoder,\n responseBodySize,\n captureDetails,\n headers,\n }: {\n captureDetails: boolean;\n networkCaptureBodies: boolean;\n responseBodySize: number | undefined;\n headers: Record;\n textEncoder: TextEncoderInternal;\n },\n): ReplayNetworkRequestOrResponse | undefined {\n try {\n const size =\n bodyText && bodyText.length && responseBodySize === undefined\n ? getBodySize(bodyText, textEncoder)\n : responseBodySize;\n\n if (!captureDetails) {\n return buildSkippedNetworkRequestOrResponse(size);\n }\n\n if (networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, size, bodyText);\n }\n\n return buildNetworkRequestOrResponse(headers, size, undefined);\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize response body', error);\n // fallback\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n}\n\nasync function _parseFetchResponseBody(response: Response): Promise<[string | undefined, NetworkMetaWarning?]> {\n const res = _tryCloneResponse(response);\n\n if (!res) {\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n try {\n const text = await _tryGetResponseText(res);\n return [text];\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to get text body from response', error);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n}\n\nfunction _getFetchRequestArgBody(fetchArgs: unknown[] = []): RequestInit['body'] | undefined {\n // We only support getting the body from the fetch options\n if (fetchArgs.length !== 2 || typeof fetchArgs[1] !== 'object') {\n return undefined;\n }\n\n return (fetchArgs[1] as RequestInit).body;\n}\n\nfunction getAllHeaders(headers: Headers, allowedHeaders: string[]): Record {\n const allHeaders: Record = {};\n\n allowedHeaders.forEach(header => {\n if (headers.get(header)) {\n allHeaders[header] = headers.get(header) as string;\n }\n });\n\n return allHeaders;\n}\n\nfunction getRequestHeaders(fetchArgs: unknown[], allowedHeaders: string[]): Record {\n if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {\n return getHeadersFromOptions(fetchArgs[0] as Request | RequestInit, allowedHeaders);\n }\n\n if (fetchArgs.length === 2) {\n return getHeadersFromOptions(fetchArgs[1] as Request | RequestInit, allowedHeaders);\n }\n\n return {};\n}\n\nfunction getHeadersFromOptions(\n input: Request | RequestInit | undefined,\n allowedHeaders: string[],\n): Record {\n if (!input) {\n return {};\n }\n\n const headers = input.headers;\n\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n return getAllHeaders(headers, allowedHeaders);\n }\n\n // We do not support this, as it is not really documented (anymore?)\n if (Array.isArray(headers)) {\n return {};\n }\n\n return getAllowedHeaders(headers, allowedHeaders);\n}\n\nfunction _tryCloneResponse(response: Response): Response | void {\n try {\n // We have to clone this, as the body can only be read once\n return response.clone();\n } catch (error) {\n // this can throw if the response was already consumed before\n DEBUG_BUILD && logger.warn('[Replay] Failed to clone response body', error);\n }\n}\n\n/**\n * Get the response body of a fetch request, or timeout after 500ms.\n * Fetch can return a streaming body, that may not resolve (or not for a long time).\n * If that happens, we rather abort after a short time than keep waiting for this.\n */\nfunction _tryGetResponseText(response: Response): Promise {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Timeout while trying to read response body')), 500);\n\n _getResponseText(response)\n .then(\n txt => resolve(txt),\n reason => reject(reason),\n )\n .finally(() => clearTimeout(timeout));\n });\n\n return _getResponseText(response);\n}\n\nasync function _getResponseText(response: Response): Promise {\n // Force this to be a promise, just to be safe\n // eslint-disable-next-line no-return-await\n return await response.text();\n}\n","import type { Breadcrumb, TextEncoderInternal, XhrBreadcrumbData } from '@sentry/types';\nimport { SENTRY_XHR_DATA_KEY, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type {\n NetworkMetaWarning,\n ReplayContainer,\n ReplayNetworkOptions,\n ReplayNetworkRequestData,\n XhrHint,\n} from '../../types';\nimport { addNetworkBreadcrumb } from './addNetworkBreadcrumb';\nimport {\n buildNetworkRequestOrResponse,\n buildSkippedNetworkRequestOrResponse,\n getAllowedHeaders,\n getBodySize,\n getBodyString,\n makeNetworkReplayBreadcrumb,\n mergeWarning,\n parseContentLengthHeader,\n urlMatches,\n} from './networkUtils';\n\n/**\n * Capture an XHR breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nexport async function captureXhrBreadcrumbToReplay(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions & { replay: ReplayContainer },\n): Promise {\n try {\n const data = _prepareXhrData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.xhr', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.error('[Replay] Failed to capture xhr breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nexport function enrichXhrBreadcrumb(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: Partial,\n options: { textEncoder: TextEncoderInternal },\n): void {\n const { xhr, input } = hint;\n\n if (!xhr) {\n return;\n }\n\n const reqSize = getBodySize(input, options.textEncoder);\n const resSize = xhr.getResponseHeader('content-length')\n ? parseContentLengthHeader(xhr.getResponseHeader('content-length'))\n : _getBodySize(xhr.response, xhr.responseType, options.textEncoder);\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareXhrData(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions,\n): ReplayNetworkRequestData | null {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now, input, xhr } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n if (!url) {\n return null;\n }\n\n if (!xhr || !urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n const request = buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = buildSkippedNetworkRequestOrResponse(responseBodySize);\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n }\n\n const xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n const networkRequestHeaders = xhrInfo\n ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders)\n : {};\n const networkResponseHeaders = getAllowedHeaders(getResponseHeaders(xhr), options.networkResponseHeaders);\n\n const [requestBody, requestWarning] = options.networkCaptureBodies ? getBodyString(input) : [undefined];\n const [responseBody, responseWarning] = options.networkCaptureBodies ? _getXhrResponseBody(xhr) : [undefined];\n\n const request = buildNetworkRequestOrResponse(networkRequestHeaders, requestBodySize, requestBody);\n const response = buildNetworkRequestOrResponse(networkResponseHeaders, responseBodySize, responseBody);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request: requestWarning ? mergeWarning(request, requestWarning) : request,\n response: responseWarning ? mergeWarning(response, responseWarning) : response,\n };\n}\n\nfunction getResponseHeaders(xhr: XMLHttpRequest): Record {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc: Record, line: string) => {\n const [key, value] = line.split(': ');\n acc[key.toLowerCase()] = value;\n return acc;\n }, {});\n}\n\nfunction _getXhrResponseBody(xhr: XMLHttpRequest): [string | undefined, NetworkMetaWarning?] {\n // We collect errors that happen, but only log them if we can't get any response body\n const errors: unknown[] = [];\n\n try {\n return [xhr.responseText];\n } catch (e) {\n errors.push(e);\n }\n\n // Try to manually parse the response body, if responseText fails\n try {\n return _parseXhrResponse(xhr.response, xhr.responseType);\n } catch (e) {\n errors.push(e);\n }\n\n DEBUG_BUILD && logger.warn('[Replay] Failed to get xhr response body', ...errors);\n\n return [undefined];\n}\n\n/**\n * Get the string representation of the XHR response.\n * Based on MDN, these are the possible types of the response:\n * string\n * ArrayBuffer\n * Blob\n * Document\n * POJO\n *\n * Exported only for tests.\n */\nexport function _parseXhrResponse(\n body: XMLHttpRequest['response'],\n responseType: XMLHttpRequest['responseType'],\n): [string | undefined, NetworkMetaWarning?] {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof Document) {\n return [body.body.outerHTML];\n }\n\n if (responseType === 'json' && body && typeof body === 'object') {\n return [JSON.stringify(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('[Replay] Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\nfunction _getBodySize(\n body: XMLHttpRequest['response'],\n responseType: XMLHttpRequest['responseType'],\n textEncoder: TextEncoder | TextEncoderInternal,\n): number | undefined {\n try {\n const bodyStr = responseType === 'json' && body && typeof body === 'object' ? JSON.stringify(body) : body;\n return getBodySize(bodyStr, textEncoder);\n } catch {\n return undefined;\n }\n}\n","import { getClient } from '@sentry/core';\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n FetchBreadcrumbData,\n TextEncoderInternal,\n XhrBreadcrumbData,\n} from '@sentry/types';\nimport { addFetchInstrumentationHandler, addXhrInstrumentationHandler, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { FetchHint, ReplayContainer, ReplayNetworkOptions, XhrHint } from '../types';\nimport { handleFetchSpanListener } from './handleFetch';\nimport { handleXhrSpanListener } from './handleXhr';\nimport { captureFetchBreadcrumbToReplay, enrichFetchBreadcrumb } from './util/fetchUtils';\nimport { captureXhrBreadcrumbToReplay, enrichXhrBreadcrumb } from './util/xhrUtils';\n\ninterface ExtendedNetworkBreadcrumbsOptions extends ReplayNetworkOptions {\n replay: ReplayContainer;\n textEncoder: TextEncoderInternal;\n}\n\n/**\n * This method does two things:\n * - It enriches the regular XHR/fetch breadcrumbs with request/response size data\n * - It captures the XHR/fetch breadcrumbs to the replay\n * (enriching it with further data that is _not_ added to the regular breadcrumbs)\n */\nexport function handleNetworkBreadcrumbs(replay: ReplayContainer): void {\n const client = getClient();\n\n try {\n const textEncoder = new TextEncoder();\n\n const {\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n } = replay.getOptions();\n\n const options: ExtendedNetworkBreadcrumbsOptions = {\n replay,\n textEncoder,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n };\n\n if (client && client.on) {\n client.on('beforeAddBreadcrumb', (breadcrumb, hint) => beforeAddNetworkBreadcrumb(options, breadcrumb, hint));\n } else {\n // Fallback behavior\n addFetchInstrumentationHandler(handleFetchSpanListener(replay));\n addXhrInstrumentationHandler(handleXhrSpanListener(replay));\n }\n } catch {\n // Do nothing\n }\n}\n\n/** just exported for tests */\nexport function beforeAddNetworkBreadcrumb(\n options: ExtendedNetworkBreadcrumbsOptions,\n breadcrumb: Breadcrumb,\n hint?: BreadcrumbHint,\n): void {\n if (!breadcrumb.data) {\n return;\n }\n\n try {\n if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichXhrBreadcrumb(breadcrumb, hint, options);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n }\n\n if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichFetchBreadcrumb(breadcrumb, hint, options);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n }\n } catch (e) {\n DEBUG_BUILD && logger.warn('Error when enriching network breadcrumb');\n }\n}\n\nfunction _isXhrBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is Breadcrumb & { data: XhrBreadcrumbData } {\n return breadcrumb.category === 'xhr';\n}\n\nfunction _isFetchBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is Breadcrumb & { data: FetchBreadcrumbData } {\n return breadcrumb.category === 'fetch';\n}\n\nfunction _isXhrHint(hint?: BreadcrumbHint): hint is XhrHint {\n return hint && hint.xhr;\n}\n\nfunction _isFetchHint(hint?: BreadcrumbHint): hint is FetchHint {\n return hint && hint.response;\n}\n","import type { HandlerDataFetch } from '@sentry/types';\n\nimport type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { addNetworkBreadcrumb } from './util/addNetworkBreadcrumb';\n\n/** only exported for tests */\nexport function handleFetch(handlerData: HandlerDataFetch): null | ReplayPerformanceEntry {\n const { startTimestamp, endTimestamp, fetchData, response } = handlerData;\n\n if (!endTimestamp) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url } = fetchData;\n\n return {\n type: 'resource.fetch',\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: {\n method,\n statusCode: response ? (response as Response).status : undefined,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addFetchInstrumentationHandler(listener)`.\n */\nexport function handleFetchSpanListener(replay: ReplayContainer): (handlerData: HandlerDataFetch) => void {\n return (handlerData: HandlerDataFetch) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleFetch(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n","import type { Breadcrumb, Scope } from '@sentry/types';\nimport { normalize } from '@sentry/utils';\n\nimport { CONSOLE_ARG_MAX_SIZE } from '../constants';\nimport type { ReplayContainer } from '../types';\nimport type { ReplayFrame } from '../types/replayFrame';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\nlet _LAST_BREADCRUMB: null | Breadcrumb = null;\n\ntype BreadcrumbWithCategory = Required>;\n\nfunction isBreadcrumbWithCategory(breadcrumb: Breadcrumb): breadcrumb is BreadcrumbWithCategory {\n return !!breadcrumb.category;\n}\n\nexport const handleScopeListener: (replay: ReplayContainer) => (scope: Scope) => void =\n (replay: ReplayContainer) =>\n (scope: Scope): void => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleScope(scope);\n\n if (!result) {\n return;\n }\n\n addBreadcrumbEvent(replay, result);\n };\n\n/**\n * An event handler to handle scope changes.\n */\nexport function handleScope(scope: Scope): Breadcrumb | null {\n // TODO (v8): Remove this guard. This was put in place because we introduced\n // Scope.getLastBreadcrumb mid-v7 which caused incompatibilities with older SDKs.\n // For now, we'll just return null if the method doesn't exist but we should eventually\n // get rid of this guard.\n const newBreadcrumb = scope.getLastBreadcrumb && scope.getLastBreadcrumb();\n\n // Listener can be called when breadcrumbs have not changed, so we store the\n // reference to the last crumb and only return a crumb if it has changed\n if (_LAST_BREADCRUMB === newBreadcrumb || !newBreadcrumb) {\n return null;\n }\n\n _LAST_BREADCRUMB = newBreadcrumb;\n\n if (\n !isBreadcrumbWithCategory(newBreadcrumb) ||\n ['fetch', 'xhr', 'sentry.event', 'sentry.transaction'].includes(newBreadcrumb.category) ||\n newBreadcrumb.category.startsWith('ui.')\n ) {\n return null;\n }\n\n if (newBreadcrumb.category === 'console') {\n return normalizeConsoleBreadcrumb(newBreadcrumb);\n }\n\n return createBreadcrumb(newBreadcrumb);\n}\n\n/** exported for tests only */\nexport function normalizeConsoleBreadcrumb(\n breadcrumb: Omit & BreadcrumbWithCategory,\n): ReplayFrame {\n const args = breadcrumb.data && breadcrumb.data.arguments;\n\n if (!Array.isArray(args) || args.length === 0) {\n return createBreadcrumb(breadcrumb);\n }\n\n let isTruncated = false;\n\n // Avoid giant args captures\n const normalizedArgs = args.map(arg => {\n if (!arg) {\n return arg;\n }\n if (typeof arg === 'string') {\n if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n return `${arg.slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n\n return arg;\n }\n if (typeof arg === 'object') {\n try {\n const normalizedArg = normalize(arg, 7);\n const stringified = JSON.stringify(normalizedArg);\n if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n // We use the pretty printed JSON string here as a base\n return `${JSON.stringify(normalizedArg, null, 2).slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n return normalizedArg;\n } catch {\n // fall back to default\n }\n }\n\n return arg;\n });\n\n return createBreadcrumb({\n ...breadcrumb,\n data: {\n ...breadcrumb.data,\n arguments: normalizedArgs,\n ...(isTruncated ? { _meta: { warnings: ['CONSOLE_ARG_TRUNCATED'] } } : {}),\n },\n });\n}\n","import type { BaseClient } from '@sentry/core';\nimport { getCurrentScope } from '@sentry/core';\nimport { addEventProcessor, getClient } from '@sentry/core';\nimport type { Client, DynamicSamplingContext } from '@sentry/types';\nimport { addClickKeypressInstrumentationHandler, addHistoryInstrumentationHandler } from '@sentry/utils';\n\nimport { handleAfterSendEvent } from '../coreHandlers/handleAfterSendEvent';\nimport { handleBeforeSendEvent } from '../coreHandlers/handleBeforeSendEvent';\nimport { handleDomListener } from '../coreHandlers/handleDom';\nimport { handleGlobalEventListener } from '../coreHandlers/handleGlobalEvent';\nimport { handleHistorySpanListener } from '../coreHandlers/handleHistory';\nimport { handleNetworkBreadcrumbs } from '../coreHandlers/handleNetworkBreadcrumbs';\nimport { handleScopeListener } from '../coreHandlers/handleScope';\nimport type { ReplayContainer } from '../types';\n\n/**\n * Add global listeners that cannot be removed.\n */\nexport function addGlobalListeners(replay: ReplayContainer): void {\n // Listeners from core SDK //\n const scope = getCurrentScope();\n const client = getClient();\n\n scope.addScopeListener(handleScopeListener(replay));\n addClickKeypressInstrumentationHandler(handleDomListener(replay));\n addHistoryInstrumentationHandler(handleHistorySpanListener(replay));\n handleNetworkBreadcrumbs(replay);\n\n // Tag all (non replay) events that get sent to Sentry with the current\n // replay ID so that we can reference them later in the UI\n const eventProcessor = handleGlobalEventListener(replay, !hasHooks(client));\n if (client && client.addEventProcessor) {\n client.addEventProcessor(eventProcessor);\n } else {\n addEventProcessor(eventProcessor);\n }\n\n // If a custom client has no hooks yet, we continue to use the \"old\" implementation\n if (hasHooks(client)) {\n client.on('beforeSendEvent', handleBeforeSendEvent(replay));\n client.on('afterSendEvent', handleAfterSendEvent(replay));\n client.on('createDsc', (dsc: DynamicSamplingContext) => {\n const replayId = replay.getSessionId();\n // We do not want to set the DSC when in buffer mode, as that means the replay has not been sent (yet)\n if (replayId && replay.isEnabled() && replay.recordingMode === 'session') {\n // Ensure to check that the session is still active - it could have expired in the meanwhile\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (isSessionActive) {\n dsc.replay_id = replayId;\n }\n }\n });\n\n client.on('startTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n\n // We may be missing the initial startTransaction due to timing issues,\n // so we capture it on finish again.\n client.on('finishTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n\n // We want to flush replay\n client.on('beforeSendFeedback', (feedbackEvent, options) => {\n const replayId = replay.getSessionId();\n if (options && options.includeReplay && replay.isEnabled() && replayId) {\n // This should never reject\n if (feedbackEvent.contexts && feedbackEvent.contexts.feedback) {\n feedbackEvent.contexts.feedback.replay_id = replayId;\n }\n }\n });\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction hasHooks(client: Client | undefined): client is BaseClient {\n return !!(client && client.on);\n}\n","import { WINDOW } from '../constants';\nimport type { AddEventResult, MemoryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { createPerformanceSpans } from './createPerformanceSpans';\n\ntype ReplayMemoryEntry = ReplayPerformanceEntry & { data: { memory: MemoryInfo } };\n\ninterface MemoryInfo {\n jsHeapSizeLimit: number;\n totalJSHeapSize: number;\n usedJSHeapSize: number;\n}\n\n/**\n * Create a \"span\" for the total amount of memory being used by JS objects\n * (including v8 internal objects).\n */\nexport async function addMemoryEntry(replay: ReplayContainer): Promise> {\n // window.performance.memory is a non-standard API and doesn't work on all browsers, so we try-catch this\n try {\n return Promise.all(\n createPerformanceSpans(replay, [\n // @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n createMemoryEntry(WINDOW.performance.memory),\n ]),\n );\n } catch (error) {\n // Do nothing\n return [];\n }\n}\n\nfunction createMemoryEntry(memoryEntry: MemoryInfo): ReplayMemoryEntry {\n const { jsHeapSizeLimit, totalJSHeapSize, usedJSHeapSize } = memoryEntry;\n // we don't want to use `getAbsoluteTime` because it adds the event time to the\n // time origin, so we get the current timestamp instead\n const time = Date.now() / 1000;\n return {\n type: 'memory',\n name: 'memory',\n start: time,\n end: time,\n data: {\n memory: {\n jsHeapSizeLimit,\n totalJSHeapSize,\n usedJSHeapSize,\n },\n },\n };\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport { logger } from '@sentry/utils';\n\nimport { updateClickDetectorForRecordingEvent } from '../coreHandlers/handleClick';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { saveSession } from '../session/saveSession';\nimport type { RecordingEvent, ReplayContainer, ReplayOptionFrameEvent } from '../types';\nimport { addEventSync } from './addEvent';\nimport { logInfo } from './log';\n\ntype RecordingEmitCallback = (event: RecordingEvent, isCheckout?: boolean) => void;\n\n/**\n * Handler for recording events.\n *\n * Adds to event buffer, and has varying flushing behaviors if the event was a checkout.\n */\nexport function getHandleRecordingEmit(replay: ReplayContainer): RecordingEmitCallback {\n let hadFirstEvent = false;\n\n return (event: RecordingEvent, _isCheckout?: boolean) => {\n // If this is false, it means session is expired, create and a new session and wait for checkout\n if (!replay.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.warn('[Replay] Received replay event after session expired.');\n\n return;\n }\n\n // `_isCheckout` is only set when the checkout is due to `checkoutEveryNms`\n // We also want to treat the first event as a checkout, so we handle this specifically here\n const isCheckout = _isCheckout || !hadFirstEvent;\n hadFirstEvent = true;\n\n if (replay.clickDetector) {\n updateClickDetectorForRecordingEvent(replay.clickDetector, event);\n }\n\n // The handler returns `true` if we do not want to trigger debounced flush, `false` if we want to debounce flush.\n replay.addUpdate(() => {\n // The session is always started immediately on pageload/init, but for\n // error-only replays, it should reflect the most recent checkout\n // when an error occurs. Clear any state that happens before this current\n // checkout. This needs to happen before `addEvent()` which updates state\n // dependent on this reset.\n if (replay.recordingMode === 'buffer' && isCheckout) {\n replay.setInitialState();\n }\n\n // If the event is not added (e.g. due to being paused, disabled, or out of the max replay duration),\n // Skip all further steps\n if (!addEventSync(replay, event, isCheckout)) {\n // Return true to skip scheduling a debounced flush\n return true;\n }\n\n // Different behavior for full snapshots (type=2), ignore other event types\n // See https://github.com/rrweb-io/rrweb/blob/d8f9290ca496712aa1e7d472549480c4e7876594/packages/rrweb/src/types.ts#L16\n if (!isCheckout) {\n return false;\n }\n\n // Additionally, create a meta event that will capture certain SDK settings.\n // In order to handle buffer mode, this needs to either be done when we\n // receive checkout events or at flush time.\n //\n // `isCheckout` is always true, but want to be explicit that it should\n // only be added for checkouts\n addSettingsEvent(replay, isCheckout);\n\n // If there is a previousSessionId after a full snapshot occurs, then\n // the replay session was started due to session expiration. The new session\n // is started before triggering a new checkout and contains the id\n // of the previous session. Do not immediately flush in this case\n // to avoid capturing only the checkout and instead the replay will\n // be captured if they perform any follow-up actions.\n if (replay.session && replay.session.previousSessionId) {\n return true;\n }\n\n // When in buffer mode, make sure we adjust the session started date to the current earliest event of the buffer\n // this should usually be the timestamp of the checkout event, but to be safe...\n if (replay.recordingMode === 'buffer' && replay.session && replay.eventBuffer) {\n const earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n if (earliestEvent) {\n logInfo(\n `[Replay] Updating session start time to earliest event in buffer to ${new Date(earliestEvent)}`,\n replay.getOptions()._experiments.traceInternals,\n );\n\n replay.session.started = earliestEvent;\n\n if (replay.getOptions().stickySession) {\n saveSession(replay.session);\n }\n }\n }\n\n if (replay.recordingMode === 'session') {\n // If the full snapshot is due to an initial load, we will not have\n // a previous session ID. In this case, we want to buffer events\n // for a set amount of time before flushing. This can help avoid\n // capturing replays of users that immediately close the window.\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void replay.flush();\n }\n\n return true;\n });\n };\n}\n\n/**\n * Exported for tests\n */\nexport function createOptionsEvent(replay: ReplayContainer): ReplayOptionFrameEvent {\n const options = replay.getOptions();\n return {\n type: EventType.Custom,\n timestamp: Date.now(),\n data: {\n tag: 'options',\n payload: {\n shouldRecordCanvas: replay.isRecordingCanvas(),\n sessionSampleRate: options.sessionSampleRate,\n errorSampleRate: options.errorSampleRate,\n useCompressionOption: options.useCompression,\n blockAllMedia: options.blockAllMedia,\n maskAllText: options.maskAllText,\n maskAllInputs: options.maskAllInputs,\n useCompression: replay.eventBuffer ? replay.eventBuffer.type === 'worker' : false,\n networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n networkCaptureBodies: options.networkCaptureBodies,\n networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n networkResponseHasHeaders: options.networkResponseHeaders.length > 0,\n },\n },\n };\n}\n\n/**\n * Add a \"meta\" event that contains a simplified view on current configuration\n * options. This should only be included on the first segment of a recording.\n */\nfunction addSettingsEvent(replay: ReplayContainer, isCheckout?: boolean): void {\n // Only need to add this event when sending the first segment\n if (!isCheckout || !replay.session || replay.session.segmentId !== 0) {\n return;\n }\n\n addEventSync(replay, createOptionsEvent(replay), false);\n}\n","import { getClient, getCurrentScope } from '@sentry/core';\nimport type { ReplayEvent, TransportMakeRequestResponse } from '@sentry/types';\nimport type { RateLimits } from '@sentry/utils';\nimport { isRateLimited, updateRateLimits } from '@sentry/utils';\n\nimport { REPLAY_EVENT_NAME, UNABLE_TO_SEND_REPLAY } from '../constants';\nimport type { SendReplayData } from '../types';\nimport { createReplayEnvelope } from './createReplayEnvelope';\nimport { logInfo } from './log';\nimport { prepareRecordingData } from './prepareRecordingData';\nimport { prepareReplayEvent } from './prepareReplayEvent';\n\n/**\n * Send replay attachment using `fetch()`\n */\nexport async function sendReplayRequest({\n recordingData,\n replayId,\n segmentId: segment_id,\n eventContext,\n timestamp,\n session,\n}: SendReplayData): Promise {\n const preparedRecordingData = prepareRecordingData({\n recordingData,\n headers: {\n segment_id,\n },\n });\n\n const { urls, errorIds, traceIds, initialTimestamp } = eventContext;\n\n const client = getClient();\n const scope = getCurrentScope();\n const transport = client && client.getTransport();\n const dsn = client && client.getDsn();\n\n if (!client || !transport || !dsn || !session.sampled) {\n return;\n }\n\n const baseEvent: ReplayEvent = {\n type: REPLAY_EVENT_NAME,\n replay_start_timestamp: initialTimestamp / 1000,\n timestamp: timestamp / 1000,\n error_ids: errorIds,\n trace_ids: traceIds,\n urls,\n replay_id: replayId,\n segment_id,\n replay_type: session.sampled,\n };\n\n const replayEvent = await prepareReplayEvent({ scope, client, replayId, event: baseEvent });\n\n if (!replayEvent) {\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'replay', baseEvent);\n logInfo('An event processor returned `null`, will not send event.');\n return;\n }\n\n /*\n For reference, the fully built event looks something like this:\n {\n \"type\": \"replay_event\",\n \"timestamp\": 1670837008.634,\n \"error_ids\": [\n \"errorId\"\n ],\n \"trace_ids\": [\n \"traceId\"\n ],\n \"urls\": [\n \"https://example.com\"\n ],\n \"replay_id\": \"eventId\",\n \"segment_id\": 3,\n \"replay_type\": \"error\",\n \"platform\": \"javascript\",\n \"event_id\": \"eventId\",\n \"environment\": \"production\",\n \"sdk\": {\n \"integrations\": [\n \"BrowserTracing\",\n \"Replay\"\n ],\n \"name\": \"sentry.javascript.browser\",\n \"version\": \"7.25.0\"\n },\n \"sdkProcessingMetadata\": {},\n \"contexts\": {\n },\n }\n */\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete replayEvent.sdkProcessingMetadata;\n\n const envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n\n let response: void | TransportMakeRequestResponse;\n\n try {\n response = await transport.send(envelope);\n } catch (err) {\n const error = new Error(UNABLE_TO_SEND_REPLAY);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch {\n // nothing to do\n }\n throw error;\n }\n\n // TODO (v8): we can remove this guard once transport.send's type signature doesn't include void anymore\n if (!response) {\n return response;\n }\n\n // If the status code is invalid, we want to immediately stop & not retry\n if (typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300)) {\n throw new TransportStatusCodeError(response.statusCode);\n }\n\n const rateLimits = updateRateLimits({}, response);\n if (isRateLimited(rateLimits, 'replay')) {\n throw new RateLimitError(rateLimits);\n }\n\n return response;\n}\n\n/**\n * This error indicates that the transport returned an invalid status code.\n */\nexport class TransportStatusCodeError extends Error {\n public constructor(statusCode: number) {\n super(`Transport returned status code ${statusCode}`);\n }\n}\n\n/**\n * This error indicates that we hit a rate limit API error.\n */\nexport class RateLimitError extends Error {\n public rateLimits: RateLimits;\n\n public constructor(rateLimits: RateLimits) {\n super('Rate limit hit');\n this.rateLimits = rateLimits;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\n\n/**\n * Prepare the recording data ready to be sent.\n */\nexport function prepareRecordingData({\n recordingData,\n headers,\n}: {\n recordingData: ReplayRecordingData;\n headers: Record;\n}): ReplayRecordingData {\n let payloadWithSequence;\n\n // XXX: newline is needed to separate sequence id from events\n const replayHeaders = `${JSON.stringify(headers)}\n`;\n\n if (typeof recordingData === 'string') {\n payloadWithSequence = `${replayHeaders}${recordingData}`;\n } else {\n const enc = new TextEncoder();\n // XXX: newline is needed to separate sequence id from events\n const sequence = enc.encode(replayHeaders);\n // Merge the two Uint8Arrays\n payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n payloadWithSequence.set(sequence);\n payloadWithSequence.set(recordingData, sequence.length);\n }\n\n return payloadWithSequence;\n}\n","import type { IntegrationIndex, Scope } from '@sentry/core';\nimport { getIsolationScope } from '@sentry/core';\nimport { prepareEvent } from '@sentry/core';\nimport type { Client, EventHint, ReplayEvent } from '@sentry/types';\n\n/**\n * Prepare a replay event & enrich it with the SDK metadata.\n */\nexport async function prepareReplayEvent({\n client,\n scope,\n replayId: event_id,\n event,\n}: {\n client: Client & { _integrations?: IntegrationIndex };\n scope: Scope;\n replayId: string;\n event: ReplayEvent;\n}): Promise {\n const integrations =\n typeof client._integrations === 'object' && client._integrations !== null && !Array.isArray(client._integrations)\n ? Object.keys(client._integrations)\n : undefined;\n\n const eventHint: EventHint = { event_id, integrations };\n\n if (client.emit) {\n client.emit('preprocessEvent', event, eventHint);\n }\n\n const preparedEvent = (await prepareEvent(\n client.getOptions(),\n event,\n eventHint,\n scope,\n client,\n getIsolationScope(),\n )) as ReplayEvent | null;\n\n // If e.g. a global event processor returned null\n if (!preparedEvent) {\n return null;\n }\n\n // This normally happens in browser client \"_prepareEvent\"\n // but since we do not use this private method from the client, but rather the plain import\n // we need to do this manually.\n preparedEvent.platform = preparedEvent.platform || 'javascript';\n\n // extract the SDK name because `client._prepareEvent` doesn't add it to the event\n const metadata = client.getSdkMetadata && client.getSdkMetadata();\n const { name, version } = (metadata && metadata.sdk) || {};\n\n preparedEvent.sdk = {\n ...preparedEvent.sdk,\n name: name || 'sentry.javascript.unknown',\n version: version || '0.0.0',\n };\n\n return preparedEvent;\n}\n","import type { DsnComponents, ReplayEnvelope, ReplayEvent, ReplayRecordingData } from '@sentry/types';\nimport { createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader } from '@sentry/utils';\n\n/**\n * Create a replay envelope ready to be sent.\n * This includes both the replay event, as well as the recording data.\n */\nexport function createReplayEnvelope(\n replayEvent: ReplayEvent,\n recordingData: ReplayRecordingData,\n dsn: DsnComponents,\n tunnel?: string,\n): ReplayEnvelope {\n return createEnvelope(\n createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn),\n [\n [{ type: 'replay_event' }, replayEvent],\n [\n {\n type: 'replay_recording',\n // If string then we need to encode to UTF8, otherwise will have\n // wrong size. TextEncoder has similar browser support to\n // MutationObserver, although it does not accept IE11.\n length:\n typeof recordingData === 'string' ? new TextEncoder().encode(recordingData).length : recordingData.length,\n },\n recordingData,\n ],\n ],\n );\n}\n","import { captureException, setContext } from '@sentry/core';\n\nimport { RETRY_BASE_INTERVAL, RETRY_MAX_COUNT, UNABLE_TO_SEND_REPLAY } from '../constants';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { SendReplayData } from '../types';\nimport { RateLimitError, TransportStatusCodeError, sendReplayRequest } from './sendReplayRequest';\n\n/**\n * Finalize and send the current replay event to Sentry\n */\nexport async function sendReplay(\n replayData: SendReplayData,\n retryConfig = {\n count: 0,\n interval: RETRY_BASE_INTERVAL,\n },\n): Promise {\n const { recordingData, options } = replayData;\n\n // short circuit if there's no events to upload (this shouldn't happen as _runFlush makes this check)\n if (!recordingData.length) {\n return;\n }\n\n try {\n await sendReplayRequest(replayData);\n return true;\n } catch (err) {\n if (err instanceof TransportStatusCodeError || err instanceof RateLimitError) {\n throw err;\n }\n\n // Capture error for every failed replay\n setContext('Replays', {\n _retryCount: retryConfig.count,\n });\n\n if (DEBUG_BUILD && options._experiments && options._experiments.captureExceptions) {\n captureException(err);\n }\n\n // If an error happened here, it's likely that uploading the attachment\n // failed, we'll can retry with the same events payload\n if (retryConfig.count >= RETRY_MAX_COUNT) {\n const error = new Error(`${UNABLE_TO_SEND_REPLAY} - max retries exceeded`);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch {\n // nothing to do\n }\n\n throw error;\n }\n\n // will retry in intervals of 5, 10, 30\n retryConfig.interval *= ++retryConfig.count;\n\n return new Promise((resolve, reject) => {\n setTimeout(async () => {\n try {\n await sendReplay(replayData, retryConfig);\n resolve(true);\n } catch (err) {\n reject(err);\n }\n }, retryConfig.interval);\n });\n }\n}\n","export const THROTTLED = '__THROTTLED';\nexport const SKIPPED = '__SKIPPED';\n\n/**\n * Create a throttled function off a given function.\n * When calling the throttled function, it will call the original function only\n * if it hasn't been called more than `maxCount` times in the last `durationSeconds`.\n *\n * Returns `THROTTLED` if throttled for the first time, after that `SKIPPED`,\n * or else the return value of the original function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function throttle any>(\n fn: T,\n maxCount: number,\n durationSeconds: number,\n): (...rest: Parameters) => ReturnType | typeof THROTTLED | typeof SKIPPED {\n const counter = new Map();\n\n const _cleanup = (now: number): void => {\n const threshold = now - durationSeconds;\n counter.forEach((_value, key) => {\n if (key < threshold) {\n counter.delete(key);\n }\n });\n };\n\n const _getTotalCount = (): number => {\n return [...counter.values()].reduce((a, b) => a + b, 0);\n };\n\n let isThrottled = false;\n\n return (...rest: Parameters): ReturnType | typeof THROTTLED | typeof SKIPPED => {\n // Date in second-precision, which we use as basis for the throttling\n const now = Math.floor(Date.now() / 1000);\n\n // First, make sure to delete any old entries\n _cleanup(now);\n\n // If already over limit, do nothing\n if (_getTotalCount() >= maxCount) {\n const wasThrottled = isThrottled;\n isThrottled = true;\n return wasThrottled ? SKIPPED : THROTTLED;\n }\n\n isThrottled = false;\n const count = counter.get(now) || 0;\n counter.set(now, count + 1);\n\n return fn(...rest);\n };\n}\n","/* eslint-disable max-lines */ // TODO: We might want to split this file up\nimport { EventType, record } from '@sentry-internal/rrweb';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n captureException,\n getClient,\n getCurrentScope,\n spanToJSON,\n} from '@sentry/core';\nimport type { ReplayRecordingMode, Transaction } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport {\n BUFFER_CHECKOUT_TIME,\n SESSION_IDLE_EXPIRE_DURATION,\n SESSION_IDLE_PAUSE_DURATION,\n SLOW_CLICK_SCROLL_TIMEOUT,\n SLOW_CLICK_THRESHOLD,\n WINDOW,\n} from './constants';\nimport { ClickDetector } from './coreHandlers/handleClick';\nimport { handleKeyboardEvent } from './coreHandlers/handleKeyboardEvent';\nimport { setupPerformanceObserver } from './coreHandlers/performanceObserver';\nimport { DEBUG_BUILD } from './debug-build';\nimport { createEventBuffer } from './eventBuffer';\nimport { clearSession } from './session/clearSession';\nimport { loadOrCreateSession } from './session/loadOrCreateSession';\nimport { saveSession } from './session/saveSession';\nimport { shouldRefreshSession } from './session/shouldRefreshSession';\n\nimport type {\n AddEventResult,\n AddUpdateCallback,\n AllPerformanceEntry,\n AllPerformanceEntryData,\n EventBuffer,\n InternalEventContext,\n PopEventContext,\n RecordingEvent,\n RecordingOptions,\n ReplayBreadcrumbFrame,\n ReplayCanvasIntegrationOptions,\n ReplayContainer as ReplayContainerInterface,\n ReplayPerformanceEntry,\n ReplayPluginOptions,\n SendBufferedReplayOptions,\n Session,\n SlowClickConfig,\n Timeouts,\n} from './types';\nimport { ReplayEventTypeCustom } from './types';\nimport { addEvent, addEventSync } from './util/addEvent';\nimport { addGlobalListeners } from './util/addGlobalListeners';\nimport { addMemoryEntry } from './util/addMemoryEntry';\nimport { createBreadcrumb } from './util/createBreadcrumb';\nimport { createPerformanceEntries } from './util/createPerformanceEntries';\nimport { createPerformanceSpans } from './util/createPerformanceSpans';\nimport { debounce } from './util/debounce';\nimport { getHandleRecordingEmit } from './util/handleRecordingEmit';\nimport { isExpired } from './util/isExpired';\nimport { isSessionExpired } from './util/isSessionExpired';\nimport { logInfo, logInfoNextTick } from './util/log';\nimport { sendReplay } from './util/sendReplay';\nimport type { SKIPPED } from './util/throttle';\nimport { THROTTLED, throttle } from './util/throttle';\n\n/**\n * The main replay container class, which holds all the state and methods for recording and sending replays.\n */\nexport class ReplayContainer implements ReplayContainerInterface {\n public eventBuffer: EventBuffer | null;\n\n public performanceEntries: AllPerformanceEntry[];\n\n public replayPerformanceEntries: ReplayPerformanceEntry[];\n\n public session: Session | undefined;\n\n public clickDetector: ClickDetector | undefined;\n\n /**\n * Recording can happen in one of three modes:\n * - session: Record the whole session, sending it continuously\n * - buffer: Always keep the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n public recordingMode: ReplayRecordingMode;\n\n /**\n * The current or last active transcation.\n * This is only available when performance is enabled.\n */\n public lastTransaction?: Transaction;\n\n /**\n * These are here so we can overwrite them in tests etc.\n * @hidden\n */\n public readonly timeouts: Timeouts;\n\n private _throttledAddEvent: (\n event: RecordingEvent,\n isCheckout?: boolean,\n ) => typeof THROTTLED | typeof SKIPPED | Promise;\n\n /**\n * Options to pass to `rrweb.record()`\n */\n private readonly _recordingOptions: RecordingOptions;\n\n private readonly _options: ReplayPluginOptions;\n\n private _performanceCleanupCallback?: () => void;\n\n private _debouncedFlush: ReturnType;\n private _flushLock: Promise | undefined;\n\n /**\n * Timestamp of the last user activity. This lives across sessions.\n */\n private _lastActivity: number;\n\n /**\n * Is the integration currently active?\n */\n private _isEnabled: boolean;\n\n /**\n * Paused is a state where:\n * - DOM Recording is not listening at all\n * - Nothing will be added to event buffer (e.g. core SDK events)\n */\n private _isPaused: boolean;\n\n /**\n * Have we attached listeners to the core SDK?\n * Note we have to track this as there is no way to remove instrumentation handlers.\n */\n private _hasInitializedCoreListeners: boolean;\n\n /**\n * Function to stop recording\n */\n private _stopRecording: ReturnType | undefined;\n\n private _context: InternalEventContext;\n\n /**\n * Internal use for canvas recording options\n */\n private _canvas: ReplayCanvasIntegrationOptions | undefined;\n\n public constructor({\n options,\n recordingOptions,\n }: {\n options: ReplayPluginOptions;\n recordingOptions: RecordingOptions;\n }) {\n this.eventBuffer = null;\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n this.recordingMode = 'session';\n this.timeouts = {\n sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION,\n } as const;\n this._lastActivity = Date.now();\n this._isEnabled = false;\n this._isPaused = false;\n this._hasInitializedCoreListeners = false;\n this._context = {\n errorIds: new Set(),\n traceIds: new Set(),\n urls: [],\n initialTimestamp: Date.now(),\n initialUrl: '',\n };\n\n this._recordingOptions = recordingOptions;\n this._options = options;\n\n this._debouncedFlush = debounce(() => this._flush(), this._options.flushMinDelay, {\n maxWait: this._options.flushMaxDelay,\n });\n\n this._throttledAddEvent = throttle(\n (event: RecordingEvent, isCheckout?: boolean) => addEvent(this, event, isCheckout),\n // Max 300 events...\n 300,\n // ... per 5s\n 5,\n );\n\n const { slowClickTimeout, slowClickIgnoreSelectors } = this.getOptions();\n\n const slowClickConfig: SlowClickConfig | undefined = slowClickTimeout\n ? {\n threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n timeout: slowClickTimeout,\n scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(',') : '',\n }\n : undefined;\n\n if (slowClickConfig) {\n this.clickDetector = new ClickDetector(this, slowClickConfig);\n }\n }\n\n /** Get the event context. */\n public getContext(): InternalEventContext {\n return this._context;\n }\n\n /** If recording is currently enabled. */\n public isEnabled(): boolean {\n return this._isEnabled;\n }\n\n /** If recording is currently paused. */\n public isPaused(): boolean {\n return this._isPaused;\n }\n\n /**\n * Determine if canvas recording is enabled\n */\n public isRecordingCanvas(): boolean {\n return Boolean(this._canvas);\n }\n\n /** Get the replay integration options. */\n public getOptions(): ReplayPluginOptions {\n return this._options;\n }\n\n /**\n * Initializes the plugin based on sampling configuration. Should not be\n * called outside of constructor.\n */\n public initializeSampling(previousSessionId?: string): void {\n const { errorSampleRate, sessionSampleRate } = this._options;\n\n // If neither sample rate is > 0, then do nothing - user will need to call one of\n // `start()` or `startBuffering` themselves.\n if (errorSampleRate <= 0 && sessionSampleRate <= 0) {\n return;\n }\n\n // Otherwise if there is _any_ sample rate set, try to load an existing\n // session, or create a new one.\n this._initializeSessionForSampling(previousSessionId);\n\n if (!this.session) {\n // This should not happen, something wrong has occurred\n this._handleException(new Error('Unable to initialize and create session'));\n return;\n }\n\n if (this.session.sampled === false) {\n // This should only occur if `errorSampleRate` is 0 and was unsampled for\n // session-based replay. In this case there is nothing to do.\n return;\n }\n\n // If segmentId > 0, it means we've previously already captured this session\n // In this case, we still want to continue in `session` recording mode\n this.recordingMode = this.session.sampled === 'buffer' && this.session.segmentId === 0 ? 'buffer' : 'session';\n\n logInfoNextTick(\n `[Replay] Starting replay in ${this.recordingMode} mode`,\n this._options._experiments.traceInternals,\n );\n\n this._initializeRecording();\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * _performanceObserver, Recording, Sentry SDK, etc)\n */\n public start(): void {\n if (this._isEnabled && this.recordingMode === 'session') {\n throw new Error('Replay recording is already in progress');\n }\n\n if (this._isEnabled && this.recordingMode === 'buffer') {\n throw new Error('Replay buffering is in progress, call `flush()` to save the replay');\n }\n\n logInfoNextTick('[Replay] Starting replay in session mode', this._options._experiments.traceInternals);\n\n // Required as user activity is initially set in\n // constructor, so if `start()` is called after\n // session idle expiration, a replay will not be\n // created due to an idle timeout.\n this._updateUserActivity();\n\n const session = loadOrCreateSession(\n {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n // This is intentional: create a new session-based replay when calling `start()`\n sessionSampleRate: 1,\n allowBuffering: false,\n },\n );\n\n this.session = session;\n\n this._initializeRecording();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, an error occurs.\n */\n public startBuffering(): void {\n if (this._isEnabled) {\n throw new Error('Replay recording is already in progress');\n }\n\n logInfoNextTick('[Replay] Starting replay in buffer mode', this._options._experiments.traceInternals);\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: 0,\n allowBuffering: true,\n },\n );\n\n this.session = session;\n\n this.recordingMode = 'buffer';\n this._initializeRecording();\n }\n\n /**\n * Start recording.\n *\n * Note that this will cause a new DOM checkout\n */\n public startRecording(): void {\n try {\n const canvasOptions = this._canvas;\n\n this._stopRecording = record({\n ...this._recordingOptions,\n // When running in error sampling mode, we need to overwrite `checkoutEveryNms`\n // Without this, it would record forever, until an error happens, which we don't want\n // instead, we'll always keep the last 60 seconds of replay before an error happened\n ...(this.recordingMode === 'buffer' && { checkoutEveryNms: BUFFER_CHECKOUT_TIME }),\n emit: getHandleRecordingEmit(this),\n onMutation: this._onMutationHandler,\n ...(canvasOptions\n ? {\n recordCanvas: canvasOptions.recordCanvas,\n getCanvasManager: canvasOptions.getCanvasManager,\n sampling: canvasOptions.sampling,\n dataURLOptions: canvasOptions.dataURLOptions,\n }\n : {}),\n });\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Stops the recording, if it was running.\n *\n * Returns true if it was previously stopped, or is now stopped,\n * otherwise false.\n */\n public stopRecording(): boolean {\n try {\n if (this._stopRecording) {\n this._stopRecording();\n this._stopRecording = undefined;\n }\n\n return true;\n } catch (err) {\n this._handleException(err);\n return false;\n }\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n public async stop({ forceFlush = false, reason }: { forceFlush?: boolean; reason?: string } = {}): Promise {\n if (!this._isEnabled) {\n return;\n }\n\n // We can't move `_isEnabled` after awaiting a flush, otherwise we can\n // enter into an infinite loop when `stop()` is called while flushing.\n this._isEnabled = false;\n\n try {\n logInfo(\n `[Replay] Stopping Replay${reason ? ` triggered by ${reason}` : ''}`,\n this._options._experiments.traceInternals,\n );\n\n this._removeListeners();\n this.stopRecording();\n\n this._debouncedFlush.cancel();\n // See comment above re: `_isEnabled`, we \"force\" a flush, ignoring the\n // `_isEnabled` state of the plugin since it was disabled above.\n if (forceFlush) {\n await this._flush({ force: true });\n }\n\n // After flush, destroy event buffer\n this.eventBuffer && this.eventBuffer.destroy();\n this.eventBuffer = null;\n\n // Clear session from session storage, note this means if a new session\n // is started after, it will not have `previousSessionId`\n clearSession(this);\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Pause some replay functionality. See comments for `_isPaused`.\n * This differs from stop as this only stops DOM recording, it is\n * not as thorough of a shutdown as `stop()`.\n */\n public pause(): void {\n if (this._isPaused) {\n return;\n }\n\n this._isPaused = true;\n this.stopRecording();\n\n logInfo('[Replay] Pausing replay', this._options._experiments.traceInternals);\n }\n\n /**\n * Resumes recording, see notes for `pause().\n *\n * Note that calling `startRecording()` here will cause a\n * new DOM checkout.`\n */\n public resume(): void {\n if (!this._isPaused || !this._checkSession()) {\n return;\n }\n\n this._isPaused = false;\n this.startRecording();\n\n logInfo('[Replay] Resuming replay', this._options._experiments.traceInternals);\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n public async sendBufferedReplayOrFlush({ continueRecording = true }: SendBufferedReplayOptions = {}): Promise {\n if (this.recordingMode === 'session') {\n return this.flushImmediate();\n }\n\n const activityTime = Date.now();\n\n logInfo('[Replay] Converting buffer to session', this._options._experiments.traceInternals);\n\n // Allow flush to complete before resuming as a session recording, otherwise\n // the checkout from `startRecording` may be included in the payload.\n // Prefer to keep the error replay as a separate (and smaller) segment\n // than the session replay.\n await this.flushImmediate();\n\n const hasStoppedRecording = this.stopRecording();\n\n if (!continueRecording || !hasStoppedRecording) {\n return;\n }\n\n // To avoid race conditions where this is called multiple times, we check here again that we are still buffering\n if ((this.recordingMode as ReplayRecordingMode) === 'session') {\n return;\n }\n\n // Re-start recording in session-mode\n this.recordingMode = 'session';\n\n // Once this session ends, we do not want to refresh it\n if (this.session) {\n this._updateUserActivity(activityTime);\n this._updateSessionActivity(activityTime);\n this._maybeSaveSession();\n }\n\n this.startRecording();\n }\n\n /**\n * We want to batch uploads of replay events. Save events only if\n * `` milliseconds have elapsed since the last event\n * *OR* if `` milliseconds have elapsed.\n *\n * Accepts a callback to perform side-effects and returns true to stop batch\n * processing and hand back control to caller.\n */\n public addUpdate(cb: AddUpdateCallback): void {\n // We need to always run `cb` (e.g. in the case of `this.recordingMode == 'buffer'`)\n const cbResult = cb();\n\n // If this option is turned on then we will only want to call `flush`\n // explicitly\n if (this.recordingMode === 'buffer') {\n return;\n }\n\n // If callback is true, we do not want to continue with flushing -- the\n // caller will need to handle it.\n if (cbResult === true) {\n return;\n }\n\n // addUpdate is called quite frequently - use _debouncedFlush so that it\n // respects the flush delays and does not flush immediately\n this._debouncedFlush();\n }\n\n /**\n * Updates the user activity timestamp and resumes recording. This should be\n * called in an event handler for a user action that we consider as the user\n * being \"active\" (e.g. a mouse click).\n */\n public triggerUserActivity(): void {\n this._updateUserActivity();\n\n // This case means that recording was once stopped due to inactivity.\n // Ensure that recording is resumed.\n if (!this._stopRecording) {\n // Create a new session, otherwise when the user action is flushed, it\n // will get rejected due to an expired session.\n if (!this._checkSession()) {\n return;\n }\n\n // Note: This will cause a new DOM checkout\n this.resume();\n return;\n }\n\n // Otherwise... recording was never suspended, continue as normalish\n this.checkAndHandleExpiredSession();\n\n this._updateSessionActivity();\n }\n\n /**\n * Updates the user activity timestamp *without* resuming\n * recording. Some user events (e.g. keydown) can be create\n * low-value replays that only contain the keypress as a\n * breadcrumb. Instead this would require other events to\n * create a new replay after a session has expired.\n */\n public updateUserActivity(): void {\n this._updateUserActivity();\n this._updateSessionActivity();\n }\n\n /**\n * Only flush if `this.recordingMode === 'session'`\n */\n public conditionalFlush(): Promise {\n if (this.recordingMode === 'buffer') {\n return Promise.resolve();\n }\n\n return this.flushImmediate();\n }\n\n /**\n * Flush using debounce flush\n */\n public flush(): Promise {\n return this._debouncedFlush() as Promise;\n }\n\n /**\n * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n * cases of mulitple flushes happening closely together.\n */\n public flushImmediate(): Promise {\n this._debouncedFlush();\n // `.flush` is provided by the debounced function, analogously to lodash.debounce\n return this._debouncedFlush.flush() as Promise;\n }\n\n /**\n * Cancels queued up flushes.\n */\n public cancelFlush(): void {\n this._debouncedFlush.cancel();\n }\n\n /** Get the current sesion (=replay) ID */\n public getSessionId(): string | undefined {\n return this.session && this.session.id;\n }\n\n /**\n * Checks if recording should be stopped due to user inactivity. Otherwise\n * check if session is expired and create a new session if so. Triggers a new\n * full snapshot on new session.\n *\n * Returns true if session is not expired, false otherwise.\n * @hidden\n */\n public checkAndHandleExpiredSession(): boolean | void {\n // Prevent starting a new session if the last user activity is older than\n // SESSION_IDLE_PAUSE_DURATION. Otherwise non-user activity can trigger a new\n // session+recording. This creates noisy replays that do not have much\n // content in them.\n if (\n this._lastActivity &&\n isExpired(this._lastActivity, this.timeouts.sessionIdlePause) &&\n this.session &&\n this.session.sampled === 'session'\n ) {\n // Pause recording only for session-based replays. Otherwise, resuming\n // will create a new replay and will conflict with users who only choose\n // to record error-based replays only. (e.g. the resumed replay will not\n // contain a reference to an error)\n this.pause();\n return;\n }\n\n // --- There is recent user activity --- //\n // This will create a new session if expired, based on expiry length\n if (!this._checkSession()) {\n // Check session handles the refreshing itself\n return false;\n }\n\n return true;\n }\n\n /**\n * Capture some initial state that can change throughout the lifespan of the\n * replay. This is required because otherwise they would be captured at the\n * first flush.\n */\n public setInitialState(): void {\n const urlPath = `${WINDOW.location.pathname}${WINDOW.location.hash}${WINDOW.location.search}`;\n const url = `${WINDOW.location.origin}${urlPath}`;\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n // Reset _context as well\n this._clearContext();\n\n this._context.initialUrl = url;\n this._context.initialTimestamp = Date.now();\n this._context.urls.push(url);\n }\n\n /**\n * Add a breadcrumb event, that may be throttled.\n * If it was throttled, we add a custom breadcrumb to indicate that.\n */\n public throttledAddEvent(\n event: RecordingEvent,\n isCheckout?: boolean,\n ): typeof THROTTLED | typeof SKIPPED | Promise {\n const res = this._throttledAddEvent(event, isCheckout);\n\n // If this is THROTTLED, it means we have throttled the event for the first time\n // In this case, we want to add a breadcrumb indicating that something was skipped\n if (res === THROTTLED) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.throttled',\n });\n\n this.addUpdate(() => {\n // Return `false` if the event _was_ added, as that means we schedule a flush\n return !addEventSync(this, {\n type: ReplayEventTypeCustom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n metric: true,\n },\n });\n });\n }\n\n return res;\n }\n\n /**\n * This will get the parametrized route name of the current page.\n * This is only available if performance is enabled, and if an instrumented router is used.\n */\n public getCurrentRoute(): string | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const lastTransaction = this.lastTransaction || getCurrentScope().getTransaction();\n\n const attributes = (lastTransaction && spanToJSON(lastTransaction).data) || {};\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n if (!lastTransaction || !source || !['route', 'custom'].includes(source)) {\n return undefined;\n }\n\n return spanToJSON(lastTransaction).description;\n }\n\n /**\n * Initialize and start all listeners to varying events (DOM,\n * Performance Observer, Recording, Sentry SDK, etc)\n */\n private _initializeRecording(): void {\n this.setInitialState();\n\n // this method is generally called on page load or manually - in both cases\n // we should treat it as an activity\n this._updateSessionActivity();\n\n this.eventBuffer = createEventBuffer({\n useCompression: this._options.useCompression,\n workerUrl: this._options.workerUrl,\n });\n\n this._removeListeners();\n this._addListeners();\n\n // Need to set as enabled before we start recording, as `record()` can trigger a flush with a new checkout\n this._isEnabled = true;\n this._isPaused = false;\n\n this.startRecording();\n }\n\n /** A wrapper to conditionally capture exceptions. */\n private _handleException(error: unknown): void {\n DEBUG_BUILD && logger.error('[Replay]', error);\n\n if (DEBUG_BUILD && this._options._experiments && this._options._experiments.captureExceptions) {\n captureException(error);\n }\n }\n\n /**\n * Loads (or refreshes) the current session.\n */\n private _initializeSessionForSampling(previousSessionId?: string): void {\n // Whenever there is _any_ error sample rate, we always allow buffering\n // Because we decide on sampling when an error occurs, we need to buffer at all times if sampling for errors\n const allowBuffering = this._options.errorSampleRate > 0;\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n previousSessionId,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: this._options.sessionSampleRate,\n allowBuffering,\n },\n );\n\n this.session = session;\n }\n\n /**\n * Checks and potentially refreshes the current session.\n * Returns false if session is not recorded.\n */\n private _checkSession(): boolean {\n // If there is no session yet, we do not want to refresh anything\n // This should generally not happen, but to be safe....\n if (!this.session) {\n return false;\n }\n\n const currentSession = this.session;\n\n if (\n shouldRefreshSession(currentSession, {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n })\n ) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._refreshSession(currentSession);\n return false;\n }\n\n return true;\n }\n\n /**\n * Refresh a session with a new one.\n * This stops the current session (without forcing a flush, as that would never work since we are expired),\n * and then does a new sampling based on the refreshed session.\n */\n private async _refreshSession(session: Session): Promise {\n if (!this._isEnabled) {\n return;\n }\n await this.stop({ reason: 'refresh session' });\n this.initializeSampling(session.id);\n }\n\n /**\n * Adds listeners to record events for the replay\n */\n private _addListeners(): void {\n try {\n WINDOW.document.addEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.addEventListener('blur', this._handleWindowBlur);\n WINDOW.addEventListener('focus', this._handleWindowFocus);\n WINDOW.addEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.addListeners();\n }\n\n // There is no way to remove these listeners, so ensure they are only added once\n if (!this._hasInitializedCoreListeners) {\n addGlobalListeners(this);\n\n this._hasInitializedCoreListeners = true;\n }\n } catch (err) {\n this._handleException(err);\n }\n\n this._performanceCleanupCallback = setupPerformanceObserver(this);\n }\n\n /**\n * Cleans up listeners that were created in `_addListeners`\n */\n private _removeListeners(): void {\n try {\n WINDOW.document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n\n WINDOW.removeEventListener('blur', this._handleWindowBlur);\n WINDOW.removeEventListener('focus', this._handleWindowFocus);\n WINDOW.removeEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.removeListeners();\n }\n\n if (this._performanceCleanupCallback) {\n this._performanceCleanupCallback();\n }\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Handle when visibility of the page content changes. Opening a new tab will\n * cause the state to change to hidden because of content of current page will\n * be hidden. Likewise, moving a different window to cover the contents of the\n * page will also trigger a change to a hidden state.\n */\n private _handleVisibilityChange: () => void = () => {\n if (WINDOW.document.visibilityState === 'visible') {\n this._doChangeToForegroundTasks();\n } else {\n this._doChangeToBackgroundTasks();\n }\n };\n\n /**\n * Handle when page is blurred\n */\n private _handleWindowBlur: () => void = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.blur',\n });\n\n // Do not count blur as a user action -- it's part of the process of them\n // leaving the page\n this._doChangeToBackgroundTasks(breadcrumb);\n };\n\n /**\n * Handle when page is focused\n */\n private _handleWindowFocus: () => void = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.focus',\n });\n\n // Do not count focus as a user action -- instead wait until they focus and\n // interactive with page\n this._doChangeToForegroundTasks(breadcrumb);\n };\n\n /** Ensure page remains active when a key is pressed. */\n private _handleKeyboardEvent: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n handleKeyboardEvent(this, event);\n };\n\n /**\n * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n */\n private _doChangeToBackgroundTasks(breadcrumb?: ReplayBreadcrumbFrame): void {\n if (!this.session) {\n return;\n }\n\n const expired = isSessionExpired(this.session, {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n });\n\n if (expired) {\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Send replay when the page/tab becomes hidden. There is no reason to send\n // replay if it becomes visible, since no actions we care about were done\n // while it was hidden\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void this.conditionalFlush();\n }\n\n /**\n * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n */\n private _doChangeToForegroundTasks(breadcrumb?: ReplayBreadcrumbFrame): void {\n if (!this.session) {\n return;\n }\n\n const isSessionActive = this.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n // If the user has come back to the page within SESSION_IDLE_PAUSE_DURATION\n // ms, we will re-use the existing session, otherwise create a new\n // session\n logInfo('[Replay] Document has become active, but session has expired');\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n }\n\n /**\n * Update user activity (across session lifespans)\n */\n private _updateUserActivity(_lastActivity: number = Date.now()): void {\n this._lastActivity = _lastActivity;\n }\n\n /**\n * Updates the session's last activity timestamp\n */\n private _updateSessionActivity(_lastActivity: number = Date.now()): void {\n if (this.session) {\n this.session.lastActivity = _lastActivity;\n this._maybeSaveSession();\n }\n }\n\n /**\n * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n */\n private _createCustomBreadcrumb(breadcrumb: ReplayBreadcrumbFrame): void {\n this.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.throttledAddEvent({\n type: EventType.Custom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n },\n });\n });\n }\n\n /**\n * Observed performance events are added to `this.performanceEntries`. These\n * are included in the replay event before it is finished and sent to Sentry.\n */\n private _addPerformanceEntries(): Promise> {\n const performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n return Promise.all(createPerformanceSpans(this, performanceEntries));\n }\n\n /**\n * Clear _context\n */\n private _clearContext(): void {\n // XXX: `initialTimestamp` and `initialUrl` do not get cleared\n this._context.errorIds.clear();\n this._context.traceIds.clear();\n this._context.urls = [];\n }\n\n /** Update the initial timestamp based on the buffer content. */\n private _updateInitialTimestampFromEventBuffer(): void {\n const { session, eventBuffer } = this;\n if (!session || !eventBuffer) {\n return;\n }\n\n // we only ever update this on the initial segment\n if (session.segmentId) {\n return;\n }\n\n const earliestEvent = eventBuffer.getEarliestTimestamp();\n if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n this._context.initialTimestamp = earliestEvent;\n }\n }\n\n /**\n * Return and clear _context\n */\n private _popEventContext(): PopEventContext {\n const _context = {\n initialTimestamp: this._context.initialTimestamp,\n initialUrl: this._context.initialUrl,\n errorIds: Array.from(this._context.errorIds),\n traceIds: Array.from(this._context.traceIds),\n urls: this._context.urls,\n };\n\n this._clearContext();\n\n return _context;\n }\n\n /**\n * Flushes replay event buffer to Sentry.\n *\n * Performance events are only added right before flushing - this is\n * due to the buffered performance observer events.\n *\n * Should never be called directly, only by `flush`\n */\n private async _runFlush(): Promise {\n const replayId = this.getSessionId();\n\n if (!this.session || !this.eventBuffer || !replayId) {\n DEBUG_BUILD && logger.error('[Replay] No session or eventBuffer found to flush.');\n return;\n }\n\n await this._addPerformanceEntries();\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer || !this.eventBuffer.hasEvents) {\n return;\n }\n\n // Only attach memory event if eventBuffer is not empty\n await addMemoryEntry(this);\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer) {\n return;\n }\n\n // if this changed in the meanwhile, e.g. because the session was refreshed or similar, we abort here\n if (replayId !== this.getSessionId()) {\n return;\n }\n\n try {\n // This uses the data from the eventBuffer, so we need to call this before `finish()\n this._updateInitialTimestampFromEventBuffer();\n\n const timestamp = Date.now();\n\n // Check total duration again, to avoid sending outdated stuff\n // We leave 30s wiggle room to accomodate late flushing etc.\n // This _could_ happen when the browser is suspended during flushing, in which case we just want to stop\n if (timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 30_000) {\n throw new Error('Session is too long, not sending replay');\n }\n\n const eventContext = this._popEventContext();\n // Always increment segmentId regardless of outcome of sending replay\n const segmentId = this.session.segmentId++;\n this._maybeSaveSession();\n\n // Note this empties the event buffer regardless of outcome of sending replay\n const recordingData = await this.eventBuffer.finish();\n\n await sendReplay({\n replayId,\n recordingData,\n segmentId,\n eventContext,\n session: this.session,\n options: this.getOptions(),\n timestamp,\n });\n } catch (err) {\n this._handleException(err);\n\n // This means we retried 3 times and all of them failed,\n // or we ran into a problem we don't want to retry, like rate limiting.\n // In this case, we want to completely stop the replay - otherwise, we may get inconsistent segments\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'sendReplay' });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('send_error', 'replay');\n }\n }\n }\n\n /**\n * Flush recording data to Sentry. Creates a lock so that only a single flush\n * can be active at a time. Do not call this directly.\n */\n private _flush = async ({\n force = false,\n }: {\n /**\n * If true, flush while ignoring the `_isEnabled` state of\n * Replay integration. (By default, flush is noop if integration\n * is stopped).\n */\n force?: boolean;\n } = {}): Promise => {\n if (!this._isEnabled && !force) {\n // This can happen if e.g. the replay was stopped because of exceeding the retry limit\n return;\n }\n\n if (!this.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.error('[Replay] Attempting to finish replay event after session expired.');\n return;\n }\n\n if (!this.session) {\n // should never happen, as we would have bailed out before\n return;\n }\n\n const start = this.session.started;\n const now = Date.now();\n const duration = now - start;\n\n // A flush is about to happen, cancel any queued flushes\n this._debouncedFlush.cancel();\n\n // If session is too short, or too long (allow some wiggle room over maxReplayDuration), do not send it\n // This _should_ not happen, but it may happen if flush is triggered due to a page activity change or similar\n const tooShort = duration < this._options.minReplayDuration;\n const tooLong = duration > this._options.maxReplayDuration + 5_000;\n if (tooShort || tooLong) {\n logInfo(\n `[Replay] Session duration (${Math.floor(duration / 1000)}s) is too ${\n tooShort ? 'short' : 'long'\n }, not sending replay.`,\n this._options._experiments.traceInternals,\n );\n\n if (tooShort) {\n this._debouncedFlush();\n }\n return;\n }\n\n const eventBuffer = this.eventBuffer;\n if (eventBuffer && this.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n logInfo('[Replay] Flushing initial segment without checkout.', this._options._experiments.traceInternals);\n // TODO FN: Evaluate if we want to stop here, or remove this again?\n }\n\n // this._flushLock acts as a lock so that future calls to `_flush()`\n // will be blocked until this promise resolves\n if (!this._flushLock) {\n this._flushLock = this._runFlush();\n await this._flushLock;\n this._flushLock = undefined;\n return;\n }\n\n // Wait for previous flush to finish, then call the debounced `_flush()`.\n // It's possible there are other flush requests queued and waiting for it\n // to resolve. We want to reduce all outstanding requests (as well as any\n // new flush requests that occur within a second of the locked flush\n // completing) into a single flush.\n\n try {\n await this._flushLock;\n } catch (err) {\n DEBUG_BUILD && logger.error(err);\n } finally {\n this._debouncedFlush();\n }\n };\n\n /** Save the session, if it is sticky */\n private _maybeSaveSession(): void {\n if (this.session && this._options.stickySession) {\n saveSession(this.session);\n }\n }\n\n /** Handler for rrweb.record.onMutation */\n private _onMutationHandler = (mutations: unknown[]): boolean => {\n const count = mutations.length;\n\n const mutationLimit = this._options.mutationLimit;\n const mutationBreadcrumbLimit = this._options.mutationBreadcrumbLimit;\n const overMutationLimit = mutationLimit && count > mutationLimit;\n\n // Create a breadcrumb if a lot of mutations happen at the same time\n // We can show this in the UI as an information with potential performance improvements\n if (count > mutationBreadcrumbLimit || overMutationLimit) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.mutations',\n data: {\n count,\n limit: overMutationLimit,\n },\n });\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Stop replay if over the mutation limit\n if (overMutationLimit) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'mutationLimit', forceFlush: this.recordingMode === 'session' });\n return false;\n }\n\n // `true` means we use the regular mutation handling by rrweb\n return true;\n };\n}\n","type DebouncedCallback = {\n (): void | unknown;\n flush: () => void | unknown;\n cancel: () => void;\n};\ntype CallbackFunction = () => unknown;\ntype DebounceOptions = { maxWait?: number };\n\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nexport function debounce(func: CallbackFunction, wait: number, options?: DebounceOptions): DebouncedCallback {\n let callbackReturnValue: unknown;\n\n let timerId: ReturnType | undefined;\n let maxTimerId: ReturnType | undefined;\n\n const maxWait = options && options.maxWait ? Math.max(options.maxWait, wait) : 0;\n\n function invokeFunc(): unknown {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers(): void {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush(): unknown {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced(): unknown {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeout(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n","import { consoleSandbox } from '@sentry/utils';\n\nimport type { DeprecatedPrivacyOptions, ReplayIntegrationPrivacyOptions } from '../types';\n\ntype GetPrivacyOptions = Required> &\n Omit;\ninterface GetPrivacyReturn {\n maskTextSelector: string;\n unmaskTextSelector: string;\n blockSelector: string;\n unblockSelector: string;\n ignoreSelector: string;\n\n blockClass?: RegExp;\n maskTextClass?: RegExp;\n}\n\nfunction getOption(\n selectors: string[],\n defaultSelectors: string[],\n deprecatedClassOption?: string | RegExp,\n deprecatedSelectorOption?: string,\n): string {\n const deprecatedSelectors = typeof deprecatedSelectorOption === 'string' ? deprecatedSelectorOption.split(',') : [];\n\n const allSelectors = [\n ...selectors,\n // @deprecated\n ...deprecatedSelectors,\n\n // sentry defaults\n ...defaultSelectors,\n ];\n\n // @deprecated\n if (typeof deprecatedClassOption !== 'undefined') {\n // NOTE: No support for RegExp\n if (typeof deprecatedClassOption === 'string') {\n allSelectors.push(`.${deprecatedClassOption}`);\n }\n\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Replay] You are using a deprecated configuration item for privacy. Read the documentation on how to use the new privacy configuration.',\n );\n });\n }\n\n return allSelectors.join(',');\n}\n\n/**\n * Returns privacy related configuration for use in rrweb\n */\nexport function getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n}: GetPrivacyOptions): GetPrivacyReturn {\n const defaultBlockedElements = ['base[href=\"/\"]'];\n\n const maskSelector = getOption(mask, ['.sentry-mask', '[data-sentry-mask]'], maskTextClass, maskTextSelector);\n const unmaskSelector = getOption(unmask, ['.sentry-unmask', '[data-sentry-unmask]']);\n\n const options: GetPrivacyReturn = {\n // We are making the decision to make text and input selectors the same\n maskTextSelector: maskSelector,\n unmaskTextSelector: unmaskSelector,\n\n blockSelector: getOption(\n block,\n ['.sentry-block', '[data-sentry-block]', ...defaultBlockedElements],\n blockClass,\n blockSelector,\n ),\n unblockSelector: getOption(unblock, ['.sentry-unblock', '[data-sentry-unblock]']),\n ignoreSelector: getOption(ignore, ['.sentry-ignore', '[data-sentry-ignore]', 'input[type=\"file\"]'], ignoreClass),\n };\n\n if (blockClass instanceof RegExp) {\n options.blockClass = blockClass;\n }\n\n if (maskTextClass instanceof RegExp) {\n options.maskTextClass = maskTextClass;\n }\n\n return options;\n}\n","import { getClient } from '@sentry/core';\nimport type { BrowserClientReplayOptions, Integration, IntegrationFn } from '@sentry/types';\nimport { consoleSandbox, dropUndefinedKeys, isBrowser } from '@sentry/utils';\n\nimport {\n DEFAULT_FLUSH_MAX_DELAY,\n DEFAULT_FLUSH_MIN_DELAY,\n MAX_REPLAY_DURATION,\n MIN_REPLAY_DURATION,\n MIN_REPLAY_DURATION_LIMIT,\n} from './constants';\nimport { ReplayContainer } from './replay';\nimport type {\n RecordingOptions,\n ReplayCanvasIntegrationOptions,\n ReplayConfiguration,\n ReplayPluginOptions,\n SendBufferedReplayOptions,\n} from './types';\nimport { getPrivacyOptions } from './util/getPrivacyOptions';\nimport { maskAttribute } from './util/maskAttribute';\n\nconst MEDIA_SELECTORS =\n 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\n\nconst DEFAULT_NETWORK_HEADERS = ['content-length', 'content-type', 'accept'];\n\nlet _initialized = false;\n\ntype InitialReplayPluginOptions = Omit &\n Partial>;\n\nexport const replayIntegration = ((options?: ReplayConfiguration) => {\n // eslint-disable-next-line deprecation/deprecation\n return new Replay(options);\n}) satisfies IntegrationFn;\n\n/**\n * The main replay integration class, to be passed to `init({ integrations: [] })`.\n * @deprecated Use `replayIntegration()` instead.\n */\nexport class Replay implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Replay';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * Options to pass to `rrweb.record()`\n */\n private readonly _recordingOptions: RecordingOptions;\n\n /**\n * Initial options passed to the replay integration, merged with default values.\n * Note: `sessionSampleRate` and `errorSampleRate` are not required here, as they\n * can only be finally set when setupOnce() is called.\n *\n * @private\n */\n private readonly _initialOptions: InitialReplayPluginOptions;\n\n private _replay?: ReplayContainer;\n\n public constructor({\n flushMinDelay = DEFAULT_FLUSH_MIN_DELAY,\n flushMaxDelay = DEFAULT_FLUSH_MAX_DELAY,\n minReplayDuration = MIN_REPLAY_DURATION,\n maxReplayDuration = MAX_REPLAY_DURATION,\n stickySession = true,\n useCompression = true,\n workerUrl,\n _experiments = {},\n sessionSampleRate,\n errorSampleRate,\n maskAllText = true,\n maskAllInputs = true,\n blockAllMedia = true,\n\n mutationBreadcrumbLimit = 750,\n mutationLimit = 10_000,\n\n slowClickTimeout = 7_000,\n slowClickIgnoreSelectors = [],\n\n networkDetailAllowUrls = [],\n networkDetailDenyUrls = [],\n networkCaptureBodies = true,\n networkRequestHeaders = [],\n networkResponseHeaders = [],\n\n mask = [],\n maskAttributes = ['title', 'placeholder'],\n unmask = [],\n block = [],\n unblock = [],\n ignore = [],\n maskFn,\n\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskInputOptions,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n }: ReplayConfiguration = {}) {\n // eslint-disable-next-line deprecation/deprecation\n this.name = Replay.id;\n\n const privacyOptions = getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n ignoreClass,\n });\n\n this._recordingOptions = {\n maskAllInputs,\n maskAllText,\n maskInputOptions: { ...(maskInputOptions || {}), password: true },\n maskTextFn: maskFn,\n maskInputFn: maskFn,\n maskAttributeFn: (key: string, value: string, el: HTMLElement): string =>\n maskAttribute({\n maskAttributes,\n maskAllText,\n privacyOptions,\n key,\n value,\n el,\n }),\n\n ...privacyOptions,\n\n // Our defaults\n slimDOMOptions: 'all',\n inlineStylesheet: true,\n // Disable inline images as it will increase segment/replay size\n inlineImages: false,\n // collect fonts, but be aware that `sentry.io` needs to be an allowed\n // origin for playback\n collectFonts: true,\n errorHandler: (err: Error & { __rrweb__?: boolean }) => {\n try {\n err.__rrweb__ = true;\n } catch (error) {\n // ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n },\n };\n\n this._initialOptions = {\n flushMinDelay,\n flushMaxDelay,\n minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n stickySession,\n sessionSampleRate,\n errorSampleRate,\n useCompression,\n workerUrl,\n blockAllMedia,\n maskAllInputs,\n maskAllText,\n mutationBreadcrumbLimit,\n mutationLimit,\n slowClickTimeout,\n slowClickIgnoreSelectors,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n _experiments,\n };\n\n if (typeof sessionSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`sessionSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysSessionSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysSessionSampleRate: ${sessionSampleRate} })`,\n );\n\n this._initialOptions.sessionSampleRate = sessionSampleRate;\n }\n\n if (typeof errorSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`errorSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysOnErrorSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysOnErrorSampleRate: ${errorSampleRate} })`,\n );\n\n this._initialOptions.errorSampleRate = errorSampleRate;\n }\n\n if (this._initialOptions.blockAllMedia) {\n // `blockAllMedia` is a more user friendly option to configure blocking\n // embedded media elements\n this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector\n ? MEDIA_SELECTORS\n : `${this._recordingOptions.blockSelector},${MEDIA_SELECTORS}`;\n }\n\n if (this._isInitialized && isBrowser()) {\n throw new Error('Multiple Sentry Session Replay instances are not supported');\n }\n\n this._isInitialized = true;\n }\n\n /** If replay has already been initialized */\n protected get _isInitialized(): boolean {\n return _initialized;\n }\n\n /** Update _isInitialized */\n protected set _isInitialized(value: boolean) {\n _initialized = value;\n }\n\n /**\n * Setup and initialize replay container\n */\n public setupOnce(): void {\n if (!isBrowser()) {\n return;\n }\n\n this._setup();\n\n // Once upon a time, we tried to create a transaction in `setupOnce` and it would\n // potentially create a transaction before some native SDK integrations have run\n // and applied their own global event processor. An example is:\n // https://github.com/getsentry/sentry-javascript/blob/b47ceafbdac7f8b99093ce6023726ad4687edc48/packages/browser/src/integrations/useragent.ts\n //\n // So we call `this._initialize()` in next event loop as a workaround to wait for other\n // global event processors to finish. This is no longer needed, but keeping it\n // here to avoid any future issues.\n setTimeout(() => this._initialize());\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * PerformanceObserver, Recording, Sentry SDK, etc)\n */\n public start(): void {\n if (!this._replay) {\n return;\n }\n\n this._replay.start();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, until an error occurs.\n */\n public startBuffering(): void {\n if (!this._replay) {\n return;\n }\n\n this._replay.startBuffering();\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n public stop(): Promise {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n return this._replay.stop({ forceFlush: this._replay.recordingMode === 'session' });\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n public flush(options?: SendBufferedReplayOptions): Promise {\n if (!this._replay || !this._replay.isEnabled()) {\n return Promise.resolve();\n }\n\n return this._replay.sendBufferedReplayOrFlush(options);\n }\n\n /**\n * Get the current session ID.\n */\n public getReplayId(): string | undefined {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.getSessionId();\n }\n\n /**\n * Initializes replay.\n */\n protected _initialize(): void {\n if (!this._replay) {\n return;\n }\n\n // We have to run this in _initialize, because this runs in setTimeout\n // So when this runs all integrations have been added\n // Before this, we cannot access integrations on the client,\n // so we need to mutate the options here\n this._maybeLoadFromReplayCanvasIntegration();\n\n this._replay.initializeSampling();\n }\n\n /** Setup the integration. */\n private _setup(): void {\n // Client is not available in constructor, so we need to wait until setupOnce\n const finalOptions = loadReplayOptionsFromClient(this._initialOptions);\n\n this._replay = new ReplayContainer({\n options: finalOptions,\n recordingOptions: this._recordingOptions,\n });\n }\n\n /** Get canvas options from ReplayCanvas integration, if it is also added. */\n private _maybeLoadFromReplayCanvasIntegration(): void {\n // To save bundle size, we skip checking for stuff here\n // and instead just try-catch everything - as generally this should all be defined\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n try {\n const client = getClient()!;\n const canvasIntegration = client.getIntegrationByName!('ReplayCanvas') as Integration & {\n getOptions(): ReplayCanvasIntegrationOptions;\n };\n if (!canvasIntegration) {\n return;\n }\n\n this._replay!['_canvas'] = canvasIntegration.getOptions();\n } catch {\n // ignore errors here\n }\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n }\n}\n\n/** Parse Replay-related options from SDK options */\nfunction loadReplayOptionsFromClient(initialOptions: InitialReplayPluginOptions): ReplayPluginOptions {\n const client = getClient();\n const opt = client && (client.getOptions() as BrowserClientReplayOptions);\n\n const finalOptions = { sessionSampleRate: 0, errorSampleRate: 0, ...dropUndefinedKeys(initialOptions) };\n\n if (!opt) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('SDK client is not available.');\n });\n return finalOptions;\n }\n\n if (\n initialOptions.sessionSampleRate == null && // TODO remove once deprecated rates are removed\n initialOptions.errorSampleRate == null && // TODO remove once deprecated rates are removed\n opt.replaysSessionSampleRate == null &&\n opt.replaysOnErrorSampleRate == null\n ) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',\n );\n });\n }\n\n if (typeof opt.replaysSessionSampleRate === 'number') {\n finalOptions.sessionSampleRate = opt.replaysSessionSampleRate;\n }\n\n if (typeof opt.replaysOnErrorSampleRate === 'number') {\n finalOptions.errorSampleRate = opt.replaysOnErrorSampleRate;\n }\n\n return finalOptions;\n}\n\nfunction _getMergedNetworkHeaders(headers: string[]): string[] {\n return [...DEFAULT_NETWORK_HEADERS, ...headers.map(header => header.toLowerCase())];\n}\n","import type { getPrivacyOptions } from './getPrivacyOptions';\n\ninterface MaskAttributeParams {\n maskAttributes: string[];\n maskAllText: boolean;\n privacyOptions: ReturnType;\n key: string;\n value: string;\n el: HTMLElement;\n}\n\n/**\n * Masks an attribute if necessary, otherwise return attribute value as-is.\n */\nexport function maskAttribute({\n el,\n key,\n maskAttributes,\n maskAllText,\n privacyOptions,\n value,\n}: MaskAttributeParams): string {\n // We only mask attributes if `maskAllText` is true\n if (!maskAllText) {\n return value;\n }\n\n // unmaskTextSelector takes precendence\n if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n return value;\n }\n\n if (\n maskAttributes.includes(key) ||\n // Need to mask `value` attribute for `` if it's a button-like\n // type\n (key === 'value' && el.tagName === 'INPUT' && ['submit', 'button'].includes(el.getAttribute('type') || ''))\n ) {\n return value.replace(/[\\S]/g, '*');\n }\n\n return value;\n}\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a